diff options
Diffstat (limited to 'plugins/org.eclipse.emf.eef.runtime')
2 files changed, 39 insertions, 3 deletions
diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/EMFModelViewerDialog.java b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/EMFModelViewerDialog.java index b2e2be0bc..d9dcd69b9 100644 --- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/EMFModelViewerDialog.java +++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/EMFModelViewerDialog.java @@ -35,6 +35,7 @@ import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.swt.SWT; import org.eclipse.swt.events.KeyAdapter; @@ -83,6 +84,10 @@ public abstract class EMFModelViewerDialog extends Dialog { protected Object input; + private ViewerComparator comparator; + + private boolean customComparator; + /** * Constructor. * @@ -109,6 +114,7 @@ public abstract class EMFModelViewerDialog extends Dialog { this.nullable = nullable; this.isMulti = isMulti; setShellStyle(SWT.CLOSE | SWT.TITLE | SWT.BORDER | SWT.APPLICATION_MODAL | SWT.RESIZE); + customComparator = false; } /* @@ -184,7 +190,10 @@ public abstract class EMFModelViewerDialog extends Dialog { }; } elements.setLabelProvider(labelProvider); - elements.setComparator(new EMFModelViewerComparator(labelProvider)); + if (!customComparator) { + comparator = new EMFModelViewerComparator(labelProvider); + } + elements.setComparator(comparator); elements.addDoubleClickListener(new IDoubleClickListener() { @@ -418,4 +427,11 @@ public abstract class EMFModelViewerDialog extends Dialog { return StringTools.EMPTY_STRING; return result; } + + public void setComparator(ViewerComparator comparator) { + this.comparator = comparator; + customComparator = true; + } + + } diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/EObjectFlatComboViewer.java b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/EObjectFlatComboViewer.java index 1ab51aabd..977d05f29 100644 --- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/EObjectFlatComboViewer.java +++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/ui/widgets/EObjectFlatComboViewer.java @@ -24,6 +24,7 @@ import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; @@ -56,6 +57,10 @@ public class EObjectFlatComboViewer extends Composite implements ISelectionProvi protected Object input; private ButtonsModeEnum button_mode = ButtonsModeEnum.BROWSE; + + private boolean isSetComparator; + + private ViewerComparator comparator; public EObjectFlatComboViewer(Composite parent, final boolean nullable) { super(parent, SWT.NONE); @@ -76,7 +81,15 @@ public class EObjectFlatComboViewer extends Composite implements ISelectionProvi editer.addSelectionListener(getSelectionAdapter(nullable)); EditingUtils.setEEFtype(editer, "eef::EObjectFlatComboViewer::editbutton"); - + + isSetComparator = false; + comparator = null; + } + + public EObjectFlatComboViewer(Composite parent, final boolean nullable, ViewerComparator comparator) { + this(parent, nullable); + isSetComparator = true; + this.comparator = comparator; } /** @@ -115,6 +128,9 @@ public class EObjectFlatComboViewer extends Composite implements ISelectionProvi } } }; + if (isSetComparator) { + dialog.setComparator(comparator); + } dialog.open(); } break; @@ -227,5 +243,9 @@ public class EObjectFlatComboViewer extends Composite implements ISelectionProvi editer.setEnabled(enabled); } - + public void setComparator(ViewerComparator comparator) { + this.comparator = comparator; + isSetComparator = true; + } + } |