-package org.simantics.utils.ui.dialogs;\r
-\r
-import java.util.Collection;\r
-\r
-import org.eclipse.jface.dialogs.Dialog;\r
-import org.eclipse.jface.dialogs.IDialogSettings;\r
-import org.eclipse.jface.viewers.ArrayContentProvider;\r
-import org.eclipse.jface.viewers.LabelProvider;\r
-import org.eclipse.jface.viewers.StructuredViewer;\r
-import org.eclipse.jface.viewers.TableViewer;\r
-import org.eclipse.jface.viewers.Viewer;\r
-import org.eclipse.jface.viewers.ViewerSorter;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.graphics.Point;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Control;\r
-import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.simantics.utils.strings.AlphanumComparator;\r
-import org.simantics.utils.ui.internal.Activator;\r
-\r
-\r
-/**\r
- * @author Tuukka Lehtonen\r
- */\r
-public class ListDialog<T> extends Dialog {\r
-\r
- private static final String DIALOG = "ListDialog"; //$NON-NLS-1$\r
-\r
- private final Collection<T> selectables;\r
-\r
- private final String title;\r
-\r
- private final String description;\r
-\r
- private StructuredViewer viewer;\r
-\r
- private IDialogSettings dialogBoundsSettings;\r
-\r
- public ListDialog(Shell parent, Collection<T> selectables, String title, String description) {\r
- super(parent);\r
- this.selectables = selectables;\r
- this.title = title;\r
- this.description = description;\r
-\r
- IDialogSettings settings = Activator.getDefault().getDialogSettings();\r
- dialogBoundsSettings = settings.getSection(DIALOG);\r
- if (dialogBoundsSettings == null)\r
- dialogBoundsSettings = settings.addNewSection(DIALOG);\r
- }\r
-\r
- @Override\r
- protected IDialogSettings getDialogBoundsSettings() {\r
- return dialogBoundsSettings;\r
- }\r
-\r
- @Override\r
- protected void configureShell(Shell newShell) {\r
- if (title != null) {\r
- newShell.setText(title);\r
- } else {\r
- newShell.setText("Select");\r
- }\r
- super.configureShell(newShell);\r
- }\r
-\r
- @Override\r
- protected int getShellStyle() {\r
- return super.getShellStyle() | SWT.RESIZE;\r
- }\r
-\r
- @Override\r
- protected Point getInitialSize() {\r
- Point defaultSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT, true);\r
- Point result = super.getInitialSize();\r
- if (defaultSize.equals(result))\r
- return new Point(500, 300);\r
- return result;\r
- }\r
- \r
- protected StructuredViewer createViewer(Composite composite) {\r
- return new TableViewer(composite, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);\r
- }\r
-\r
- @Override\r
- protected Control createDialogArea(Composite parent) {\r
- Composite composite = (Composite) super.createDialogArea(parent);\r
-\r
- if (description != null) {\r
- Label label = new Label(composite, 0);\r
- label.setText(description);\r
- label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));\r
- }\r
-\r
- viewer = createViewer(composite);\r
- viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
- viewer.setContentProvider(new ArrayContentProvider());\r
- viewer.setLabelProvider(new SelectableLabelProvider());\r
- viewer.setSorter(sorter);\r
- viewer.setInput(selectables);\r
-\r
- applyDialogFont(composite);\r
- return composite;\r
- }\r
-\r
- @Override\r
- protected void okPressed() {\r
- super.okPressed();\r
- }\r
-\r
- private String toLabel(T t) {\r
- return t.toString();\r
- }\r
-\r
- private final ViewerSorter sorter = new ViewerSorter() {\r
- @SuppressWarnings("unchecked")\r
- @Override\r
- public int compare(Viewer viewer, Object e1, Object e2) {\r
- return AlphanumComparator.CASE_INSENSITIVE_COMPARATOR.compare(toLabel((T) e1), toLabel((T) e2));\r
- }\r
- };\r
-\r
- class SelectableLabelProvider extends LabelProvider {\r
- @SuppressWarnings("unchecked")\r
- @Override\r
- public String getText(Object element) {\r
- return toLabel((T) element);\r
- }\r
- }\r
-\r
-}\r
+package org.simantics.utils.ui.dialogs;
+
+import java.util.Collection;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.simantics.utils.strings.AlphanumComparator;
+import org.simantics.utils.ui.internal.Activator;
+
+
+/**
+ * @author Tuukka Lehtonen
+ */
+public class ListDialog<T> extends Dialog {
+
+ private static final String DIALOG = "ListDialog"; //$NON-NLS-1$
+
+ private final Collection<T> selectables;
+
+ private final String title;
+
+ private final String description;
+
+ private StructuredViewer viewer;
+
+ private IDialogSettings dialogBoundsSettings;
+
+ public ListDialog(Shell parent, Collection<T> selectables, String title, String description) {
+ super(parent);
+ this.selectables = selectables;
+ this.title = title;
+ this.description = description;
+
+ IDialogSettings settings = Activator.getDefault().getDialogSettings();
+ dialogBoundsSettings = settings.getSection(DIALOG);
+ if (dialogBoundsSettings == null)
+ dialogBoundsSettings = settings.addNewSection(DIALOG);
+ }
+
+ @Override
+ protected IDialogSettings getDialogBoundsSettings() {
+ return dialogBoundsSettings;
+ }
+
+ @Override
+ protected void configureShell(Shell newShell) {
+ if (title != null) {
+ newShell.setText(title);
+ } else {
+ newShell.setText("Select");
+ }
+ super.configureShell(newShell);
+ }
+
+ @Override
+ protected int getShellStyle() {
+ return super.getShellStyle() | SWT.RESIZE;
+ }
+
+ @Override
+ protected Point getInitialSize() {
+ Point defaultSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
+ Point result = super.getInitialSize();
+ if (defaultSize.equals(result))
+ return new Point(500, 300);
+ return result;
+ }
+
+ protected StructuredViewer createViewer(Composite composite) {
+ return new TableViewer(composite, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
+ }
+
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ Composite composite = (Composite) super.createDialogArea(parent);
+
+ if (description != null) {
+ Label label = new Label(composite, 0);
+ label.setText(description);
+ label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+ }
+
+ viewer = createViewer(composite);
+ viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ viewer.setContentProvider(new ArrayContentProvider());
+ viewer.setLabelProvider(new SelectableLabelProvider());
+ viewer.setSorter(sorter);
+ viewer.setInput(selectables);
+
+ applyDialogFont(composite);
+ return composite;
+ }
+
+ @Override
+ protected void okPressed() {
+ super.okPressed();
+ }
+
+ private String toLabel(T t) {
+ return t.toString();
+ }
+
+ private final ViewerSorter sorter = new ViewerSorter() {
+ @SuppressWarnings("unchecked")
+ @Override
+ public int compare(Viewer viewer, Object e1, Object e2) {
+ return AlphanumComparator.CASE_INSENSITIVE_COMPARATOR.compare(toLabel((T) e1), toLabel((T) e2));
+ }
+ };
+
+ class SelectableLabelProvider extends LabelProvider {
+ @SuppressWarnings("unchecked")
+ @Override
+ public String getText(Object element) {
+ return toLabel((T) element);
+ }
+ }
+
+}