2 * Copyright (C) 2018 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.editor
.view
.checklist
.e4
;
11 import java
.util
.HashSet
;
12 import java
.util
.Iterator
;
14 import org
.apache
.commons
.lang3
.StringUtils
;
15 import org
.eclipse
.nebula
.widgets
.nattable
.data
.convert
.DisplayConverter
;
17 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
18 import eu
.etaxonomy
.cdm
.model
.description
.Distribution
;
19 import eu
.etaxonomy
.cdm
.model
.description
.PresenceAbsenceTerm
;
20 import eu
.etaxonomy
.cdm
.model
.metadata
.TermDisplayEnum
;
21 import eu
.etaxonomy
.cdm
.model
.term
.Representation
;
22 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
23 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
30 public class StatusDisplayConverter
extends DisplayConverter
{
31 public static final String DEFAULT_ENTRY
= " ";
36 public Object
canonicalToDisplayValue(Object canonicalValue
) {
37 if(canonicalValue
instanceof Distribution
){
38 Distribution distribution
= HibernateProxyHelper
.deproxy(canonicalValue
, Distribution
.class);
39 return extractStatusString(distribution
);
41 }else if(canonicalValue
instanceof PresenceAbsenceTerm
){
42 return ((PresenceAbsenceTerm
)canonicalValue
).getLabel();
43 } else if(canonicalValue
instanceof HashSet
<?
>){
44 HashSet
<Distribution
> statusSet
= (HashSet
<Distribution
>) canonicalValue
;
45 Iterator
<Distribution
> status
= statusSet
.iterator();
47 while(status
.hasNext()){
48 result
= extractStatusString(status
.next()) + ", " +result
;
50 result
= result
.substring(0, result
.length() - 2);
52 }else if (canonicalValue
!= null){
53 return canonicalValue
.toString();
62 public Object
displayToCanonicalValue(Object displayValue
) {
66 public Object
extractStatusString(Object distribution
) {
67 PresenceAbsenceTerm status
= null;
68 if (distribution
instanceof Distribution
){
69 status
= HibernateProxyHelper
.deproxy(((Distribution
)distribution
).getStatus(), PresenceAbsenceTerm
.class);
71 // if (distribution instanceof String){
72 // status = (PresenceAbsenceTerm)distribution;
78 Representation rep
= status
.getPreferredRepresentation(CdmStore
.getDefaultLanguage());
79 String label
= rep
.getLabel();
82 label
= status
.getTitleCache();
84 if (PreferencesUtil
.displayStatusInChecklistEditor() != null){
85 if(PreferencesUtil
.displayStatusInChecklistEditor().equals(TermDisplayEnum
.IdInVocabulary
)){
87 return (StringUtils
.isNotBlank(status
.getIdInVocabulary()))?status
.getIdInVocabulary():label
;
88 }else if(PreferencesUtil
.displayStatusInChecklistEditor().equals(TermDisplayEnum
.Symbol1
)){
90 return (StringUtils
.isNotBlank(status
.getSymbol() ))?status
.getSymbol():label
;
91 }else if(PreferencesUtil
.displayStatusInChecklistEditor().equals(TermDisplayEnum
.Symbol2
)){
92 return (StringUtils
.isNotBlank(status
.getSymbol2() ))?status
.getSymbol2():label
;
94 return (label
!= null)?label
:DEFAULT_ENTRY
;
98 return (label
!= null)?label
:DEFAULT_ENTRY
;