package com.mobilesorcery.sdk.deployment.internal.ui.ftp; import java.io.File; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Path; import org.eclipse.jface.dialogs.IMessageProvider; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; public class AddToDeployFilePage extends WizardPage { private Text deployFileText; private IFile initialDeployFile = null; protected AddToDeployFilePage() { super("Add to deploy file"); setTitle(getName()); } public void setInitialDeployFile(IFile initialDeployFile) { this.initialDeployFile = initialDeployFile; } public File internalGetDeployFile() { IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(deployFileText.getText())); return file.getLocation().toFile(); } public File getDeployFile() { try { return internalGetDeployFile(); } catch (Exception e) { return null; } } public void createControl(Composite parent) { Composite main = new Composite(parent, SWT.NONE); main.setLayout(new GridLayout(2, false)); Label deployFileLabel = new Label(main, SWT.NONE); deployFileLabel.setText("&File:"); deployFileText = new Text(main, SWT.BORDER | SWT.SINGLE); deployFileText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); if (initialDeployFile != null) { deployFileText.setText(initialDeployFile.getFullPath().toString()); } deployFileText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { validate(); } }); setControl(main); validate(); } private void validate() { int severity = IMessageProvider.NONE; String msg = null; if (!deployFileText.getText().isEmpty()) { try { internalGetDeployFile(); } catch (Exception e) { msg = e.getMessage(); severity = IMessageProvider.ERROR; } } else { msg = "Leaving the field empty to not create a deploy file"; severity = IMessageProvider.INFORMATION; } setMessage(msg, severity); } }