/******************************************************************************* * Copyright (c) 2008 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.csv12; import java.io.File; import java.lang.reflect.InvocationTargetException; import java.util.List; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.jboss.tools.smooks.configuration.editors.utils.SmooksUIUtils; import org.jboss.tools.smooks.configuration.editors.xml.AbstractFileSelectionWizardPage; /** * @author Dart (dpeng@redhat.com) * */ public class CSV12DataPathWizardPage extends AbstractFileSelectionWizardPage { private CSV12DataConfigurationWizardPage configPage; public CSV12DataPathWizardPage(String pageName, boolean multiSelect, Object[] initSelections, List<ViewerFilter> filters,CSV12DataConfigurationWizardPage configPage) { super(pageName, multiSelect, initSelections, filters); this.configPage = configPage; } public CSV12DataPathWizardPage(String pageName, String[] fileExtensionNames,CSV12DataConfigurationWizardPage configPage) { super(pageName, fileExtensionNames); this.setTitle(Messages.CSV12DataPathWizardPage_WizardTitle); this.setDescription(Messages.CSV12DataPathWizardPage_WizardDes); this.configPage = configPage; } /* (non-Javadoc) * @see org.jboss.tools.smooks.configuration.editors.xml.AbstractFileSelectionWizardPage#hookFileTextModifyListener() */ @Override protected void hookFileTextModifyListener() { super.hookFileTextModifyListener(); this.fileText.addModifyListener(new ModifyListener(){ /* (non-Javadoc) * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent) */ public void modifyText(ModifyEvent e) { if(configPage != null){ configPage.setFilePath(fileText.getText()); } } }); } /* * (non-Javadoc) * * @seeorg.jboss.tools.smooks.configuration.editors.xml. * AbstractFileSelectionWizardPage#loadedTheObject(java.lang.String) */ @Override protected Object loadedTheObject(String path) throws Exception { return null; } @Override protected void changeWizardPageStatus() { super.changeWizardPageStatus(); String text = this.fileText.getText(); String error = null; String filePath; try { filePath = SmooksUIUtils.parseFilePath(text); if (!new File(filePath).exists()) { error = Messages.CSV12DataPathWizardPage_CantFindFileErrorMessage + filePath; } } catch (InvocationTargetException e) { error = Messages.CSV12DataPathWizardPage_ErrorFilePathErrorMessage; } this.setErrorMessage(error); this.setPageComplete(error == null); } @Override public boolean canFlipToNextPage() { return super.canFlipToNextPage(); // String filePath = this.getFilePath(); // try { // filePath = SmooksUIUtils.parseFilePath(filePath); // if(filePath == null) return false; // return new File(filePath).exists(); // } catch (InvocationTargetException e) { // return false; // } } }