Revision 2d8daa57
Added by Patrick Plitzner almost 7 years ago
eu.etaxonomy.taxeditor.bulkeditor/META-INF/MANIFEST.MF | ||
---|---|---|
21 | 21 |
eu.etaxonomy.taxeditor.store, |
22 | 22 |
eu.etaxonomy.taxeditor.cdmlib, |
23 | 23 |
org.eclipse.e4.ui.model.workbench;bundle-version="1.2.0.v20160229-1459", |
24 |
org.eclipse.e4.ui.workbench |
|
24 |
org.eclipse.e4.ui.workbench, |
|
25 |
org.eclipse.e4.core.di.annotations;bundle-version="1.5.0" |
|
25 | 26 |
Bundle-RequiredExecutionEnvironment: JavaSE-1.8 |
26 | 27 |
Import-Package: eu.etaxonomy.taxeditor.editor, |
27 | 28 |
org.eclipse.core.runtime, |
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/defaultHandler/OpenBulkEditorForIdentifiableEntityE4.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.util.UUID; |
4 | 4 |
|
5 |
import org.eclipse.e4.core.di.annotations.Execute; |
|
6 |
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem; |
|
5 | 7 |
import org.eclipse.ui.PartInitException; |
6 | 8 |
|
7 | 9 |
import eu.etaxonomy.cdm.model.common.IdentifiableEntity; |
8 | 10 |
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil; |
9 |
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBaseE4; |
|
10 | 11 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
11 | 12 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
12 | 13 |
|
13 |
public class OpenBulkEditorForIdentifiableEntityE4 extends DefaultOpenHandlerBaseE4<IdentifiableEntity> {
|
|
14 |
public class OpenBulkEditorForIdentifiableEntityE4 { |
|
14 | 15 |
|
15 |
@Override |
|
16 |
protected IdentifiableEntity getEntity(UUID uuid) { |
|
17 |
return CdmStore.getCommonService().find(IdentifiableEntity.class, uuid); |
|
18 |
} |
|
19 |
|
|
20 |
@Override |
|
21 |
protected void open(IdentifiableEntity entity) { |
|
16 |
@Execute |
|
17 |
public void execute(MHandledMenuItem menuItem) { |
|
18 |
String commandId = menuItem.getCommand().getElementId(); |
|
19 |
UUID uuid = (UUID) menuItem.getTransientData().get(commandId+".uuid"); |
|
20 |
IdentifiableEntity entity = CdmStore.getCommonService().find(IdentifiableEntity.class, uuid); |
|
22 | 21 |
try { |
23 | 22 |
BulkEditorUtil.openEditor(entity); |
24 | 23 |
} catch (PartInitException e) { |
... | ... | |
26 | 25 |
} |
27 | 26 |
} |
28 | 27 |
|
29 |
|
|
30 | 28 |
} |
eu.etaxonomy.taxeditor.editor/fragment.e4xmi | ||
---|---|---|
3 | 3 |
<imports xsi:type="commands:Command" xmi:id="_WPjpoDSnEeek0dKsFNy--Q" elementId="eu.etaxonomy.taxeditor.command.openPart"/> |
4 | 4 |
<imports xsi:type="commands:Command" xmi:id="_Qz6EMD62EeekvPZafWEv7w" elementId="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity"/> |
5 | 5 |
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_gSpRsDQDEeeTNOFVGI4q2w" featurename="descriptors" parentElementId="xpath:/"> |
6 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_gSpRsTQDEeeTNOFVGI4q2w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView" label="%command.label.DERIVATIVE_EDITOR" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/derivate_view-16x16-32.png" tooltip="" allowMultiple="true" category="Sample Category" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView"> |
|
6 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_gSpRsTQDEeeTNOFVGI4q2w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView" label="%command.label.DERIVATIVE_EDITOR" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/derivate_view-16x16-32.png" tooltip="%command.label.DERIVATIVE_EDITOR" allowMultiple="true" category="Sample Category" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
|
|
7 | 7 |
<tags>View</tags> |
8 | 8 |
<tags>categoryTag:Sample Category</tags> |
9 | 9 |
<handlers xmi:id="_E5l4wDVqEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler" command="_BjF3ADVqEee_b7RlBzTDRw"/> |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java | ||
---|---|---|
84 | 84 |
private static final String SPECIMEN_EDITOR = Messages.DerivateView_SPECIMEN_EDITOR; |
85 | 85 |
|
86 | 86 |
public static final String ID = "eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView"; //$NON-NLS-1$ |
87 |
public static final String INPUT_ID = ID+".editorInput"; //$NON-NLS-1$ |
|
87 | 88 |
|
88 | 89 |
public static final String YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION = Messages.DerivateView_YOU_NEED_TO_SAVE; |
89 | 90 |
public static final String VIEW_HAS_UNSAVED_CHANGES = Messages.DerivateView_UNSAVED_CHANGES; |
... | ... | |
155 | 156 |
public DerivateView() { |
156 | 157 |
} |
157 | 158 |
|
158 |
|
|
159 | 159 |
/** |
160 | 160 |
* {@inheritDoc} |
161 | 161 |
*/ |
162 |
private void init(){
|
|
162 |
public void init(DerivateViewEditorInput editorInput){
|
|
163 | 163 |
this.derivateToRootEntityMap = new HashMap<SpecimenOrObservationBase<?>, SpecimenOrObservationBase<?>>(); |
164 | 164 |
this.rootElements = new HashSet<SpecimenOrObservationBase<?>>(); |
165 | 165 |
|
166 |
//init tree |
|
167 |
Collection<UUID> derivativeUuids = editorInput.getDerivativeUuids(); |
|
168 |
checkWarnThreshold(derivativeUuids); |
|
169 |
updateRootEntities(derivativeUuids); |
|
170 |
//set taxon filter |
|
171 |
derivateSearchCompositeController.setTaxonFilter(editorInput.getTaxonUuid()); |
|
172 |
//reset status bar |
|
173 |
//TODO e4 |
|
174 |
// getEditorSite().getActionBars().getStatusLineManager().setMessage(""); //$NON-NLS-1$ |
|
175 |
} |
|
176 |
|
|
177 |
@PostConstruct |
|
178 |
public void createPartControl(Composite parent, EMenuService menuService) { |
|
166 | 179 |
if (CdmStore.isActive() && conversation == null) { |
167 | 180 |
conversation = CdmStore.createConversation(); |
168 | 181 |
} |
... | ... | |
171 | 184 |
} |
172 | 185 |
//listen to context changes |
173 | 186 |
CdmStore.getContextManager().addContextListener(this); |
174 |
} |
|
175 |
|
|
176 |
@PostConstruct |
|
177 |
public void createPartControl(Composite parent, EMenuService menuService) { |
|
178 |
init(); |
|
179 | 187 |
|
180 | 188 |
parent.setLayout(new GridLayout()); |
181 | 189 |
|
... | ... | |
211 | 219 |
|
212 | 220 |
//create context menu |
213 | 221 |
menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.editor.popupmenu.specimeneditor"); |
214 |
// MenuManager menuManager = new MenuManager(); |
|
215 |
// menuManager.setRemoveAllWhenShown(true); |
|
216 |
// getSite().registerContextMenu(menuManager, viewer); |
|
217 |
// Control control = viewer.getControl(); |
|
218 |
// Menu menu = menuManager.createContextMenu(control); |
|
219 |
// control.setMenu(menu); |
|
220 |
|
|
221 |
//init tree |
|
222 |
//TODO e4 |
|
223 |
// Collection<UUID> derivativeUuids = ((DerivateViewEditorInput)getEditorInput()).getDerivativeUuids(); |
|
224 |
// checkWarnThreshold(derivativeUuids); |
|
225 |
// updateRootEntities(derivativeUuids); |
|
226 |
// set taxon filter |
|
227 |
//TODO e4 |
|
228 |
// derivateSearchCompositeController.setTaxonFilter(((DerivateViewEditorInput) getEditorInput()).getTaxonUuid()); |
|
229 |
//reset status bar |
|
230 |
//TODO e4 |
|
231 |
// getEditorSite().getActionBars().getStatusLineManager().setMessage(""); //$NON-NLS-1$ |
|
232 | 222 |
|
233 | 223 |
//add drag'n'drop support |
234 | 224 |
Transfer[] transfers = new Transfer[] {LocalSelectionTransfer.getTransfer(),}; |
... | ... | |
342 | 332 |
refreshTree(); |
343 | 333 |
} |
344 | 334 |
|
345 |
// @Override |
|
346 |
// public String getTitleToolTip() { |
|
347 |
//TODO e4 |
|
348 |
// return Messages.DerivateView_DERIVATIVE_EDITOR; |
|
349 |
// } |
|
350 |
|
|
351 | 335 |
/** |
352 | 336 |
* @param isDirty the isDirty to set |
353 | 337 |
*/ |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/ListenToSelectionChangeHandler.java | ||
---|---|---|
1 |
package eu.etaxonomy.taxeditor.editor.view.derivate.handler; |
|
2 |
|
|
3 |
import org.eclipse.core.commands.AbstractHandler; |
|
4 |
import org.eclipse.core.commands.ExecutionEvent; |
|
5 |
import org.eclipse.core.commands.ExecutionException; |
|
6 |
import org.eclipse.ui.IWorkbenchPart; |
|
7 |
import org.eclipse.ui.handlers.HandlerUtil; |
|
8 |
|
|
9 |
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView; |
|
10 |
|
|
11 |
public class ListenToSelectionChangeHandler extends AbstractHandler { |
|
12 |
|
|
13 |
@Override |
|
14 |
public Object execute(ExecutionEvent event) throws ExecutionException { |
|
15 |
IWorkbenchPart activePart = HandlerUtil.getActivePart(event); |
|
16 |
if(activePart instanceof DerivateView){ |
|
17 |
DerivateView derivativeEditor = (DerivateView)activePart; |
|
18 |
derivativeEditor.toggleListenToSelectionChange(); |
|
19 |
} |
|
20 |
return null; |
|
21 |
} |
|
22 |
|
|
23 |
} |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForDescriptionElement.java | ||
---|---|---|
3 | 3 |
import java.util.Collections; |
4 | 4 |
import java.util.UUID; |
5 | 5 |
|
6 |
import org.eclipse.core.commands.ExecutionEvent; |
|
7 |
import org.eclipse.ui.PartInitException; |
|
8 |
|
|
9 | 6 |
import eu.etaxonomy.cdm.api.service.IDescriptionService; |
10 | 7 |
import eu.etaxonomy.cdm.model.description.DescriptionElementBase; |
11 | 8 |
import eu.etaxonomy.cdm.model.description.IndividualsAssociation; |
12 | 9 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; |
13 |
import eu.etaxonomy.taxeditor.editor.EditorUtil; |
|
14 |
import eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler; |
|
10 |
import eu.etaxonomy.taxeditor.editor.AppModelId; |
|
15 | 11 |
import eu.etaxonomy.taxeditor.editor.l10n.Messages; |
12 |
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView; |
|
16 | 13 |
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput; |
17 |
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase; |
|
14 |
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBaseE4;
|
|
18 | 15 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
19 | 16 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
20 | 17 |
|
21 |
public class OpenDerivativeEditorForDescriptionElement extends DefaultOpenHandlerBase<IndividualsAssociation> {
|
|
18 |
public class OpenDerivativeEditorForDescriptionElement extends DefaultOpenHandlerBaseE4<IndividualsAssociation, DerivateView> {
|
|
22 | 19 |
|
23 | 20 |
@Override |
24 | 21 |
protected IndividualsAssociation getEntity(UUID uuid) { |
... | ... | |
30 | 27 |
} |
31 | 28 |
|
32 | 29 |
@Override |
33 |
protected void open(ExecutionEvent event, IndividualsAssociation entity) {
|
|
34 |
if(entity==null || entity.getAssociatedSpecimenOrObservation()==null){
|
|
35 |
MessagingUtils.messageDialog(Messages.OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS, this, Messages.OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS_MESSAGE);
|
|
36 |
return;
|
|
37 |
}
|
|
30 |
protected void initPart(IndividualsAssociation entity, DerivateView part) {
|
|
31 |
if(entity==null || entity.getAssociatedSpecimenOrObservation()==null){
|
|
32 |
MessagingUtils.messageDialog(Messages.OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS, this, Messages.OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS_MESSAGE);
|
|
33 |
return;
|
|
34 |
}
|
|
38 | 35 |
SpecimenOrObservationBase associatedSpecimenOrObservation = entity.getAssociatedSpecimenOrObservation(); |
39 | 36 |
if(associatedSpecimenOrObservation!=null){ |
40 | 37 |
UUID specimenUuid = associatedSpecimenOrObservation.getUuid(); |
41 |
try { |
|
42 |
EditorUtil.open(new DerivateViewEditorInput(Collections.singletonList(specimenUuid))); |
|
43 |
} catch (PartInitException e) { |
|
44 |
MessagingUtils.error(OpenDerivateViewHandler.class, OpenDerivativeEditorForTaxonNode.OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN, e); |
|
45 |
} |
|
38 |
part.init(new DerivateViewEditorInput(Collections.singletonList(specimenUuid))); |
|
46 | 39 |
} |
40 |
} |
|
47 | 41 |
|
42 |
@Override |
|
43 |
protected String getPartId() { |
|
44 |
return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW; |
|
48 | 45 |
} |
49 | 46 |
|
50 | 47 |
} |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForSpecimenOrOBservationBase.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.util.UUID; |
4 | 4 |
|
5 |
import org.eclipse.core.commands.ExecutionEvent; |
|
6 |
import org.eclipse.ui.PartInitException; |
|
7 |
|
|
8 | 5 |
import eu.etaxonomy.cdm.api.service.IOccurrenceService; |
9 | 6 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; |
10 |
import eu.etaxonomy.taxeditor.editor.EditorUtil; |
|
11 |
import eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler; |
|
7 |
import eu.etaxonomy.taxeditor.editor.AppModelId; |
|
12 | 8 |
import eu.etaxonomy.taxeditor.editor.l10n.Messages; |
9 |
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView; |
|
13 | 10 |
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput; |
14 |
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase; |
|
15 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
|
11 |
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBaseE4; |
|
16 | 12 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
17 | 13 |
|
18 |
public class OpenDerivativeEditorForSpecimenOrOBservationBase extends DefaultOpenHandlerBase<SpecimenOrObservationBase<?>>{
|
|
14 |
public class OpenDerivativeEditorForSpecimenOrOBservationBase extends DefaultOpenHandlerBaseE4<SpecimenOrObservationBase<?>, DerivateView>{
|
|
19 | 15 |
|
20 | 16 |
protected static final String OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN = Messages.OpenDerivativeEditorForTaxonNode_COULD_NOT_OPEN; |
21 | 17 |
|
... | ... | |
28 | 24 |
} |
29 | 25 |
|
30 | 26 |
@Override |
31 |
protected void open(ExecutionEvent event, SpecimenOrObservationBase<?> entity) { |
|
32 |
try { |
|
33 |
EditorUtil.open(new DerivateViewEditorInput(entity.getUuid())); |
|
34 |
} catch (PartInitException e) { |
|
35 |
MessagingUtils.error(OpenDerivateViewHandler.class, OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN, e); |
|
36 |
} |
|
27 |
protected void initPart(SpecimenOrObservationBase<?> entity, DerivateView part) { |
|
28 |
part.init(new DerivateViewEditorInput(entity.getUuid())); |
|
29 |
} |
|
37 | 30 |
|
31 |
@Override |
|
32 |
protected String getPartId() { |
|
33 |
return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW; |
|
38 | 34 |
} |
39 | 35 |
|
40 | 36 |
|
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForTaxonNode.java | ||
---|---|---|
5 | 5 |
import java.util.List; |
6 | 6 |
import java.util.UUID; |
7 | 7 |
|
8 |
import org.eclipse.core.commands.ExecutionEvent; |
|
9 |
import org.eclipse.ui.PartInitException; |
|
10 |
|
|
11 | 8 |
import eu.etaxonomy.cdm.api.service.IOccurrenceService; |
12 | 9 |
import eu.etaxonomy.cdm.api.service.ITaxonNodeService; |
13 | 10 |
import eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator; |
14 | 11 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; |
15 | 12 |
import eu.etaxonomy.cdm.model.taxon.TaxonNode; |
16 |
import eu.etaxonomy.taxeditor.editor.EditorUtil; |
|
17 |
import eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler; |
|
13 |
import eu.etaxonomy.taxeditor.editor.AppModelId; |
|
18 | 14 |
import eu.etaxonomy.taxeditor.editor.l10n.Messages; |
15 |
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView; |
|
19 | 16 |
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput; |
20 |
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase; |
|
21 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
|
17 |
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBaseE4; |
|
22 | 18 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
23 | 19 |
|
24 |
public class OpenDerivativeEditorForTaxonNode extends DefaultOpenHandlerBase<TaxonNode> {
|
|
20 |
public class OpenDerivativeEditorForTaxonNode extends DefaultOpenHandlerBaseE4<TaxonNode, DerivateView> {
|
|
25 | 21 |
|
26 | 22 |
protected static final String OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN = Messages.OpenDerivativeEditorForTaxonNode_COULD_NOT_OPEN; |
27 | 23 |
|
... | ... | |
31 | 27 |
} |
32 | 28 |
|
33 | 29 |
@Override |
34 |
protected void open(ExecutionEvent event, TaxonNode entity) {
|
|
30 |
protected void initPart(TaxonNode entity, DerivateView part) {
|
|
35 | 31 |
FindOccurrencesConfigurator config = new FindOccurrencesConfigurator(); |
36 | 32 |
UUID taxonUuid = entity.getTaxon().getUuid(); |
37 | 33 |
config.setAssociatedTaxonUuid(taxonUuid); |
... | ... | |
40 | 36 |
for (SpecimenOrObservationBase specimenOrObservationBase : specimens) { |
41 | 37 |
specimenUuids.add(specimenOrObservationBase.getUuid()); |
42 | 38 |
} |
43 |
try { |
|
44 |
EditorUtil.open(new DerivateViewEditorInput(specimenUuids, taxonUuid)); |
|
45 |
} catch (PartInitException e) { |
|
46 |
MessagingUtils.error(OpenDerivateViewHandler.class, OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN, e); |
|
47 |
} |
|
39 |
part.init(new DerivateViewEditorInput(specimenUuids, taxonUuid)); |
|
40 |
} |
|
48 | 41 |
|
42 |
@Override |
|
43 |
protected String getPartId() { |
|
44 |
return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW; |
|
49 | 45 |
} |
50 | 46 |
|
51 | 47 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/DefaultOpenHandlerBaseE4.java | ||
---|---|---|
4 | 4 |
|
5 | 5 |
import org.eclipse.e4.core.di.annotations.Execute; |
6 | 6 |
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem; |
7 |
import org.eclipse.e4.ui.workbench.modeling.EPartService; |
|
8 |
import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState; |
|
7 | 9 |
|
8 |
public abstract class DefaultOpenHandlerBaseE4 <T> { |
|
10 |
public abstract class DefaultOpenHandlerBaseE4 <ENTITY, PART> {
|
|
9 | 11 |
|
10 | 12 |
@Execute |
11 |
public Object execute(MHandledMenuItem menuItem){ |
|
13 |
public void execute(MHandledMenuItem menuItem, EPartService partService){ |
|
14 |
String partId = getPartId(); |
|
15 |
PART part= (PART) partService.createPart(partId).getObject(); |
|
16 |
|
|
17 |
ENTITY entity = null; |
|
12 | 18 |
String commandId = menuItem.getCommand().getElementId(); |
13 | 19 |
UUID uuid = (UUID) menuItem.getTransientData().get(commandId+".uuid"); |
14 | 20 |
//check if uuid parameter is set |
15 | 21 |
if(uuid!=null){ |
16 |
T entity = getEntity(uuid); |
|
17 |
open(entity); |
|
22 |
entity = getEntity(uuid); |
|
18 | 23 |
} |
19 |
return null; |
|
24 |
initPart(entity, part); |
|
25 |
partService.showPart(partId, PartState.ACTIVATE); |
|
20 | 26 |
} |
21 | 27 |
|
28 |
protected abstract void initPart(ENTITY entity, PART part); |
|
22 | 29 |
|
23 |
protected abstract T getEntity(UUID uuid);
|
|
30 |
protected abstract String getPartId();
|
|
24 | 31 |
|
25 |
protected abstract void open(T entity);
|
|
32 |
protected abstract ENTITY getEntity(UUID uuid);
|
|
26 | 33 |
|
27 | 34 |
} |
Also available in: Unified diff
ref #6566 Migrate "Open in" context menu for specimen editor