package com.farata.cleardatabuilder.extjs.facet.sample.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.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; 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.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.DirectoryDialog; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import com.farata.cleardatabuilder.extjs.facet.sample.SampleInstallWizardPage; public class SampleInstallWizardPageUI { private Composite parent = null; // @jve:decl-index=0:visual-constraint="46,23" private Label dbLabel = null; // @jve:decl-index=0: private Text sampleDBInstallFolder = null; private Button button = null; private SampleInstallWizardPage installWizardPage; private Label sampleChoiceLabel; private Combo sampleCombo; /** * 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); sampleChoiceLabel = new Label(parent, SWT.NONE); sampleChoiceLabel.setText("Example Type:"); sampleCombo = new Combo(parent, SWT.NONE); sampleCombo.add("Hibernate persistence"); sampleCombo.add("MyBatis persistence"); sampleCombo.add("Manual persistence"); sampleCombo.select(0); sampleCombo.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent selectionevent) { boolean hbn = sampleCombo.getSelectionIndex() == 0; boolean mybts = sampleCombo.getSelectionIndex() == 1; boolean plnjava = sampleCombo.getSelectionIndex() == 2; dbLabel.setEnabled(!plnjava); sampleDBInstallFolder.setEnabled(!plnjava); button.setEnabled(!plnjava); installWizardPage.getConfig().setHibernateSample(hbn); installWizardPage.getConfig().setPlainJavaSample(plnjava); installWizardPage.getConfig().setMybatisSample(mybts); installWizardPage.setPageComplete(plnjava || installWizardPage .validateInstallationFolder(new File( sampleDBInstallFolder.getText()))); } @Override public void widgetDefaultSelected(SelectionEvent selectionevent) { } }); new Label(parent, SWT.NONE); dbLabel = new Label(parent, SWT.NONE); dbLabel.setText("Folder to install sample database:"); sampleDBInstallFolder = new Text(parent, SWT.BORDER); sampleDBInstallFolder.setLayoutData(gridData); sampleDBInstallFolder.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { validateDBInstallationFolder(); } }); 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(sampleDBInstallFolder.getText())) { String initialDir = sampleDBInstallFolder.getText(); dialog.setFilterPath(initialDir); } String result = dialog.open(); if (result != null) { sampleDBInstallFolder.setText(result.toString()); } } }); String home = System.getProperty("user.home"); String os = System.getProperty("os.name").toLowerCase(); String defaultDBFolder=""; if (os.indexOf("win") >= 0) { defaultDBFolder = home + "\\Application Data\\ClearDataBuilder"; } else if (os.indexOf("mac") >= 0) { defaultDBFolder = home + "/Library/Application Support/ClearDataBuilder"; }; sampleDBInstallFolder.setText(defaultDBFolder); } public SampleInstallWizardPageUI( SampleInstallWizardPage sampleInstallWizardPage, Composite parent) { this.parent = parent; this.installWizardPage = sampleInstallWizardPage; } private void validateDBInstallationFolder() { boolean valid = installWizardPage .validateInstallationFolder(new File( sampleDBInstallFolder.getText())); installWizardPage.setPageComplete(valid); if (valid) { installWizardPage.setErrorMessage(null); installWizardPage.getConfig().setSampleDBInstallFolder( new File(sampleDBInstallFolder.getText())); } else { installWizardPage .setErrorMessage("Installation folder is not valid."); } } }