package org.insightech.er.wizard.page; import org.eclipse.jface.viewers.IStructuredSelection; 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.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.insightech.er.ResourceString; import org.insightech.er.db.DBManagerFactory; public class NewDiagramWizardPage2 extends WizardPage { private Combo databaseCombo; public NewDiagramWizardPage2(IStructuredSelection selection) { super(ResourceString.getResourceString("wizard.new.diagram.title")); this.setTitle(ResourceString .getResourceString("wizard.new.diagram.title")); } public void createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(); layout.numColumns = 2; composite.setLayout(layout); Label label = new Label(composite, SWT.NULL); label.setText(ResourceString.getResourceString("label.database")); this.databaseCombo = new Combo(composite, SWT.BORDER | SWT.READ_ONLY); GridData dbData = new GridData(GridData.FILL_HORIZONTAL); dbData.widthHint = 200; this.databaseCombo.setLayoutData(dbData); this.databaseCombo.setVisibleItemCount(10); for (String db : DBManagerFactory.getAllDBList()) { this.databaseCombo.add(db); } this.databaseCombo.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { validatePage(); } }); this.databaseCombo.setFocus(); this.validatePage(); this.setControl(composite); } protected boolean validatePage() { boolean valid = true; if (this.databaseCombo.getText().length() == 0) { setMessage(ResourceString .getResourceString("select.database.message")); valid = false; this.setPageComplete(false); } if (valid) { this.setPageComplete(true); setMessage(ResourceString .getResourceString("wizard.new.diagram.message")); } return valid; } public String getDatabase() { return this.databaseCombo.getText(); } }