Project

General

Profile

« Previous | Next » 

Revision 8079fdb3

Added by Patrick Plitzner over 6 years ago

ref #7086, #7095 Added "Open in..." menu for WS and matrix editor

View differences:

eu.etaxonomy.taxeditor.editor/fragment.e4xmi
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 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"/>
234
    <elements xsi:type="basic:PartDescriptor" xmi:id="_XcQMEN8mEee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetNavigator" label="Working Set Navigator" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetNavigator"/>
234
    <elements xsi:type="basic:PartDescriptor" xmi:id="_XcQMEN8mEee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetNavigator" label="Working Set Navigator" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetNavigator">
235
      <handlers xmi:id="_JvYVgNXoEeeLtdyzt6BEAA" elementId="eu.etaxonomy.taxeditor.editor.workingSet.handler.OpenCharacterMatrixHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.workingSet.handler.OpenCharacterMatrixHandler" command="_FnWwMNXoEeeLtdyzt6BEAA"/>
236
      <handlers xmi:id="_SQL_wN86Eee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.workingSet.handler.OpenWorkingSetEditorHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.workingSet.handler.OpenWorkingSetEditorHandler" command="_xdCSwN85Eee9zP45RW4C3A"/>
237
      <menus xsi:type="menu:PopupMenu" xmi:id="__S3vQN87Eee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.workingSetNavigator">
238
        <children xsi:type="menu:DynamicMenuContribution" xmi:id="_BRxE4N88Eee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.workingSetNavigator.dynamicmenucontribution.cdmViewer" label="Open in..." contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
239
      </menus>
240
    </elements>
235 241
  </fragments>
236 242
  <fragments xsi:type="fragment:StringModelFragment" xmi:id="__mwtMDVpEee_b7RlBzTDRw" featurename="commands" parentElementId="xpath:/">
237 243
    <elements xsi:type="commands:Command" xmi:id="_BjF3ADVqEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.command.specimeneditor.create_field_unit" commandName="%command.commandname.1"/>
......
302 308
    <elements xsi:type="commands:Command" xmi:id="_2vSfgK21EeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.editor.command.new.team" commandName="%command.name.25"/>
303 309
    <elements xsi:type="commands:Command" xmi:id="_4nv18K21EeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.editor.command.new.person" commandName="%command.name.26"/>
304 310
    <elements xsi:type="commands:Command" xmi:id="_FnWwMNXoEeeLtdyzt6BEAA" elementId="eu.etaxonomy.taxeditor.editor.command.workingSet.openCharacterMatrix" commandName="Open Character Matrix"/>
311
    <elements xsi:type="commands:Command" xmi:id="_xdCSwN85Eee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.command.workingSet.openWorkingSetEditor" commandName="Open Working Set Editor"/>
305 312
  </fragments>
306 313
  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_pZmusEalEeeXMc6kSYO7Xg" featurename="children" parentElementId="eu.etaxonomy.taxeditor.menu.showView" positionInList="after:eu.etaxonomy.taxeditor.workbench.menuseparator.navigation">
307 314
    <elements xsi:type="menu:HandledMenuItem" xmi:id="_5s52EIZ3EeeOc9DZcjNN7g" elementId="eu.etaxonomy.taxeditor.editor.showViewMenu.concept" label="%command.label.6" tooltip="%command.label.6" command="_WPjpoDSnEeek0dKsFNy--Q">
......
320 327
      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_WbFAcKNxEeebGZ23ERGMGw" coreExpressionId="isCdmStoreConnectedAndShowExperimental"/>
321 328
      <parameters xmi:id="_FPIuUaNwEeebGZ23ERGMGw" elementId="eu.etaxonomy.taxeditor.editor.showView.parameter.conceptGraph" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.editor.view.concept.graph.e4.ConceptGraphViewE4"/>
322 329
    </elements>
323
    <elements xsi:type="menu:HandledMenuItem" xmi:id="_QvOWgM7XEeex0rHJ7p8Zdw" elementId="eu.etaxonomy.taxeditor.editor.showViewMenu.workingSetEditor" label="Working Set Editor" tooltip="Working Set Editor" command="_WPjpoDSnEeek0dKsFNy--Q">
330
    <elements xsi:type="menu:HandledMenuItem" xmi:id="_QvOWgM7XEeex0rHJ7p8Zdw" elementId="eu.etaxonomy.taxeditor.editor.showViewMenu.workingSetNavigator" label="Working Set Navigator" tooltip="Working Set Navigator" command="_WPjpoDSnEeek0dKsFNy--Q">
324 331
      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_ph1OQN5eEeeLp7mUPmwRWA" coreExpressionId="isCdmStoreConnected"/>
325
      <parameters xmi:id="_APYkQN5fEeeLp7mUPmwRWA" elementId="eu.etaxonomy.taxeditor.editor.showView.parameter.workingSetEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.editor.view.workingSet.WorkingSetEditor"/>
326
    </elements>
327
    <elements xsi:type="menu:HandledMenuItem" xmi:id="_jIucENK2EeeWSJT7vW9jsw" elementId="eu.etaxonomy.taxeditor.editor.showViewMenu.matrixEditor" label="Character Matrix" tooltip="Character Matrix" command="_FnWwMNXoEeeLtdyzt6BEAA">
328
      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_9btiwN5eEeeLp7mUPmwRWA" coreExpressionId="isCdmStoreConnected"/>
329
    </elements>
330
    <elements xsi:type="menu:HandledMenuItem" xmi:id="_jPiz8N8mEee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.showViewMenu.workingSetNavigator" label="Working Set Navigator" tooltip="Working Set Navigator" command="_WPjpoDSnEeek0dKsFNy--Q">
331
      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_jPjbAN8mEee9zP45RW4C3A" coreExpressionId="isCdmStoreConnected"/>
332
      <parameters xmi:id="_jPjbAd8mEee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.showView.parameter.workingSetNavigator" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetNavigator"/>
332
      <parameters xmi:id="_APYkQN5fEeeLp7mUPmwRWA" elementId="eu.etaxonomy.taxeditor.editor.showView.parameter.workingSetEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetNavigator"/>
333 333
    </elements>
334 334
  </fragments>
335 335
  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_P9N9YJMkEeeR4YRjNqCKeA" featurename="handlers" parentElementId="xpath:/">
......
345 345
    <elements xsi:type="commands:Handler" xmi:id="_Xi9w8K22EeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.editor.handler.create.NewNameHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.handler.create.NewNameHandler" command="_1CaG8K21EeeykrJkROy5EA"/>
346 346
    <elements xsi:type="commands:Handler" xmi:id="_ahCroK22EeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.editor.handler.create.NewTeamHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.handler.create.NewTeamHandler" command="_2vSfgK21EeeykrJkROy5EA"/>
347 347
    <elements xsi:type="commands:Handler" xmi:id="_c0Ba4K22EeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.editor.handler.create.NewPersonHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.handler.create.NewPersonHandler" command="_4nv18K21EeeykrJkROy5EA"/>
348
    <elements xsi:type="commands:Handler" xmi:id="_JvYVgNXoEeeLtdyzt6BEAA" elementId="eu.etaxonomy.taxeditor.editor.workingSet.handler.OpenCharacterMatrixHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.workingSet.handler.OpenCharacterMatrixHandler" command="_FnWwMNXoEeeLtdyzt6BEAA"/>
349 348
  </fragments>
350 349
  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_OyvD8KNOEee5fYT78qEx0A" featurename="children" parentElementId="bulkeditor.menus.openmenu" positionInList="last">
351 350
    <elements xsi:type="menu:HandledMenuItem" xmi:id="_SZZBkKNOEee5fYT78qEx0A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.specimen_editor" label="%command.label.DERIVATIVE_EDITOR" tooltip="%command.label.DERIVATIVE_EDITOR" command="_PDjFMLsKEeeQJq8FDGEi1g"/>
eu.etaxonomy.taxeditor.editor/plugin.xml
604 604
            selection="eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase"
605 605
            viewerName="Specimen Editor">
606 606
      </viewCommandMapping>
607
      <viewCommandMapping
608
            commandId="eu.etaxonomy.taxeditor.editor.command.workingSet.openWorkingSetEditor"
609
            selection="eu.etaxonomy.cdm.model.description.WorkingSet"
610
            viewerName="Working Set Editor">
611
      </viewCommandMapping>
612
      <viewCommandMapping
613
            commandId="eu.etaxonomy.taxeditor.editor.command.workingSet.openCharacterMatrix"
614
            selection="eu.etaxonomy.cdm.model.description.WorkingSet"
615
            viewerName="Character Matrix">
616
      </viewCommandMapping>
617
      <viewCommandMapping
618
            commandId="eu.etaxonomy.taxeditor.editor.command.workingSet.openWorkingSetEditor"
619
            selection="eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache"
620
            viewerName="Working Set Editor">
621
      </viewCommandMapping>
607 622
    </extension>
608 623
   <extension
609 624
         id="eu.etaxonomy.taxeditor.editor.workbench.model"
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
43 43
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
44 44
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
45 45
import eu.etaxonomy.taxeditor.editor.workingSet.WorkingSetEditor;
46
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrix;
46 47
import eu.etaxonomy.taxeditor.model.AbstractUtility;
47 48
import eu.etaxonomy.taxeditor.model.MessagingUtils;
48 49
import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
......
81 82
            editorAreaPartStack.getChildren().add(part);
82 83
        }
83 84
        part = partService.showPart(part, PartState.ACTIVATE);
84
        WorkingSetEditor derivateView = (WorkingSetEditor) part.getObject();
85
        derivateView.init(workingSetUuid);
85
        WorkingSetEditor editor = (WorkingSetEditor) part.getObject();
86
        editor.init(workingSetUuid);
87
    }
88

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

  
88 100
    public static void openSpecimenEditor(DerivateViewEditorInput input, EModelService modelService, EPartService partService, MApplication application){
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/WorkingSetNavigator.java
12 12
import java.util.List;
13 13

  
14 14
import javax.annotation.PostConstruct;
15
import javax.inject.Inject;
15 16

  
16 17
import org.eclipse.e4.ui.model.application.MApplication;
18
import org.eclipse.e4.ui.services.EMenuService;
17 19
import org.eclipse.e4.ui.workbench.modeling.EModelService;
18 20
import org.eclipse.e4.ui.workbench.modeling.EPartService;
21
import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
19 22
import org.eclipse.jface.viewers.ArrayContentProvider;
20 23
import org.eclipse.jface.viewers.DoubleClickEvent;
21 24
import org.eclipse.jface.viewers.IDoubleClickListener;
22 25
import org.eclipse.jface.viewers.ISelection;
26
import org.eclipse.jface.viewers.ISelectionChangedListener;
23 27
import org.eclipse.jface.viewers.IStructuredSelection;
24 28
import org.eclipse.jface.viewers.ListViewer;
25 29
import org.eclipse.swt.widgets.Composite;
......
28 32
import eu.etaxonomy.cdm.model.description.WorkingSet;
29 33
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
30 34
import eu.etaxonomy.taxeditor.editor.EditorUtil;
35
import eu.etaxonomy.taxeditor.model.AbstractUtility;
31 36
import eu.etaxonomy.taxeditor.store.CdmStore;
32 37
import eu.etaxonomy.taxeditor.ui.UuidAndTitleCacheLabelProvider;
33 38

  
......
40 45

  
41 46
    private ListViewer viewer;
42 47

  
48
    @Inject
49
    private ESelectionService selService;
50

  
51
    private ISelectionChangedListener selectionChangedListener;
52

  
43 53
    @PostConstruct
44
    public void create(Composite parent, EPartService partService, EModelService modelService, MApplication application){
54
    public void create(Composite parent, EPartService partService, EModelService modelService, MApplication application,
55
            EMenuService menuService){
45 56
        viewer = new ListViewer(parent);
46 57
        viewer.setContentProvider(new ArrayContentProvider());
47 58
        viewer.setLabelProvider(new UuidAndTitleCacheLabelProvider());
......
59 70
                }
60 71
            }
61 72
        });
73

  
74
        //propagate selection
75
       selectionChangedListener = (event -> selService.setSelection(AbstractUtility.getElementsFromSelectionChangedEvent(event)));
76
       viewer.addSelectionChangedListener(selectionChangedListener);
77

  
78
        //create context menu
79
        menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.editor.popupmenu.workingSetNavigator");
62 80
    }
63 81

  
64 82
}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/handler/OpenCharacterMatrixHandler.java
1 1

  
2 2
package eu.etaxonomy.taxeditor.editor.workingSet.handler;
3 3

  
4
import org.eclipse.e4.core.di.annotations.Execute;
5
import org.eclipse.e4.ui.model.application.MApplication;
6
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
7
import org.eclipse.e4.ui.model.application.ui.basic.MPartStack;
8
import org.eclipse.e4.ui.workbench.modeling.EModelService;
4
import java.util.UUID;
5

  
9 6
import org.eclipse.e4.ui.workbench.modeling.EPartService;
10
import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
11 7
import org.eclipse.swt.widgets.Shell;
12 8

  
9
import eu.etaxonomy.cdm.api.service.IWorkingSetService;
13 10
import eu.etaxonomy.cdm.model.description.WorkingSet;
14
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrix;
15
import eu.etaxonomy.taxeditor.ui.dialog.selection.WorkingSetSelectionDialog;
16
import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
17

  
18
public class OpenCharacterMatrixHandler {
19

  
20
	@Execute
21
	public void execute(Shell shell, EPartService partService, MApplication application, EModelService modelService) {
22
	    WorkingSet workingSet = WorkingSetSelectionDialog.select(shell, null);
23
	    if(workingSet==null){
24
	        return;
25
	    }
26
	    MPart part = partService.createPart("eu.etaxonomy.taxeditor.editor.workingSet.matrix.CharacterMatrix");
27

  
28
        MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
29
        if(editorAreaPartStack!=null){
30
            editorAreaPartStack.getChildren().add(part);
31
        }
32
        part = partService.showPart(part, PartState.ACTIVATE);
33

  
34
        CharacterMatrix editor = (CharacterMatrix) part.getObject();
35
        editor.init(workingSet);
36

  
37
	}
11
import eu.etaxonomy.taxeditor.editor.EditorUtil;
12
import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
13
import eu.etaxonomy.taxeditor.store.CdmStore;
14

  
15
public class OpenCharacterMatrixHandler extends DefaultOpenHandlerBaseE4<WorkingSet>{
16

  
17
    /**
18
     * {@inheritDoc}
19
     */
20
    @Override
21
    protected WorkingSet getEntity(UUID uuid) {
22
        return CdmStore.getService(IWorkingSetService.class).load(uuid);
23
    }
24

  
25
    @Override
26
    protected void open(WorkingSet entity, Shell shell, EPartService partService) {
27
        EditorUtil.openCharacterMatrix(entity.getUuid(), modelService, partService, application);
28
    }
29

  
30
    /**
31
     * {@inheritDoc}
32
     */
33
    @Override
34
    protected boolean canExecute(WorkingSet entity) {
35
        return true;
36
    }
38 37

  
39 38
}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/handler/OpenWorkingSetEditorHandler.java
1

  
2
package eu.etaxonomy.taxeditor.editor.workingSet.handler;
3

  
4
import java.util.UUID;
5

  
6
import org.eclipse.e4.ui.workbench.modeling.EPartService;
7
import org.eclipse.swt.widgets.Shell;
8

  
9
import eu.etaxonomy.cdm.api.service.IWorkingSetService;
10
import eu.etaxonomy.cdm.model.description.WorkingSet;
11
import eu.etaxonomy.taxeditor.editor.EditorUtil;
12
import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
13
import eu.etaxonomy.taxeditor.store.CdmStore;
14

  
15
public class OpenWorkingSetEditorHandler extends DefaultOpenHandlerBaseE4<WorkingSet>{
16

  
17
    /**
18
     * {@inheritDoc}
19
     */
20
    @Override
21
    protected WorkingSet getEntity(UUID uuid) {
22
        return CdmStore.getService(IWorkingSetService.class).load(uuid);
23
    }
24

  
25
    @Override
26
    protected void open(WorkingSet entity, Shell shell, EPartService partService) {
27
        EditorUtil.openWorkingSetEditor(entity.getUuid(), modelService, partService, application);
28
    }
29

  
30
    /**
31
     * {@inheritDoc}
32
     */
33
    @Override
34
    protected boolean canExecute(WorkingSet entity) {
35
        return true;
36
    }
37

  
38
}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/matrix/CharacterMatrix.java
13 13
import java.util.Collections;
14 14
import java.util.List;
15 15
import java.util.Set;
16
import java.util.UUID;
16 17

  
17 18
import javax.annotation.PostConstruct;
18 19
import javax.annotation.PreDestroy;
......
130 131
    }
131 132

  
132 133

  
133
    public void init(WorkingSet workingSet) {
134
        this.workingSet = workingSet;
134
    public void init(UUID workingSetUuid) {
135
        this.workingSet = CdmStore.getService(IWorkingSetService.class).load(workingSetUuid);
135 136
        thisPart.setLabel(workingSet.getLabel());
136 137

  
137 138
        //get features/columns stored in working set

Also available in: Unified diff