private void addMagicLearnView(final SpellView view) { final MagicLearnView magicLearnView = view.addMagicLearnView(properties); MagicLearnPresenter learnPresenter = new MagicLearnPresenter(magicLearnView); learnPresenter.initPresentation(properties); learnPresenter.addChangeListener( new MagicViewListener() { @Override public void removeMagicRequested(Object[] removedSpells) { List<Spell> spellList = convertToList(removedSpells); spellConfiguration.removeSpells(spellList); } @Override public void addMagicRequested(Object[] addedSpells) { List<Spell> spellList = convertToList(addedSpells); spellConfiguration.addSpells(spellList); } }); circleModel.addSelectionListener( newValue -> { showAvailableSpells(magicLearnView); updateCircleInView(newValue, view); learnPresenter.updateButtons(); }); spellConfiguration.addChangeListener(() -> refreshSpellListsInView(magicLearnView)); refreshSpellListsInView(magicLearnView); updateCircleInView(circleModel.getSelectedCircle(), view); charmsModel.addCharmLearnListener( new CharmLearnAdapter() { @Override public void charmLearned(Charm charm) { learnPresenter.updateButtons(); } @Override public void charmForgotten(Charm charm) { learnPresenter.updateButtons(); } }); }
private void updateCircleInView(CircleType newValue, SpellView view) { view.showSelectedCircle(newValue); }
public void initPresentation() { Collection<Identifier> circles = new ArrayList<>(circleModel.getCircles()); view.addCircleSelection(circles, properties); addMagicLearnView(view); view.addCircleSelectionListener(circleModel::selectCircle); }