Project

General

Profile

« Previous | Next » 

Revision 3ac05bdb

Added by Katja Luther over 4 years ago

fix #7321: check whether text of default language is set otherwise get another language

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListLabelProvider.java
1 1
/**
2 2
 * Copyright (C) 2007 EDIT
3
 * European Distributed Institute of Taxonomy 
3
 * European Distributed Institute of Taxonomy
4 4
 * http://www.e-taxonomy.eu
5
 * 
5
 *
6 6
 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 7
 * See LICENSE.TXT at the top of this package for the full license terms.
8 8
 */
9 9

  
10 10
package eu.etaxonomy.taxeditor.editor.key.polytomous;
11 11

  
12
import java.util.Map;
13

  
14
import org.apache.commons.lang.StringUtils;
12 15
import org.eclipse.jface.viewers.StyledCellLabelProvider;
13 16
import org.eclipse.jface.viewers.StyledString;
14 17
import org.eclipse.jface.viewers.StyledString.Styler;
......
21 24

  
22 25
import eu.etaxonomy.cdm.common.CdmUtils;
23 26
import eu.etaxonomy.cdm.model.common.Language;
27
import eu.etaxonomy.cdm.model.common.LanguageString;
24 28
import eu.etaxonomy.cdm.model.description.KeyStatement;
25 29
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
26 30
import eu.etaxonomy.taxeditor.store.CdmStore;
......
42 46

  
43 47
	/*
44 48
	 * (non-Javadoc)
45
	 * 
49
	 *
46 50
	 * @see
47 51
	 * org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.
48 52
	 * jface.viewers.ViewerCell)
......
56 60

  
57 61
			String text = getTextForColumnIndex((PolytomousKeyNode) element,
58 62
					columnIndex);
59
			
60
			
63

  
64

  
61 65
			cell.setText(text);
62 66

  
63 67
			if (columnIndex == 4 || columnIndex == 5) {
......
76 80
		case 0:
77 81
			return getItemNumber(node);
78 82
		case 1:
79
			return getItemQuestion(node);			
83
			return getItemQuestion(node);
80 84
		case 2:
81 85
			return getItemEdgeNumber(node);
82 86
		case 3:
......
111 115
		if (isParentRoot(node)) {
112 116
			return "root"; //$NON-NLS-1$
113 117
		} else {
114
			
115
			String itemNumber = (node.getParent().getNodeNumber() != null) ? node.getParent().getNodeNumber().toString() : EMPTY;					
118

  
119
			String itemNumber = (node.getParent().getNodeNumber() != null) ? node.getParent().getNodeNumber().toString() : EMPTY;
116 120
			return itemNumber;
117 121
		}
118 122
	}
119 123

  
120 124
	private String getItemEdgeNumber(PolytomousKeyNode node) {
121
		String itemEdgeNumber = node.getParent().getNodeNumber() != null ? node.getParent().getNodeNumber().toString() : EMPTY;		
125
		String itemEdgeNumber = node.getParent().getNodeNumber() != null ? node.getParent().getNodeNumber().toString() : EMPTY;
122 126
		PolytomousKeyNode parent = getParent(node);
123 127
		int index = parent.getChildren().indexOf(node);
124 128

  
......
134 138
		}
135 139
		return itemEdgeNumber + numberChar;
136 140
	}
137
	
141

  
138 142
	private String getItemQuestion(PolytomousKeyNode node) {
139 143
		if (isParentRoot(node)) {
140 144
			return ""; //$NON-NLS-1$
141 145
		} else {
142
			KeyStatement question = getParent(node).getQuestion();					
143
			return question != null ? CdmUtils.Nz(question.getLabelText(CdmStore.getDefaultLanguage())) : EMPTY;
144
			
146
			KeyStatement question = getParent(node).getQuestion();
147
			String statementLabel = CdmUtils.Nz(question.getLabelText(CdmStore.getDefaultLanguage()));
148
			if (StringUtils.isBlank(statementLabel)){
149
	            Map<Language, LanguageString> labels = question.getLabel();
150
	            if (labels != null && !labels.isEmpty()){
151
	                for (LanguageString langString: labels.values()){
152
	                    if (StringUtils.isNotBlank(langString.getText())){
153
	                        statementLabel = langString.getText();
154
	                        break;
155
	                    }
156
	                }
157
	            }
158
	        }
159

  
160

  
161
			return question != null ?  statementLabel: EMPTY;
162

  
145 163
		}
146 164

  
147 165
	}
148 166

  
149 167
	private String getItemStatement(PolytomousKeyNode node) {
150 168
		KeyStatement statement = node.getStatement();
151
		return statement != null ? CdmUtils.Nz(statement.getLabelText(CdmStore
152
				.getDefaultLanguage())) : EMPTY;
169
		String statementLabel = CdmUtils.Nz(statement.getLabelText(CdmStore
170
                .getDefaultLanguage()));
171
		if (StringUtils.isBlank(statementLabel)){
172
            Map<Language, LanguageString> labels = statement.getLabel();
173
            if (labels != null && !labels.isEmpty()){
174
                for (LanguageString langString: labels.values()){
175
                    if (StringUtils.isNotBlank(langString.getText())){
176
                        statementLabel = langString.getText();
177
                        break;
178
                    }
179
                }
180
            }
181
        }
182
		return statementLabel != null ?  statementLabel: EMPTY;
153 183
	}
154 184

  
155 185
	private String getItemLink(PolytomousKeyNode node) {
......
157 187

  
158 188
		return linkString;
159 189
	}
160
	
190

  
161 191
	private String getItemTaxon(PolytomousKeyNode node) {
162 192
	    String taxonString = node.getTaxon() != null ? node.getTaxon().getName().getTitleCache() : EMPTY;
163 193

  

Also available in: Unified diff