private void initOverviewView() { final IOverviewCategory creationOverview = view.createOverview(resources.getString("Intimacies.Overview.BorderLabel")); final ILabelledAlotmentView freeIntimaciesView = creationOverview.addAlotmentView(resources.getString("Intimacies.Overview.Free"), 2); final ILabelledAlotmentView totalIntimaciesView = creationOverview.addAlotmentView(resources.getString("Intimacies.Overview.Maximum"), 2); final IValueView<Integer> bonusPointsView = creationOverview.addIntegerValueView( resources.getString("Intimacies.Overview.BonusPoints"), 2); final IOverviewCategory experienceOverview = view.createOverview(resources.getString("Intimacies.Overview.BorderLabel")); final ILabelledAlotmentView experienceMaximumView = experienceOverview.addAlotmentView(resources.getString("Intimacies.Overview.Maximum"), 2); model.addModelChangeListener( new IChangeListener() { @Override public void changeOccurred() { recalculateOverview( freeIntimaciesView, totalIntimaciesView, bonusPointsView, experienceMaximumView); } }); model.addModelChangeListener( new IRemovableEntryListener<IIntimacy>() { @Override public void entryAdded(IIntimacy entry) { recalculateOverview( freeIntimaciesView, totalIntimaciesView, bonusPointsView, experienceMaximumView); } @Override public void entryAllowed(boolean complete) { // Nothing to do } @Override public void entryRemoved(IIntimacy entry) { recalculateOverview( freeIntimaciesView, totalIntimaciesView, bonusPointsView, experienceMaximumView); } }); model.addCharacterChangeListener( new DedicatedCharacterChangeAdapter() { @Override public void experiencedChanged(boolean experienced) { setOverview(experienced, experienceOverview, creationOverview); } }); setOverview(model.isCharacterExperienced(), experienceOverview, creationOverview); recalculateOverview( freeIntimaciesView, totalIntimaciesView, bonusPointsView, experienceMaximumView); }
@Override protected IRemovableTraitView<?> createSubView(BasicUi basicUi, final IIntimacy intimacy) { final IRemovableTraitView<IToggleButtonTraitView<?>> intimacyView = view.addEntryView(basicUi.getRemoveIcon(), null, intimacy.getName()); intimacyView.setMaximum(model.getCompletionValue()); intimacyView.setValue(intimacy.getTrait().getCurrentValue()); new TraitPresenter(intimacy.getTrait(), intimacyView).initPresentation(); intimacyView.addButtonListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { model.removeEntry(intimacy); } }); intimacyView .getInnerView() .addButtonSelectedListener( new IBooleanValueChangedListener() { @Override public void valueChanged(boolean newValue) { intimacy.setComplete(newValue); } }); intimacy.addCompletionListener( new IBooleanValueChangedListener() { @Override public void valueChanged(boolean newValue) { intimacyView.getInnerView().setButtonState(newValue, true); } }); intimacyView.getInnerView().setButtonState(intimacy.isComplete(), true); return intimacyView; }
@Override public void initPresentation() { String labelText = resources.getString("Intimacies.SelectionLabel"); BasicUi basicUi = new BasicUi(); IStringSelectionView selectionView = view.addSelectionView(labelText, basicUi.getAddIcon()); initSelectionViewListening(selectionView); initOverviewView(); initModelListening(basicUi, selectionView); for (IIntimacy intimacy : model.getEntries()) { addSubView(basicUi, intimacy); } reset(selectionView); }
private void recalculateOverview( ILabelledAlotmentView freeIntimaciesView, ILabelledAlotmentView totalIntimaciesView, IValueView<Integer> bonusPointsView, ILabelledAlotmentView experienceMaximumView) { adjustBonusPointsOverview( freeIntimaciesView, model.getEntries().size(), model.getFreeIntimacies()); adjustTotalOverview(totalIntimaciesView, model.getEntries().size(), model.getIntimaciesLimit()); adjustTotalOverview( experienceMaximumView, model.getEntries().size(), model.getIntimaciesLimit()); adjustOverview(bonusPointsView); }