//This product is provided under the terms of EPL (Eclipse Public License)
//version 1.0.
//
//The full license text can be read from: http://www.eclipse.org/org/documents/epl-v10.php
package org.dtangler.swingui.rulesselector.impl;
import org.dtangler.core.configuration.Arguments;
import org.dtangler.swingui.actionfactory.ActionFactory;
import org.dtangler.swingui.groupselector.GroupSelector;
import org.dtangler.swingui.rulememberselector.RuleMemberSelector;
import org.dtangler.swingui.rulesselector.RulesSelector;
import org.dtangler.swingui.windowmanager.WindowManager;
public class RulesSelectorImpl implements RulesSelector {
private final WindowManager windowManager;
private final RuleMemberSelector ruleMemberSelector;
private final GroupSelector groupSelector;
public RulesSelectorImpl(RuleMemberSelector ruleMemberSelector,
WindowManager windowManager, GroupSelector groupSelector) {
this.ruleMemberSelector = ruleMemberSelector;
this.windowManager = windowManager;
this.groupSelector = groupSelector;
}
public Arguments selectRules(Arguments previousArguments) {
ActionFactory actionFactory = new ActionFactory();
SwingRulesView view = new SwingRulesView(actionFactory);
DefaultRulesModel model = new DefaultRulesModel(ruleMemberSelector,
previousArguments, groupSelector);
RulesPresenter presenter = new RulesPresenter(view, model);
new RulesGlue(actionFactory, presenter, windowManager, view);
windowManager.showModal(view);
return model.getArguments();
}
}