Merge branch 'release/4.9.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / handler / CreateClassificationHierarchyHandler.java
1 package eu.etaxonomy.taxeditor.navigation.navigator.handler;
2
3 import org.apache.log4j.Logger;
4 import org.eclipse.core.commands.AbstractHandler;
5 import org.eclipse.core.commands.ExecutionEvent;
6 import org.eclipse.core.commands.ExecutionException;
7 import org.eclipse.jface.viewers.ISelection;
8 import org.eclipse.jface.viewers.IStructuredSelection;
9 import org.eclipse.ui.handlers.HandlerUtil;
10
11 import eu.etaxonomy.cdm.model.taxon.Classification;
12 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
13 import eu.etaxonomy.taxeditor.model.AbstractUtility;
14 import eu.etaxonomy.taxeditor.model.MessagingUtils;
15 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
16 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
17 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
18 import eu.etaxonomy.taxeditor.navigation.operation.CreateNewTaxonHierarchyOperation;
19 import eu.etaxonomy.taxeditor.store.StoreUtil;
20
21 public class CreateClassificationHierarchyHandler extends AbstractHandler {
22
23 private static final Logger logger = Logger.getLogger(CreateClassificationHierarchyHandler.class);
24
25
26 /*
27 * (non-Javadoc)
28 *
29 * @see
30 * org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.
31 * ExecutionEvent)
32 */
33 @Override
34 public Object execute(ExecutionEvent event) throws ExecutionException {
35 ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
36 if (currentSelection instanceof IStructuredSelection) {
37 Object selectedElement = ((IStructuredSelection) currentSelection).getFirstElement();
38 if (selectedElement instanceof TaxonNode && !((TaxonNode)selectedElement).hasTaxon()) {
39
40 Classification classification = ((TaxonNode) selectedElement).getClassification();
41 try {
42 TaxonNavigator taxonNavigator = (TaxonNavigator)AbstractUtility.showView(TaxonNavigator.ID);
43 // IClassificationService service = CdmStore.getService(IClassificationService.class);
44
45 // Map<String, List<TaxonNode>> sortedGenusList =
46 // service.getSortedGenusList(classification.getAllNodes());
47
48
49 CreateNewTaxonHierarchyOperation operation = new CreateNewTaxonHierarchyOperation(Messages.CreateClassificationHierarchyHandler_CREATE_HIERARCHY, StoreUtil.getUndoContext(),classification,NavigationUtil.getNavigator(false), NavigationUtil.getNavigator(false) );
50
51 AbstractUtility.executeOperation(operation);
52 // UpdateResult result = service.createHierarchyInClassification(classification, null);
53 //
54 // Classification classification2 = CdmBase.deproxy(result.getCdmEntity(), Classification.class);
55 //
56 // Set<CdmBase> updatedObjects = result.getUpdatedObjects();
57 //
58 // Shell activeShell = HandlerUtil.getActiveShell(event);
59
60 // MessagingUtils.messageDialog("Add Hierarchy successful",
61 // FixClassificationHierarchyHandler.class, "Operation 'Fix Hierarchy' was successful. New classification is "
62 // + classification2.getTitleCache() + "\nUpdated Objects: " + updatedObjects.size());
63 //Success
64 taxonNavigator.refresh();
65 } catch (Exception e) {
66 MessagingUtils.messageDialog(Messages.CreateClassificationHierarchyHandler_FAILED, CreateClassificationHierarchyHandler.class,
67 Messages.CreateClassificationHierarchyHandler_FAILED_MESSAGE, e);
68 }
69 }
70 }
71 return null;
72 }
73
74 }