07e4062608e15502ae42dc144d2d3f49b5dcf6fc
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / store / StoreUtil.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11 package eu.etaxonomy.taxeditor.store;
12
13 import java.util.UUID;
14
15 import org.eclipse.core.commands.operations.IOperationHistory;
16 import org.eclipse.core.commands.operations.IUndoContext;
17 import org.eclipse.jface.action.IStatusLineManager;
18 import org.eclipse.ui.IEditorInput;
19 import org.eclipse.ui.IEditorPart;
20
21 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
22 import eu.etaxonomy.cdm.model.common.CdmBase;
23 import eu.etaxonomy.taxeditor.model.AbstractUtility;
24 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
25 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
26
27 /**
28 * <p>StoreUtil class.</p>
29 *
30 * @author n.hoffmann
31 * @created 11.05.2009
32 * @version 1.0
33 */
34 public class StoreUtil extends AbstractUtility {
35
36 /**
37 * <p>checktaxonExists</p>
38 *
39 * @param fromString a {@link java.util.UUID} object.
40 */
41 public static void checktaxonExists(UUID fromString) {
42 // if (CdmStore.getTaxonService().getTaxonByUuid(UUID.fromString(uuid)) == null) {
43 // logger.warn("Couldn't find taxon with UUID " + uuid);
44 // return null;
45 // }
46 }
47
48 /**
49 * If the object given is already a {@link CdmBase} then it is returned.<br>
50 * If it is a kind of "container" for CDM objects then it is asked for its "responsible" CdmBase entity.<br>
51 * Otherwise an exception is thrown.
52 * @param object the object to test for CdmBase
53 * @return a CdmBase object
54 * @throws IllegalArgumentException if the tested object is neither a CdmBase nor a CDM "container"
55 */
56 public static CdmBase getCdmEntity(Object object){
57 // TODO temporary solution for ticket #4091????
58 if(object instanceof DerivedUnitFacade){
59 return ((DerivedUnitFacade)object).baseUnit();
60 }
61 else if(object instanceof FeatureNodeContainer){
62 return ((FeatureNodeContainer) object).getFeatureNode();
63 }
64 else if(object instanceof CdmBase){
65 return (CdmBase) object;
66 }
67 throw new IllegalArgumentException("Object " + object.toString() + " is neither a CdmBase nor a CDM \"container\"");
68 }
69
70 /**
71 * <p>getOperationHistory</p>
72 *
73 * @return a {@link org.eclipse.core.commands.operations.IOperationHistory} object.
74 */
75 public static IOperationHistory getOperationHistory() {
76 return TaxeditorStorePlugin.getDefault().getWorkbench().
77 getOperationSupport().getOperationHistory();
78 }
79
80 /**
81 * <p>setStatusLineManager</p>
82 *
83 * @param manager a {@link org.eclipse.jface.action.IStatusLineManager} object.
84 */
85 public static void setStatusLineManager(IStatusLineManager manager) {
86 statusLineManager = manager;
87 }
88
89
90 /**
91 * <p>getUndoContext</p>
92 *
93 * @return a {@link org.eclipse.core.commands.operations.IUndoContext} object.
94 */
95 public static IUndoContext getUndoContext(){
96 return IOperationHistory.GLOBAL_UNDO_CONTEXT;
97 }
98
99 /**
100 * <p>getPluginId</p>
101 *
102 * @return a {@link java.lang.String} object.
103 */
104 public static String getPluginId(){
105 return TaxeditorStorePlugin.PLUGIN_ID;
106 }
107
108 /**
109 *
110 * @return
111 */
112 public static IEditorInput getActiveEditorInput() {
113 IEditorPart activeEditor = getActiveEditor();
114 if (activeEditor != null){
115 return activeEditor.getEditorInput();
116 }
117 return null;
118 }
119 }