AT: committing changes to the TaxEditor Post second round of code review
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / uses / UsesContentProvider.java
index 98cb3a6834559f77acb3366050c91047c56b85c3..814a0f7fe63eb328ff7e63e6fce291a76fcb5a45 100644 (file)
@@ -8,7 +8,6 @@ import java.util.Set;
 import java.util.UUID;\r
 \r
 import org.eclipse.jface.viewers.ITreeContentProvider;\r
-import org.eclipse.jface.viewers.Viewer;\r
 \r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
 import eu.etaxonomy.cdm.model.common.Marker;\r
@@ -19,20 +18,19 @@ import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;\r
-import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;\r
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveContentProvider;\r
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainerTree;\r
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.store.TermStore;\r
 \r
 /**\r
- * The context manager mediates context start/stop and workbench shutdowns to all registered listeners.\r
- *\r
+ * UsesContentProvider Class\r
  * @author a.theys     \r
  * @created mar 13, 2012\r
  * @version 1.0\r
  */\r
-public class UsesContentProvider implements ITreeContentProvider {\r
+public class UsesContentProvider extends DescriptiveContentProvider implements ITreeContentProvider {\r
 \r
        private static final Object[] NO_CHILDREN = new Object[0];\r
        private Map<TaxonDescription, FeatureNodeContainerTree> featureNodeContainerCache;\r
@@ -44,38 +42,10 @@ public class UsesContentProvider implements ITreeContentProvider {
         * @param featureNodeContainerCache a {@link java.util.Map} object.\r
         */\r
        public UsesContentProvider(Map<TaxonDescription, FeatureNodeContainerTree> featureNodeContainerCache) {\r
+               super(featureNodeContainerCache);\r
                this.featureNodeContainerCache = featureNodeContainerCache;\r
        }\r
        \r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)\r
-        */\r
-       /** {@inheritDoc} */\r
-       public Object[] getChildren(Object parentElement) {\r
-               if (parentElement instanceof TaxonEditorInput) {\r
-                       return getDescriptions((TaxonEditorInput) parentElement).toArray(); \r
-               }\r
-               else if (parentElement instanceof TaxonDescription) {\r
-                       if ( ! ((TaxonDescription) parentElement).isImageGallery()) {\r
-                               TaxonDescription description = (TaxonDescription) parentElement;\r
-                               \r
-                               FeatureNodeContainerTree containerTree = getContainerTreeForDesription(description);\r
-                               \r
-                               return containerTree.getRoot().getChildren().toArray();\r
-                       }\r
-               }\r
-               else if (parentElement instanceof FeatureNodeContainer){\r
-                       FeatureNodeContainer container = (FeatureNodeContainer) parentElement;\r
-                       if(container.isLeaf()){\r
-                               return container.getDescriptionElements().toArray();\r
-                       }else{\r
-                               return container.getChildren().toArray();\r
-                       }\r
-               }\r
-               \r
-               return NO_CHILDREN;\r
-       }\r
        \r
        private FeatureNodeContainerTree getContainerTreeForDesription(TaxonDescription description){\r
                if(! featureNodeContainerCache.containsKey(description)){\r
@@ -85,19 +55,6 @@ public class UsesContentProvider implements ITreeContentProvider {
                return featureNodeContainerCache.get(description);\r
        }\r
 \r
-       /** {@inheritDoc} */\r
-       @Override\r
-       public boolean hasChildren(Object element) {\r
-               if (element instanceof TaxonDescription){\r
-                       TaxonDescription description = (TaxonDescription) element;\r
-                       FeatureNodeContainerTree containerTree = featureNodeContainerCache.get(description);\r
-                       if(containerTree != null && containerTree.getRoot() != null){\r
-                               return containerTree.getRoot().getChildren().size() != 0;\r
-                       }\r
-               } \r
-               return getChildren(element).length != 0;\r
-       }\r
-       \r
        /**\r
         * Retrieves the feature tree associated with the given description\r
         * \r
@@ -136,7 +93,7 @@ public class UsesContentProvider implements ITreeContentProvider {
                Taxon taxon = parentElement.getTaxon();\r
                List<DescriptionBase> descriptions = new ArrayList<DescriptionBase>();\r
                \r
-       for(DescriptionBase description : taxon.getDescriptions()){\r
+               for(DescriptionBase description : taxon.getDescriptions()){\r
                        if(! description.isImageGallery()){\r
                                MarkerType useMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(UUID.fromString("2e6e42d9-e92a-41f4-899b-03c0ac64f039"));\r
                                Set<Marker> descriptionMarkers = description.getMarkers();\r
@@ -153,36 +110,4 @@ public class UsesContentProvider implements ITreeContentProvider {
                return descriptions;\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)\r
-        */\r
-       /** {@inheritDoc} */\r
-       public Object getParent(Object element) {\r
-               return null;\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)\r
-        */\r
-       /** {@inheritDoc} */\r
-       public Object[] getElements(Object inputElement) {\r
-               return getChildren(inputElement);\r
-       }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.jface.viewers.IContentProvider#dispose()\r
-        */\r
-       /**\r
-        * <p>dispose</p>\r
-        */\r
-       public void dispose() {\r
-               featureNodeContainerCache.clear();\r
-       }\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)\r
-        */\r
-       /** {@inheritDoc} */\r
-       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}    \r
-\r
 }\r