package com.farata.cleardatabuilder.extjs.facet.common.ui; import java.io.File; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.DirectoryDialog; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import com.farata.cleardatabuilder.extjs.facet.common.CommonInstallWizardPage; public class CommonInstallWizardPageUI { private Composite parent = null; // @jve:decl-index=0:visual-constraint="46,23" private Button springCheckbox = null; private CommonInstallWizardPage installWizardPage; private Text extJSPath = null; private Text appNameText; /** * This method initializes parent * */ public void createParent() { GridData gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = false; gridData.verticalAlignment = GridData.CENTER; GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 3; gridLayout.makeColumnsEqualWidth = false; if (parent == null) { parent = new Shell(); parent.setSize(new Point(463, 288)); } parent.setLayout(gridLayout); Label label = new Label(parent, SWT.NONE); label.setText("ExtJS distribution folder:"); extJSPath = new Text(parent, SWT.BORDER); extJSPath.setLayoutData(gridData); extJSPath.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { validateFields(); } }); Button button = new Button(parent, SWT.NONE); button.setText("Browse..."); button.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() { public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { DirectoryDialog dialog = new DirectoryDialog(parent.getShell()); if (!"".equals(extJSPath.getText())) { String initialDir = extJSPath.getText(); dialog.setFilterPath(initialDir); } String result = dialog.open(); if (result != null) { extJSPath.setText(result.toString()); } } }); String projectName = installWizardPage.getConfig().getWizardContext().getProjectName(); Label appNameLabel = new Label(parent, SWT.NONE); appNameLabel.setText("Application name:"); appNameText = new Text(parent, SWT.BORDER); appNameText.setLayoutData(gridData); appNameText.setText(projectName); appNameText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { validateFields(); } }); new Label(parent, SWT.NONE); springCheckbox = new Button(parent, SWT.CHECK); springCheckbox.setText("Add Spring support"); springCheckbox.setEnabled(false); // springCheckbox.setSelection(true); springCheckbox.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() { public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { installWizardPage.getConfig().setAddSpringSupport(springCheckbox.getSelection()); } }); } private void validateFields() { boolean extJSPathValid = installWizardPage.validateExtJSPath(new File(extJSPath.getText())); boolean appNameValid = installWizardPage.validateAppName(appNameText.getText()); boolean valid = extJSPathValid && appNameValid; installWizardPage.setPageComplete(valid); if (valid) { installWizardPage.setErrorMessage(null); installWizardPage.getConfig().setExtJSPath(new File(extJSPath.getText())); installWizardPage.getConfig().setAppName(appNameText.getText()); } else if (!extJSPathValid) { installWizardPage.setErrorMessage("ExtJS distribution folder is not valid."); } else if (!appNameValid) { installWizardPage.setErrorMessage("Application name is not valid."); } } public CommonInstallWizardPageUI(CommonInstallWizardPage installWizardPage, Composite parent) { this.parent = parent; this.installWizardPage = installWizardPage; } }