- not running imports and exports deleted from menu
authorKatja Luther <k.luther@bgbm.org>
Thu, 19 Jun 2014 13:07:54 +0000 (13:07 +0000)
committerKatja Luther <k.luther@bgbm.org>
Thu, 19 Jun 2014 13:07:54 +0000 (13:07 +0000)
- preferences for concept relations fixed
- open taxon editor with one click in taxon navigator

eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/AbstractDynamicConceptRelationMenu.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java
eu.etaxonomy.taxeditor.printpublisher/plugin.xml
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonRelationshipTypeInverseContainer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermManager.java

index 46c6c24cc5d983d5287f2294031a0e88799962f7..267c86eb531a31efd416028ec0bd39d661a9f7d3 100644 (file)
                style="push">
          </command>
          <separator
-               name="eu.etaxonomy.navigation.menu.new.separator3">
+               name="eu.etaxonomy.navigation.menu.new.separator3"
+               visible="true">
          </separator>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.command.new.datasource"
index a651461cf2ebaa5c04eface5045fa6efea83f119..defca9003c1d5e36b25e4ae108a4953e20fdf589 100644 (file)
@@ -11,6 +11,7 @@ import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.MenuItem;
 import org.eclipse.ui.handlers.IHandlerService;
 
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
@@ -33,7 +34,7 @@ public abstract class AbstractDynamicConceptRelationMenu extends ContributionIte
        @Override
        public void fill(Menu menu, int index){
                final IHandlerService handlerService = (IHandlerService) TaxeditorEditorPlugin.getDefault().getWorkbench().getService(IHandlerService.class);
-               
+               /*
                for(final TaxonRelationshipTypeInverseContainer container : CdmStore.getTermManager().getPreferredTerms(TaxonRelationshipTypeInverseContainer.class)){
                        MenuItem menuItem = new MenuItem(menu, -1);
                        menuItem.setText(container.getTitleCache());
@@ -52,6 +53,25 @@ public abstract class AbstractDynamicConceptRelationMenu extends ContributionIte
                                        }
                                }                               
                        });
+               */
+               for(final TaxonRelationshipType taxonRelationshipType: CdmStore.getTermManager().getPreferredTerms(TaxonRelationshipType.class)){
+                       MenuItem menuItem = new MenuItem(menu, -1);
+                       menuItem.setText(taxonRelationshipType.getTitleCache());
+                       menuItem.setData(taxonRelationshipType);
+                       menuItem.addSelectionListener(new SelectionListener(){
+
+                               public void widgetDefaultSelected(SelectionEvent e) {}
+
+                               public void widgetSelected(SelectionEvent ev) {
+                                       Event event = new Event();
+                                       event.data = taxonRelationshipType;
+                                       try {
+                                               handlerService.executeCommand(getCommandName(), event);
+                                       } catch (Exception e) {
+                                               EditorUtil.error(getClass(), "Error executing command", e);
+                                       }
+                               }                               
+                       });
                }
        }
        
index 1e30eb0b2218703ccd14347ecd162f0d28cba098..e375d2c0e06358c65133757c11c190055f399187 100644 (file)
@@ -21,16 +21,20 @@ import java.util.UUID;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TreePath;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.IViewSite;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.cdm.model.taxon.TaxonComparatorSearch;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
@@ -79,6 +83,17 @@ public class TaxonNavigator extends CommonNavigator implements
                TaxonComparatorSearch comparator = new TaxonComparatorSearch();
                TaxonNodeComparator viewerComparator = new TaxonNodeComparator(comparator);
                this.getCommonViewer().setComparator(viewerComparator);
+               this.getCommonViewer().addSelectionChangedListener(new ISelectionChangedListener() {
+                       
+                       @Override
+                       public void selectionChanged(SelectionChangedEvent arg0) {
+                               IStructuredSelection selection = (IStructuredSelection) getCommonViewer().getSelection();
+                               
+                               Object firstElement =  selection.getFirstElement();
+                               NavigationUtil.executeEditHandler();
+                               
+                       }
+               } );
                
                if (CdmStore.isActive()) {
                        
@@ -97,6 +112,7 @@ public class TaxonNavigator extends CommonNavigator implements
        public void init(IViewSite site) throws PartInitException {
                super.init(site);
                init();
+               
        }
 
        /**
@@ -110,6 +126,7 @@ public class TaxonNavigator extends CommonNavigator implements
                        conversation.registerForDataStoreChanges(TaxonNavigator.this);
                }
                CdmStore.getLoginManager().addObserver(this);
+               
        }
 
        /**
index 298486ec7a3d6b13b203075f46f506667b749051..baacae2bd29c1ebcb93b2f628e94d17c1e7e8209 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.4"?>
 <plugin>
-   <extension
+  <!-- <extension
          point="org.eclipse.ui.exportWizards">
          <category
             id="print-publisher.category"
             name="CDM-XML – raw XML data">
       </wizard>
    </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu.file?after=eu.etaxonomy.taxeditor.application.filemenu.save">
-         <command
-               commandId="eu.etaxonomy.printpublisher.plugin.generatePdf"
-               label="Generate PDF"
-               style="push">
-         </command>
-         <separator
-               name="eu.etaxonomy.printpublisher.plugin.separator"
-               visible="true">
-         </separator>
-      </menuContribution>
-   </extension>
    <extension
          point="org.eclipse.ui.commands">
       <command
@@ -55,5 +40,5 @@
             name="Generate PDF">
       </command>
    </extension>
-
+-->
 </plugin>
index 7d2b53303b1cac0d05022a152a79ad105cd7d6b1..8277d0a748a1687f61e98b262339412ef4c278f8 100644 (file)
             id="eu.etaxonomy.taxeditor.io.import.jaxb"
             name="JAXB">
       </wizard> -->
-      <wizard
+   <!--   <wizard
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.BerlinModelImportWizard"
             id="eu.etaxonomy.taxeditor.io.import.berlinModel"
             class="eu.etaxonomy.taxeditor.io.wizard.EndnoteImportWizard"
             id="eu.etaxonomy.taxeditor.io.import.endnote"
             name="Endnote">
-      </wizard>
+      </wizard>-->
       <wizard
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.ExcelNormalExplicitTaxaImportWizard"
             id="eu.etaxonomy.taxeditor.io.export.jaxb"
             name="JAXB">
       </wizard>
-      <wizard
+      <!--<wizard
             category="eu.etaxonomy.taxeditor.export.category.cdm"
             class="eu.etaxonomy.taxeditor.io.wizard.BerlinModelExportWizard"
             id="eu.etaxonomy.taxeditor.io.export.berlinModel"
             name="Berlin Model">
-      </wizard>
+      </wizard>-->
       <category
             id="eu.etaxonomy.taxeditor.export.category.excel"
             name="Excel">
index 1fc1cfd18f7aabb93f571d1deb53c7c7e0f859f0..50c0047ce9d0fb59555ce42a2574e928a15d8b3e 100644 (file)
@@ -223,10 +223,16 @@ public class DescriptionHelper {
         * @return a {@link java.lang.String} object.
         */
        public static String getFeatureNodeContainerText(FeatureNodeContainer element) {
+               String result = null;
                if(element.getFeatureNode() != null && element.getFeatureNode().getFeature() != null){
-                       return element.getFeatureNode().getFeature().getLabel(CdmStore.getDefaultLanguage());
+                       result = element.getFeatureNode().getFeature().getLabel(CdmStore.getDefaultLanguage());
+               } else{
+                       return "No label set";
                }
-               return "No label set";
+               if (result == null){
+                       result = element.getFeatureNode().getFeature().getLabel();
+               }
+               return result;
        }
 
        /**
index a194b8fb92047a5ec2b80aac7e0c6a1bb3c40c69..8c1c809b485c58d1b4c2146aead91244e7237ee9 100644 (file)
@@ -29,6 +29,7 @@ public class TaxonRelationshipTypeInverseContainer extends DefinedTermBase<Defin
        private boolean inverse;
        private TaxonRelationshipType type;
        
+       
        /**
         * 
         * @param sourceTaxon
@@ -73,11 +74,29 @@ public class TaxonRelationshipTypeInverseContainer extends DefinedTermBase<Defin
                return inverse;
        }
 
+       /**
+        * returns the representation for the given language, when there is no representation for this language available, the english version is returned.
+        * @param language
+        * @return representation
+        * 
+        */
        public Representation getRepresentation(Language language){
-               return inverse ? type.getInverseRepresentation(language) : type.getRepresentation(language);
+               Representation result;
+               result = inverse ? type.getInverseRepresentation(language) : type.getRepresentation(language);
+               if (result == null){
+                       result = inverse ? type.getInverseRepresentation(Language.ENGLISH()) : type.getRepresentation(Language.ENGLISH());
+               }
+               return result;
        }
        
+       
+       /**
+        * returns the label of the TaxonRelationshipType for a given language, if the representation of the language is not available the english representation is returned.
+        * @param language
+        * @return label
+        */
        public String getLabel(Language language){
+               
                return getRepresentation(language).getLabel();
        }
        
index c890f1c6b825b911a2cbb7bb6c499e2c58047c2b..59e9865fe6f8bd04b847ed459cc93005e4ae36b1 100644 (file)
@@ -23,7 +23,9 @@ import org.eclipse.ui.IMemento;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.TermBase;
 import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
+import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
 
 /**
  * @author n.hoffmann
@@ -135,12 +137,20 @@ public class TermManager extends ContextListenerAdapter{
 
                String typeName = getTermClass(initialTerms);
                Collection<UUID> hiddenTermUuids = hiddenTermsMap.get(typeName);
+               
 
                if(hiddenTermUuids == null){
                        return initialTerms;
                }
 
                for (T term : initialTerms){
+                       if (term instanceof TaxonRelationshipTypeInverseContainer){
+                               if(! hiddenTermUuids.contains(((TaxonRelationshipTypeInverseContainer) term).getType().getUuid())){
+                                       T type = (T)((TaxonRelationshipTypeInverseContainer) term).getType();
+                                       filteredTerms.add(type);
+                                       
+                               }
+                       }
                        if(! hiddenTermUuids.contains(term.getUuid())){
                                filteredTerms.add(term);
                        }
@@ -150,8 +160,18 @@ public class TermManager extends ContextListenerAdapter{
        }
 
        private <T extends DefinedTermBase> String getTermClass(Collection<T> initialTerms){
-           if(!initialTerms.isEmpty()){
-               return initialTerms.iterator().next().getClass().getName();
+          
+               String result = null;
+               if(!initialTerms.isEmpty()){
+                       
+                       //TODO: there should be a more generic solution!!
+               T entity = initialTerms.iterator().next();
+               if (entity instanceof TaxonRelationshipTypeInverseContainer){
+                       result = ((TaxonRelationshipTypeInverseContainer) entity).getType().getClass().getName();
+               } else {
+                       result = entity.getClass().getName();
+               }
+               return result;
            }
            return null;
        }