/******************************************************************************* * Copyright (c) 2009 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.smooks.configuration.editors; import java.util.List; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.jface.wizard.Wizard; import org.eclipse.ui.INewWizard; import org.eclipse.ui.IWorkbench; /** * @author Dart Peng (dpeng@redhat.com) * Date Apr 13, 2009 */ public class FileSelectionWizard extends Wizard implements INewWizard { private FileSelectionWizardPage fileSelectionWizardPage = null; private String filePath = null; private List<ViewerFilter> viewerFilters = null; private Object[] initSelections = null; private boolean multiSelect = false; private IFilePathProcessor filePathProcessor = null; private String[] extensionNames = null; private boolean processFilePath = true; public FileSelectionWizard() { super(); this.setWindowTitle(Messages.FileSelectionWizard_WizardTitle); } @Override public void addPages() { fileSelectionWizardPage = new FileSelectionWizardPage(Messages.FileSelectionWizard_WizardPageName ,null,isProcessFilePath()); fileSelectionWizardPage.setFilters(viewerFilters); fileSelectionWizardPage.setInitSelections(getInitSelections()); fileSelectionWizardPage.setMultiSelect(isMultiSelect()); fileSelectionWizardPage.setFilePathProcessor(getFilePathProcessor()); fileSelectionWizardPage.setFileExtensionNames(extensionNames); fileSelectionWizardPage.createFileExtensionNameFilter(); this.addPage(fileSelectionWizardPage); } /** * @return the processFilePath */ public boolean isProcessFilePath() { return processFilePath; } /** * @param processFilePath the processFilePath to set */ public void setProcessFilePath(boolean processFilePath) { this.processFilePath = processFilePath; } /** * @return the extensionNames */ public String[] getExtensionNames() { return extensionNames; } /** * @param extensionNames the extensionNames to set */ public void setExtensionNames(String[] extensionNames) { this.extensionNames = extensionNames; } /* (non-Javadoc) * @see org.eclipse.jface.wizard.Wizard#performFinish() */ @Override public boolean performFinish() { filePath = fileSelectionWizardPage.getFilePath(); return true; } /* (non-Javadoc) * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection) */ public void init(IWorkbench workbench, IStructuredSelection selection) { } public Object[] getInitSelections() { return initSelections; } public void setInitSelections(Object[] initSelections) { this.initSelections = initSelections; } public boolean isMultiSelect() { return multiSelect; } public void setMultiSelect(boolean multiSelect) { this.multiSelect = multiSelect; } public String getFilePath() { return filePath; } public void setFilePath(String filePath) { this.filePath = filePath; } public List<ViewerFilter> getViewerFilters() { return viewerFilters; } public void setViewerFilters(List<ViewerFilter> viewerFilters) { this.viewerFilters = viewerFilters; } public void setFilePathProcessor(IFilePathProcessor filePathProcessor) { this.filePathProcessor = filePathProcessor; } public IFilePathProcessor getFilePathProcessor() { return filePathProcessor; } }