Project

General

Profile

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

    
3
import java.util.UUID;
4

    
5
import org.apache.commons.lang.StringUtils;
6
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
7
import org.eclipse.e4.ui.workbench.modeling.EPartService;
8
import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
9
import org.eclipse.swt.widgets.Shell;
10

    
11
import eu.etaxonomy.cdm.api.service.IClassificationService;
12
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
13
import eu.etaxonomy.cdm.model.taxon.Classification;
14
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
15
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
16
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
17
import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput;
18
import eu.etaxonomy.taxeditor.editor.view.checklist.e4.ChecklistEditorE4;
19
import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
20
import eu.etaxonomy.taxeditor.model.MessagingUtils;
21
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
22
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
23
import eu.etaxonomy.taxeditor.store.CdmStore;
24

    
25
public class OpenChecklistEditorHandlerE4 extends DefaultOpenHandlerBaseE4<ITaxonTreeNode> {
26

    
27
    private static final String COULD_NOT_OPEN_DISTRIBUTION_EDITOR_THE_HIERARCHY_IS_CORRUPTED = Messages.OpenChecklistEditorHandler_COULD_NOT_OPEN_MESSAGE;
28
    private static final String COULD_NOT_OPEN_DISTRIBUTION_EDITOR = Messages.OpenChecklistEditorHandler_COULD_NOT_OPEN_TITLE;
29

    
30
    @Override
31
	protected ITaxonTreeNode getEntity(UUID uuid) {
32
		ITaxonTreeNode taxonTreeNode = CdmStore.getService(ITaxonNodeService.class).load(uuid);
33
		if(taxonTreeNode==null){
34
			taxonTreeNode = CdmStore.getService(IClassificationService.class).load(uuid);
35
		}
36
		return taxonTreeNode;
37
	}
38

    
39
	@Override
40
	protected void open(ITaxonTreeNode entity, Shell shell, EPartService partService) {
41
		if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE)) {
42
			if (StringUtils.isBlank(PreferencesUtil.getPreferenceStore().getString(IPreferenceKeys.DISTRIBUTION_AREA_OCCURENCE_STATUS) )){
43
				MessagingUtils.informationDialog(Messages.OpenChecklistEditorHandler_NO_AREAS, Messages.OpenChecklistEditorHandler_CHOOSE_AREA
44
						+ Messages.OpenChecklistEditorHandler_GOTO_PREFERENCES);
45
				return;
46
			}
47
			if (entity instanceof Classification) {
48
				ChecklistEditorInput input = new ChecklistEditorInput(((Classification) entity));
49
				try {
50
					openChecklistEditor(input, partService);
51
				} catch (NullPointerException npe) {
52
					MessagingUtils.messageDialog(COULD_NOT_OPEN_DISTRIBUTION_EDITOR, OpenChecklistEditorHandlerE4.class,
53
							COULD_NOT_OPEN_DISTRIBUTION_EDITOR_THE_HIERARCHY_IS_CORRUPTED, npe);
54
				}
55
			} else if (entity instanceof TaxonNode) {
56
				ChecklistEditorInput input = new ChecklistEditorInput((TaxonNode) entity);
57
				try {
58
					openChecklistEditor(input, partService);
59
				} catch (NullPointerException npe) {
60
					MessagingUtils.messageDialog(COULD_NOT_OPEN_DISTRIBUTION_EDITOR, OpenChecklistEditorHandlerE4.class,
61
							COULD_NOT_OPEN_DISTRIBUTION_EDITOR_THE_HIERARCHY_IS_CORRUPTED, npe);
62
				}
63
			}
64
		}
65
	}
66

    
67
	private void openChecklistEditor(ChecklistEditorInput input, EPartService partService) {
68
		MPart part = partService.createPart("eu.etaxonomy.taxeditor.editor.view.checklist.e4.ChecklistEditorE4");
69
		part = partService.showPart(part, PartState.ACTIVATE);
70
		ChecklistEditorE4 checklistEditor = (ChecklistEditorE4) part.getObject();
71
		if (checklistEditor != null){
72
			checklistEditor.init(input);
73
		}else{
74
			System.err.println("Editor is null");
75
		}
76
	}
77

    
78
    /**
79
     * {@inheritDoc}
80
     */
81
    @Override
82
    protected boolean canExecute(ITaxonTreeNode entity) {
83
        return entity!=null;
84
    }
85
}
    (1-1/1)