add menu to namedAreaSelection dialog (need to be migrated)
authorKatja Luther <k.luther@bgbm.org>
Fri, 17 Nov 2017 15:01:42 +0000 (16:01 +0100)
committerKatja Luther <k.luther@bgbm.org>
Fri, 17 Nov 2017 15:01:42 +0000 (16:01 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SearchDialog.java

index a3afdcfa2ba7c390c569ff118cecf76aa6e25626..04d580ab813df7b0552b67f6f6043ee4924d8c01 100644 (file)
@@ -10,6 +10,7 @@
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
 import java.text.Collator;
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -231,6 +232,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                            if (progressMonitor != null){
                                progressMonitor.beginTask("Looking for entities", model.size());
                            }
+                           Collections.sort(model, getItemsComparator());
                            contentProvider.reset();
                                Iterator<UuidAndTitleCache<T>> iterator = model.iterator();
                                UuidAndTitleCache<T> element;
@@ -286,7 +288,8 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
         */
        /** {@inheritDoc} */
 
-       protected Comparator getItemsComparator() {
+       @Override
+    protected Comparator getItemsComparator() {
                return new Comparator<UuidAndTitleCache>() {
                        @Override
                        public int compare(UuidAndTitleCache entity1,
index bbd327fba6635ae541236bc5a29dd1e7c350b308..28b0d05c30cf85069b86ab0b7af8ce2472577164 100644 (file)
@@ -13,6 +13,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.IMenuManager;
@@ -61,6 +62,12 @@ public class NamedAreaSelectionDialog extends
                        }
                        PreferencesUtil.getPreferenceStore().setValue(getPrefKey(vocabulary), !isChecked());
                        search();
+                       try {
+                fillContentProvider(null);
+            } catch (CoreException coreException) {
+                // TODO Auto-generated catch block
+                coreException.printStackTrace();
+            }
                }
        }
 
index ba70bd49385bc9d4edabd48d653315bde97818a8..2aae223f3afbe95f64bcaf6144c04b66eaca8936 100755 (executable)
@@ -11,8 +11,10 @@ package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
 
 
+import java.text.Collator;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 import org.eclipse.core.commands.AbstractHandler;
@@ -52,8 +54,6 @@ import org.eclipse.swt.accessibility.AccessibleAdapter;
 import org.eclipse.swt.accessibility.AccessibleEvent;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.TraverseEvent;
@@ -87,6 +87,7 @@ import org.eclipse.ui.internal.WorkbenchPlugin;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsListSeparator;
 
@@ -165,7 +166,6 @@ public abstract class SearchDialog<T extends ICdmBase> extends Dialog implements
             });
             gd_1 = new GridData(GridData.FILL_HORIZONTAL);
             gd_1.horizontalIndent = 2;
-            gd_1.grabExcessHorizontalSpace = false;
             gd_1.horizontalAlignment = SWT.CENTER;
             gd_1.widthHint = 575;
             searchField.setLayoutData(gd_1);
@@ -225,15 +225,17 @@ public abstract class SearchDialog<T extends ICdmBase> extends Dialog implements
          */
         private Label createHeader(Composite parent) {
             Composite header = new Composite(parent, SWT.NONE);
+            GridData gd_header = new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1);
+            gd_header.widthHint = 575;
+            header.setLayoutData(gd_header);
 
             GridLayout layout = new GridLayout();
-            layout.numColumns = 2;
+            layout.verticalSpacing = 1;
             layout.marginWidth = 0;
             layout.marginHeight = 0;
             header.setLayout(layout);
-            new Label(header, SWT.NONE);
-            new Label(header, SWT.NONE);
-            new Label(header, SWT.NONE);
+
+            createViewMenu(header);
 
             Label headerLabel = new Label(header, SWT.NONE);
             headerLabel.setText((getMessage() != null && getMessage().trim()
@@ -254,6 +256,7 @@ public abstract class SearchDialog<T extends ICdmBase> extends Dialog implements
             gd_headerLabel.verticalAlignment = SWT.BOTTOM;
             gd_headerLabel.minimumHeight = 10;
             headerLabel.setLayoutData(gd_headerLabel);
+            new Label(header, SWT.NONE);
 
             return headerLabel;
         }
@@ -288,14 +291,15 @@ public abstract class SearchDialog<T extends ICdmBase> extends Dialog implements
 
             GridData data = new GridData();
             data.horizontalAlignment = GridData.END;
+            data.grabExcessHorizontalSpace = true;
             toolBar.setLayoutData(data);
 
-            toolBar.addMouseListener(new MouseAdapter() {
-                @Override
-                public void mouseDown(MouseEvent e) {
-                    showViewMenu();
-                }
-            });
+//            toolBar.addMouseListener(new MouseAdapter() {
+//                @Override
+//                public void mouseDown(MouseEvent e) {
+//                    showViewMenu();
+//                }
+//            });
 
             toolItem.setImage(WorkbenchImages
                     .getImage(IWorkbenchGraphicConstants.IMG_LCL_VIEW_MENU));
@@ -370,7 +374,23 @@ public abstract class SearchDialog<T extends ICdmBase> extends Dialog implements
         public void setListLabelProvider(ILabelProvider listLabelProvider) {
             getItemsListLabelProvider().setProvider(listLabelProvider);
         }
-
+        protected Comparator getItemsComparator() {
+            return new Comparator<UuidAndTitleCache>() {
+                @Override
+                public int compare(UuidAndTitleCache entity1,
+                        UuidAndTitleCache entity2) {
+                    Collator collator = Collator.getInstance();
+                    if (entity1.getUuid().equals(entity2.getUuid())){
+                        return 0;
+                    }
+                    int result = collator.compare(entity1.getTitleCache(), entity2.getTitleCache());
+                    if (result == 0){
+                        result = entity1.getUuid().compareTo(entity2.getUuid());
+                    }
+                    return result;
+                }
+            };
+        }
 
 
         class ContentProvider implements
@@ -383,7 +403,6 @@ public abstract class SearchDialog<T extends ICdmBase> extends Dialog implements
              */
             public ContentProvider() {
                 this.items = Collections.synchronizedList(new ArrayList(2048));
-
             }
 
             /**
@@ -445,6 +464,8 @@ public abstract class SearchDialog<T extends ICdmBase> extends Dialog implements
             @Override
             public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
             }
+
+
         }
 
 
@@ -774,6 +795,7 @@ public abstract class SearchDialog<T extends ICdmBase> extends Dialog implements
     protected Point getInitialSize() {
         return new Point(593, 399);
     }
+
 }