Project

General

Profile

Download (3.23 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.ui.PartInitException;
8

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

    
23
public class OpenChecklistEditorHandler extends DefaultOpenHandlerBase<ITaxonTreeNode> {
24

    
25
    private static final String FAILED_TO_OPEN_EDITOR = Messages.OpenChecklistEditorHandler_FAILED_TO_OPEN;
26
    private static final String COULD_NOT_OPEN_DISTRIBUTION_EDITOR_THE_HIERARCHY_IS_CORRUPTED = Messages.OpenChecklistEditorHandler_COULD_NOT_OPEN_MESSAGE;
27
    private static final String COULD_NOT_OPEN_DISTRIBUTION_EDITOR = Messages.OpenChecklistEditorHandler_COULD_NOT_OPEN_TITLE;
28

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

    
38
	@Override
39
	protected void open(ExecutionEvent event, ITaxonTreeNode entity) {
40
		if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE)) {
41
			if (StringUtils.isBlank(PreferencesUtil.getPreferenceStore().getString(IPreferenceKeys.DISTRIBUTION_AREA_OCCURENCE_STATUS) )){
42
				MessagingUtils.informationDialog(Messages.OpenChecklistEditorHandler_NO_AREAS, Messages.OpenChecklistEditorHandler_CHOOSE_AREA
43
						+ Messages.OpenChecklistEditorHandler_GOTO_PREFERENCES);
44
				this.dispose();
45
				return;
46
			}
47
			if (entity instanceof Classification) {
48
				ChecklistEditorInput input = new ChecklistEditorInput(((Classification) entity));
49
				try {
50
					EditorUtil.open(input);
51
				} catch (PartInitException e) {
52
					MessagingUtils.error(OpenChecklistEditorHandler.class, COULD_NOT_OPEN_DISTRIBUTION_EDITOR, e);
53
				} catch (NullPointerException npe) {
54
					MessagingUtils.messageDialog(FAILED_TO_OPEN_EDITOR, OpenChecklistEditorHandler.class,
55
							COULD_NOT_OPEN_DISTRIBUTION_EDITOR_THE_HIERARCHY_IS_CORRUPTED, npe);
56
				}
57
			} else if (entity instanceof TaxonNode) {
58
				ChecklistEditorInput input = new ChecklistEditorInput((TaxonNode) entity);
59
				try {
60
					EditorUtil.open(input);
61
				} catch (PartInitException e) {
62
					MessagingUtils.error(OpenChecklistEditorHandler.class, COULD_NOT_OPEN_DISTRIBUTION_EDITOR, e);
63
				} catch (NullPointerException npe) {
64
					MessagingUtils.messageDialog(FAILED_TO_OPEN_EDITOR, OpenChecklistEditorHandler.class,
65
							COULD_NOT_OPEN_DISTRIBUTION_EDITOR_THE_HIERARCHY_IS_CORRUPTED, npe);
66
				}
67
			}
68
		}
69
	}
70
}
(2-2/7)