Statistics
| Revision:

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 / viewcapturepoint / ViewCapturePointElement.java @ 44198

History | View | Annotate | Download (2.92 KB)

1 44190 jjdelcerro
package org.gvsig.app.project.documents.view.expressionevaluator.viewcapturepoint;
2 44006 jjdelcerro
3 44173 jjdelcerro
import org.gvsig.app.ApplicationLocator;
4
import org.gvsig.app.ApplicationManager;
5 44006 jjdelcerro
import org.gvsig.expressionevaluator.ExpressionBuilder;
6
import org.gvsig.expressionevaluator.ExpressionBuilder.GeometrySupportType;
7
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
8
import org.gvsig.expressionevaluator.swing.Element.CalculatedElement;
9
import org.gvsig.expressionevaluator.swing.Element.SimpleElement;
10 44129 jjdelcerro
import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
11 44006 jjdelcerro
import org.gvsig.expressionevaluator.swing.spi.AbstractElement;
12
import org.gvsig.fmap.geom.Geometry;
13 44012 jjdelcerro
import org.gvsig.tools.ToolsLocator;
14 44006 jjdelcerro
import org.gvsig.tools.swing.api.Component;
15
16
/**
17
 *
18
 * @author jjdelcerro
19
 */
20 44101 jjdelcerro
@SuppressWarnings("UseSpecificCatch")
21 44006 jjdelcerro
public class ViewCapturePointElement
22
        extends AbstractElement
23 44101 jjdelcerro
        implements SimpleElement, CalculatedElement {
24
25 44006 jjdelcerro
    private ViewCapturePointPanel aditionalPanel;
26
27
    public ViewCapturePointElement() {
28 44012 jjdelcerro
        super(
29 44101 jjdelcerro
                ToolsLocator.getI18nManager().getTranslation("_Capture_point"),
30 44012 jjdelcerro
                "expressionbuilder-element-view-capture-point"
31
        );
32 44006 jjdelcerro
    }
33
34
    @Override
35
    public Object getValue() {
36
        if (this.aditionalPanel == null) {
37
            return null;
38
        }
39
        try {
40
            Geometry geom = this.aditionalPanel.getGeometry();
41
            if (geom == null) {
42
                return null;
43
            }
44
            ExpressionBuilder builder = ExpressionEvaluatorLocator.getManager().createExpressionBuilder();
45
            if (this.aditionalPanel.insertAsWKT()) {
46
                if (this.aditionalPanel.insertAsGeometry()) {
47 44198 jjdelcerro
                    builder.geometry_support_type(GeometrySupportType.WKT);
48 44006 jjdelcerro
                    return builder.geometry(geom, geom.getProjection()).toString();
49
                } else {
50
                    String wkt = geom.convertToWKT();
51
                    return "'" + wkt + "'";
52
                }
53
            } else {
54
                if (this.aditionalPanel.insertAsGeometry()) {
55 44198 jjdelcerro
                    builder.geometry_support_type(GeometrySupportType.WKB);
56 44006 jjdelcerro
                    return builder.geometry(geom, geom.getProjection()).toString();
57
                } else {
58
                    byte[] wkb = geom.convertToWKB();
59
                    return builder.bytearray_hex(wkb);
60
                }
61
            }
62
        } catch (Exception ex) {
63
            LOGGER.warn("Can't get point value.", ex);
64
            return null;
65
        }
66
    }
67
68
    @Override
69 44129 jjdelcerro
    public Component getAditionalPanel(JExpressionBuilder expressionBuilder) {
70 44006 jjdelcerro
        if (aditionalPanel == null) {
71
            this.aditionalPanel = new ViewCapturePointPanel();
72
        }
73
        return this.aditionalPanel;
74
    }
75
76 44101 jjdelcerro
    @Override
77
    public boolean isEnabled() {
78 44173 jjdelcerro
        ApplicationManager application = ApplicationLocator.getManager();
79
        return ! application.getUIManager().isModalDialogShowing();
80 44101 jjdelcerro
    }
81 44006 jjdelcerro
}