Merge branch 'develop' into remoting-4.0
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / group / authority / CdmAuthorityEditorInput.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.taxeditor.editor.group.authority;
10
11 import java.util.Arrays;
12 import java.util.Collection;
13 import java.util.UUID;
14
15 import org.eclipse.jface.resource.ImageDescriptor;
16 import org.eclipse.ui.IEditorInput;
17 import org.eclipse.ui.IPersistableElement;
18
19 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
20 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
21 import eu.etaxonomy.cdm.api.service.IGroupService;
22 import eu.etaxonomy.cdm.model.common.Group;
23 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
24 import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
25 import eu.etaxonomy.taxeditor.store.CdmStore;
26
27 /**
28 * Editor input for the {@link CdmAuthorityEditor}.
29 *
30 * @author cmathew
31 * @created Mar 28, 2013
32 *
33 */
34
35 public class CdmAuthorityEditorInput extends CdmEntitySessionInput implements IEditorInput, IConversationEnabled {
36 private ConversationHolder conversation;
37 private Group group;
38
39 protected CdmAuthorityEditorInput(ConversationHolder conversation, Group group) {
40 this.conversation = conversation;
41 this.group = group;
42
43 }
44
45 /**
46 * Creates a new instance of the input for a given group.
47 *
48 * @param groupUuid
49 * @return
50 * @throws Exception
51 */
52 public static CdmAuthorityEditorInput NewInstance(UUID groupUuid) throws Exception{
53 ConversationHolder conversation = CdmStore.createConversation();
54 Group group = CdmStore.getService(IGroupService.class).load(groupUuid, null);
55 return new CdmAuthorityEditorInput(conversation, group);
56 }
57
58 /* (non-Javadoc)
59 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
60 */
61 @Override
62 public Object getAdapter(Class adapter) {
63 if (adapter == Group.class) {
64 return this.group;
65 }
66
67 return null;
68 }
69 /* (non-Javadoc)
70 * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
71 */
72 @Override
73 public void update(CdmDataChangeMap changeEvents) {
74 // TODO Auto-generated method stub
75
76 }
77 /* (non-Javadoc)
78 * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
79 */
80 @Override
81 public ConversationHolder getConversationHolder() {
82 return this.conversation;
83 }
84 /* (non-Javadoc)
85 * @see org.eclipse.ui.IEditorInput#exists()
86 */
87 @Override
88 public boolean exists() {
89 return group != null;
90 }
91 /* (non-Javadoc)
92 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
93 */
94 @Override
95 public ImageDescriptor getImageDescriptor() {
96 // TODO Auto-generated method stub
97 return null;
98 }
99 /* (non-Javadoc)
100 * @see org.eclipse.ui.IEditorInput#getName()
101 */
102 @Override
103 public String getName() {
104 return group.getName();
105 }
106 /* (non-Javadoc)
107 * @see org.eclipse.ui.IEditorInput#getPersistable()
108 */
109 @Override
110 public IPersistableElement getPersistable() {
111 // TODO Auto-generated method stub
112 return null;
113 }
114 /* (non-Javadoc)
115 * @see org.eclipse.ui.IEditorInput#getToolTipText()
116 */
117 @Override
118 public String getToolTipText() {
119 return getName();
120 }
121
122 /* (non-Javadoc)
123 * @see java.lang.Object#equals(java.lang.Object)
124 */
125 @Override
126 public boolean equals(Object object) {
127 if (object instanceof CdmAuthorityEditorInput
128 && getGroup() != null
129 && getGroup().equals(((CdmAuthorityEditorInput) object).getGroup())
130 ){
131 return true;
132 }
133 return super.equals(object);
134 }
135
136 /**
137 * Getter method for group member.
138 *
139 * @return
140 */
141 public Group getGroup() {
142 return this.group;
143 }
144
145 /* (non-Javadoc)
146 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
147 */
148 @Override
149 public Collection<Group> getRootEntities() {
150 return Arrays.asList(group);
151 }
152
153 /* (non-Javadoc)
154 * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
155 */
156 @Override
157 public void merge() {
158 CdmStore.getService(IGroupService.class).merge(group);
159 }
160 }