当前位置: 首页>>代码示例>>Java>>正文


Java UnitLabel.getUnit方法代码示例

本文整理汇总了Java中net.sf.freecol.client.gui.label.UnitLabel.getUnit方法的典型用法代码示例。如果您正苦于以下问题:Java UnitLabel.getUnit方法的具体用法?Java UnitLabel.getUnit怎么用?Java UnitLabel.getUnit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在net.sf.freecol.client.gui.label.UnitLabel的用法示例。


在下文中一共展示了UnitLabel.getUnit方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: importUnit

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
/**
 * Import a unit specified by its label to a component.
 *
 * @param comp The component to import to.
 * @param label The {@code UnitLabel} specifying the unit.
 * @param oldSelectedUnit A label for the old {@code Unit} to restore
 *     selection to.
 * @return True if the import succeeds.
 */
private boolean importUnit(JComponent comp, UnitLabel label,
                           UnitLabel oldSelectedUnit) {
    if (!(comp instanceof DropTarget)) return importFail(comp, "unit");
    final DropTarget target = (DropTarget)comp;

    // Check if the unit can be dragged to comp.
    final Unit unit = label.getUnit();
    if (!target.accepts(unit)) {
        return importFail(comp, "unacceptable unit (" + unit + ")");
    }

    // OK, add it.
    target.add(label, true);

    // Update unit selection.
    // New unit selection has already been taken care of
    // if this unit was moved to ToAmericaPanel
    restoreSelection(oldSelectedUnit);
    comp.revalidate();
    return true;
}
 
开发者ID:wintertime,项目名称:FreeCol,代码行数:31,代码来源:DefaultTransferHandler.java

示例2: addBoardItems

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
private boolean addBoardItems(final UnitLabel unitLabel, Location loc) {
    final Unit tempUnit = unitLabel.getUnit();
    if (tempUnit.isCarrier()) return false;

    final InGameController igc = freeColClient.getInGameController();

    boolean added = false;
    for (Unit unit : transform(loc.getUnitList(), u ->
            (u.isCarrier() && u.canCarryUnits() && u.canAdd(tempUnit)
                && tempUnit.getLocation() != u))) {
        StringTemplate template
            = StringTemplate.template("quickActionMenu.board")
                .addStringTemplate("%unit%",
                    unit.getLabel(Unit.UnitLabelType.NATIONAL));
        JMenuItem menuItem = Utility.localizedMenuItem(template);
        menuItem.addActionListener((ActionEvent ae) -> {
                igc.boardShip(tempUnit, unit);
            });
        this.add(menuItem);
        added = true;
    }
    return added;
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:24,代码来源:QuickActionMenu.java

示例3: selectLabel

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
public void selectLabel() {
    // Keep the previous selected unit if possible, otherwise default
    // on the last carrier.
    PortPanel portPanel = getPortPanel();
    if (portPanel == null) return;
    Unit selectedUnit = portPanel.getSelectedUnit();
    UnitLabel lastCarrier = null;
    for (Component component : getComponents()) {
        if (component instanceof UnitLabel) {
            UnitLabel label = (UnitLabel)component;
            Unit unit = label.getUnit();
            if (unit == selectedUnit) {
                portPanel.setSelectedUnitLabel(label);
                return;
            }
            if (unit.isCarrier() && unit.getTradeRoute() == null) {
                lastCarrier = label;
            }
        }
    }
    if (lastCarrier != null) {
        portPanel.setSelectedUnitLabel(lastCarrier);
    }
    // No revalidate+repaint as this is done in setSelectedUnitLabel
}
 
开发者ID:wintertime,项目名称:FreeCol,代码行数:30,代码来源:InPortPanel.java

示例4: addTileItem

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
/**
 * Add a menu item for the tile a unit is working.
 *
 * @param unitLabel The {@code UnitLabel} specifying the unit.
 * @return True if an item was added.
 */
private boolean addTileItem(final UnitLabel unitLabel) {
    final Unit unit = unitLabel.getUnit();
    final Tile tile = (unit == null) ? null : unit.getWorkTile();
    if (tile != null) {
        addTileItem(tile);
        return true;
    }
    return false;
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:16,代码来源:QuickActionMenu.java

示例5: add

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
public Component add(Component comp, boolean editState) {
    Container oldParent = comp.getParent();
    if (editState) {
        if (comp instanceof UnitLabel) {
            UnitLabel unitLabel = (UnitLabel)comp;
            Unit unit = unitLabel.getUnit();

            if (!unit.isOnCarrier()) {
                igc().putOutsideColony(unit);
            }

            if (unit.getColony() == null) {
                closeColonyPanel();
                return null;
            } else if (!(unit.getLocation() instanceof Tile)
                && !unit.isOnCarrier()) {
                return null;
            }

            oldParent.remove(comp);
            initialize();
            return comp;
        } else {
            logger.warning("Invalid component: " + comp);
            return null;
        }
    } else {
        ((UnitLabel)comp).setSmall(false);
        return add(comp);
    }
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:36,代码来源:ColonyPanel.java

示例6: updateDescriptionLabel

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
/**
 * Updates the description label, which is a tooltip with
 * the terrain type, road and plow indicator, if any.
 *
 * If a unit is on it update the tooltip of it instead.
 *
 * @param unitLabel The {@code UnitLabel} to update.
 */
private void updateDescriptionLabel(UnitLabel unitLabel) {
    String tileMsg = Messages.message(this.colonyTile.getLabel());
    if (unitLabel == null) {
        setToolTipText(tileMsg);
    } else {
        final Unit unit = unitLabel.getUnit();
        unitLabel.setDescriptionLabel(tileMsg + " ["
            + unit.getDescription(Unit.UnitLabelType.NATIONAL)
            + "]");
    }
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:20,代码来源:ColonyPanel.java

示例7: equipUnitIfPossible

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
private boolean equipUnitIfPossible(UnitLabel unitLabel,
                                    AbstractGoods goods) {
    final Unit unit = unitLabel.getUnit();
    if (!unit.hasAbility(Ability.CAN_BE_EQUIPPED)
        || unit.getRole().hasAbility(Ability.ESTABLISH_MISSION)) {
        // Do not equip missionaries.  The test below will succeed
        // when dragging incompatible goods (anything:-) because
        // there is no actual missionary equipment.
        return false;
    }

    for (Role role : transform(unit.getAvailableRoles(null),
                               r -> !r.isDefaultRole())) {
        List<AbstractGoods> required = unit.getGoodsDifference(role, 1);
        int count;
        if (required.size() == 1
            && required.get(0).getType() == goods.getType()
            && (count = Math.min(role.getMaximumCount(),
                    goods.getAmount() / required.get(0).getAmount())) > 0
            && (role != unit.getRole() || count != unit.getRoleCount())) {
            freeColClient.getInGameController()
                .equipUnitForRole(unit, role, count);
            unitLabel.updateIcon();
            return true;
        }
    }
    return false;
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:29,代码来源:DefaultTransferHandler.java

示例8: setSelectedUnit

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
/**
 * Select a given unit.
 *
 * @param unit The {@code Unit} to select.
 * @return True if the selection succeeds.
 */
public boolean setSelectedUnit(Unit unit) {
    for (Component component : getComponents()) {
        if (component instanceof UnitLabel) {
            UnitLabel label = (UnitLabel)component;
            if (label.getUnit() == unit) {
                setSelectedUnitLabel(label);
                return true;
            }
        }
    }
    return false;
}
 
开发者ID:wintertime,项目名称:FreeCol,代码行数:19,代码来源:PortPanel.java

示例9: setSelectedUnit

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
/**
 * Select a given unit.
 *
 * @param unit The {@code Unit} to select.
 * @return True if the selection succeeds.
 */
public boolean setSelectedUnit(Unit unit) {
    for (Component component : getComponents()) {
        if (component instanceof UnitLabel) {
            UnitLabel label = (UnitLabel)component;
            if (label.getUnit() == unit) {
                getPortPanel().setSelectedUnitLabel(label);
                return true;
            }
        }
    }
    return false;
}
 
开发者ID:wintertime,项目名称:FreeCol,代码行数:19,代码来源:UnitPanel.java

示例10: createUnitMenu

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
/**
 * Creates a popup menu for a Unit.
 *
 * @param unitLabel The {@code UnitLabel} to create items for.
 */
private void createUnitMenu(final UnitLabel unitLabel) {
    final Unit unit = unitLabel.getUnit();

    this.setLabel("Unit");
    ImageIcon unitIcon = new ImageIcon(gui.getImageLibrary()
        .getSmallUnitImage(unit));
    JMenuItem name = new JMenuItem(unit.getDescription(Unit.UnitLabelType.NATIONAL)
        + " (" + Messages.message("colopedia") + ")", unitIcon);
    name.setActionCommand(UnitAction.COLOPEDIA.toString());
    name.addActionListener(unitLabel);
    this.add(name);
    this.addSeparator();

    if (addCarrierItems(unitLabel)) this.addSeparator();

    if (unit.isInEurope()) {
        if (addCommandItems(unitLabel)) this.addSeparator();
        if (addBoardItems(unitLabel, unit.getOwner().getEurope())) {
            this.addSeparator();
        }
    } else if (unit.hasTile()) {
        Colony colony = unit.getLocation().getTile().getColony();
        if (colony != null) {
            if (addTileItem(unitLabel)) this.addSeparator();
            if (addWorkItems(unitLabel)) this.addSeparator();
            if (unit.isInColony()
                && addEducationItems(unitLabel)) this.addSeparator();
            if (unit.isInColony() && colony.canReducePopulation()) {
                JMenuItem menuItem = Utility.localizedMenuItem("quickActionMenu.leaveTown");
                menuItem.setActionCommand(UnitAction.LEAVE_TOWN.toString());
                menuItem.addActionListener(unitLabel);
                this.add(menuItem);
                addBoardItems(unitLabel, colony.getTile());
                this.addSeparator();
            } else {
                if (addCommandItems(unitLabel)) this.addSeparator();
                if (addBoardItems(unitLabel, colony.getTile())) {
                    this.addSeparator();
                }
            }
        } else {
            if (addCommandItems(unitLabel)) this.addSeparator();
        }
    }

    if (unit.hasAbility(Ability.CAN_BE_EQUIPPED)) {
        if (addRoleItems(unitLabel)) this.addSeparator();
    }
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:55,代码来源:QuickActionMenu.java

示例11: addRoleItems

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
/**
 * Add menu items for role manipulation for a unit.
 *
 * Note "clear speciality" is here too to keep it well separated from
 * other items.
 *
 * @param unitLabel The {@code UnitLabel} specifying the unit.
 * @return True if menu items were added and a separator is now needed.
 */
private boolean addRoleItems(final UnitLabel unitLabel) {
    final Specification spec = freeColClient.getGame().getSpecification();
    final Unit unit = unitLabel.getUnit();
    final Role role = unit.getRole();
    final int roleCount = unit.getRoleCount();
    boolean separatorNeeded = false;

    UnitLocation uloc = (unit.isInEurope()) ? unit.getOwner().getEurope()
        : unit.getSettlement();
    if (uloc == null) return false;
    for (Role r : transform(unit.getAvailableRoles(null),
                            r2 -> r2 != role)) {
        JMenuItem newItem;
        if (r.isDefaultRole()) { // Always valid
            newItem = createRoleItem(unitLabel, role, roleCount, r, 0, 0);
        } else {
            newItem = null;
            for (int count = r.getMaximumCount(); count > 0; count--) {
                List<AbstractGoods> req = unit.getGoodsDifference(r, count);
                try {
                    int price = uloc.priceGoods(req);
                    if (unit.getOwner().checkGold(price)) {
                        newItem = createRoleItem(unitLabel, role, roleCount,
                                                 r, count, price);
                        break;
                    }
                } catch (FreeColException fce) {
                    continue;
                }
            }
        }
        if (newItem != null) {
            this.add(newItem);
            separatorNeeded = true;
        }
    }

    UnitTypeChange uc = unit.getUnitChange(UnitChangeType.CLEAR_SKILL);
    if (uc != null) {
        if (separatorNeeded) this.addSeparator();
        JMenuItem menuItem = Utility.localizedMenuItem("quickActionMenu.clearSpeciality",
            new ImageIcon(gui.getImageLibrary().getTinyUnitImage(uc.to)));
        menuItem.setActionCommand(UnitAction.CLEAR_SPECIALITY.toString());
        menuItem.addActionListener(unitLabel);
        this.add(menuItem);
        if (unit.getLocation() instanceof Building
            && !((Building)unit.getLocation()).canAddType(uc.to)) {
            menuItem.setEnabled(false);
        }
        separatorNeeded = true;
    }
    return separatorNeeded;
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:63,代码来源:QuickActionMenu.java

示例12: createUnitMenu

import net.sf.freecol.client.gui.label.UnitLabel; //导入方法依赖的package包/类
/**
 * Creates a popup menu for a Unit.
 *
 * @param unitLabel The {@code UnitLabel} to create items for.
 */
private void createUnitMenu(final UnitLabel unitLabel) {
    final Unit unit = unitLabel.getUnit();

    this.setLabel("Unit");
    ImageIcon unitIcon = new ImageIcon(gui.getImageLibrary()
        .getSmallUnitImage(unit));
    JMenuItem name = new JMenuItem(unit.getDescription(Unit.UnitLabelType.NATIONAL)
        + " (" + Messages.message("colopedia") + ")", unitIcon);
    name.setActionCommand(UnitAction.COLOPEDIA.toString());
    name.addActionListener(unitLabel);
    this.add(name);
    this.addSeparator();

    if (addCarrierItems(unitLabel)) this.addSeparator();

    if (unit.isInEurope()) {
        if (addCommandItems(unitLabel)) this.addSeparator();
        if (addBoardItems(unitLabel, unit.getOwner().getEurope())) {
            this.addSeparator();
        }
    } else if (unit.hasTile()) {
        Colony colony = unit.getLocation().getTile().getColony();
        if (colony != null) {
            if (addTileItem(unitLabel)) this.addSeparator();
            if (addWorkItems(unitLabel)) this.addSeparator();
            if (addEducationItems(unitLabel)) this.addSeparator();
            if (unit.isInColony() && colony.canReducePopulation()) {
                JMenuItem menuItem = Utility.localizedMenuItem("quickActionMenu.leaveTown");
                menuItem.setActionCommand(UnitAction.LEAVE_TOWN.toString());
                menuItem.addActionListener(unitLabel);
                this.add(menuItem);
                addBoardItems(unitLabel, colony.getTile());
                this.addSeparator();
            } else {
                if (addCommandItems(unitLabel)) this.addSeparator();
                if (addBoardItems(unitLabel, colony.getTile())) {
                    this.addSeparator();
                }
            }
        } else {
            if (addCommandItems(unitLabel)) this.addSeparator();
        }
    }

    if (unit.hasAbility(Ability.CAN_BE_EQUIPPED)) {
        if (addRoleItems(unitLabel)) this.addSeparator();
    }
}
 
开发者ID:wintertime,项目名称:FreeCol,代码行数:54,代码来源:QuickActionMenu.java


注:本文中的net.sf.freecol.client.gui.label.UnitLabel.getUnit方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。