package org.insightech.er.editor.view.dialog.option; import java.util.ArrayList; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.TabFolder; import org.insightech.er.common.dialog.AbstractDialog; import org.insightech.er.common.exception.InputException; import org.insightech.er.common.widgets.ListenerAppender; import org.insightech.er.common.widgets.ValidatableTabWrapper; import org.insightech.er.editor.model.ERDiagram; import org.insightech.er.editor.model.settings.Settings; import org.insightech.er.editor.view.dialog.option.tab.AdvancedTabWrapper; import org.insightech.er.editor.view.dialog.option.tab.DBSelectTabWrapper; import org.insightech.er.editor.view.dialog.option.tab.EnvironmentTabWrapper; import org.insightech.er.editor.view.dialog.option.tab.OptionTabWrapper; public class OptionSettingDialog extends AbstractDialog { private TabFolder tabFolder; private List<ValidatableTabWrapper> tabWrapperList; private Settings settings; private ERDiagram diagram; public OptionSettingDialog(Shell parentShell, Settings settings, ERDiagram diagram) { super(parentShell); this.diagram = diagram; this.settings = settings; this.tabWrapperList = new ArrayList<ValidatableTabWrapper>(); } /** * {@inheritDoc} */ @Override protected void initialize(Composite composite) { GridData gridData = new GridData(); gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; gridData.verticalAlignment = GridData.FILL; gridData.horizontalAlignment = GridData.FILL; this.tabFolder = new TabFolder(composite, SWT.NONE); this.tabFolder.setLayoutData(gridData); this.tabWrapperList.add(new DBSelectTabWrapper(this, tabFolder, SWT.NONE, this.settings)); this.tabWrapperList.add(new EnvironmentTabWrapper(this, tabFolder, SWT.NONE, this.settings)); this.tabWrapperList.add(new AdvancedTabWrapper(this, tabFolder, SWT.NONE, this.settings, this.diagram)); this.tabWrapperList.add(new OptionTabWrapper(this, tabFolder, SWT.NONE, this.settings)); ListenerAppender.addTabListener(tabFolder, tabWrapperList); this.tabWrapperList.get(0).setInitFocus(); } /** * {@inheritDoc} */ @Override protected String getErrorMessage() { try { for (ValidatableTabWrapper tabWrapper : this.tabWrapperList) { tabWrapper.validatePage(); } } catch (InputException e) { return e.getMessage(); } return null; } @Override protected String getTitle() { return "dialog.title.option"; } @Override protected void perfomeOK() throws InputException { } @Override protected void setData() { } public void initTab() { for (ValidatableTabWrapper tabWrapper : this.tabWrapperList) { tabWrapper.reset(); } } }