merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / AbstractCdmViewPart.java
index e84c11ea886f383b00742cd6557d55bfb5e14973..9ab025086f14916cbfb2cf6c920ffa2ab0f64153 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -28,9 +28,9 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
  * <p>Abstract AbstractCdmViewPart class.</p>
@@ -40,40 +40,41 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @version 1.0
  */
 public abstract class AbstractCdmViewPart extends ViewPart implements ISelectionListener, IPostOperationEnabled, IConversationEnabled, IDirtyMarkableSelectionProvider{
-       
+
        protected ISelectionService selectionService;
 
        public static IStructuredSelection EMPTY_SELECTION = new StructuredSelection();
-       
+
        protected IWorkbenchPart part;
-       
+
     private PageBook pageBook;
 
        private Label emptySelectionLabel;
 
        private Composite viewerComposite;
-       
+
        /** {@inheritDoc} */
        @Override
        public void createPartControl(Composite parent) {
                selectionService = getSite().getWorkbenchWindow().getSelectionService();
                selectionService.addSelectionListener(this);
-               
+
                pageBook = new PageBook(parent, SWT.NULL);
-               createViewerComposite(pageBook);
+               //create viewerComposite
+               viewerComposite = new SashForm(pageBook, SWT.HORIZONTAL);
                createViewer(viewerComposite);
-               
+
                // Page 2: Nothing selected
         emptySelectionLabel = new Label(pageBook, SWT.TOP + SWT.LEFT + SWT.WRAP);
-        
+
         setInitialSelection();
        }
-       
+
        /**
-        * 
+        *
         */
        private void setInitialSelection() {
-               selectionChanged(StoreUtil.getActivePart(), getInitialSelection());
+               selectionChanged(AbstractUtility.getActivePart(), getInitialSelection());
        }
 
        /**
@@ -84,18 +85,14 @@ public abstract class AbstractCdmViewPart extends ViewPart implements ISelection
        protected ISelection getInitialSelection() {
                return selectionService.getSelection();
        }
-       
-       private void createViewerComposite(Composite parent) {
-               viewerComposite = new SashForm(parent, SWT.HORIZONTAL);
-       }
-    
+
        /**
         * <p>showEmptyPage</p>
         */
        public void showEmptyPage(){
                pageBook.showPage(emptySelectionLabel);
        }
-       
+
     /**
      * <p>showViewer</p>
      *
@@ -103,15 +100,15 @@ public abstract class AbstractCdmViewPart extends ViewPart implements ISelection
      * @param selection a {@link org.eclipse.jface.viewers.ISelection} object.
      */
     public void showViewer(IWorkbenchPart part, IStructuredSelection selection){
-       this.part = part;               
-       
+       this.part = part;
+
                Object element = selection.getFirstElement();
-               
+
                getViewer().setInput(element);
-               
+
                showViewer();
     }
-    
+
     /**
      * <p>getViewer</p>
      *
@@ -125,50 +122,59 @@ public abstract class AbstractCdmViewPart extends ViewPart implements ISelection
        public void showViewer(){
                pageBook.showPage(viewerComposite);
     }
-  
-       
+
+       public void setEnabled(boolean enabled){
+               pageBook.setEnabled(enabled);
+       }
+
        /** {@inheritDoc} */
        @Override
        public void setFocus() {
                if(getConversationHolder() != null){
                        getConversationHolder().bind();
                }
-               getViewer().getControl().setFocus();    
+               getViewer().getControl().setFocus();
        }
-       
+
        /**
         * <p>createViewer</p>
         *
         * @param parent a {@link org.eclipse.swt.widgets.Composite} object.
         */
        public abstract void createViewer(Composite parent);
-       
+
        /** {@inheritDoc} */
-       public boolean postOperation(CdmBase objectAffectedByOperation) {
+       @Override
+    public boolean postOperation(CdmBase objectAffectedByOperation) {
                changed(objectAffectedByOperation);
                return true;
        }
-       
+
        /** {@inheritDoc} */
-       public abstract void changed(Object object);
-       
+       @Override
+    public abstract void changed(Object object);
+
        /**
         * <p>getConversationHolder</p>
         *
         * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         */
-       public ConversationHolder getConversationHolder() {
-               if(part != null)
-                       return ((IConversationEnabled) part).getConversationHolder();
-               
+       @Override
+    public ConversationHolder getConversationHolder() {
+               if(part != null) {
+                   //FIXME what if part is not an IConversationEnabled? ClassCastException?
+            return ((IConversationEnabled) part).getConversationHolder();
+        }
+
                return null;
        }
-       
+
        /** {@inheritDoc} */
-       public void update(CdmDataChangeMap changeEvents) {
-               
+       @Override
+    public void update(CdmDataChangeMap changeEvents) {
+
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public void dispose() {