ref #10824:add trees to namedAreaDialog and filter - first
authorKatja Luther <k.luther@bgbm.org>
Thu, 13 Apr 2023 08:47:05 +0000 (10:47 +0200)
committerKatja Luther <k.luther@bgbm.org>
Thu, 13 Apr 2023 08:47:05 +0000 (10:47 +0200)
implementation

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/FilterDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java

index 104b228dfdf852d8504df84c8e6b9ec7ba4b2d64..8d832200883ccc0eb9451468d3b1972f2cf71881 100644 (file)
@@ -24,7 +24,6 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.model.term.TermCollection;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
@@ -34,7 +33,7 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 public class FilterDialog extends Dialog {
 
     @SuppressWarnings("rawtypes")
-    private List<TermVocabulary> vocabularies = new ArrayList<>();
+    private List<TermCollection> vocabularies = new ArrayList<>();
 
     @SuppressWarnings("rawtypes")
     private List<TermCollection> selectedVocabularies = new ArrayList<>();
@@ -43,7 +42,7 @@ public class FilterDialog extends Dialog {
 
     private Object preferenceId;
 
-    protected FilterDialog(Shell parentShell, Object preferenceId, List<TermCollection> selectedVocabularies, List<TermVocabulary> vocabularies) {
+    protected FilterDialog(Shell parentShell, Object preferenceId, List<TermCollection> selectedVocabularies, List<TermCollection> vocabularies) {
         super(parentShell);
         this.vocabularies = vocabularies;
         this.preferenceId = preferenceId;
@@ -56,7 +55,7 @@ public class FilterDialog extends Dialog {
     protected Control createDialogArea(Composite parent) {
         Composite dialogArea = new Composite(parent, SWT.NULL);
         dialogArea.setLayout(new GridLayout(1, false));
-        for (TermVocabulary<?> voc: vocabularies){
+        for (TermCollection voc: vocabularies){
             Button btnCheckButton = new Button(dialogArea, SWT.CHECK);
             btnCheckButton.setText(voc.getLabel());
             btnCheckButton.setData(voc);
@@ -72,7 +71,7 @@ public class FilterDialog extends Dialog {
                 public void widgetSelected(SelectionEvent e) {
                    if (btnCheckButton.getSelection()){
                        if (!tempSelectedVocabularies.contains(btnCheckButton.getData())){
-                          tempSelectedVocabularies.add((TermVocabulary<?>)btnCheckButton.getData());
+                          tempSelectedVocabularies.add((TermCollection)btnCheckButton.getData());
                           if (!tempSelectedVocabularies.isEmpty()) {
                                   getButton(IDialogConstants.OK_ID).setEnabled(true);
                           }
@@ -104,7 +103,7 @@ public class FilterDialog extends Dialog {
     @Override
     protected void okPressed(){
 
-        for (TermVocabulary<?> voc: vocabularies){
+        for (TermCollection voc: vocabularies){
             if (tempSelectedVocabularies.contains(voc)){
                 PreferencesUtil.setBooleanValue(getPrefKey(voc), false);
                 selectedVocabularies.add(voc);
@@ -116,7 +115,7 @@ public class FilterDialog extends Dialog {
         super.okPressed();
     }
 
-    private String getPrefKey(TermVocabulary<?> vocabulary){
+    private String getPrefKey(TermCollection vocabulary){
         return "hide_"+NamedAreaSelectionDialog.class.getCanonicalName()+vocabulary.getUuid()+preferenceId;
     }
 }
\ No newline at end of file
index 2dad481641bca754f8bda043a228088f15e33ede..261e3dfdd95ca1fdece52d6dd32572d4dd9789b3 100644 (file)
@@ -22,12 +22,14 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Shell;\r
 \r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
+import eu.etaxonomy.cdm.api.service.ITermTreeService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
 import eu.etaxonomy.cdm.model.metadata.TermSearchField;\r
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.term.TermCollection;\r
+import eu.etaxonomy.cdm.model.term.TermTree;\r
 import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.model.ImageResources;\r
@@ -48,6 +50,7 @@ public class NamedAreaSelectionDialog extends
     protected List<TermCollection> selectedTermCollections;\r
     @SuppressWarnings("rawtypes")\r
     protected List<TermVocabulary> allVocabularies;\r
+    protected List<TermTree> allTrees;\r
 \r
        /**\r
         * Creates a filtered selection dialog to select a named area.\r
@@ -115,13 +118,14 @@ public class NamedAreaSelectionDialog extends
 \r
        @Override\r
        protected void init() {\r
-               allVocabularies = getAvailableVocabularies();\r
+               getAvailableVocabularies();\r
        }\r
 \r
-    private List<TermVocabulary> getAvailableVocabularies(){\r
+    private void getAvailableVocabularies(){\r
            allVocabularies = new ArrayList<>();\r
            allVocabularies = CdmStore.getService(IVocabularyService.class).listByTermType(TermType.NamedArea, true, null, null, null, null);\r
-           return allVocabularies;\r
+           allTrees = CdmStore.getService(ITermTreeService.class).list(TermType.NamedArea, null, null, null, null);\r
+\r
        }\r
 \r
        @Override\r
@@ -156,7 +160,11 @@ public class NamedAreaSelectionDialog extends
             public void widgetSelected(SelectionEvent e) {\r
                 Object source = e.getSource();\r
                 if (source instanceof Button){\r
-                    Dialog dialog = new FilterDialog(getShell(), preferenceID, selectedTermCollections, allVocabularies);\r
+                    List<TermCollection> allCollections = new ArrayList<>();\r
+                    allCollections.addAll(allVocabularies);\r
+                    allCollections.addAll(allTrees);\r
+\r
+                    Dialog dialog = new FilterDialog(getShell(), preferenceID, selectedTermCollections, allCollections);\r
                     dialog.open();\r
                     createSelectedVocabularies();\r
                     search();\r