2 * Copyright (C) 2018 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.navigation
.navigator
.operation
;
11 import java
.util
.UUID
;
13 import org
.eclipse
.e4
.ui
.model
.application
.MApplication
;
14 import org
.eclipse
.e4
.ui
.model
.application
.ui
.basic
.MPart
;
15 import org
.eclipse
.e4
.ui
.workbench
.modeling
.EModelService
;
16 import org
.eclipse
.e4
.ui
.workbench
.modeling
.EPartService
;
18 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationState
;
19 import eu
.etaxonomy
.cdm
.api
.application
.CdmChangeEvent
.Action
;
20 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonNodeService
;
21 import eu
.etaxonomy
.cdm
.api
.service
.UpdateResult
;
22 import eu
.etaxonomy
.cdm
.api
.service
.config
.ForSubtreeConfiguratorBase
;
23 import eu
.etaxonomy
.cdm
.api
.service
.longrunningService
.ILongRunningTasksService
;
24 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
25 import eu
.etaxonomy
.taxeditor
.operation
.RemotingCdmUpdateOperation
;
26 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
28 public abstract class UpdateSubtreeOperation
extends RemotingCdmUpdateOperation
{
30 protected ForSubtreeConfiguratorBase config
;
32 private UUID parentUuid
;
34 private TaxonNode subtreeNode
;
35 private ITaxonNodeService taxonNodeService
;
36 protected ILongRunningTasksService longRunningTaskService
;
38 protected EModelService modelService
= null;
40 public UpdateSubtreeOperation(Object source
,
43 EPartService partService
,
45 MApplication application
,
46 EModelService modelService
,
47 ForSubtreeConfiguratorBase config
,
49 super(label
, Action
.Update
, source
, async
, partService
, activePart
, application
);
50 parentUuid
= taxonNodeUuid
;
52 this.updateResult
= new UpdateResult();
53 this.modelService
= modelService
;
54 longRunningTaskService
= CdmApplicationState
.getLongRunningTasksService();
55 subtreeNode
= CdmStore
.getService(ITaxonNodeService
.class).load(config
.getSubtreeUuid());