예제 #1
0
 public void addTool(
     final NewStatsConfiguration newStatsConfiguration,
     ToolListView<IEquipmentStats> statsListView) {
   final Tool newTool = statsListView.addTool();
   newTool.setTooltip(resources.getString(newStatsConfiguration.getTooltipKey()));
   newTool.setIcon(newStatsConfiguration.getIconPath());
   newTool.setOverlay(new RelativePath("icons/ButtonPlus16.png"));
   newTool.setCommand(
       new Command() {
         @Override
         public void execute() {
           List<String> definedNames = new ArrayList<>();
           for (IEquipmentStats stats : editModel.getStats()) {
             definedNames.add(stats.getName().getId());
           }
           String nameProposal = resources.getString(newStatsConfiguration.getNameKey());
           String[] nameArray = definedNames.toArray(new String[definedNames.size()]);
           IEquipmentStats equipmentStats =
               statsFactory.createNewStats(
                   nameArray, nameProposal, newStatsConfiguration.getType());
           editModel.addStatistics(equipmentStats);
         }
       });
   controlAvailability(newStatsConfiguration, newTool);
   editModel.addCompositionChangeListener(
       new ChangeListener() {
         @Override
         public void changeOccurred() {
           controlAvailability(newStatsConfiguration, newTool);
         }
       });
 }
예제 #2
0
 private void controlAvailability(NewStatsConfiguration newStatsConfiguration, Tool newTool) {
   if (statsFactory.canHaveThisKindOfStats(
       newStatsConfiguration.getType(), editModel.getMaterialComposition())) {
     newTool.enable();
   } else {
     newTool.disable();
   }
 }
예제 #3
0
 private void initializeCommand() {
   interaction.setCommand(new CreateNewCommand());
 }
예제 #4
0
 private void initializeAppearance() {
   interaction.setTooltip(resources.getString("AnathemaCore.Tools.New.Name"));
   interaction.setIcon(new BasicUi().getNewIconPathForTaskbar());
 }
예제 #5
0
  @SuppressWarnings("serial")
  private void initEntryPresentation() {
    String labelText = resources.getString("Linguistics.SelectionView.Label");
    AgnosticUIConfiguration<Object> uiConfiguration = new LanguageUiConfiguration();
    final ObjectSelectionViewWithTool<Object> selectionView =
        view.addSelectionView(labelText, uiConfiguration);
    selectionView.setObjects(model.getPredefinedLanguages());
    selectionView.addObjectSelectionChangedListener(
        new ObjectValueListener<Object>() {
          @Override
          public void valueChanged(Object newValue) {
            if (newValue == null) {
              return;
            }
            Identifier definedLanguage = getLanguage(newValue);
            if (definedLanguage == null) {
              model.selectBarbarianLanguage(newValue.toString());
            } else {
              model.selectLanguage(definedLanguage);
            }
          }
        });
    final Tool addButton = selectionView.addTool();
    addButton.setIcon(new BasicUi().getAddIconPath());
    addButton.setCommand(
        new Command() {
          @Override
          public void execute() {
            if (!model.isEntryAllowed()) {
              return;
            }
            model.commitSelection();
          }
        });
    model.addModelChangeListener(
        new RemovableEntryListener<Identifier>() {
          @Override
          public void entryAdded(Identifier entry) {
            addEntry(entry);
            selectionView.setSelectedObject(null);
          }

          @Override
          public void entryAllowed(boolean complete) {
            selectionView.setSelectedObject(model.getSelectedEntry());
            if (complete) {
              addButton.enable();
            } else {
              addButton.disable();
            }
          }

          @Override
          public void entryRemoved(Identifier entry) {
            RemovableEntryView entryView = viewsByEntry.remove(entry);
            entryView.delete();
          }
        });
    for (Identifier language : model.getPredefinedLanguages()) {
      languagesByDisplayName.put(getDisplayString(language), language);
    }
    for (Identifier language : model.getEntries()) {
      addEntry(language);
    }
  }