Project

General

Profile

Revision ad6b50ba

IDad6b50ba418d5ff7446d8786422dbcf8c929f2ab
Parent 6f3152d1
Child 7b053201

Added by Patrick Plitzner almost 3 years ago

ref #7095 Refactor character matrix

  • split e4 part and nattable widgets in two classes

View differences:

eu.etaxonomy.taxeditor.editor/fragment.e4xmi
230 230
    </elements>
231 231
    <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"/>
232 232
    <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"/>
233
    <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">
233
    <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">
234 234
      <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"/>
235 235
      <menus xmi:id="_PLw00OPBEeeIH8IplZ0cuA" elementId="eu.etaxonomy.taxeditor.editor.menu.characterMatrix" label="Character Matrix">
236 236
        <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"/>
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/AppModelId.java
11 11
	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";
12 12
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_ADD_DERIVATE_ADD_SPECIMEN = "eu.etaxonomy.taxeditor.editor.command.add_derivate.add_specimen";
13 13
	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";
14
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_CHARACTERMATRIX_EXPORT = "eu.etaxonomy.taxeditor.editor.command.characterMatrix.export";
15
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_CREATEWORKINGSET = "eu.etaxonomy.taxeditor.editor.command.createWorkingSet";
16
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_DELETEWORKINGSET = "eu.etaxonomy.taxeditor.editor.command.deleteWorkingSet";
17
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_NEW_DATASOURCE = "eu.etaxonomy.taxeditor.editor.command.new.datasource";
18
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_NEW_NAME = "eu.etaxonomy.taxeditor.editor.command.new.name";
19
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_NEW_PERSON = "eu.etaxonomy.taxeditor.editor.command.new.person";
20
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_NEW_REFERENCE = "eu.etaxonomy.taxeditor.editor.command.new.reference";
21
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_NEW_TEAM = "eu.etaxonomy.taxeditor.editor.command.new.team";
22
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_OPENSPECIMENEDITORFROMMENU = "eu.etaxonomy.taxeditor.editor.command.openSpecimenEditorFromMenu";
14 23
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_POLYTOMOUSKEYLIST_OPENGRAPH = "eu.etaxonomy.taxeditor.editor.command.polytomouskeylist.openGraph";
24
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_REFRESH = "eu.etaxonomy.taxeditor.editor.command.refresh";
15 25
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_SPECIMENEDITOR_CREATE_FIELD_UNIT = "eu.etaxonomy.taxeditor.editor.command.specimeneditor.create_field_unit";
26
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_WORKINGSET_OPENCHARACTERMATRIX = "eu.etaxonomy.taxeditor.editor.command.workingSet.openCharacterMatrix";
27
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_COMMAND_WORKINGSET_OPENWORKINGSETEDITOR = "eu.etaxonomy.taxeditor.editor.command.workingSet.openWorkingSetEditor";
16 28
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATE_DEEPDELETE = "eu.etaxonomy.taxeditor.editor.derivate.deepDelete";
17 29
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATE_DELETE = "eu.etaxonomy.taxeditor.editor.derivate.delete";
18 30
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DERIVATIVE_COPYSINGLEREADTOCLIPBOARD = "eu.etaxonomy.taxeditor.editor.derivative.copySingleReadToClipBoard";
......
64 76
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_OPENSPECIMENEDITORFORTYPESPECIMEN = "eu.etaxonomy.taxeditor.openSpecimenEditorForTypeSpecimen";
65 77
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_STORE_COMMAND_FEATURETREE_REMOVEFEATURE = "eu.etaxonomy.taxeditor.store.command.featureTree.removeFeature";
66 78
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_USE_COMMANDS_ADDUSE = "eu.etaxonomy.taxeditor.use.commands.adduse";
79
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_WORKBENCH_COMMAND_COLLAPSE = "eu.etaxonomy.taxeditor.workbench.command.collapse";
80
	public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_WORKBENCH_COMMAND_EXPAND = "eu.etaxonomy.taxeditor.workbench.command.expand";
67 81
	public static final String COMMAND_ORG_ECLIPSE_UI_FILE_SAVE = "org.eclipse.ui.file.save";
68 82
	public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_CONCEPT_DYNAMICMENUCONTRIBUTION_CDMVIEWER = "eu.etaxonomy.taxeditor.editor.concept.dynamicmenucontribution.cdmViewer";
69 83
	public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_DYNAMICMENUCONTRIBUTION_2 = "eu.etaxonomy.taxeditor.editor.dynamicmenucontribution.2";
70 84
	public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUAL_DYNAMICMENUCONTRIBUTION_CDMVIEWER = "eu.etaxonomy.taxeditor.editor.factual.dynamicmenucontribution.cdmViewer";
71 85
	public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_SPECIMENEDITOR_DYNAMICMENUCONTRIBUTION_CDMVIEWER = "eu.etaxonomy.taxeditor.editor.specimeneditor.dynamicmenucontribution.cdmViewer";
72 86
	public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_DYNAMICFEATUREMENUE4 = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DynamicFeatureMenuE4";
87
	public static final String DYNAMICMENUCONTRIBUTION_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSETNAVIGATOR_DYNAMICMENUCONTRIBUTION_CDMVIEWER = "eu.etaxonomy.taxeditor.editor.workingSetNavigator.dynamicmenucontribution.cdmViewer";
73 88
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUALDATA_DELETE = "eu.etaxonomy.taxeditor.editor.factualData.delete";
74 89
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUALDATA_MOVEDESCRIPTIONELEMENT = "eu.etaxonomy.taxeditor.editor.factualData.moveDescriptionElement";
75 90
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUALDATA_MOVEDESCRIPTIONTOTAXON = "eu.etaxonomy.taxeditor.editor.factualData.moveDescriptionToTaxon";
76 91
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_ADDEXISTINGIMAGE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.addExistingImage";
92
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CHARACTERMATRIX_EXPORT = "eu.etaxonomy.taxeditor.editor.handledmenuitem.characterMatrix.export";
93
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL1 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel1";
94
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL2 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel2";
77 95
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL44 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel44";
96
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL46 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel46";
97
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL47 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel47";
98
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL48 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel48";
78 99
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL52 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel52";
79 100
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABEL54 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel54";
80 101
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDLABELLINK_WITH_TAXON_SELECTION = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabellink_with_taxon_selection";
81 102
	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";
82 103
	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";
83
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDNAME34 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandname34";
84 104
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMANDNAMEREUSE_SINGLE_READ = "eu.etaxonomy.taxeditor.editor.handledmenuitem.commandnamereuse_single_read";
105
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_COMMAND_NAME34 = "eu.etaxonomy.taxeditor.editor.handledmenuitem.command.name34";
85 106
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CONCEPT_DELETE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.concept.delete";
86 107
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CONCEPT_NEWUSE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.concept.newUse";
87 108
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CONCEPT_NEWUSERECORD = "eu.etaxonomy.taxeditor.editor.handledmenuitem.concept.newUseRecord";
......
90 111
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATEFIELDUNIT = "eu.etaxonomy.taxeditor.editor.handledmenuitem.createfieldunit";
91 112
	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";
92 113
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_DELETEMEDIA = "eu.etaxonomy.taxeditor.editor.handledmenuitem.deleteMedia";
114
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_DELETEWORKINGSET = "eu.etaxonomy.taxeditor.editor.handledmenuitem.deleteWorkingSet";
93 115
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_DNASAMPLE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.dnasample";
94 116
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_EXISTINGMEDIA = "eu.etaxonomy.taxeditor.editor.handledmenuitem.existingmedia";
95 117
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_FACTUALDATA_ADDDESCRIPTION = "eu.etaxonomy.taxeditor.editor.handledmenuitem.factualData.addDescription";
......
101 123
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_MOVEIMAGEUP = "eu.etaxonomy.taxeditor.editor.handledmenuitem.moveImageUp";
102 124
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_NEWIMAGE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.newImage";
103 125
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_NEWIMAGEGALLERY = "eu.etaxonomy.taxeditor.editor.handledmenuitem.newImageGallery";
126
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_NEWWORKINGSET = "eu.etaxonomy.taxeditor.editor.handledmenuitem.newworkingset";
104 127
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_OPENGRAPH = "eu.etaxonomy.taxeditor.editor.handledmenuitem.opengraph";
105 128
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_POLYTOMOUSKEYLIST_DELETE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.polytomouskeylist.delete";
106 129
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_POLYTOMOUSKEYLIST_NEWALTERNATIVE = "eu.etaxonomy.taxeditor.editor.handledmenuitem.polytomouskeylist.newAlternative";
......
130 153
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEWMENU_CONCEPTGRAPH = "eu.etaxonomy.taxeditor.editor.showViewMenu.conceptGraph";
131 154
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEWMENU_FACTUALDATA = "eu.etaxonomy.taxeditor.editor.showViewMenu.factualData";
132 155
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEWMENU_MEDIAVIEW = "eu.etaxonomy.taxeditor.editor.showViewMenu.mediaView";
133
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_BULKEDITOR_HANDLER_DEFAULTHANDLER_OPENBULKEDITORFORIDENTIFIABLEENTITYE4 = "eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler.OpenBulkEditorForIdentifiableEntityE4";
156
	public static final String HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEWMENU_WORKINGSETNAVIGATOR = "eu.etaxonomy.taxeditor.editor.showViewMenu.workingSetNavigator";
157
	public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUAL_HANDLEDTOOLITEM_COLLAPSE = "eu.etaxonomy.taxeditor.editor.factual.handledtoolitem.collapse";
158
	public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUAL_HANDLEDTOOLITEM_EXPAND = "eu.etaxonomy.taxeditor.editor.factual.handledtoolitem.expand";
159
	public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUAL_HANDLEDTOOLITEM_USES_EXPAND = "eu.etaxonomy.taxeditor.editor.factual.handledtoolitem.uses.expand";
160
	public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDTOOLITEM_0 = "eu.etaxonomy.taxeditor.editor.handledtoolitem.0";
161
	public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDTOOLITEM_FACTUAL_SHOWINDIVIDUALASSOCIATIONS = "eu.etaxonomy.taxeditor.editor.handledtoolitem.factual.showIndividualAssociations";
162
	public static final String HANDLEDTOOLITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDTOOLITEM_USES_COLLAPSE = "eu.etaxonomy.taxeditor.editor.handledtoolitem.uses.collapse";
163
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_BULKEDITOR_HANDLER_DEFAULTHANDLER_OPENBULKEDITORFORIDENTIFIABLEENTITYE4_SPECIMENEDITOR = "eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler.OpenBulkEditorForIdentifiableEntityE4.specimenEditor";
134 164
	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";
135 165
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_FACTUALDATA_SAVEHANDLER = "eu.etaxonomy.taxeditor.editor.factualData.saveHandler";
136 166
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_GROUP_AUTHORITY_E4_HANDLER_EDITCDMAUTHORITIESHANDLERE4 = "eu.etaxonomy.taxeditor.editor.group.authority.e4.handler.EditCdmAuthoritiesHandlerE4";
137 167
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_0 = "eu.etaxonomy.taxeditor.editor.handler.0";
138 168
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_1 = "eu.etaxonomy.taxeditor.editor.handler.1";
169
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_2 = "eu.etaxonomy.taxeditor.editor.handler.2";
170
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_CREATE_NEWNAMEHANDLER = "eu.etaxonomy.taxeditor.editor.handler.create.NewNameHandler";
171
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_CREATE_NEWPERSONHANDLER = "eu.etaxonomy.taxeditor.editor.handler.create.NewPersonHandler";
172
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_CREATE_NEWREFERENCEHANDLER = "eu.etaxonomy.taxeditor.editor.handler.create.NewReferenceHandler";
173
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_CREATE_NEWTEAMHANDLER = "eu.etaxonomy.taxeditor.editor.handler.create.NewTeamHandler";
139 174
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_DEFAULTHANDLER_DEFAULTOPENSPECIMENEDITORFORTYPESPECIMENHANDLER = "eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenSpecimenEditorForTypeSpecimenHandler";
140 175
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_DEFAULTHANDLER_DEFAULTOPENTAXONEDITORFORTAXONBASEHANDLER = "eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonBaseHandler";
141 176
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLER_DEFAULTHANDLER_DEFAULTOPENTAXONEDITORFORTAXONNODEHANDLER = "eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonNodeHandler";
......
170 205
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_ADDTISSUESAMPLEHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddTissueSampleHandler";
171 206
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_CREATEFIELDUNITHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler";
172 207
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_DELETEDERIVATEHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler";
208
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_DELETEDERIVATEHANDLER_DEEP = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler.deep";
173 209
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_OPENDERIVATIVEEDITORFORDESCRIPTIONELEMENT = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenDerivativeEditorForDescriptionElement";
174 210
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_OPENDERIVATIVEEDITORFORSPECIMENOROBSERVATIONBASE = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenDerivativeEditorForSpecimenOrOBservationBase";
211
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_OPENSPECIMENEDITORFROMMENU = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenSpecimenEditorFromMenu";
175 212
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_SAVEHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.SaveHandler";
176 213
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_SINGLEREADHANDLER_COPYSINGLEREAD = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.copySingleRead";
177 214
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_SINGLEREADHANDLER_REMOVESINGLEREAD = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.removeSingleRead";
......
179 216
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_TOGGLELINKWITHTAXONSELECTIONHANDLER = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.ToggleLinkWithTaxonSelectionHandler";
180 217
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_CREATEDESCRIPTIONELEMENTHANDLERE4 = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.CreateDescriptionElementHandlerE4";
181 218
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_CREATEDESCRIPTIONHANDLER = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.CreateDescriptionHandler";
182
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_DELETEHANDLER = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DeleteHandler";
219
	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";
220
	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";
183 221
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_MOVEDESCRIPTIONELEMENTSHANDLER = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.MoveDescriptionElementsHandler";
184 222
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_MOVEDESCRIPTIONTOOTHERTAXONHANDLER = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.MoveDescriptionToOtherTaxonHandler";
185 223
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_HANDLER_TOGGLESHOWONLYINDIVIDUALASSOCIATIONSHANDLERE4 = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.ToggleShowOnlyIndividualAssociationsHandlerE4";
......
192 230
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_USES_E4_HANDLER_CREATEUSEHANDLERE4 = "eu.etaxonomy.taxeditor.editor.view.uses.e4.handler.CreateUseHandlerE4";
193 231
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_USES_E4_HANDLER_CREATEUSERECORDHANDLERE4 = "eu.etaxonomy.taxeditor.editor.view.uses.e4.handler.CreateUseRecordHandlerE4";
194 232
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_USES_E4_HANDLER_CREATEUSESUMMARYHANDLERE4 = "eu.etaxonomy.taxeditor.editor.view.uses.e4.handler.CreateUseSummaryHandlerE4";
233
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_HANDLER_CREATEWORKINGSETHANDLER = "eu.etaxonomy.taxeditor.editor.workingSet.handler.CreateWorkingSetHandler";
234
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_HANDLER_DELETEWORKINGSET = "eu.etaxonomy.taxeditor.editor.workingSet.handler.deleteWorkingSet";
235
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_HANDLER_OPENCHARACTERMATRIXHANDLER = "eu.etaxonomy.taxeditor.editor.workingSet.handler.OpenCharacterMatrixHandler";
236
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_HANDLER_OPENWORKINGSETEDITORHANDLER = "eu.etaxonomy.taxeditor.editor.workingSet.handler.OpenWorkingSetEditorHandler";
237
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_HANDLER_REFRESHWORKINGSETNAVIGATORHANDLER = "eu.etaxonomy.taxeditor.editor.workingSet.handler.RefreshWorkingSetNavigatorHandler";
238
	public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_VIEW_DATASOURCE_E4_HANDLER_CREATEDATASOURCEHANDLERE4_NEWMENU = "eu.etaxonomy.taxeditor.view.datasource.e4.handler.CreateDataSourceHandlerE4.newMenu";
195 239
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_0 = "eu.etaxonomy.taxeditor.editor.menuseparator.0";
196 240
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_1 = "eu.etaxonomy.taxeditor.editor.menuseparator.1";
197 241
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_10 = "eu.etaxonomy.taxeditor.editor.menuseparator.10";
......
206 250
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_19 = "eu.etaxonomy.taxeditor.editor.menuseparator.19";
207 251
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_2 = "eu.etaxonomy.taxeditor.editor.menuseparator.2";
208 252
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_20 = "eu.etaxonomy.taxeditor.editor.menuseparator.20";
253
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_21 = "eu.etaxonomy.taxeditor.editor.menuseparator.21";
209 254
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_3 = "eu.etaxonomy.taxeditor.editor.menuseparator.3";
210 255
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_4 = "eu.etaxonomy.taxeditor.editor.menuseparator.4";
211 256
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_5 = "eu.etaxonomy.taxeditor.editor.menuseparator.5";
......
215 260
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_9 = "eu.etaxonomy.taxeditor.editor.menuseparator.9";
216 261
	public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_BEFOREDELETE = "eu.etaxonomy.taxeditor.editor.menuseparator.beforeDelete";
217 262
	public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENU_ADD = "eu.etaxonomy.taxeditor.editor.menu.add";
263
	public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENU_CHARACTERMATRIX = "eu.etaxonomy.taxeditor.editor.menu.characterMatrix";
218 264
	public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENU_POLYTOMOUSKEYLIST_NEWKEYNUMBER = "eu.etaxonomy.taxeditor.editor.menu.polytomouskeylist.newkeynumber";
219 265
	public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENU_SPECIMEN_EDITOR_MEDIA = "eu.etaxonomy.taxeditor.editor.menu.specimen_editor.media";
220 266
	public static final String MENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_NAMEEDITOR_MENU_CHANGETO = "eu.etaxonomy.taxeditor.editor.nameEditor.menu.changeTo";
......
224 270
	public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEW_PARAMETER_CONCEPTVIEW = "eu.etaxonomy.taxeditor.editor.showView.parameter.conceptview";
225 271
	public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEW_PARAMETER_FACTUALVIEW = "eu.etaxonomy.taxeditor.editor.showView.parameter.factualview";
226 272
	public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEW_PARAMETER_MEDIAVIEW = "eu.etaxonomy.taxeditor.editor.showView.parameter.mediaview";
227
	public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEW_PARAMETER_SPECIMENEDITOR = "eu.etaxonomy.taxeditor.editor.showView.parameter.specimenEditor";
228
	public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_DETAILSVIEW = "eu.etaxonomy.taxeditor.store.showView.parameter.detailsView";
273
	public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_EDITOR_SHOWVIEW_PARAMETER_WORKINGSETEDITOR = "eu.etaxonomy.taxeditor.editor.showView.parameter.workingSetEditor";
274
	public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_DETAILSVIEW_NAMEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.detailsView.nameEditor";
229 275
	public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_GROUP_AUTHORITY_E4_CDMAUTHORITYEDITORE4 = "eu.etaxonomy.taxeditor.editor.group.authority.e4.CdmAuthorityEditorE4";
230 276
	public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_KEY_POLYTOMOUS_E4_POLYTOMOUSKEYGRAPHEDITORE4 = "eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyGraphEditorE4";
231 277
	public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_KEY_POLYTOMOUS_E4_POLYTOMOUSKEYLISTEDITORE4 = "eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4";
......
237 283
	public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_FACTUALDATAPARTE4 = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4";
238 284
	public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_MEDIA_E4_MEDIAVIEWPARTE4 = "eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4";
239 285
	public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_USES = "eu.etaxonomy.taxeditor.editor.view.uses";
286
	public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_WORKINGSET_WORKINGSETEDITOR = "eu.etaxonomy.taxeditor.editor.view.workingSet.WorkingSetEditor";
240 287
	public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_CHARACTEREDITOR = "eu.etaxonomy.taxeditor.editor.workingSet.CharacterEditor";
288
	public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_MATRIX_CHARACTERMATRIXPART = "eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrixPart";
289
	public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_WORKINGSETNAVIGATOR = "eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetNavigator";
241 290
	public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_CHARACTEREDITOR = "eu.etaxonomy.taxeditor.editor.popupmenu.characterEditor";
242 291
	public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_CONCEPTVIEW = "eu.etaxonomy.taxeditor.editor.popupmenu.conceptview";
243 292
	public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_FACTUALDATAVIEW = "eu.etaxonomy.taxeditor.editor.popupmenu.factualDataView";
......
247 296
	public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_POLYTOMOUSKEYLISTEDITOR = "eu.etaxonomy.taxeditor.editor.popupmenu.polytomouskeylisteditor";
248 297
	public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_SPECIMENEDITOR = "eu.etaxonomy.taxeditor.editor.popupmenu.specimeneditor";
249 298
	public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_USESVIEW = "eu.etaxonomy.taxeditor.editor.popupmenu.usesView";
299
	public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_WORKINGSETNAVIGATOR = "eu.etaxonomy.taxeditor.editor.popupmenu.workingSetNavigator";
300
	public static final String TOOLBAR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TOOLBAR_0 = "eu.etaxonomy.taxeditor.editor.toolbar.0";
301
	public static final String TOOLBAR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TOOLBAR_1 = "eu.etaxonomy.taxeditor.editor.toolbar.1";
302
	public static final String TOOLBAR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TOOLBAR_2 = "eu.etaxonomy.taxeditor.editor.toolbar.2";
250 303
}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
45 45
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
46 46
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
47 47
import eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetEditor;
48
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrix;
48
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrixPart;
49 49
import eu.etaxonomy.taxeditor.model.AbstractUtility;
50 50
import eu.etaxonomy.taxeditor.model.MessagingUtils;
51 51
import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
......
89 89
    }
90 90

  
91 91
    public static void openCharacterMatrix(UUID workingSetUuid, EModelService modelService, EPartService partService, MApplication application){
92
        MPart part = partService.createPart("eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrix");
92
        MPart part = partService.createPart(AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_WORKINGSET_MATRIX_CHARACTERMATRIXPART);
93 93
        MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
94 94
        if(editorAreaPartStack!=null){
95 95
            editorAreaPartStack.getChildren().add(part);
96 96
        }
97 97
        part = partService.showPart(part, PartState.ACTIVATE);
98
        CharacterMatrix editor = (CharacterMatrix) part.getObject();
98
        CharacterMatrixPart editor = (CharacterMatrixPart) part.getObject();
99 99
        editor.init(workingSetUuid, true);
100 100
    }
101 101

  
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/charactermatrix/handler/ExportCharacterMatrixHandler.java
10 10
import org.eclipse.nebula.widgets.nattable.export.command.ExportCommand;
11 11
import org.eclipse.swt.widgets.Shell;
12 12

  
13
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrix;
13
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrixPart;
14 14

  
15 15
public class ExportCharacterMatrixHandler {
16 16

  
17 17
	@Execute
18 18
	public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
19 19
	        @Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
20
	    CharacterMatrix characterMatrix = (CharacterMatrix) activePart.getObject();
20
	    CharacterMatrixPart characterMatrix = (CharacterMatrixPart) activePart.getObject();
21 21
	    NatTable natTable = characterMatrix.getNatTable();
22 22
	    natTable.doCommand(new ExportCommand(natTable.getConfigRegistry(), shell));
23 23
	}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/matrix/CharacterMatrix.java
10 10

  
11 11
import java.io.File;
12 12
import java.io.FileInputStream;
13
import java.io.FileOutputStream;
14 13
import java.io.IOException;
15 14
import java.util.ArrayList;
16 15
import java.util.Arrays;
......
22 21
import java.util.Map;
23 22
import java.util.Properties;
24 23
import java.util.Set;
25
import java.util.UUID;
26

  
27
import javax.annotation.PostConstruct;
28
import javax.annotation.PreDestroy;
29
import javax.inject.Inject;
30 24

  
31 25
import org.apache.commons.collections4.map.LinkedMap;
32
import org.eclipse.core.runtime.IProgressMonitor;
33
import org.eclipse.e4.ui.di.Focus;
34
import org.eclipse.e4.ui.di.Persist;
35
import org.eclipse.e4.ui.model.application.ui.MDirtyable;
36
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
37
import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
38 26
import org.eclipse.jface.layout.GridDataFactory;
39 27
import org.eclipse.jface.viewers.ArrayContentProvider;
40 28
import org.eclipse.jface.viewers.ComboViewer;
......
126 114
import ca.odell.glazedlists.GlazedLists;
127 115
import ca.odell.glazedlists.SortedList;
128 116
import ca.odell.glazedlists.TreeList;
129
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
130
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
131
import eu.etaxonomy.cdm.api.service.IWorkingSetService;
132 117
import eu.etaxonomy.cdm.model.description.DescriptionBase;
133 118
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
134 119
import eu.etaxonomy.cdm.model.description.Feature;
......
138 123
import eu.etaxonomy.cdm.model.description.State;
139 124
import eu.etaxonomy.cdm.model.description.WorkingSet;
140 125
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
141
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
142 126
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.categorical.CategoricalDataCellEditor;
143 127
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.categorical.CategoricalDataDisplayConverter;
144 128
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.quantitative.QuantitativeDataCellEditor;
......
146 130
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.supplementalInfo.SupplementalInfoDisplayConverter;
147 131
import eu.etaxonomy.taxeditor.model.ColorResources;
148 132
import eu.etaxonomy.taxeditor.model.DescriptionHelper;
149
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
150
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
151 133
import eu.etaxonomy.taxeditor.model.ImageResources;
152 134
import eu.etaxonomy.taxeditor.model.MessagingUtils;
153 135
import eu.etaxonomy.taxeditor.preference.Resources;
154
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
155
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
156
import eu.etaxonomy.taxeditor.store.CdmStore;
157 136
import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
158
import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
159 137

  
160 138
/**
161 139
 * Character matrix editor for editing specimen/taxon descriptions in a table
......
163 141
 * @since Nov 26, 2017
164 142
 *
165 143
 */
166
public class CharacterMatrix implements IE4SavablePart, IPartContentHasDetails, IConversationEnabled, IDirtyMarkable,
167
ICdmEntitySessionEnabled{
144
public class CharacterMatrix extends Composite {
168 145

  
169 146
    private static final List<String> WS_PROPERTY_PATH = Arrays.asList(new String[] {
170 147
            "descriptions", //$NON-NLS-1$
......
184 161

  
185 162
    private WorkingSet workingSet;
186 163

  
187
    private ConversationHolder conversation;
188

  
189
    private ICdmEntitySession cdmEntitySession;
190

  
191
    @Inject
192
    private ESelectionService selService;
193

  
194
    @Inject
195
    private MDirtyable dirty;
196

  
197
    @Inject
198
    private MPart thisPart;
199

  
200 164
    private NatTable natTable;
201 165

  
202 166
    private Map<Integer, Feature> indexToFeatureMap = new HashMap<>();
......
219 183

  
220 184
    private Label wsLabel;
221 185

  
222
    private Composite parent;
223

  
224 186
    private List<Feature> features;
225 187

  
226 188
    private DisplayPersistenceDialogCommandHandler displayPersistenceDialogCommandHandler;
227 189

  
228
    @PostConstruct
229
    public void create(Composite parent) {
230
        if(CdmStore.isActive() && conversation==null){
231
            conversation = CdmStore.createConversation();
232
        }
233
        if(cdmEntitySession == null){
234
            cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
235
        }
236
        else{
237
            return;
238
        }
239
        this.parent = parent;
240
        parent.setLayout(new GridLayout());
190
    private CharacterMatrixPart part;
241 191

  
242
        Composite toolbarComposite = new Composite(parent, SWT.NONE);
192

  
193
    public CharacterMatrix(Composite parent, CharacterMatrixPart part) {
194
        super(parent, SWT.NONE);
195
        this.part = part;
196
        this.setLayout(new GridLayout());
197

  
198
        Composite toolbarComposite = new Composite(this, SWT.NONE);
243 199
        toolbarComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
244 200
        toolbarComposite.setLayout(new GridLayout(9, false));
245
        natTable = new NatTable(parent, false);
201
        natTable = new NatTable(this, false);
246 202

  
247 203
        wsLabel = new Label(toolbarComposite, SWT.NONE);
248 204

  
......
400 356
            }
401 357
        });
402 358

  
403
        Composite buttonPanel = new Composite(parent, SWT.NONE);
359
        Composite buttonPanel = new Composite(this, SWT.NONE);
404 360

  
405 361
        buttonPanel.setLayout(new RowLayout());
406 362
        GridDataFactory.fillDefaults().grab(true, false).applyTo(buttonPanel);
......
478 434
    }
479 435

  
480 436
    private void toggleTreeFlat(boolean isTree, Button btnToggleFlat, Button btnToggleTree, Button btnCollapseAll, Button btnExpandAll) {
481
        init(workingSet.getUuid(), isTree);
437
        createLayers(isTree);
482 438
        btnToggleFlat.setEnabled(isTree);
483 439
        btnToggleTree.setEnabled(!isTree);
484 440
        btnCollapseAll.setEnabled(isTree);
......
486 442
        natTable.doCommand(new ClientAreaResizeCommand(natTable));
487 443
    }
488 444

  
489
    public void init(UUID workingSetUuid, boolean treeView) {
490
        if(workingSet==null){
491
            this.workingSet = CdmStore.getService(IWorkingSetService.class).load(workingSetUuid, WS_PROPERTY_PATH);
492
            if(workingSet.getDescriptiveSystem()==null){
493
                MessagingUtils.informationDialog("Editor could not be opened", "The working set has no feature tree selected.");
494
                return;
445
    public void initWorkingSet(WorkingSet workingSet){
446
        this.workingSet = workingSet;
447
        //get features/columns stored in working set
448
        FeatureTree tree = workingSet.getDescriptiveSystem();
449
        features = new ArrayList<>(tree.getDistinctFeatures());
450
        Collections.sort(features);
451
        //init state data for categorical features
452
        features.forEach(feature->
453
        {
454
            if(feature.isSupportsCategoricalData()){
455
                List<State> supportedStates = new ArrayList<>();
456
                feature.getSupportedCategoricalEnumerations().forEach(voc->supportedStates.addAll(voc.getTerms()));
457
                categoricalFeatureToStateMap.put(feature, supportedStates);
495 458
            }
496
            thisPart.setLabel(workingSet.getLabel());
497

  
498
            //get features/columns stored in working set
499
            FeatureTree tree = workingSet.getDescriptiveSystem();
500
            features = new ArrayList<>(tree.getDistinctFeatures());
501
            Collections.sort(features);
502
            //init state data for categorical features
503
            features.forEach(feature->
504
            {
505
                if(feature.isSupportsCategoricalData()){
506
                    List<State> supportedStates = new ArrayList<>();
507
                    feature.getSupportedCategoricalEnumerations().forEach(voc->supportedStates.addAll(voc.getTerms()));
508
                    categoricalFeatureToStateMap.put(feature, supportedStates);
509
                }
510
            });
459
        });
460
        descriptions = GlazedLists.eventList(getDescriptions(workingSet));
511 461

  
512
            descriptions = GlazedLists.eventList(getDescriptions(workingSet));
513
        }
462
    }
463

  
464
    public void createLayers(boolean treeView) {
514 465
        // use the SortedList constructor with 'null' for the Comparator
515 466
        // because the Comparator will be set by configuration
516 467
        SortedList<Object> sortedList = new SortedList<>(descriptions, new MatrixRowComparator());
......
796 747
                                selection = new StructuredSelection(dataValue);
797 748
                            }
798 749
                        }
799
                        selService.setSelection(selection);
750
                        part.getSelectionService().setSelection(selection);
800 751
                    }
801 752
                }
802 753
            }
......
815 766

  
816 767
        freezeSupplementalColumns(true);
817 768

  
818
        parent.layout();
769
        this.layout();
819 770

  
820 771
        natTable.addConfiguration(new DefaultFreezeGridBindings());
821 772

  
......
1004 955
    }
1005 956

  
1006 957
    public void setDirty() {
1007
        this.dirty.setDirty(true);
958
        part.setDirty();
1008 959
    }
1009 960

  
1010 961
    public NatTable getNatTable() {
......
1023 974
        this.specimenCache = specimenCache;
1024 975
    }
1025 976

  
1026
    /**
1027
     * @return the bodyDataProvider
1028
     */
1029
    public ListDataProvider<Object> getBodyDataProvider() {
1030
        return bodyDataProvider;
1031
    }
1032

  
1033
    @Persist
1034
    @Override
1035
    public void save(IProgressMonitor monitor) {
1036
        CdmStore.getService(IWorkingSetService.class).merge(workingSet, true);
1037
        conversation.commit();
1038
        dirty.setDirty(false);
977
    public Properties getNatTableState() {
978
        return natTableState;
1039 979
    }
1040 980

  
1041
    @Focus
1042
    public void setFocus(){
1043
        if(conversation!=null){
1044
            conversation.bind();
1045
        }
1046
        if(cdmEntitySession != null) {
1047
            cdmEntitySession.bind();
1048
        }
1049
    }
1050

  
1051
    @PreDestroy
1052
    public void dispose(){
1053
        if (conversation != null) {
1054
            conversation.close();
1055
            conversation = null;
1056
        }
1057
        if(cdmEntitySession != null) {
1058
            cdmEntitySession.dispose();
1059
            cdmEntitySession = null;
1060
        }
1061
        dirty.setDirty(false);
1062
        if(natTableState!=null){
1063
            try (FileOutputStream tableStateStream =
1064
                    new FileOutputStream(getStatePropertiesFile())) {
1065
                natTableState.store(tableStateStream, null);
1066
            } catch (IOException ioe) {
1067
                ioe.printStackTrace();
1068
            }
1069
        }
981
    public ListDataProvider<Object> getBodyDataProvider() {
982
        return bodyDataProvider;
1070 983
    }
1071 984

  
1072 985
    private File getStatePropertiesFile() {
1073 986
        return new File(WorkbenchUtility.getBaseLocation(), CHARACTER_MATRIX_STATE_PROPERTIES);
1074 987
    }
1075 988

  
1076
    /**
1077
     * {@inheritDoc}
1078
     */
1079
    @Override
1080
    public void update(CdmDataChangeMap arg0) {
1081
    }
1082

  
1083
    /**
1084
     * {@inheritDoc}
1085
     */
1086
    @Override
1087
    public ConversationHolder getConversationHolder() {
1088
        return conversation;
1089
    }
1090

  
1091
    /**
1092
     * {@inheritDoc}
1093
     */
1094
    @Override
1095
    public void changed(Object element) {
1096
        setDirty();
1097
        natTable.refresh();
1098
    }
1099

  
1100
    /**
1101
     * {@inheritDoc}
1102
     */
1103
    @Override
1104
    public void forceDirty() {
1105
        setDirty();
1106
    }
1107

  
1108

  
1109
    /**
1110
     * {@inheritDoc}
1111
     */
1112
    @Override
1113
    public ICdmEntitySession getCdmEntitySession() {
1114
        return cdmEntitySession;
1115
    }
1116

  
1117

  
1118
    /**
1119
     * {@inheritDoc}
1120
     */
1121
    @Override
1122
    public Collection<WorkingSet> getRootEntities() {
1123
        return Collections.singleton(this.workingSet);
1124
    }
1125

  
1126

  
1127
    /**
1128
     * {@inheritDoc}
1129
     */
1130
    @Override
1131
    public Map<Object, List<String>> getPropertyPathsMap() {
1132
        Map<Object, List<String>> propertyMap = new HashMap<>();
1133
        propertyMap.put(SpecimenOrObservationBase.class,WS_PROPERTY_PATH);
1134
        return propertyMap;
1135
    }
1136

  
1137 989
}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/matrix/CharacterMatrixPart.java
1
/**
2
 * Copyright (C) 2017 EDIT
3
 * European Distributed Institute of Taxonomy
4
 * http://www.e-taxonomy.eu
5
 *
6
 * The contents of this file are subject to the Mozilla Public License Version 1.1
7
 * See LICENSE.TXT at the top of this package for the full license terms.
8
 */
9
package eu.etaxonomy.taxeditor.editor.workingSet.matrix;
10

  
11
import java.io.File;
12
import java.io.FileOutputStream;
13
import java.io.IOException;
14
import java.util.Arrays;
15
import java.util.Collection;
16
import java.util.Collections;
17
import java.util.HashMap;
18
import java.util.List;
19
import java.util.Map;
20
import java.util.UUID;
21

  
22
import javax.annotation.PostConstruct;
23
import javax.annotation.PreDestroy;
24
import javax.inject.Inject;
25

  
26
import org.eclipse.core.runtime.IProgressMonitor;
27
import org.eclipse.e4.ui.di.Focus;
28
import org.eclipse.e4.ui.di.Persist;
29
import org.eclipse.e4.ui.model.application.ui.MDirtyable;
30
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
31
import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
32
import org.eclipse.nebula.widgets.nattable.NatTable;
33
import org.eclipse.swt.widgets.Composite;
34

  
35
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
36
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
37
import eu.etaxonomy.cdm.api.service.IWorkingSetService;
38
import eu.etaxonomy.cdm.model.description.WorkingSet;
39
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
40
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
41
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
42
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
43
import eu.etaxonomy.taxeditor.model.MessagingUtils;
44
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
45
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
46
import eu.etaxonomy.taxeditor.store.CdmStore;
47
import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
48
import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
49

  
50
/**
51
 * Character matrix editor for editing specimen/taxon descriptions in a table
52
 * @author pplitzner
53
 * @since Nov 26, 2017
54
 *
55
 */
56
public class CharacterMatrixPart implements IE4SavablePart, IPartContentHasDetails, IConversationEnabled, IDirtyMarkable,
57
ICdmEntitySessionEnabled{
58

  
59
    private static final List<String> WS_PROPERTY_PATH = Arrays.asList(new String[] {
60
            "descriptions", //$NON-NLS-1$
61
            "descriptions.descriptionElements", //$NON-NLS-1$
62
            "descriptions.descriptionElements.inDescription", //$NON-NLS-1$
63
            "descriptions.descriptionElements.inDescription.descriptionElements", //$NON-NLS-1$
64
            "descriptions.descriptionElements.feature", //$NON-NLS-1$
65
    });
66

  
67
    private static final String CHARACTER_MATRIX_STATE_PROPERTIES = "characterMatrixState.properties";
68

  
69
    private WorkingSet workingSet;
70

  
71
    private ConversationHolder conversation;
72

  
73
    private ICdmEntitySession cdmEntitySession;
74

  
75
    @Inject
76
    private ESelectionService selService;
77

  
78
    @Inject
79
    private MDirtyable dirty;
80

  
81
    @Inject
82
    private MPart thisPart;
83

  
84
    private CharacterMatrix matrix;
85

  
86
    @PostConstruct
87
    public void create(Composite parent) {
88
        if(CdmStore.isActive() && conversation==null){
89
            conversation = CdmStore.createConversation();
90
        }
91
        if(cdmEntitySession == null){
92
            cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
93
        }
94
        else{
95
            return;
96
        }
97
        matrix = new CharacterMatrix(parent, this);
98
    }
99

  
100
    public void init(UUID workingSetUuid, boolean treeView) {
101
        this.workingSet = CdmStore.getService(IWorkingSetService.class).load(workingSetUuid, WS_PROPERTY_PATH);
102
        if(workingSet!=null){
103
            if(workingSet.getDescriptiveSystem()==null){
104
                MessagingUtils.informationDialog("Editor could not be opened", "The working set has no feature tree selected.");
105
                return;
106
            }
107
            matrix.initWorkingSet(workingSet);
108
            matrix.createLayers(treeView);
109
            thisPart.setLabel(workingSet.getLabel());
110
        }
111
    }
112

  
113
    public void setDirty() {
114
        this.dirty.setDirty(true);
115
    }
116

  
117
    public WorkingSet getWorkingSet() {
118
        return workingSet;
119
    }
120

  
121
    private File getStatePropertiesFile() {
122
        return new File(WorkbenchUtility.getBaseLocation(), CHARACTER_MATRIX_STATE_PROPERTIES);
123
    }
124

  
125
    public NatTable getNatTable() {
126
        return matrix.getNatTable();
127
    }
128

  
129
    public ESelectionService getSelectionService() {
130
        return selService;
131
    }
132

  
133
    @Persist
134
    @Override
135
    public void save(IProgressMonitor monitor) {
136
        CdmStore.getService(IWorkingSetService.class).merge(workingSet, true);
137
        conversation.commit();
138
        dirty.setDirty(false);
139
    }
140

  
141
    @Focus
142
    public void setFocus(){
143
        if(conversation!=null){
144
            conversation.bind();
145
        }
146
        if(cdmEntitySession != null) {
147
            cdmEntitySession.bind();
148
        }
149
    }
150

  
151
    @PreDestroy
152
    public void dispose(){
153
        if (conversation != null) {
154
            conversation.close();
155
            conversation = null;
156
        }
157
        if(cdmEntitySession != null) {
158
            cdmEntitySession.dispose();
159
            cdmEntitySession = null;
160
        }
161
        dirty.setDirty(false);
162
        if(matrix.getNatTableState()!=null){
163
            try (FileOutputStream tableStateStream =
164
                    new FileOutputStream(getStatePropertiesFile())) {
165
                matrix.getNatTableState().store(tableStateStream, null);
166
            } catch (IOException ioe) {
167
                ioe.printStackTrace();
168
            }
169
        }
170
    }
171

  
172
    @Override
173
    public void update(CdmDataChangeMap arg0) {
174
    }
175

  
176
    @Override
177
    public ConversationHolder getConversationHolder() {
178
        return conversation;
179
    }
180

  
181
    @Override
182
    public void changed(Object element) {
183
        setDirty();
184
        matrix.getNatTable().refresh();
185
    }
186

  
187
    @Override
188
    public void forceDirty() {
189
        setDirty();
190
    }
191

  
192
    @Override
193
    public ICdmEntitySession getCdmEntitySession() {
194
        return cdmEntitySession;
195
    }
196

  
197
    @Override
198
    public Collection<WorkingSet> getRootEntities() {
199
        return Collections.singleton(this.workingSet);
200
    }
201

  
202
    @Override
203
    public Map<Object, List<String>> getPropertyPathsMap() {
204
        Map<Object, List<String>> propertyMap = new HashMap<>();
205
        propertyMap.put(SpecimenOrObservationBase.class,WS_PROPERTY_PATH);
206
        return propertyMap;
207
    }
208

  
209
}

Also available in: Unified diff

Add picture from clipboard (Maximum size: 40 MB)