Refactor structure tree for Features
authorPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 1 Jun 2017 11:14:20 +0000 (13:14 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 1 Jun 2017 11:14:20 +0000 (13:14 +0200)
eu.etaxonomy.taxeditor.editor/fragment.e4xmi
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/FeatureTreeBuilderViewPart.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/StructureContentProvider.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/StructureContenProvider.java with 58% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/StructureLabelProvider.java

index 2744ab9f1b52a298c2912139df220da650834e1d..5d28070592ae327d55f1c75bf9861b008ed51919 100644 (file)
@@ -54,7 +54,7 @@
         <children xsi:type="menu:HandledMenuItem" xmi:id="_wg0-oDulEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel54" label="%command.label.54" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/deep-delete-16x16-32.png" command="_fKT-wDulEeeOtqC_3qh40A"/>
       </menus>
     </elements>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_R7vxEECaEeeL5JDzMOYK6g" elementId="eu.etaxonomy.taxeditor.editor.workingSet.FeatureTreeBuilderViewPart" label="FeatureTreeBuilder" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.workingSet.FeatureTreeBuilderViewPart"/>
+    <elements xsi:type="basic:PartDescriptor" xmi:id="_R7vxEECaEeeL5JDzMOYK6g" elementId="eu.etaxonomy.taxeditor.editor.workingSet.FeatureTreeBuilderViewPart" label="FeatureTreeBuilder" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.workingSet.FeatureTreeBuilderViewPart"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="__mwtMDVpEee_b7RlBzTDRw" featurename="commands" parentElementId="xpath:/">
     <elements xsi:type="commands:Command" xmi:id="_BjF3ADVqEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.command.specimeneditor.create_field_unit" commandName="%command.commandname.1"/>
@@ -72,4 +72,9 @@
     <elements xsi:type="commands:Command" xmi:id="_N0wLsDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivative.copySingleReadToClipBoard" commandName="%command.name.COPY_SINGLE_READ_TO_CLIPBOARD"/>
     <elements xsi:type="commands:Command" xmi:id="_YPp1wDvREeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivate.delete" commandName="Delete"/>
   </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_pZmusEalEeeXMc6kSYO7Xg" featurename="children" parentElementId="eu.etaxonomy.taxeditor.menu.showView">
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_tvph4EalEeeXMc6kSYO7Xg" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.featuretreeeditor" label="FeatureTree Editor" command="_WPjpoDSnEeek0dKsFNy--Q">
+      <parameters xmi:id="_wJkmoEalEeeXMc6kSYO7Xg" elementId="eu.etaxonomy.taxeditor.editor.parameter.0" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.editor.workingSet.FeatureTreeBuilderViewPart"/>
+    </elements>
+  </fragments>
 </fragment:ModelFragments>
index 961660ee6c6621e4d0bf4ab284b17d84e199877c..f8e8fb6988b03e8f38adda81a097484ed392aa5e 100644 (file)
@@ -14,6 +14,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
@@ -26,10 +27,13 @@ import org.bgbm.prometheus.xml.TYPETERM;
 import org.eclipse.e4.ui.di.Focus;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author pplitzner
@@ -55,31 +59,25 @@ public class FeatureTreeBuilderViewPart {
      */
     @PostConstruct
     public void createControls(Composite parent) {
-        {
-            TableWrapLayout twl_parent = new TableWrapLayout();
-            twl_parent.numColumns = 3;
-            parent.setLayout(twl_parent);
-        }
+        parent.setLayout(new FillLayout(SWT.HORIZONTAL));
 
         treeViewerStructures = new TreeViewer(parent, SWT.BORDER);
         treeViewerStructures.setColumnProperties(new String[] {});
         treeStructures = treeViewerStructures.getTree();
-        treeStructures.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.FILL_GRAB, 1, 1));
 
         treeViewerProperties = new TreeViewer(parent, SWT.BORDER);
         treeProperties = treeViewerProperties.getTree();
-        treeProperties.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.FILL_GRAB, 1, 1));
 
         treeViewerCharacters = new TreeViewer(parent, SWT.BORDER);
         treeCharacters = treeViewerCharacters.getTree();
-        treeCharacters.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.FILL_GRAB, 1, 1));
 
         init();
     }
 
     private void init(){
-        treeViewerStructures.setContentProvider(new StructureContenProvider(this));
-        treeViewerStructures.setLabelProvider(new StructureLabelProvider(this));
+        TermVocabulary vocabulary = CdmStore.getService(IVocabularyService.class).load(UUID.fromString("b94244a5-5040-4c00-be34-12137c4b192f"));
+        treeViewerStructures.setContentProvider(new StructureContentProvider(vocabulary));
+        treeViewerStructures.setLabelProvider(new StructureLabelProvider());
         treeViewerStructures.setInput("");
     }
 
@@ -9,25 +9,22 @@
 */
 package eu.etaxonomy.taxeditor.editor.workingSet;
 
-import java.util.Collections;
-
-import org.bgbm.prometheus.xml.TreeNode;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.cdm.model.description.Feature;
+
 /**
  * @author pplitzner
  * @date 24.05.2017
  *
  */
-public class StructureContenProvider implements ITreeContentProvider {
-
-    private TreeNode rootStructure;
-    private FeatureTreeBuilderViewPart part;
+public class StructureContentProvider implements ITreeContentProvider {
 
-    public StructureContenProvider(FeatureTreeBuilderViewPart part) {
-        this.part = part;
+    private TermVocabulary<Feature> root;
 
-        rootStructure = part.getOntology().getONTOLOGYDETAILSBody().getONTOLOGYTREE().getTreeNode();
+    public StructureContentProvider(TermVocabulary<Feature> root) {
+        this.root = root;
     }
 
     /**
@@ -35,7 +32,7 @@ public class StructureContenProvider implements ITreeContentProvider {
      */
     @Override
     public Object[] getElements(Object inputElement) {
-        return Collections.singleton(rootStructure).toArray();
+        return root.getTerms().toArray();
     }
 
     /**
@@ -43,8 +40,7 @@ public class StructureContenProvider implements ITreeContentProvider {
      */
     @Override
     public Object[] getChildren(Object parentElement) {
-        TreeNode node = (TreeNode) parentElement;
-        return node.getTreeNode().toArray();
+        return ((Feature)parentElement).getIncludes().toArray();
     }
 
     /**
@@ -60,7 +56,7 @@ public class StructureContenProvider implements ITreeContentProvider {
      */
     @Override
     public boolean hasChildren(Object element) {
-        return !((TreeNode) element).getTreeNode().isEmpty();
+        return !((Feature)element).getIncludes().isEmpty();
     }
 
 }
index 53b9c06ead2617919abd448947e44c86cbdf657d..f1d66ff534fa3d95fd56c4d7befd4496044d4c28 100644 (file)
@@ -9,9 +9,10 @@
 */
 package eu.etaxonomy.taxeditor.editor.workingSet;
 
-import org.bgbm.prometheus.xml.TreeNode;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 
+import eu.etaxonomy.cdm.model.description.Feature;
+
 /**
  * @author pplitzner
  * @date 24.05.2017
@@ -19,10 +20,8 @@ import org.eclipse.jface.viewers.ColumnLabelProvider;
  */
 public class StructureLabelProvider extends ColumnLabelProvider {
 
-    private FeatureTreeBuilderViewPart part;
 
-    public StructureLabelProvider( FeatureTreeBuilderViewPart part) {
-        this.part = part;
+    public StructureLabelProvider() {
     }
     /**
      * {@inheritDoc}
@@ -30,6 +29,6 @@ public class StructureLabelProvider extends ColumnLabelProvider {
     @Override
     public String getText(Object element) {
 
-        return part.getStructureTermMap().get(((TreeNode)element).getTermID()).getTerm();
+        return ((Feature)element).getLabel();
     }
 }