//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.fileinput.impl; import org.dtangler.core.dependencyengine.DependencyEngineFactory; import org.dtangler.swingui.actionfactory.ActionFactory; import org.dtangler.swingui.directoryselector.DirectorySelector; import org.dtangler.swingui.fileinput.FileInputSelection; import org.dtangler.swingui.fileinput.FileInputSelector; import org.dtangler.swingui.textinput.TextInputSelector; import org.dtangler.swingui.windowmanager.WindowManager; public class FileInputSelectorImpl implements FileInputSelector { private final DirectorySelector directorySelector; private final TextInputSelector textInputSelector; private final WindowManager windowManager; private final DependencyEngineFactory dependencyEngineFactory; public FileInputSelectorImpl(DirectorySelector directorySelector, TextInputSelector textInputSelector, WindowManager windowManager, DependencyEngineFactory dependencyEngineFactory) { this.directorySelector = directorySelector; this.textInputSelector = textInputSelector; this.windowManager = windowManager; this.dependencyEngineFactory = dependencyEngineFactory; } public FileInputSelection selectInput(FileInputSelection defaultInput) { ActionFactory actionFactory = new ActionFactory(); SwingFileInputSelectorView view = new SwingFileInputSelectorView( actionFactory); FileInputSelectorModel model = new DefaultFileInputSelectorModel( directorySelector, textInputSelector, dependencyEngineFactory, defaultInput); FileInputSelectorPresenter presenter = new FileInputSelectorPresenter( view, model); new FileInputSelectorGlue(actionFactory, view, presenter, windowManager); windowManager.showModal(view); return model.getAppliedInputSelection(); } }