package org.insightech.er.preference; import java.util.List; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.PlatformUI; import org.insightech.er.ResourceString; import org.insightech.er.editor.model.ERDiagram; import org.insightech.er.editor.model.diagram_contents.not_element.group.CopyGroup; import org.insightech.er.editor.model.diagram_contents.not_element.group.GlobalGroupSet; import org.insightech.er.editor.model.diagram_contents.not_element.group.GroupSet; import org.insightech.er.editor.view.dialog.group.GroupManageDialog; public class PreferencePage extends org.eclipse.jface.preference.PreferencePage implements IWorkbenchPreferencePage { @Override protected Control createContents(Composite parent) { this.noDefaultAndApplyButton(); Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout()); initialize(composite); return composite; } private void initialize(Composite parent) { Button button = new Button(parent, SWT.NONE); button.setText(ResourceString .getResourceString("action.title.manage.global.group")); button.addSelectionListener(new SelectionAdapter() { /** * {@inheritDoc} */ @Override public void widgetSelected(SelectionEvent e) { GroupSet columnGroups = GlobalGroupSet.load(); ERDiagram diagram = new ERDiagram(columnGroups.getDatabase()); GroupManageDialog dialog = new GroupManageDialog(PlatformUI .getWorkbench().getActiveWorkbenchWindow().getShell(), columnGroups, diagram, true, -1); if (dialog.open() == IDialogConstants.OK_ID) { List<CopyGroup> newColumnGroups = dialog .getCopyColumnGroups(); columnGroups.clear(); for (CopyGroup copyColumnGroup : newColumnGroups) { columnGroups.add(copyColumnGroup.restructure(null)); } GlobalGroupSet.save(columnGroups); } } }); } public void init(IWorkbench workbench) { } }