4 package eu
.etaxonomy
.taxeditor
.editor
.key
.polytomous
;
6 import java
.util
.Arrays
;
7 import java
.util
.HashMap
;
10 import java
.util
.UUID
;
12 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
13 import eu
.etaxonomy
.cdm
.api
.service
.IPolytomousKeyService
;
14 import eu
.etaxonomy
.cdm
.model
.description
.PolytomousKey
;
15 import eu
.etaxonomy
.taxeditor
.editor
.key
.AbstractIdentificationEditorInput
;
16 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
22 public class PolytomousKeyEditorInput
extends AbstractIdentificationEditorInput
<PolytomousKey
> {
24 private final String name
;
25 private final UUID keyUuid
;
26 private PolytomousKey key
;
29 protected PolytomousKeyEditorInput(ConversationHolder conversation
,
30 UUID polytomousKeyUuid
) {
32 this.keyUuid
= polytomousKeyUuid
;
33 this.key
= CdmStore
.getService(IPolytomousKeyService
.class).load(polytomousKeyUuid
, null);
34 this.name
= key
.getTitleCache();
37 // public PolytomousKeyEditorInput(UUID polytomousKeyUuid, String name) {
38 // super(CdmStore.createConversation());
39 // this.keyUuid = polytomousKeyUuid;
44 public static PolytomousKeyEditorInput
NewInstance(UUID polytomousKeyUuid
) throws Exception
{
46 ConversationHolder conversation
= CdmStore
.createConversation();
47 return new PolytomousKeyEditorInput(conversation
, polytomousKeyUuid
);
55 * @see org.eclipse.ui.IEditorInput#getName()
58 public String
getName() {
63 public PolytomousKey
getKey() {
68 * @see java.lang.Object#equals(java.lang.Object)
71 public boolean equals(Object object
) {
72 if (object
instanceof PolytomousKeyEditorInput
74 && getKey().equals(((PolytomousKeyEditorInput
) object
).getKey())
78 return super.equals(object
);
82 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
85 public List
<PolytomousKey
> getRootEntities() {
86 return Arrays
.asList(key
);
90 * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
94 if(CdmStore
.getCurrentSessionManager().isRemoting()) {
95 key
= CdmStore
.getService(IPolytomousKeyService
.class).merge(key
,true);
100 public Map
<Object
, List
<String
>> getPropertyPathsMap() {
101 Map
<Object
,List
<String
>> propertyPathsMap
= new HashMap
<Object
,List
<String
>>();
103 List
<String
> polytomousKeyNodePropertyPaths
= Arrays
.asList(new String
[] {
106 propertyPathsMap
.put("children", polytomousKeyNodePropertyPaths
);
107 return propertyPathsMap
;