Merged refactoring from development branch.
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / view / detail / DetailsViewer.java
similarity index 83%
rename from taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/detail/DetailsViewer.java
rename to taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java
index ac64b51cf750d05610917d45d9a2d5de3917f709..0328c04bf82670c471005d2f7602bb154d2a823b 100644 (file)
@@ -8,7 +8,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.editor.view.detail;
+package eu.etaxonomy.taxeditor.view.detail;
 
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
@@ -21,6 +21,7 @@ import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.User;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
@@ -30,45 +31,47 @@ import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.view.AbstractCdmDataViewer;
-import eu.etaxonomy.taxeditor.forms.CdmFormFactory.DetailType;
-import eu.etaxonomy.taxeditor.forms.CdmFormFactory.EntityDetailType;
-import eu.etaxonomy.taxeditor.forms.RootElement;
-import eu.etaxonomy.taxeditor.model.AbstractCdmViewPart;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.section.agent.PersonDetailSection;
-import eu.etaxonomy.taxeditor.section.agent.TeamDetailSection;
-import eu.etaxonomy.taxeditor.section.agent.TeamOrPersonBaseDetailSection;
-import eu.etaxonomy.taxeditor.section.description.DescribedSpecimenSection;
-import eu.etaxonomy.taxeditor.section.description.DescriptionDetailSection;
-import eu.etaxonomy.taxeditor.section.description.DescriptionElementDetailSection;
-import eu.etaxonomy.taxeditor.section.description.DescriptionElementMediaSection;
-import eu.etaxonomy.taxeditor.section.description.DescriptionElementSourceSection;
-import eu.etaxonomy.taxeditor.section.description.DescriptionSourceSection;
-import eu.etaxonomy.taxeditor.section.description.MediaDetailsSection;
-import eu.etaxonomy.taxeditor.section.description.NaturalLanguageSection;
-import eu.etaxonomy.taxeditor.section.description.ScopeSection;
-import eu.etaxonomy.taxeditor.section.feature.FeatureDistributionDetailSection;
-import eu.etaxonomy.taxeditor.section.key.GeographicalScopeDetailSection;
-import eu.etaxonomy.taxeditor.section.key.PolytomousKeyDetailSection;
-import eu.etaxonomy.taxeditor.section.key.PolytomousKeyNodeDetailSection;
-import eu.etaxonomy.taxeditor.section.key.ScopeRestrictionSection;
-import eu.etaxonomy.taxeditor.section.name.HybridDetailSection;
-import eu.etaxonomy.taxeditor.section.name.NameRelationshipDetailSection;
-import eu.etaxonomy.taxeditor.section.name.NomenclaturalStatusSection;
-import eu.etaxonomy.taxeditor.section.name.NonViralNameDetailSection;
-import eu.etaxonomy.taxeditor.section.name.ProtologueSection;
-import eu.etaxonomy.taxeditor.section.name.TypeDesignationSection;
-import eu.etaxonomy.taxeditor.section.occurrence.DerivedUnitBaseDetailSection;
-import eu.etaxonomy.taxeditor.section.occurrence.FieldObservationDetailSection;
-import eu.etaxonomy.taxeditor.section.occurrence.GatheringEventDetailSection;
-import eu.etaxonomy.taxeditor.section.occurrence.GeneralDetailSection;
-import eu.etaxonomy.taxeditor.section.reference.NomenclaturalReferenceDetailSection;
-import eu.etaxonomy.taxeditor.section.reference.ReferenceDetailSection;
-import eu.etaxonomy.taxeditor.section.taxon.ParsingMessagesSection;
-import eu.etaxonomy.taxeditor.section.taxon.TaxonBaseDetailSection;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.forms.RootElement;
+import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.DetailType;
+import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.EntityDetailType;
+import eu.etaxonomy.taxeditor.ui.section.agent.PersonDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.agent.TeamDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.agent.TeamOrPersonBaseDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.description.DescribedSpecimenSection;
+import eu.etaxonomy.taxeditor.ui.section.description.DescriptionDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementMediaSection;
+import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementSourceSection;
+import eu.etaxonomy.taxeditor.ui.section.description.DescriptionSourceSection;
+import eu.etaxonomy.taxeditor.ui.section.description.MediaDetailsSection;
+import eu.etaxonomy.taxeditor.ui.section.description.NaturalLanguageSection;
+import eu.etaxonomy.taxeditor.ui.section.description.ScopeSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.FeatureDistributionDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.key.GeographicalScopeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyNodeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.key.ScopeRestrictionSection;
+import eu.etaxonomy.taxeditor.ui.section.name.HybridDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.name.NameRelationshipDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusSection;
+import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.name.ProtologueSection;
+import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.GeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessagesSection;
+import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonBaseDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.user.GroupsByUserDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.user.UserDetailSection;
+import eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer;
+import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart;
 
 /**
  * <p>DetailsViewer class.</p>
@@ -94,7 +97,8 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                DERIVED_UNIT,
                FEATURE_DISTRIBUTION,
                POLYTOMOUS_KEY,
-               POLYTOMOUS_KEY_NODE
+               POLYTOMOUS_KEY_NODE,
+               USER
        }
        
        private VIEW_PART currentViewPart;
@@ -105,7 +109,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
         * <p>Constructor for DetailsViewer.</p>
         *
         * @param parent a {@link org.eclipse.swt.widgets.Composite} object.
-        * @param viewPart a {@link eu.etaxonomy.taxeditor.model.AbstractCdmViewPart} object.
+        * @param viewPart a {@link eu.etaxonomy.taxeditor.view.AbstractCdmViewPart} object.
         */
        public DetailsViewer(Composite parent, AbstractCdmViewPart viewPart) {
                super(parent, viewPart);
@@ -124,7 +128,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                        try {
                                input = DerivedUnitFacade.NewInstance((DerivedUnitBase) input, PreferencesUtil.getDerivedUnitConfigurator());
                        } catch (DerivedUnitFacadeNotSupportedException e) {
-                               EditorUtil.error(getClass(), e);
+                               StoreUtil.error(getClass(), e);
                        }
                }
                super.setInput(input);
@@ -231,6 +235,11 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                                createPolytomousKeyNodeSection(rootElement);
                                currentViewPart = VIEW_PART.POLYTOMOUS_KEY_NODE;
                        }
+               }else if(getInput() instanceof User){
+                       if(currentViewPart != VIEW_PART.USER){
+                               createUserSection(rootElement);
+                               currentViewPart = VIEW_PART.USER;
+                       }
                }else{
                        destroySections();
                        currentViewPart = VIEW_PART.EMPTY;
@@ -239,7 +248,6 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                layout();
        }
 
-
        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.Viewer#getSelection()
         */
@@ -543,8 +551,20 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                destroySections();
                
                PolytomousKeyNodeDetailSection polytomousKeyNodeDetailSection = (PolytomousKeyNodeDetailSection)
-               formFactory.createCdmDetailSection(DetailType.POLYTOMOUS_KEY_NODE, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
+                       formFactory.createCdmDetailSection(DetailType.POLYTOMOUS_KEY_NODE, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
        
                addPart(polytomousKeyNodeDetailSection);
        }
+       
+       private void createUserSection(RootElement parent) {
+               destroySections();
+               
+               UserDetailSection userDetailSection = (UserDetailSection) 
+                       formFactory.createCdmDetailSection(DetailType.USER, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
+               
+               GroupsByUserDetailSection groupByUserDetailSection = (GroupsByUserDetailSection) formFactory.createCdmDetailSection(DetailType.GROUPS_BY_USER, getConversationHolder(), parent, this, Section.TWISTIE | Section.EXPANDED);
+               
+               addPart(userDetailSection);
+               addPart(groupByUserDetailSection);
+       }
 }