X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/f002ce64682f8f20a49a6ee7181e4bdb93ba0d22..bac71f46b6eb8bf94a76efbb9217525700259da2:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/CharacterTransfer.java diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/CharacterTransfer.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/CharacterTransfer.java index c4f614b51..766f719f8 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/CharacterTransfer.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/CharacterTransfer.java @@ -23,6 +23,7 @@ import org.eclipse.swt.dnd.ByteArrayTransfer; import org.eclipse.swt.dnd.TransferData; import eu.etaxonomy.cdm.api.service.IFeatureNodeService; +import eu.etaxonomy.cdm.model.common.Language; import eu.etaxonomy.cdm.model.description.Character; import eu.etaxonomy.cdm.model.term.DefinedTerm; import eu.etaxonomy.cdm.model.term.Representation; @@ -103,17 +104,7 @@ public class CharacterTransfer extends ByteArrayTransfer { IFeatureNodeService featureNodeService = CdmStore.getService(IFeatureNodeService.class); TermNode structure = featureNodeService.load(UUID.fromString(split[0])); TermNode property = featureNodeService.load(UUID.fromString(split[1])); - Representation structureRepresentation = structure.getTerm().getRepresentation(PreferencesUtil.getGlobalLanguage()); - Representation propertyRepresentation = property.getTerm().getRepresentation(PreferencesUtil.getGlobalLanguage()); - String label = null; - String abbrevLabel = null; - if(structureRepresentation.getLabel()!=null && propertyRepresentation.getLabel()!=null){ - label = structureRepresentation.getLabel()+" "+propertyRepresentation.getLabel(); - } - if(structureRepresentation.getAbbreviatedLabel()!=null && propertyRepresentation.getAbbreviatedLabel()!=null){ - abbrevLabel = structureRepresentation.getAbbreviatedLabel()+" "+propertyRepresentation.getAbbreviatedLabel(); - } - characters.add(Character.NewInstance(structure, property, null, label, abbrevLabel)); + characters.add(createCharacter(structure, property)); } }catch(EOFException e){ return characters.toArray(); @@ -125,4 +116,33 @@ public class CharacterTransfer extends ByteArrayTransfer { return null; } + public static Character createCharacter(TermNode structureNode, + TermNode propertyNode) { + Representation structureRepresentation = structureNode.getTerm().getRepresentation(PreferencesUtil.getGlobalLanguage()); + if(structureRepresentation==null){ + structureRepresentation = structureNode.getTerm().getRepresentation(Language.DEFAULT()); + } + Representation propertyRepresentation = propertyNode.getTerm().getRepresentation(PreferencesUtil.getGlobalLanguage()); + if(propertyRepresentation==null){ + propertyRepresentation = propertyNode.getTerm().getRepresentation(Language.DEFAULT()); + } + String label = null; + String abbrevLabel = null; + if(structureRepresentation!=null && propertyRepresentation!=null){ + if(structureRepresentation.getLabel()!=null && propertyRepresentation.getLabel()!=null){ + label = structureRepresentation.getLabel()+" "+propertyRepresentation.getLabel(); + } + if(structureRepresentation.getAbbreviatedLabel()!=null && propertyRepresentation.getAbbreviatedLabel()!=null){ + abbrevLabel = structureRepresentation.getAbbreviatedLabel()+" "+propertyRepresentation.getAbbreviatedLabel(); + } + } + if(label!=null){ + //default label + label = structureNode.getTerm().getLabel()+" "+propertyNode.getTerm().getLabel(); + } + //create new Character + Character character = Character.NewInstance(structureNode, propertyNode, null, label, abbrevLabel); + return character; + } + }