Project

General

Profile

Download (4.06 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.taxeditor.editor.handler;
2

    
3
import java.util.UUID;
4

    
5
import org.apache.commons.lang.StringUtils;
6
import org.eclipse.core.commands.ExecutionEvent;
7
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
8
import org.eclipse.e4.ui.workbench.modeling.EPartService;
9
import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
10
import org.eclipse.ui.PartInitException;
11

    
12
import eu.etaxonomy.cdm.api.service.IClassificationService;
13
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
14
import eu.etaxonomy.cdm.model.taxon.Classification;
15
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
16
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
17
import eu.etaxonomy.taxeditor.editor.AppModelId;
18
import eu.etaxonomy.taxeditor.editor.EditorUtil;
19
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
20
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
21
import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput;
22
import eu.etaxonomy.taxeditor.editor.view.checklist.e4.ChecklistEditorE4;
23
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
24
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
25
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
26
import eu.etaxonomy.taxeditor.model.MessagingUtils;
27
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
28
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
29
import eu.etaxonomy.taxeditor.store.CdmStore;
30
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
31

    
32
public class OpenChecklistEditorHandler extends DefaultOpenHandlerBase<ITaxonTreeNode> {
33

    
34
    private static final String FAILED_TO_OPEN_EDITOR = Messages.OpenChecklistEditorHandler_FAILED_TO_OPEN;
35
    private static final String COULD_NOT_OPEN_DISTRIBUTION_EDITOR_THE_HIERARCHY_IS_CORRUPTED = Messages.OpenChecklistEditorHandler_COULD_NOT_OPEN_MESSAGE;
36
    private static final String COULD_NOT_OPEN_DISTRIBUTION_EDITOR = Messages.OpenChecklistEditorHandler_COULD_NOT_OPEN_TITLE;
37

    
38
    @Override
39
	protected ITaxonTreeNode getEntity(UUID uuid) {
40
		ITaxonTreeNode taxonTreeNode = CdmStore.getService(ITaxonNodeService.class).load(uuid);
41
		if(taxonTreeNode==null){
42
			taxonTreeNode = CdmStore.getService(IClassificationService.class).load(uuid);
43
		}
44
		return taxonTreeNode;
45
	}
46

    
47
	@Override
48
	protected void open(ExecutionEvent event, ITaxonTreeNode entity) {
49
		if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE)) {
50
			if (StringUtils.isBlank(PreferencesUtil.getPreferenceStore().getString(IPreferenceKeys.DISTRIBUTION_AREA_OCCURENCE_STATUS) )){
51
				MessagingUtils.informationDialog(Messages.OpenChecklistEditorHandler_NO_AREAS, Messages.OpenChecklistEditorHandler_CHOOSE_AREA
52
						+ Messages.OpenChecklistEditorHandler_GOTO_PREFERENCES);
53
				this.dispose();
54
				return;
55
			}
56
			if (entity instanceof Classification) {
57
				ChecklistEditorInput input = new ChecklistEditorInput(((Classification) entity));
58
				try {
59
					openChecklistEditor(input);
60
				} catch (NullPointerException npe) {
61
					MessagingUtils.messageDialog(FAILED_TO_OPEN_EDITOR, OpenChecklistEditorHandler.class,
62
							COULD_NOT_OPEN_DISTRIBUTION_EDITOR_THE_HIERARCHY_IS_CORRUPTED, npe);
63
				}
64
			} else if (entity instanceof TaxonNode) {
65
				ChecklistEditorInput input = new ChecklistEditorInput((TaxonNode) entity);
66
				try {
67
					openChecklistEditor(input);
68
				} catch (NullPointerException npe) {
69
					MessagingUtils.messageDialog(FAILED_TO_OPEN_EDITOR, OpenChecklistEditorHandler.class,
70
							COULD_NOT_OPEN_DISTRIBUTION_EDITOR_THE_HIERARCHY_IS_CORRUPTED, npe);
71
				}
72
			}
73
		}
74
	}
75

    
76
	private void openChecklistEditor(ChecklistEditorInput input) {
77
		EPartService partService = TaxeditorEditorPlugin.getDefault().getWorkbench().getService(EPartService.class);
78
		MPart part = partService.createPart("eu.etaxonomy.taxeditor.editor.view.checklist.e4.ChecklistEditorE4");
79
		partService.showPart(part, PartState.ACTIVATE);
80
		ChecklistEditorE4 checklistEditor = (ChecklistEditorE4) part.getObject();
81
		if (checklistEditor != null){
82
			checklistEditor.init(input);
83
		}else{
84
			System.err.println("Editor is null");
85
		}
86
	}
87
}
(2-2/5)