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