Started type module.
authorp.ciardelli <p.ciardelli@localhost>
Wed, 25 Feb 2009 12:37:52 +0000 (12:37 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Wed, 25 Feb 2009 12:37:52 +0000 (12:37 +0000)
16 files changed:
.gitattributes
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/TaxEditorPlugin.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/EditorController.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/TemporaryTaxon.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/EditNewTaxonHandler.java [moved from eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/NewTaxonHandler.java with 85% similarity]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/EditTaxonHandler.java [moved from eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/OpenTaxonHandler.java with 87% similarity]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmSessionDataRepository.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/ICdmSessionDataRepository.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeView.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypeCollectionPropertySource.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypePropertyDescriptor.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypePropertySource.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/ChooseTypeDesignationWizardPage.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/TypeDesignationWizard.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/TypeListWizard.java [new file with mode: 0644]

index 67c1099d37a628f385035ef396684bd406a61828..531938aa9be60f32c62175b64928784c711b220f 100644 (file)
@@ -469,6 +469,7 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/MultiPa
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/ParseListener.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/SelectTaxonDialog.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/SimpleSelectionProvider.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/TemporaryTaxon.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/UndoView.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/ViewerConfiguration.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/WarningAnnotation.java -text
@@ -496,8 +497,8 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/AddTa
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/CreateHeterotypicSynonymHandler.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/CreateHomotypicSynonymHandler.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/DeleteTaxonHandler.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/NewTaxonHandler.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/OpenTaxonHandler.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/EditNewTaxonHandler.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/EditTaxonHandler.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/SaveAllHandler.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/io/InputWizard.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/io/InputWizard2.java -text
@@ -584,4 +585,10 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/ReferenceSearchDescriptor.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/ReferenceSearchDialog.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/SingleRefTypePropertySource.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypeCollectionPropertySource.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypePropertyDescriptor.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypePropertySource.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/ChooseTypeDesignationWizardPage.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/ListTypeWizardPage.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/TypeDesignationWizard.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/TypeListWizard.java -text
index 48233e70c60a2fc858fc8a3c1a9e69324d94ad8f..f4e6a6410809348057ba0ad5043556a819b47564 100644 (file)
@@ -162,6 +162,7 @@ public class TaxEditorPlugin extends AbstractUIPlugin {
                        // TODO user-friendly failure here\r
                        e.printStackTrace();\r
                } catch (TermNotFoundException e) {\r
+                       // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
                }\r
                \r
index d517c2ef8e445c0c3ae61bee4c0597bf9f768bcf..9932d3fb1492e8a5bdf4fc2111f9a0120836983c 100644 (file)
@@ -30,10 +30,11 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.datasource.CdmTransactionController;\r
 import eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor;\r
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;\r
+import eu.etaxonomy.taxeditor.editor.TemporaryTaxon;\r
 import eu.etaxonomy.taxeditor.editor.description.TaxonDescriptionEditor;\r
-import eu.etaxonomy.taxeditor.editor.name.CdmParserController;\r
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
+import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 import eu.etaxonomy.taxeditor.model.NameEditorInput;\r
 import eu.etaxonomy.taxeditor.navigation.RecentNamesView;\r
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
@@ -130,9 +131,21 @@ public class EditorController {
        }\r
        \r
        public static IEditorPart open(Taxon taxon){\r
-               return open(taxon, true);\r
+               \r
+//             TemporaryTaxon taxonCopy = TemporaryTaxon.newInstance(taxon);\r
+               Taxon taxonCopy = getEditorTaxon(taxon);\r
+               \r
+               return open(getEditorTaxon(taxon), true);\r
        }\r
        \r
+       /**\r
+        * @param taxon\r
+        * @return\r
+        */\r
+       private static Taxon getEditorTaxon(Taxon taxon) {\r
+               return (Taxon) CdmUtil.getTaxonService().getTaxonByUuid(taxon.getUuid());\r
+       }\r
+\r
        /**\r
         * An unitialized taxon is one that hasn't been saved yet. As such, it should appear in neither\r
         * the list of recent names nor in the taxonomic tree when opened.\r
index e25df78a7106941cd7c6297e2effe31300551d2b..c114de860f88f115cf2eccf6ce07404d2ff67e87 100644 (file)
@@ -163,12 +163,11 @@ public class CdmDataSourceRepository implements ICdmDataSourceRepository {
                                        CdmTransactionController.commitTransaction();\r
                                        monitor.worked(1);\r
                                                                                \r
-                                       // Set new data source\r
                                        try {\r
                                                getCdmAppController().changeDataSource(dataSource);\r
                                        } catch (TermNotFoundException e) {\r
+                                               // TODO Auto-generated catch block\r
                                                e.printStackTrace();\r
-                                               throw new InterruptedException();\r
                                        }\r
                                        monitor.worked(10);\r
                                        \r
@@ -193,7 +192,7 @@ public class CdmDataSourceRepository implements ICdmDataSourceRepository {
                } catch (InterruptedException e) {\r
                        e.printStackTrace();\r
                        return false;\r
-               }\r
+               } \r
                return true;\r
        }\r
 \r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/TemporaryTaxon.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/TemporaryTaxon.java
new file mode 100644 (file)
index 0000000..e679c3b
--- /dev/null
@@ -0,0 +1,34 @@
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.editor;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.model.CdmUtil;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 24.02.2009\r
+ * @version 1.0\r
+ */\r
+public class TemporaryTaxon extends Taxon {\r
+       private static Logger logger = Logger.getLogger(TemporaryTaxon.class);\r
+       \r
+//     TemporaryTaxon(Taxon taxon) {\r
+//             this.t = CdmUtil.getTaxonService().getTaxonByUuid(taxon.getUuid());\r
+//     }\r
+       \r
+       public static TemporaryTaxon newInstance(Taxon taxon) {\r
+               TemporaryTaxon tempTaxon = (TemporaryTaxon) \r
+                               CdmUtil.getTaxonService().getTaxonByUuid(taxon.getUuid());\r
+               return tempTaxon;\r
+       }\r
+}\r
similarity index 85%
rename from eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/NewTaxonHandler.java
rename to eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/EditNewTaxonHandler.java
index d2e9d4267830741355ec918b2a985989fc11cf3f..034dd10228a9a0fc8d43fa83f14dc0eb6e18e708 100644 (file)
@@ -23,13 +23,14 @@ import eu.etaxonomy.taxeditor.controller.EditorController;
  * @created 06.02.2009\r
  * @version 1.0\r
  */\r
-public class NewTaxonHandler extends AbstractHandler implements IHandler {\r
+public class EditNewTaxonHandler extends AbstractHandler implements IHandler {\r
        private static final Logger logger = Logger\r
-                       .getLogger(NewTaxonHandler.class);\r
+                       .getLogger(EditNewTaxonHandler.class);\r
 \r
        /* (non-Javadoc)\r
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
         */\r
+       @Override\r
        public Object execute(ExecutionEvent event) throws ExecutionException {\r
                \r
                EditorController.openUnitializedRootTaxon();\r
similarity index 87%
rename from eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/OpenTaxonHandler.java
rename to eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/EditTaxonHandler.java
index cb84b324f909502dd59cc1a6e617eb9e369d5e4a..ca95b07c27f6218c420b25f93f49b523b02decc5 100644 (file)
@@ -22,13 +22,14 @@ import eu.etaxonomy.taxeditor.controller.TreeController;
  * @created 06.02.2009\r
  * @version 1.0\r
  */\r
-public class OpenTaxonHandler extends AbstractHandler{\r
+public class EditTaxonHandler extends AbstractHandler{\r
        private static final Logger logger = Logger\r
-                       .getLogger(OpenTaxonHandler.class);\r
+                       .getLogger(EditTaxonHandler.class);\r
 \r
        /* (non-Javadoc)\r
         * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
         */\r
+       @Override\r
        public Object execute(ExecutionEvent event) throws ExecutionException {\r
 \r
                EditorController.open(TreeController.getCurrentSelection(event));\r
index 86229872e41bf74b6d33502e462f62639dbabd2b..ab08f4b681ccde60b4bf2e436617e34330961b7c 100644 (file)
@@ -29,7 +29,9 @@ import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.swt.widgets.Display;\r
 \r
 import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
+import eu.etaxonomy.cdm.api.service.IReferenceService;\r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
+import eu.etaxonomy.cdm.api.service.ReferenceServiceImpl;\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
@@ -37,6 +39,7 @@ import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;\r
 import eu.etaxonomy.cdm.model.name.Rank;\r
+import eu.etaxonomy.cdm.model.name.TypeDesignationStatus;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
@@ -83,6 +86,8 @@ public class CdmSessionDataRepository implements ICdmSessionDataRepository {
 \r
        private Set<TaxonRelationshipType> conceptRelationshipTypes;\r
 \r
+       private TermVocabulary<TypeDesignationStatus> typeStatus;\r
+\r
        public static ICdmSessionDataRepository getDefault() {\r
                \r
                if (repository == null) {\r
@@ -457,4 +462,16 @@ public class CdmSessionDataRepository implements ICdmSessionDataRepository {
                }\r
                return conceptRelationshipTypes;\r
        }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.model.ICdmSessionDataRepository#getTypeDesignationStatus()\r
+        */\r
+       @Override\r
+       public TermVocabulary<TypeDesignationStatus> getTypeDesignationStatus() {\r
+               if (typeStatus == null) {\r
+                       typeStatus = getApplicationController().getNameService().\r
+                                                       getTypeDesignationStatusVocabulary();\r
+               }\r
+               return typeStatus;\r
+       }\r
 }\r
index 96f4a7e3040ddbe0d1fc4beaebe3249af1dc823d..b71dac2b4e353cf5c357b48b0e0f0f71f90a261f 100644 (file)
@@ -22,6 +22,7 @@ import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;\r
 import eu.etaxonomy.cdm.model.name.Rank;\r
+import eu.etaxonomy.cdm.model.name.TypeDesignationStatus;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
@@ -139,4 +140,6 @@ public interface ICdmSessionDataRepository {
        public OrderedTermVocabulary<TaxonRelationshipType> getTaxonRelationshipTypes();\r
        \r
        public Set<TaxonRelationshipType> getConceptRelationshipTypes();\r
+\r
+       public TermVocabulary<TypeDesignationStatus> getTypeDesignationStatus();\r
 }\r
index e68c63fca6bdd06d04f6d3c22fa8b9ef1fb8499f..1fe790c0402330ee1cc4a47ab8e3229b74231d03 100644 (file)
@@ -287,26 +287,6 @@ public class TaxonomicTreeView extends ViewPart {
                return treeViewer;\r
        }\r
        \r
-       private void createActions() {\r
-               // Create the actions\r
-       }\r
-\r
-       /**\r
-        * Initialize the toolbar\r
-        */\r
-       private void initializeToolBar() {\r
-               IToolBarManager toolbarManager = getViewSite().getActionBars()\r
-                               .getToolBarManager();\r
-       }\r
-\r
-       /**\r
-        * Initialize the menu\r
-        */\r
-       private void initializeMenu() {\r
-               IMenuManager menuManager = getViewSite().getActionBars()\r
-                               .getMenuManager();\r
-       }\r
-\r
        public void setFocus() {\r
                // Set the focus\r
        }\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypeCollectionPropertySource.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypeCollectionPropertySource.java
new file mode 100644 (file)
index 0000000..6f0183c
--- /dev/null
@@ -0,0 +1,93 @@
+/**\r
+ * Copyright (C) 2007 EDIT\r
+ * European Distributed Institute of Taxonomy \r
+ * http://www.e-taxonomy.eu\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+package eu.etaxonomy.taxeditor.propertysheet.type;\r
+\r
+import java.util.Collection;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import eu.etaxonomy.cdm.model.name.NameRelationship;\r
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.propertysheet.CollectionPropertySource;\r
+\r
+public class TypeCollectionPropertySource extends CollectionPropertySource {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(TypeCollectionPropertySource.class);\r
+       \r
+       private TaxonNameBase name;\r
+       private boolean isZoological = false;\r
+\r
+       public TypeCollectionPropertySource(TaxonNameBase name, Collection collection) {\r
+               super(collection);\r
+               this.name = name;\r
+               if (name instanceof ZoologicalName) {\r
+                       isZoological = true;\r
+               }\r
+       }\r
+       \r
+       @Override\r
+       protected String getItemDisplayName(Object item) {\r
+               String itemDisplayName = "";\r
+               \r
+               if (item instanceof NameRelationship) {\r
+                       \r
+                       NameRelationship nameRelation = (NameRelationship) item;\r
+                       \r
+                       if (nameRelation.getFromName() instanceof ZoologicalName &&\r
+                                       nameRelation.getToName() instanceof ZoologicalName) {\r
+                               isZoological = true;    \r
+                       }\r
+                       \r
+                       if (nameRelation.getType() != null) {\r
+                               \r
+                               NameRelationshipType type = nameRelation.getType();\r
+                               String label = GlobalController.getNameRelationLabelType(type);\r
+                               if (isZoological && \r
+                                               nameRelation.getType().equals(NameRelationshipType.BASIONYM())) {\r
+                                       label = "original combination";\r
+                               }\r
+                               itemDisplayName = label;\r
+                       } else {\r
+                               itemDisplayName = "Relation has no type";\r
+                       }\r
+               }\r
+               return itemDisplayName;\r
+       }\r
+\r
+       @Override\r
+       public Object getPropertyValue(Object id) {\r
+               if (id instanceof NameRelationship) {\r
+                       TaxonNameBase relatedName;\r
+                       String nameValue;\r
+                       if (((NameRelationship) id).getFromName().equals(name)) {\r
+                               relatedName = ((NameRelationship) id).getToName();\r
+                               nameValue = relatedName.getTitleCache();\r
+                       } else {\r
+                               relatedName = ((NameRelationship) id).getFromName();\r
+                               nameValue = "to " + relatedName.getTitleCache();\r
+                       }\r
+                       return nameValue;\r
+               }\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public void setPropertyValue(Object id, Object value) {\r
+               // Fields not editable in property sheet view\r
+       }\r
+\r
+       @Override\r
+       public String toString() {\r
+               // "Name Relations" header has no value\r
+               return "";\r
+       }\r
+}
\ No newline at end of file
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypePropertyDescriptor.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypePropertyDescriptor.java
new file mode 100644 (file)
index 0000000..cee88fc
--- /dev/null
@@ -0,0 +1,71 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.propertysheet.type;\r
+\r
+import java.util.Set;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.viewers.CellEditor;\r
+import org.eclipse.jface.viewers.DialogCellEditor;\r
+import org.eclipse.jface.wizard.Wizard;\r
+import org.eclipse.jface.wizard.WizardDialog;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Control;\r
+import org.eclipse.ui.views.properties.PropertyDescriptor;\r
+\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.propertysheet.type.wizard.TypeListWizard;\r
+\r
+/**\r
+ * Property sheet descriptor that pops up a dialog window\r
+ *  returning a set.\r
+ *  \r
+ * @author p.ciardelli\r
+ * @created 19.05.2008\r
+ * @version 1.0\r
+ */\r
+abstract public class TypePropertyDescriptor extends PropertyDescriptor {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(TypePropertyDescriptor.class);\r
+       \r
+       private TaxonNameBase name;\r
+       \r
+       public TypePropertyDescriptor(Object id, String displayName, TaxonNameBase name) {\r
+               super(id, displayName);\r
+               this.name = name;\r
+       }\r
+\r
+    public CellEditor createPropertyEditor(Composite parent) {\r
+        CellEditor editor = new DialogCellEditor(parent) {\r
+\r
+                       @Override\r
+                       protected Object openDialogBox(\r
+                                       Control cellEditorWindow) {\r
+                               \r
+                               Wizard wizard = new TypeListWizard(name);\r
+\r
+                               // Instantiates the wizard container with the wizard and opens it\r
+                               WizardDialog dialog = new WizardDialog(GlobalController.getShell(), wizard);\r
+                               dialog.create();\r
+                               dialog.open();\r
+                               \r
+                               return new TypeCollectionPropertySource(name, name.getSpecimenTypeDesignations());\r
+                       }\r
+               \r
+        };\r
+        if (getValidator() != null) {\r
+                       editor.setValidator(getValidator());\r
+               }\r
+        return editor;\r
+    }\r
+        \r
+    abstract protected void saveTypes(Set set);        \r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypePropertySource.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/TypePropertySource.java
new file mode 100644 (file)
index 0000000..ce0a2b5
--- /dev/null
@@ -0,0 +1,135 @@
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.propertysheet.type;\r
+\r
+import java.util.Set;\r
+import java.util.Vector;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.ui.views.properties.IPropertyDescriptor;\r
+import org.eclipse.ui.views.properties.IPropertySource;\r
+import org.eclipse.ui.views.properties.PropertyDescriptor;\r
+\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.taxeditor.propertysheet.name.NameRelationsPropertyDescriptor;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 11.02.2009\r
+ * @version 1.0\r
+ */\r
+public class TypePropertySource implements IPropertySource {\r
+       private static Logger logger = Logger.getLogger(TypePropertySource.class);\r
+       \r
+       /**\r
+        * The name whose types are being displayed.\r
+        */\r
+       private TaxonNameBase name;\r
+       \r
+       /**\r
+        * If this is a property with a parent, the parent's property ID\r
+        */\r
+       private String parentid;\r
+       \r
+    /**\r
+     * Property unique keys\r
+     */\r
+       public static final String P_ID_NAMETYPES = "nametypes";\r
+\r
+    /**\r
+     * Property display keys\r
+        * Note: for an explanation of the sorting prefixes ("04:"), \r
+        *  @see eu.etaxonomy.taxeditor.propertysheet.CustomSortPropertySheetEntry\r
+     */\r
+       public static final String P_NAMETYPES = "00:Name Types";       \r
+       \r
+       protected static final String[] TOP_LEVEL_PROPERTIES = new String[] {\r
+               P_ID_NAMETYPES};\r
+       \r
+       protected Vector<PropertyDescriptor> descriptors = new Vector<PropertyDescriptor>();\r
+       \r
+       public TypePropertySource(TaxonNameBase name) {\r
+               this.name = name;\r
+               \r
+               addDescriptor(P_ID_NAMETYPES);\r
+       }\r
+       \r
+       \r
+       /**\r
+        * \r
+        */\r
+       private void addDescriptor(String id) {\r
+               // Name relations, listed in custom property descriptor\r
+               if (id.equals(P_ID_NAMETYPES)) {\r
+                       descriptors.addElement(\r
+                                       new TypePropertyDescriptor(P_ID_NAMETYPES, P_NAMETYPES, name) {\r
+                                               protected void saveTypes(Set set) {\r
+                                                       setPropertyValue(P_ID_NAMETYPES, set);\r
+                                               }\r
+                                       }\r
+                       );\r
+               };\r
+       }\r
+\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()\r
+        */\r
+       @Override\r
+       public Object getEditableValue() {\r
+               // TODO Auto-generated method stub\r
+               return null;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()\r
+        */\r
+       @Override\r
+       public IPropertyDescriptor[] getPropertyDescriptors() {\r
+               return (IPropertyDescriptor[]) descriptors.toArray(\r
+                new IPropertyDescriptor[descriptors.size()]);\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)\r
+        */\r
+       @Override\r
+       public Object getPropertyValue(Object id) {\r
+               // TODO Auto-generated method stub\r
+               return null;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)\r
+        */\r
+       @Override\r
+       public boolean isPropertySet(Object id) {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)\r
+        */\r
+       @Override\r
+       public void resetPropertyValue(Object id) {\r
+               // TODO Auto-generated method stub\r
+\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)\r
+        */\r
+       @Override\r
+       public void setPropertyValue(Object id, Object value) {\r
+               // TODO Auto-generated method stub\r
+\r
+       }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/ChooseTypeDesignationWizardPage.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/ChooseTypeDesignationWizardPage.java
new file mode 100644 (file)
index 0000000..2f27867
--- /dev/null
@@ -0,0 +1,125 @@
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.propertysheet.type.wizard;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.wizard.WizardPage;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.custom.CCombo;\r
+import org.eclipse.swt.events.KeyEvent;\r
+import org.eclipse.swt.events.KeyListener;\r
+import org.eclipse.swt.events.SelectionAdapter;\r
+import org.eclipse.swt.events.SelectionEvent;\r
+import org.eclipse.swt.layout.GridData;\r
+import org.eclipse.swt.layout.GridLayout;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Label;\r
+import org.eclipse.swt.widgets.Text;\r
+\r
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.name.TypeDesignationStatus;\r
+import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 13.02.2009\r
+ * @version 1.0\r
+ */\r
+public class ChooseTypeDesignationWizardPage extends WizardPage {\r
+       private static Logger logger = Logger\r
+                       .getLogger(ChooseTypeDesignationWizardPage.class);\r
+       \r
+       private SpecimenTypeDesignation typeDesignation;\r
+       private CCombo statusCombo;\r
+\r
+       private Text txtDesignationType;\r
+\r
+       /**\r
+        * @param typeDesignation\r
+        */\r
+       public ChooseTypeDesignationWizardPage(\r
+                       SpecimenTypeDesignation typeDesignation, TaxonNameBase name) {\r
+               super("");\r
+               \r
+               this.typeDesignation = typeDesignation;\r
+               \r
+               setTitle("Create or edit type designation");\r
+               setDescription("Create or edit type designation for '" + name.getTitleCache() + "\".");\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)\r
+        */\r
+       @Override\r
+       public void createControl(Composite parent) {\r
+               \r
+               // Create composite for popup dialog    \r
+               Composite container = new Composite(parent, SWT.NULL);\r
+               final GridLayout gridLayout = new GridLayout();\r
+               container.setLayout(gridLayout);\r
+               setControl(container);\r
+\r
+               // Create text\r
+               final Label lblChooseStatus = new Label(container, SWT.NONE);\r
+               lblChooseStatus.setText("Choose designation type status:");\r
+\r
+               // Create designation type status dropdown \r
+               statusCombo = new CCombo(container, SWT.BORDER);\r
+               statusCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+               for (TypeDesignationStatus typeStatus : \r
+                               CdmSessionDataRepository.getDefault().getTypeDesignationStatus()) {\r
+                                               \r
+                       String label = typeStatus.getLabel();\r
+//                     String label = "placeholder";\r
+                       statusCombo.add(label);\r
+               }\r
+\r
+               statusCombo.addSelectionListener(new SelectionAdapter() {\r
+                       @Override\r
+                       public void widgetSelected(SelectionEvent e) {\r
+//                             int typeIndex = typeCombo.getSelectionIndex();\r
+//                             relationModel.setType(relationTypes.get(typeIndex));\r
+                               updatePage();\r
+                       }\r
+               });\r
+\r
+               // Create text\r
+               final Label lblEnterText = new Label(container, SWT.NONE);\r
+               lblEnterText.setText("Enter designation type text:");\r
+               \r
+               txtDesignationType = new Text(container, SWT.BORDER);\r
+               txtDesignationType.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
+               txtDesignationType.addKeyListener(new KeyListener() {\r
+\r
+                       @Override\r
+                       public void keyPressed(KeyEvent e) {}\r
+\r
+                       @Override\r
+                       public void keyReleased(KeyEvent e) {\r
+                               updatePage();\r
+                       }                       \r
+               });\r
+       }\r
+\r
+       @Override\r
+       public boolean canFlipToNextPage() {\r
+               return isPageComplete();\r
+       }\r
+\r
+       public boolean isPageComplete() {\r
+               return (statusCombo.getSelectionIndex() > -1 \r
+                               && txtDesignationType.getText().length() > 0);\r
+       }\r
+       \r
+       private void updatePage() {\r
+               getWizard().getContainer().updateButtons();\r
+       }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/TypeDesignationWizard.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/TypeDesignationWizard.java
new file mode 100644 (file)
index 0000000..e5f6367
--- /dev/null
@@ -0,0 +1,55 @@
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.propertysheet.type.wizard;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.wizard.IWizardPage;\r
+import org.eclipse.jface.wizard.Wizard;\r
+\r
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 13.02.2009\r
+ * @version 1.0\r
+ */\r
+public class TypeDesignationWizard extends Wizard {\r
+       private static Logger logger = Logger\r
+                       .getLogger(TypeDesignationWizard.class);\r
+       \r
+       private SpecimenTypeDesignation typeDesignation;\r
+       private TaxonNameBase name;\r
+\r
+       /**\r
+        * @param typeDesignation\r
+        */\r
+       public TypeDesignationWizard(SpecimenTypeDesignation typeDesignation, TaxonNameBase name) {\r
+               this.typeDesignation = typeDesignation;\r
+               this.name = name;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.jface.wizard.Wizard#addPages()\r
+        */\r
+       public void addPages() {\r
+               IWizardPage chooseNamePage = new ChooseTypeDesignationWizardPage(typeDesignation, name);\r
+       addPage(chooseNamePage);\r
+    }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.jface.wizard.Wizard#performFinish()\r
+        */\r
+       @Override\r
+       public boolean performFinish() {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/TypeListWizard.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/TypeListWizard.java
new file mode 100644 (file)
index 0000000..e1b42ab
--- /dev/null
@@ -0,0 +1,48 @@
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.propertysheet.type.wizard;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.wizard.IWizardPage;\r
+import org.eclipse.jface.wizard.Wizard;\r
+\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 11.02.2009\r
+ * @version 1.0\r
+ */\r
+public class TypeListWizard extends Wizard {\r
+       private static Logger logger = Logger.getLogger(TypeListWizard.class);\r
+\r
+       private TaxonNameBase name;\r
+       \r
+       /**\r
+        * @param name\r
+        */\r
+       public TypeListWizard(TaxonNameBase name) {\r
+               super();\r
+               this.name = name;\r
+       }\r
+\r
+       public void addPages(){\r
+               IWizardPage chooseTypePage = new ListTypeWizardPage(name);\r
+       addPage(chooseTypePage);\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.jface.wizard.Wizard#performFinish()\r
+        */\r
+       @Override\r
+       public boolean performFinish() {\r
+               return true;\r
+       }\r
+}\r