svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app / org.gvsig.app.mainplugin / src / main / java / org / gvsig / app / project / documents / view / expressionevaluator / ViewTakeProjectionCodeElement.java @ 44644
History | View | Annotate | Download (3.2 KB)
1 |
package org.gvsig.app.project.documents.view.expressionevaluator; |
---|---|
2 |
|
3 |
import java.util.Objects; |
4 |
import org.cresques.cts.IProjection; |
5 |
import org.gvsig.app.ApplicationLocator; |
6 |
import org.gvsig.app.ApplicationManager; |
7 |
import org.gvsig.app.project.documents.view.ViewDocument; |
8 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
9 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
10 |
import org.gvsig.expressionevaluator.swing.Element.SimpleElement; |
11 |
import org.gvsig.expressionevaluator.swing.Element.ConstantElement; |
12 |
import org.gvsig.expressionevaluator.swing.spi.AbstractElement; |
13 |
import org.gvsig.tools.ToolsLocator; |
14 |
import org.gvsig.tools.i18n.I18nManager; |
15 |
|
16 |
/**
|
17 |
*
|
18 |
* @author jjdelcerro
|
19 |
*/
|
20 |
@SuppressWarnings("UseSpecificCatch") |
21 |
public class ViewTakeProjectionCodeElement |
22 |
extends AbstractElement
|
23 |
implements SimpleElement, ConstantElement
|
24 |
{ |
25 |
public ViewTakeProjectionCodeElement() {
|
26 |
super(
|
27 |
"ViewTakeProjectionCode",
|
28 |
ToolsLocator.getI18nManager().getTranslation("_Take_projection_code"),
|
29 |
"expressionbuilder-element-view-projection-code"
|
30 |
); |
31 |
} |
32 |
|
33 |
private IProjection getCurrentProjection() {
|
34 |
ApplicationManager application = ApplicationLocator.getManager(); |
35 |
ViewDocument viewDoc = (ViewDocument) application.getActiveDocument(ViewDocument.class); |
36 |
if( viewDoc == null ) { |
37 |
return null; |
38 |
} |
39 |
IProjection proj = viewDoc.getMapContext().getProjection(); |
40 |
return proj;
|
41 |
} |
42 |
|
43 |
private Object getProjectionCode(IProjection proj) { |
44 |
if( proj == null ) { |
45 |
return 0; |
46 |
} |
47 |
String[] proj_s = proj.getAbrev().split(":"); |
48 |
try {
|
49 |
int code = Integer.parseInt(proj_s[1]); |
50 |
return code;
|
51 |
} catch(Exception ex) { |
52 |
return proj_s[1]; |
53 |
} |
54 |
} |
55 |
|
56 |
@Override
|
57 |
public Object getValue() { |
58 |
IProjection proj = this.getCurrentProjection();
|
59 |
return this.getProjectionCode(proj); |
60 |
} |
61 |
|
62 |
@Override
|
63 |
public String getRenderedValue() { |
64 |
return Objects.toString(this.getValue(), "0"); |
65 |
} |
66 |
|
67 |
@Override
|
68 |
public String getDescription() { |
69 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
70 |
|
71 |
IProjection proj = this.getCurrentProjection();
|
72 |
|
73 |
StringBuilder html = new StringBuilder(); |
74 |
html.append("<html>\n");
|
75 |
html.append("<b>").append(i18n.getTranslation("_Constant")).append("</b><br>\n<br>\n"); |
76 |
if( proj == null ) { |
77 |
html.append("<b>").append(i18n.getTranslation("_Value")).append("</b> NULL<br>\n"); |
78 |
} else {
|
79 |
ExpressionEvaluatorManager expressionManager = ExpressionEvaluatorLocator.getExpressionEvaluatorManager(); |
80 |
Object code = this.getProjectionCode(proj); |
81 |
html.append("<b>").append(i18n.getTranslation("_Value")).append("</b> ").append(expressionManager.getReprMethod(proj).repr(proj)).append("</b>"); |
82 |
html.append(" (").append(proj.getAbrev()).append(")<br>\n"); |
83 |
html.append("<b>").append(i18n.getTranslation("_Type")).append("</b> ").append(code.getClass().getSimpleName()).append("<br>\n"); |
84 |
} |
85 |
html.append("</html>\n");
|
86 |
return html.toString();
|
87 |
} |
88 |
|
89 |
|
90 |
} |