ref #7095 Refactor character matrix
authorPatrick Plitzner <p.plitzner@bgbm.org>
Mon, 5 Feb 2018 15:52:39 +0000 (16:52 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Mon, 5 Feb 2018 15:52:39 +0000 (16:52 +0100)
 - split e4 part and nattable widgets in two classes

eu.etaxonomy.taxeditor.editor/fragment.e4xmi
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/AppModelId.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/charactermatrix/handler/ExportCharacterMatrixHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/matrix/CharacterMatrix.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/matrix/CharacterMatrixPart.java [new file with mode: 0644]

index 93d37765ad86aa396e27a0bb3c0e42ab7b87a013..d8c1476d5f9513dc7c83f65ac5589a63c6b69893 100644 (file)
     </elements>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_ARZyMKz2EeeBIsZyvYlAaA" elementId="eu.etaxonomy.taxeditor.editor.group.authority.e4.CdmAuthorityEditorE4" label="%editor.name.4" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.group.authority.e4.CdmAuthorityEditorE4"/>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_Fa8l4M7XEeex0rHJ7p8Zdw" elementId="eu.etaxonomy.taxeditor.editor.view.workingSet.WorkingSetEditor" label="Working Set Editor" tooltip="Working Set Editor" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetEditor"/>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_rpaDsNK2EeeWSJT7vW9jsw" elementId="eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrix" label="Character Matrix" tooltip="Character Matrix" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrix">
+    <elements xsi:type="basic:PartDescriptor" xmi:id="_rpaDsNK2EeeWSJT7vW9jsw" elementId="eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrixPart" label="Character Matrix" tooltip="Character Matrix" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrixPart">
       <handlers xmi:id="_d_HUYOPBEeeIH8IplZ0cuA" elementId="eu.etaxonomy.taxeditor.editor.handler.2" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.charactermatrix.handler.ExportCharacterMatrixHandler" command="_YeWagOPBEeeIH8IplZ0cuA"/>
       <menus xmi:id="_PLw00OPBEeeIH8IplZ0cuA" elementId="eu.etaxonomy.taxeditor.editor.menu.characterMatrix" label="Character Matrix">
         <children xsi:type="menu:HandledMenuItem" xmi:id="_TGK04OPBEeeIH8IplZ0cuA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.characterMatrix.export" label="Export" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_YeWagOPBEeeIH8IplZ0cuA"/>
index 4a162142056569a6afeb1fb387a63944069ecb42..45bac3129ea9e98844783bff23274ef99d28cec1 100644 (file)
@@ -11,8 +11,20 @@ public class AppModelId {
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_ADD_DERIVATE_ADD_SINGLE_READ = "eu.etaxonomy.taxeditor.editor.command.add_derivate.add_single_read";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_ADD_DERIVATE_ADD_SPECIMEN = "eu.etaxonomy.taxeditor.editor.command.add_derivate.add_specimen";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_ADD_DERIVATE_ADD_TISSUE_SAMPLE = "eu.etaxonomy.taxeditor.editor.command.add_derivate.add_tissue_sample";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_CHARACTERMATRIX_EXPORT = "eu.etaxonomy.taxeditor.editor.command.characterMatrix.export";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_CREATEWORKINGSET = "eu.etaxonomy.taxeditor.editor.command.createWorkingSet";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_DELETEWORKINGSET = "eu.etaxonomy.taxeditor.editor.command.deleteWorkingSet";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_NEW_DATASOURCE = "eu.etaxonomy.taxeditor.editor.command.new.datasource";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_NEW_NAME = "eu.etaxonomy.taxeditor.editor.command.new.name";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_NEW_PERSON = "eu.etaxonomy.taxeditor.editor.command.new.person";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_NEW_REFERENCE = "eu.etaxonomy.taxeditor.editor.command.new.reference";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_NEW_TEAM = "eu.etaxonomy.taxeditor.editor.command.new.team";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_OPENSPECIMENEDITORFROMMENU = "eu.etaxonomy.taxeditor.editor.command.openSpecimenEditorFromMenu";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_POLYTOMOUSKEYLIST_OPENGRAPH = "eu.etaxonomy.taxeditor.editor.command.polytomouskeylist.openGraph";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_REFRESH = "eu.etaxonomy.taxeditor.editor.command.refresh";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_SPECIMENEDITOR_CREATE_FIELD_UNIT = "eu.etaxonomy.taxeditor.editor.command.specimeneditor.create_field_unit";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_WORKINGSET_OPENCHARACTERMATRIX = "eu.etaxonomy.taxeditor.editor.command.workingSet.openCharacterMatrix";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_WORKINGSET_OPENWORKINGSETEDITOR = "eu.etaxonomy.taxeditor.editor.command.workingSet.openWorkingSetEditor";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATE_DEEPDELETE = "eu.etaxonomy.taxeditor.editor.derivate.deepDelete";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATE_DELETE = "eu.etaxonomy.taxeditor.editor.derivate.delete";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATIVE_COPYSINGLEREADTOCLIPBOARD = "eu.etaxonomy.taxeditor.editor.derivative.copySingleReadToClipBoard";
@@ -64,24 +76,33 @@ public class AppModelId {
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_OPENSPECIMENEDITORFORTYPESPECIMEN = "eu.etaxonomy.taxeditor.openSpecimenEditorForTypeSpecimen";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_STORE_COMMAND_FEATURETREE_REMOVEFEATURE = "eu.etaxonomy.taxeditor.store.command.featureTree.removeFeature";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_USE_COMMANDS_ADDUSE = "eu.etaxonomy.taxeditor.use.commands.adduse";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_WORKBENCH_COMMAND_COLLAPSE = "eu.etaxonomy.taxeditor.workbench.command.collapse";
+       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_WORKBENCH_COMMAND_EXPAND = "eu.etaxonomy.taxeditor.workbench.command.expand";
        public static final String COMMAND_ORG_ECLIPSE_UI_FILE_SAVE = "org.eclipse.ui.file.save";
        public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_CONCEPT_DYNAMICMENUCONTRIBUTION_CDMVIEWER = "eu.etaxonomy.taxeditor.editor.concept.dynamicmenucontribution.cdmViewer";
        public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_DYNAMICMENUCONTRIBUTION_2 = "eu.etaxonomy.taxeditor.editor.dynamicmenucontribution.2";
        public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUAL_DYNAMICMENUCONTRIBUTION_CDMVIEWER = "eu.etaxonomy.taxeditor.editor.factual.dynamicmenucontribution.cdmViewer";
        public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_SPECIMENEDITOR_DYNAMICMENUCONTRIBUTION_CDMVIEWER = "eu.etaxonomy.taxeditor.editor.specimeneditor.dynamicmenucontribution.cdmViewer";
        public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_DYNAMICFEATUREMENUE4 = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DynamicFeatureMenuE4";
+       public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSETNAVIGATOR_DYNAMICMENUCONTRIBUTION_CDMVIEWER = "eu.etaxonomy.taxeditor.editor.workingSetNavigator.dynamicmenucontribution.cdmViewer";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUALDATA_DELETE = "eu.etaxonomy.taxeditor.editor.factualData.delete";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUALDATA_MOVEDESCRIPTIONELEMENT = "eu.etaxonomy.taxeditor.editor.factualData.moveDescriptionElement";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUALDATA_MOVEDESCRIPTIONTOTAXON = "eu.etaxonomy.taxeditor.editor.factualData.moveDescriptionToTaxon";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_ADDEXISTINGIMAGE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.addExistingImage";
+       public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CHARACTERMATRIX_EXPORT = "eu.etaxonomy.taxeditor.editor.handledmenuitem.characterMatrix.export";
+       public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL1 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel1";
+       public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL2 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel2";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL44 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel44";
+       public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL46 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel46";
+       public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL47 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel47";
+       public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL48 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel48";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL52 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel52";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL54 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel54";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABELLINK_WITH_TAXON_SELECTION = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabellink_with_taxon_selection";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABELREMOVE_SINGLE_READ_FROM_THIS_SEQUENCE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabelremove_single_read_from_this_sequence";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABELREUSE_SINGLE_READ_FOR_OTHER_SEQUENCE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabelreuse_single_read_for_other_sequence";
-       public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDNAME34 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandname34";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDNAMEREUSE_SINGLE_READ = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandnamereuse_single_read";
+       public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMAND_NAME34 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.command.name34";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CONCEPT_DELETE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.concept.delete";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CONCEPT_NEWUSE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.concept.newUse";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CONCEPT_NEWUSERECORD = "eu.etaxonomy.taxeditor.editor.handledmenuitem.concept.newUseRecord";
@@ -90,6 +111,7 @@ public class AppModelId {
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATEFIELDUNIT = "eu.etaxonomy.taxeditor.editor.handledmenuitem.createfieldunit";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATE_FIELD_UNIT_FOR_TAXON = "eu.etaxonomy.taxeditor.editor.handledmenuitem.create_field_unit_for_taxon";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_DELETEMEDIA = "eu.etaxonomy.taxeditor.editor.handledmenuitem.deleteMedia";
+       public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_DELETEWORKINGSET = "eu.etaxonomy.taxeditor.editor.handledmenuitem.deleteWorkingSet";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_DNASAMPLE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.dnasample";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_EXISTINGMEDIA = "eu.etaxonomy.taxeditor.editor.handledmenuitem.existingmedia";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_FACTUALDATA_ADDDESCRIPTION = "eu.etaxonomy.taxeditor.editor.handledmenuitem.factualData.addDescription";
@@ -101,6 +123,7 @@ public class AppModelId {
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_MOVEIMAGEUP = "eu.etaxonomy.taxeditor.editor.handledmenuitem.moveImageUp";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_NEWIMAGE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.newImage";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_NEWIMAGEGALLERY = "eu.etaxonomy.taxeditor.editor.handledmenuitem.newImageGallery";
+       public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_NEWWORKINGSET = "eu.etaxonomy.taxeditor.editor.handledmenuitem.newworkingset";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_OPENGRAPH = "eu.etaxonomy.taxeditor.editor.handledmenuitem.opengraph";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_POLYTOMOUSKEYLIST_DELETE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.polytomouskeylist.delete";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_POLYTOMOUSKEYLIST_NEWALTERNATIVE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.polytomouskeylist.newAlternative";
@@ -130,12 +153,24 @@ public class AppModelId {
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEWMENU_CONCEPTGRAPH = "eu.etaxonomy.taxeditor.editor.showViewMenu.conceptGraph";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEWMENU_FACTUALDATA = "eu.etaxonomy.taxeditor.editor.showViewMenu.factualData";
        public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEWMENU_MEDIAVIEW = "eu.etaxonomy.taxeditor.editor.showViewMenu.mediaView";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_BULKEDITOR_HANDLER_DEFAULTHANDLER_OPENBULKEDITORFORIDENTIFIABLEENTITYE4 = "eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler.OpenBulkEditorForIdentifiableEntityE4";
+       public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEWMENU_WORKINGSETNAVIGATOR = "eu.etaxonomy.taxeditor.editor.showViewMenu.workingSetNavigator";
+       public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUAL_HANDLEDTOOLITEM_COLLAPSE = "eu.etaxonomy.taxeditor.editor.factual.handledtoolitem.collapse";
+       public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUAL_HANDLEDTOOLITEM_EXPAND = "eu.etaxonomy.taxeditor.editor.factual.handledtoolitem.expand";
+       public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUAL_HANDLEDTOOLITEM_USES_EXPAND = "eu.etaxonomy.taxeditor.editor.factual.handledtoolitem.uses.expand";
+       public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDTOOLITEM_0 = "eu.etaxonomy.taxeditor.editor.handledtoolitem.0";
+       public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDTOOLITEM_FACTUAL_SHOWINDIVIDUALASSOCIATIONS = "eu.etaxonomy.taxeditor.editor.handledtoolitem.factual.showIndividualAssociations";
+       public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDTOOLITEM_USES_COLLAPSE = "eu.etaxonomy.taxeditor.editor.handledtoolitem.uses.collapse";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_BULKEDITOR_HANDLER_DEFAULTHANDLER_OPENBULKEDITORFORIDENTIFIABLEENTITYE4_SPECIMENEDITOR = "eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler.OpenBulkEditorForIdentifiableEntityE4.specimenEditor";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_ADDSPECIMENHANDLER = "eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSpecimenHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUALDATA_SAVEHANDLER = "eu.etaxonomy.taxeditor.editor.factualData.saveHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_GROUP_AUTHORITY_E4_HANDLER_EDITCDMAUTHORITIESHANDLERE4 = "eu.etaxonomy.taxeditor.editor.group.authority.e4.handler.EditCdmAuthoritiesHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_0 = "eu.etaxonomy.taxeditor.editor.handler.0";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_1 = "eu.etaxonomy.taxeditor.editor.handler.1";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_2 = "eu.etaxonomy.taxeditor.editor.handler.2";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_CREATE_NEWNAMEHANDLER = "eu.etaxonomy.taxeditor.editor.handler.create.NewNameHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_CREATE_NEWPERSONHANDLER = "eu.etaxonomy.taxeditor.editor.handler.create.NewPersonHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_CREATE_NEWREFERENCEHANDLER = "eu.etaxonomy.taxeditor.editor.handler.create.NewReferenceHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_CREATE_NEWTEAMHANDLER = "eu.etaxonomy.taxeditor.editor.handler.create.NewTeamHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_DEFAULTHANDLER_DEFAULTOPENSPECIMENEDITORFORTYPESPECIMENHANDLER = "eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenSpecimenEditorForTypeSpecimenHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_DEFAULTHANDLER_DEFAULTOPENTAXONEDITORFORTAXONBASEHANDLER = "eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonBaseHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_DEFAULTHANDLER_DEFAULTOPENTAXONEDITORFORTAXONNODEHANDLER = "eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonNodeHandler";
@@ -170,8 +205,10 @@ public class AppModelId {
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_ADDTISSUESAMPLEHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddTissueSampleHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_CREATEFIELDUNITHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_DELETEDERIVATEHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_DELETEDERIVATEHANDLER_DEEP = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler.deep";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_OPENDERIVATIVEEDITORFORDESCRIPTIONELEMENT = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenDerivativeEditorForDescriptionElement";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_OPENDERIVATIVEEDITORFORSPECIMENOROBSERVATIONBASE = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenDerivativeEditorForSpecimenOrOBservationBase";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_OPENSPECIMENEDITORFROMMENU = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenSpecimenEditorFromMenu";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_SAVEHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.SaveHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_SINGLEREADHANDLER_COPYSINGLEREAD = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.copySingleRead";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_SINGLEREADHANDLER_REMOVESINGLEREAD = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.removeSingleRead";
@@ -179,7 +216,8 @@ public class AppModelId {
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_TOGGLELINKWITHTAXONSELECTIONHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.ToggleLinkWithTaxonSelectionHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_CREATEDESCRIPTIONELEMENTHANDLERE4 = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.CreateDescriptionElementHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_CREATEDESCRIPTIONHANDLER = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.CreateDescriptionHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_DELETEHANDLER = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DeleteHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_DELETEHANDLER_FACTUALDATAVIEW = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DeleteHandler.factualDataView";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_DELETEHANDLER_USESVIEW = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DeleteHandler.usesView";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_MOVEDESCRIPTIONELEMENTSHANDLER = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.MoveDescriptionElementsHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_MOVEDESCRIPTIONTOOTHERTAXONHANDLER = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.MoveDescriptionToOtherTaxonHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_TOGGLESHOWONLYINDIVIDUALASSOCIATIONSHANDLERE4 = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.ToggleShowOnlyIndividualAssociationsHandlerE4";
@@ -192,6 +230,12 @@ public class AppModelId {
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_USES_E4_HANDLER_CREATEUSEHANDLERE4 = "eu.etaxonomy.taxeditor.editor.view.uses.e4.handler.CreateUseHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_USES_E4_HANDLER_CREATEUSERECORDHANDLERE4 = "eu.etaxonomy.taxeditor.editor.view.uses.e4.handler.CreateUseRecordHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_USES_E4_HANDLER_CREATEUSESUMMARYHANDLERE4 = "eu.etaxonomy.taxeditor.editor.view.uses.e4.handler.CreateUseSummaryHandlerE4";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_HANDLER_CREATEWORKINGSETHANDLER = "eu.etaxonomy.taxeditor.editor.workingSet.handler.CreateWorkingSetHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_HANDLER_DELETEWORKINGSET = "eu.etaxonomy.taxeditor.editor.workingSet.handler.deleteWorkingSet";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_HANDLER_OPENCHARACTERMATRIXHANDLER = "eu.etaxonomy.taxeditor.editor.workingSet.handler.OpenCharacterMatrixHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_HANDLER_OPENWORKINGSETEDITORHANDLER = "eu.etaxonomy.taxeditor.editor.workingSet.handler.OpenWorkingSetEditorHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_HANDLER_REFRESHWORKINGSETNAVIGATORHANDLER = "eu.etaxonomy.taxeditor.editor.workingSet.handler.RefreshWorkingSetNavigatorHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_VIEW_DATASOURCE_E4_HANDLER_CREATEDATASOURCEHANDLERE4_NEWMENU = "eu.etaxonomy.taxeditor.view.datasource.e4.handler.CreateDataSourceHandlerE4.newMenu";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_0 = "eu.etaxonomy.taxeditor.editor.menuseparator.0";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_1 = "eu.etaxonomy.taxeditor.editor.menuseparator.1";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_10 = "eu.etaxonomy.taxeditor.editor.menuseparator.10";
@@ -206,6 +250,7 @@ public class AppModelId {
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_19 = "eu.etaxonomy.taxeditor.editor.menuseparator.19";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_2 = "eu.etaxonomy.taxeditor.editor.menuseparator.2";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_20 = "eu.etaxonomy.taxeditor.editor.menuseparator.20";
+       public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_21 = "eu.etaxonomy.taxeditor.editor.menuseparator.21";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_3 = "eu.etaxonomy.taxeditor.editor.menuseparator.3";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_4 = "eu.etaxonomy.taxeditor.editor.menuseparator.4";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_5 = "eu.etaxonomy.taxeditor.editor.menuseparator.5";
@@ -215,6 +260,7 @@ public class AppModelId {
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_9 = "eu.etaxonomy.taxeditor.editor.menuseparator.9";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_BEFOREDELETE = "eu.etaxonomy.taxeditor.editor.menuseparator.beforeDelete";
        public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENU_ADD = "eu.etaxonomy.taxeditor.editor.menu.add";
+       public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENU_CHARACTERMATRIX = "eu.etaxonomy.taxeditor.editor.menu.characterMatrix";
        public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENU_POLYTOMOUSKEYLIST_NEWKEYNUMBER = "eu.etaxonomy.taxeditor.editor.menu.polytomouskeylist.newkeynumber";
        public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENU_SPECIMEN_EDITOR_MEDIA = "eu.etaxonomy.taxeditor.editor.menu.specimen_editor.media";
        public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_NAMEEDITOR_MENU_CHANGETO = "eu.etaxonomy.taxeditor.editor.nameEditor.menu.changeTo";
@@ -224,8 +270,8 @@ public class AppModelId {
        public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEW_PARAMETER_CONCEPTVIEW = "eu.etaxonomy.taxeditor.editor.showView.parameter.conceptview";
        public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEW_PARAMETER_FACTUALVIEW = "eu.etaxonomy.taxeditor.editor.showView.parameter.factualview";
        public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEW_PARAMETER_MEDIAVIEW = "eu.etaxonomy.taxeditor.editor.showView.parameter.mediaview";
-       public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEW_PARAMETER_SPECIMENEDITOR = "eu.etaxonomy.taxeditor.editor.showView.parameter.specimenEditor";
-       public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_DETAILSVIEW = "eu.etaxonomy.taxeditor.store.showView.parameter.detailsView";
+       public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEW_PARAMETER_WORKINGSETEDITOR = "eu.etaxonomy.taxeditor.editor.showView.parameter.workingSetEditor";
+       public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_DETAILSVIEW_NAMEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.detailsView.nameEditor";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_GROUP_AUTHORITY_E4_CDMAUTHORITYEDITORE4 = "eu.etaxonomy.taxeditor.editor.group.authority.e4.CdmAuthorityEditorE4";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_KEY_POLYTOMOUS_E4_POLYTOMOUSKEYGRAPHEDITORE4 = "eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyGraphEditorE4";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_KEY_POLYTOMOUS_E4_POLYTOMOUSKEYLISTEDITORE4 = "eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4";
@@ -237,7 +283,10 @@ public class AppModelId {
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_FACTUALDATAPARTE4 = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_MEDIA_E4_MEDIAVIEWPARTE4 = "eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_USES = "eu.etaxonomy.taxeditor.editor.view.uses";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_WORKINGSET_WORKINGSETEDITOR = "eu.etaxonomy.taxeditor.editor.view.workingSet.WorkingSetEditor";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_CHARACTEREDITOR = "eu.etaxonomy.taxeditor.editor.workingSet.CharacterEditor";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_MATRIX_CHARACTERMATRIXPART = "eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrixPart";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_WORKINGSETNAVIGATOR = "eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetNavigator";
        public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_CHARACTEREDITOR = "eu.etaxonomy.taxeditor.editor.popupmenu.characterEditor";
        public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_CONCEPTVIEW = "eu.etaxonomy.taxeditor.editor.popupmenu.conceptview";
        public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_FACTUALDATAVIEW = "eu.etaxonomy.taxeditor.editor.popupmenu.factualDataView";
@@ -247,4 +296,8 @@ public class AppModelId {
        public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_POLYTOMOUSKEYLISTEDITOR = "eu.etaxonomy.taxeditor.editor.popupmenu.polytomouskeylisteditor";
        public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_SPECIMENEDITOR = "eu.etaxonomy.taxeditor.editor.popupmenu.specimeneditor";
        public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_USESVIEW = "eu.etaxonomy.taxeditor.editor.popupmenu.usesView";
+       public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_WORKINGSETNAVIGATOR = "eu.etaxonomy.taxeditor.editor.popupmenu.workingSetNavigator";
+       public static final String TOOLBAR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TOOLBAR_0 = "eu.etaxonomy.taxeditor.editor.toolbar.0";
+       public static final String TOOLBAR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TOOLBAR_1 = "eu.etaxonomy.taxeditor.editor.toolbar.1";
+       public static final String TOOLBAR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TOOLBAR_2 = "eu.etaxonomy.taxeditor.editor.toolbar.2";
 }
\ No newline at end of file
index efa974673a9ddd5a6b6d533d80b7178b7882798b..f0ea4f1146b3bcdd6a15cc5624b5928c3b4d8972 100644 (file)
@@ -45,7 +45,7 @@ import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
 import eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetEditor;
-import eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrix;
+import eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrixPart;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
@@ -89,13 +89,13 @@ public class EditorUtil extends AbstractUtility {
     }
 
     public static void openCharacterMatrix(UUID workingSetUuid, EModelService modelService, EPartService partService, MApplication application){
-        MPart part = partService.createPart("eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrix");
+        MPart part = partService.createPart(AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_MATRIX_CHARACTERMATRIXPART);
         MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
         if(editorAreaPartStack!=null){
             editorAreaPartStack.getChildren().add(part);
         }
         part = partService.showPart(part, PartState.ACTIVATE);
-        CharacterMatrix editor = (CharacterMatrix) part.getObject();
+        CharacterMatrixPart editor = (CharacterMatrixPart) part.getObject();
         editor.init(workingSetUuid, true);
     }
 
index 61b51bba5af7213fca5570bda692f6a15a1efff1..43a224aae4ea3cbe93f11b94336a36bca32caa52 100644 (file)
@@ -10,14 +10,14 @@ import org.eclipse.nebula.widgets.nattable.NatTable;
 import org.eclipse.nebula.widgets.nattable.export.command.ExportCommand;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrix;
+import eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrixPart;
 
 public class ExportCharacterMatrixHandler {
 
        @Execute
        public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
                @Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
-           CharacterMatrix characterMatrix = (CharacterMatrix) activePart.getObject();
+           CharacterMatrixPart characterMatrix = (CharacterMatrixPart) activePart.getObject();
            NatTable natTable = characterMatrix.getNatTable();
            natTable.doCommand(new ExportCommand(natTable.getConfigRegistry(), shell));
        }
index 1bf3f12ead97276518957b69215897456d9f0cfe..cda0f8191ba5a5932e5137003a6d1aff36ba1afd 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.editor.workingSet.matrix;
 
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -22,19 +21,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
-import java.util.UUID;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.inject.Inject;
 
 import org.apache.commons.collections4.map.LinkedMap;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.e4.ui.di.Focus;
-import org.eclipse.e4.ui.di.Persist;
-import org.eclipse.e4.ui.model.application.ui.MDirtyable;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.ComboViewer;
@@ -126,9 +114,6 @@ import ca.odell.glazedlists.EventList;
 import ca.odell.glazedlists.GlazedLists;
 import ca.odell.glazedlists.SortedList;
 import ca.odell.glazedlists.TreeList;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.IWorkingSetService;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
@@ -138,7 +123,6 @@ import eu.etaxonomy.cdm.model.description.SpecimenDescription;
 import eu.etaxonomy.cdm.model.description.State;
 import eu.etaxonomy.cdm.model.description.WorkingSet;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.workingSet.matrix.categorical.CategoricalDataCellEditor;
 import eu.etaxonomy.taxeditor.editor.workingSet.matrix.categorical.CategoricalDataDisplayConverter;
 import eu.etaxonomy.taxeditor.editor.workingSet.matrix.quantitative.QuantitativeDataCellEditor;
@@ -146,16 +130,10 @@ import eu.etaxonomy.taxeditor.editor.workingSet.matrix.quantitative.Quantitative
 import eu.etaxonomy.taxeditor.editor.workingSet.matrix.supplementalInfo.SupplementalInfoDisplayConverter;
 import eu.etaxonomy.taxeditor.model.ColorResources;
 import eu.etaxonomy.taxeditor.model.DescriptionHelper;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
-import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.Resources;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
-import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
 /**
  * Character matrix editor for editing specimen/taxon descriptions in a table
@@ -163,8 +141,7 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
  * @since Nov 26, 2017
  *
  */
-public class CharacterMatrix implements IE4SavablePart, IPartContentHasDetails, IConversationEnabled, IDirtyMarkable,
-ICdmEntitySessionEnabled{
+public class CharacterMatrix extends Composite {
 
     private static final List<String> WS_PROPERTY_PATH = Arrays.asList(new String[] {
             "descriptions", //$NON-NLS-1$
@@ -184,19 +161,6 @@ ICdmEntitySessionEnabled{
 
     private WorkingSet workingSet;
 
-    private ConversationHolder conversation;
-
-    private ICdmEntitySession cdmEntitySession;
-
-    @Inject
-    private ESelectionService selService;
-
-    @Inject
-    private MDirtyable dirty;
-
-    @Inject
-    private MPart thisPart;
-
     private NatTable natTable;
 
     private Map<Integer, Feature> indexToFeatureMap = new HashMap<>();
@@ -219,30 +183,22 @@ ICdmEntitySessionEnabled{
 
     private Label wsLabel;
 
-    private Composite parent;
-
     private List<Feature> features;
 
     private DisplayPersistenceDialogCommandHandler displayPersistenceDialogCommandHandler;
 
-    @PostConstruct
-    public void create(Composite parent) {
-        if(CdmStore.isActive() && conversation==null){
-            conversation = CdmStore.createConversation();
-        }
-        if(cdmEntitySession == null){
-            cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
-        }
-        else{
-            return;
-        }
-        this.parent = parent;
-        parent.setLayout(new GridLayout());
+    private CharacterMatrixPart part;
 
-        Composite toolbarComposite = new Composite(parent, SWT.NONE);
+
+    public CharacterMatrix(Composite parent, CharacterMatrixPart part) {
+        super(parent, SWT.NONE);
+        this.part = part;
+        this.setLayout(new GridLayout());
+
+        Composite toolbarComposite = new Composite(this, SWT.NONE);
         toolbarComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
         toolbarComposite.setLayout(new GridLayout(9, false));
-        natTable = new NatTable(parent, false);
+        natTable = new NatTable(this, false);
 
         wsLabel = new Label(toolbarComposite, SWT.NONE);
 
@@ -400,7 +356,7 @@ ICdmEntitySessionEnabled{
             }
         });
 
-        Composite buttonPanel = new Composite(parent, SWT.NONE);
+        Composite buttonPanel = new Composite(this, SWT.NONE);
 
         buttonPanel.setLayout(new RowLayout());
         GridDataFactory.fillDefaults().grab(true, false).applyTo(buttonPanel);
@@ -478,7 +434,7 @@ ICdmEntitySessionEnabled{
     }
 
     private void toggleTreeFlat(boolean isTree, Button btnToggleFlat, Button btnToggleTree, Button btnCollapseAll, Button btnExpandAll) {
-        init(workingSet.getUuid(), isTree);
+        createLayers(isTree);
         btnToggleFlat.setEnabled(isTree);
         btnToggleTree.setEnabled(!isTree);
         btnCollapseAll.setEnabled(isTree);
@@ -486,31 +442,26 @@ ICdmEntitySessionEnabled{
         natTable.doCommand(new ClientAreaResizeCommand(natTable));
     }
 
-    public void init(UUID workingSetUuid, boolean treeView) {
-        if(workingSet==null){
-            this.workingSet = CdmStore.getService(IWorkingSetService.class).load(workingSetUuid, WS_PROPERTY_PATH);
-            if(workingSet.getDescriptiveSystem()==null){
-                MessagingUtils.informationDialog("Editor could not be opened", "The working set has no feature tree selected.");
-                return;
+    public void initWorkingSet(WorkingSet workingSet){
+        this.workingSet = workingSet;
+        //get features/columns stored in working set
+        FeatureTree tree = workingSet.getDescriptiveSystem();
+        features = new ArrayList<>(tree.getDistinctFeatures());
+        Collections.sort(features);
+        //init state data for categorical features
+        features.forEach(feature->
+        {
+            if(feature.isSupportsCategoricalData()){
+                List<State> supportedStates = new ArrayList<>();
+                feature.getSupportedCategoricalEnumerations().forEach(voc->supportedStates.addAll(voc.getTerms()));
+                categoricalFeatureToStateMap.put(feature, supportedStates);
             }
-            thisPart.setLabel(workingSet.getLabel());
-
-            //get features/columns stored in working set
-            FeatureTree tree = workingSet.getDescriptiveSystem();
-            features = new ArrayList<>(tree.getDistinctFeatures());
-            Collections.sort(features);
-            //init state data for categorical features
-            features.forEach(feature->
-            {
-                if(feature.isSupportsCategoricalData()){
-                    List<State> supportedStates = new ArrayList<>();
-                    feature.getSupportedCategoricalEnumerations().forEach(voc->supportedStates.addAll(voc.getTerms()));
-                    categoricalFeatureToStateMap.put(feature, supportedStates);
-                }
-            });
+        });
+        descriptions = GlazedLists.eventList(getDescriptions(workingSet));
 
-            descriptions = GlazedLists.eventList(getDescriptions(workingSet));
-        }
+    }
+
+    public void createLayers(boolean treeView) {
         // use the SortedList constructor with 'null' for the Comparator
         // because the Comparator will be set by configuration
         SortedList<Object> sortedList = new SortedList<>(descriptions, new MatrixRowComparator());
@@ -796,7 +747,7 @@ ICdmEntitySessionEnabled{
                                 selection = new StructuredSelection(dataValue);
                             }
                         }
-                        selService.setSelection(selection);
+                        part.getSelectionService().setSelection(selection);
                     }
                 }
             }
@@ -815,7 +766,7 @@ ICdmEntitySessionEnabled{
 
         freezeSupplementalColumns(true);
 
-        parent.layout();
+        this.layout();
 
         natTable.addConfiguration(new DefaultFreezeGridBindings());
 
@@ -1004,7 +955,7 @@ ICdmEntitySessionEnabled{
     }
 
     public void setDirty() {
-        this.dirty.setDirty(true);
+        part.setDirty();
     }
 
     public NatTable getNatTable() {
@@ -1023,115 +974,16 @@ ICdmEntitySessionEnabled{
         this.specimenCache = specimenCache;
     }
 
-    /**
-     * @return the bodyDataProvider
-     */
-    public ListDataProvider<Object> getBodyDataProvider() {
-        return bodyDataProvider;
-    }
-
-    @Persist
-    @Override
-    public void save(IProgressMonitor monitor) {
-        CdmStore.getService(IWorkingSetService.class).merge(workingSet, true);
-        conversation.commit();
-        dirty.setDirty(false);
+    public Properties getNatTableState() {
+        return natTableState;
     }
 
-    @Focus
-    public void setFocus(){
-        if(conversation!=null){
-            conversation.bind();
-        }
-        if(cdmEntitySession != null) {
-            cdmEntitySession.bind();
-        }
-    }
-
-    @PreDestroy
-    public void dispose(){
-        if (conversation != null) {
-            conversation.close();
-            conversation = null;
-        }
-        if(cdmEntitySession != null) {
-            cdmEntitySession.dispose();
-            cdmEntitySession = null;
-        }
-        dirty.setDirty(false);
-        if(natTableState!=null){
-            try (FileOutputStream tableStateStream =
-                    new FileOutputStream(getStatePropertiesFile())) {
-                natTableState.store(tableStateStream, null);
-            } catch (IOException ioe) {
-                ioe.printStackTrace();
-            }
-        }
+    public ListDataProvider<Object> getBodyDataProvider() {
+        return bodyDataProvider;
     }
 
     private File getStatePropertiesFile() {
         return new File(WorkbenchUtility.getBaseLocation(), CHARACTER_MATRIX_STATE_PROPERTIES);
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void update(CdmDataChangeMap arg0) {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void changed(Object element) {
-        setDirty();
-        natTable.refresh();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void forceDirty() {
-        setDirty();
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public ICdmEntitySession getCdmEntitySession() {
-        return cdmEntitySession;
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public Collection<WorkingSet> getRootEntities() {
-        return Collections.singleton(this.workingSet);
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public Map<Object, List<String>> getPropertyPathsMap() {
-        Map<Object, List<String>> propertyMap = new HashMap<>();
-        propertyMap.put(SpecimenOrObservationBase.class,WS_PROPERTY_PATH);
-        return propertyMap;
-    }
-
 }
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/matrix/CharacterMatrixPart.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/matrix/CharacterMatrixPart.java
new file mode 100644 (file)
index 0000000..9e47bb9
--- /dev/null
@@ -0,0 +1,209 @@
+/**
+ * Copyright (C) 2017 EDIT
+ * 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.
+ */
+package eu.etaxonomy.taxeditor.editor.workingSet.matrix;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.e4.ui.di.Persist;
+import org.eclipse.e4.ui.model.application.ui.MDirtyable;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
+import org.eclipse.nebula.widgets.nattable.NatTable;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.IWorkingSetService;
+import eu.etaxonomy.cdm.model.description.WorkingSet;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
+import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
+import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
+
+/**
+ * Character matrix editor for editing specimen/taxon descriptions in a table
+ * @author pplitzner
+ * @since Nov 26, 2017
+ *
+ */
+public class CharacterMatrixPart implements IE4SavablePart, IPartContentHasDetails, IConversationEnabled, IDirtyMarkable,
+ICdmEntitySessionEnabled{
+
+    private static final List<String> WS_PROPERTY_PATH = Arrays.asList(new String[] {
+            "descriptions", //$NON-NLS-1$
+            "descriptions.descriptionElements", //$NON-NLS-1$
+            "descriptions.descriptionElements.inDescription", //$NON-NLS-1$
+            "descriptions.descriptionElements.inDescription.descriptionElements", //$NON-NLS-1$
+            "descriptions.descriptionElements.feature", //$NON-NLS-1$
+    });
+
+    private static final String CHARACTER_MATRIX_STATE_PROPERTIES = "characterMatrixState.properties";
+
+    private WorkingSet workingSet;
+
+    private ConversationHolder conversation;
+
+    private ICdmEntitySession cdmEntitySession;
+
+    @Inject
+    private ESelectionService selService;
+
+    @Inject
+    private MDirtyable dirty;
+
+    @Inject
+    private MPart thisPart;
+
+    private CharacterMatrix matrix;
+
+    @PostConstruct
+    public void create(Composite parent) {
+        if(CdmStore.isActive() && conversation==null){
+            conversation = CdmStore.createConversation();
+        }
+        if(cdmEntitySession == null){
+            cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+        }
+        else{
+            return;
+        }
+        matrix = new CharacterMatrix(parent, this);
+    }
+
+    public void init(UUID workingSetUuid, boolean treeView) {
+        this.workingSet = CdmStore.getService(IWorkingSetService.class).load(workingSetUuid, WS_PROPERTY_PATH);
+        if(workingSet!=null){
+            if(workingSet.getDescriptiveSystem()==null){
+                MessagingUtils.informationDialog("Editor could not be opened", "The working set has no feature tree selected.");
+                return;
+            }
+            matrix.initWorkingSet(workingSet);
+            matrix.createLayers(treeView);
+            thisPart.setLabel(workingSet.getLabel());
+        }
+    }
+
+    public void setDirty() {
+        this.dirty.setDirty(true);
+    }
+
+    public WorkingSet getWorkingSet() {
+        return workingSet;
+    }
+
+    private File getStatePropertiesFile() {
+        return new File(WorkbenchUtility.getBaseLocation(), CHARACTER_MATRIX_STATE_PROPERTIES);
+    }
+
+    public NatTable getNatTable() {
+        return matrix.getNatTable();
+    }
+
+    public ESelectionService getSelectionService() {
+        return selService;
+    }
+
+    @Persist
+    @Override
+    public void save(IProgressMonitor monitor) {
+        CdmStore.getService(IWorkingSetService.class).merge(workingSet, true);
+        conversation.commit();
+        dirty.setDirty(false);
+    }
+
+    @Focus
+    public void setFocus(){
+        if(conversation!=null){
+            conversation.bind();
+        }
+        if(cdmEntitySession != null) {
+            cdmEntitySession.bind();
+        }
+    }
+
+    @PreDestroy
+    public void dispose(){
+        if (conversation != null) {
+            conversation.close();
+            conversation = null;
+        }
+        if(cdmEntitySession != null) {
+            cdmEntitySession.dispose();
+            cdmEntitySession = null;
+        }
+        dirty.setDirty(false);
+        if(matrix.getNatTableState()!=null){
+            try (FileOutputStream tableStateStream =
+                    new FileOutputStream(getStatePropertiesFile())) {
+                matrix.getNatTableState().store(tableStateStream, null);
+            } catch (IOException ioe) {
+                ioe.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public void update(CdmDataChangeMap arg0) {
+    }
+
+    @Override
+    public ConversationHolder getConversationHolder() {
+        return conversation;
+    }
+
+    @Override
+    public void changed(Object element) {
+        setDirty();
+        matrix.getNatTable().refresh();
+    }
+
+    @Override
+    public void forceDirty() {
+        setDirty();
+    }
+
+    @Override
+    public ICdmEntitySession getCdmEntitySession() {
+        return cdmEntitySession;
+    }
+
+    @Override
+    public Collection<WorkingSet> getRootEntities() {
+        return Collections.singleton(this.workingSet);
+    }
+
+    @Override
+    public Map<Object, List<String>> getPropertyPathsMap() {
+        Map<Object, List<String>> propertyMap = new HashMap<>();
+        propertyMap.put(SpecimenOrObservationBase.class,WS_PROPERTY_PATH);
+        return propertyMap;
+    }
+
+}