Project

General

Profile

Download (3.58 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(4-4/17)