Revision 834

View differences:

org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4

  
5
    <modelVersion>4.0.0</modelVersion>
6
    <artifactId>org.gvsig.expressionfield</artifactId>
7
    <name>${project.artifactId}</name>
8
    <version>2.0.159</version>
9
    <description>Field calculator (Expression from assistant or from text file)</description>
10

  
11
    <parent>
12
        <groupId>org.gvsig</groupId>
13
        <artifactId>org.gvsig.desktop</artifactId>
14
        <version>2.0.343</version>
15
    </parent>
16

  
17
    <url>https://devel.gvsig.org/redmine/projects/gvsig-expression-field</url>
18

  
19
    <scm>
20
        <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-expression-field/org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159</connection>
21
        <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-expression-field/org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159</developerConnection>
22
        <url>scm:svn:https://devel.gvsig.org/svn/gvsig-expression-field/org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159</url>
23
    </scm>
24

  
25
  <repositories>
26
    <repository>
27
      <id>gvsig-public-http-repository</id>
28
      <name>gvSIG maven public HTTP repository</name>
29
      <url>http://devel.gvsig.org/m2repo/j2se</url>
30
      <releases>
31
        <enabled>true</enabled>
32
        <updatePolicy>daily</updatePolicy>
33
        <checksumPolicy>warn</checksumPolicy>
34
      </releases>
35
      <snapshots>
36
        <enabled>true</enabled>
37
        <updatePolicy>daily</updatePolicy>
38
        <checksumPolicy>warn</checksumPolicy>
39
      </snapshots>
40
    </repository>
41
  </repositories>
42
    <dependencyManagement>
43
        <dependencies>
44
            <!-- Adding this dependency because this project is using a jython version
45
            different to the version defined by the parent pom  -->
46
            <dependency>
47
                <groupId>org.python</groupId>
48
                <artifactId>jython</artifactId>
49
                <version>2.2.1</version>
50
            </dependency>
51
        </dependencies>
52
    </dependencyManagement>
53

  
54
    <dependencies>
55
        <dependency>
56
            <groupId>org.gvsig</groupId>
57
            <artifactId>org.gvsig.app.mainplugin</artifactId>
58
            <scope>compile</scope>
59
        </dependency>
60
        <dependency>
61
            <groupId>org.gvsig</groupId>
62
            <artifactId>org.gvsig.app.document.table.app.mainplugin</artifactId>
63
            <scope>compile</scope>
64
        </dependency>
65
        <dependency>
66
            <groupId>bsf</groupId>
67
            <artifactId>bsf</artifactId>
68
            <scope>compile</scope>
69
        </dependency>
70

  
71
        <dependency>
72
            <groupId>bsh</groupId>
73
            <artifactId>bsh</artifactId>
74
            <scope>compile</scope>
75
        </dependency>
76

  
77
        <dependency>
78
            <groupId>org.gvsig</groupId>
79
            <artifactId>org.gvsig.about.api</artifactId>
80
            <scope>compile</scope>
81
        </dependency>
82
        <dependency>
83
            <groupId>org.gvsig</groupId>
84
            <artifactId>org.gvsig.andami</artifactId>
85
            <scope>compile</scope>
86
        </dependency>
87
        <dependency>
88
            <groupId>org.gvsig</groupId>
89
            <artifactId>org.gvsig.fmap.dal.api</artifactId>
90
            <scope>compile</scope>
91
        </dependency>
92
        <dependency>
93
            <groupId>org.gvsig</groupId>
94
            <artifactId>org.gvsig.fmap.mapcontext.api</artifactId>
95
            <scope>compile</scope>
96
        </dependency>
97
        <dependency>
98
            <groupId>org.gvsig</groupId>
99
            <artifactId>org.gvsig.tools.lib</artifactId>
100
            <scope>compile</scope>
101
        </dependency>
102
        <dependency>
103
            <groupId>org.gvsig</groupId>
104
            <artifactId>org.gvsig.tools.swing.api</artifactId>
105
            <scope>compile</scope>
106
        </dependency>
107
        <dependency>
108
            <groupId>org.gvsig</groupId>
109
            <artifactId>org.gvsig.fmap.geometry.api</artifactId>
110
            <scope>compile</scope>
111
        </dependency>
112
        <dependency>
113
            <groupId>org.gvsig</groupId>
114
            <artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
115
            <scope>compile</scope>
116
        </dependency>
117
        <dependency>
118
            <groupId>org.gvsig</groupId>
119
            <artifactId>org.gvsig.ui</artifactId>
120
            <scope>compile</scope>
121
        </dependency>
122
        <dependency>
123
            <groupId>org.gvsig</groupId>
124
            <artifactId>org.gvsig.projection.api</artifactId>
125
            <scope>compile</scope>
126
        </dependency>
127
        <dependency>
128
            <groupId>org.gvsig</groupId>
129
            <artifactId>org.gvsig.fmap.control</artifactId>
130
            <scope>compile</scope>
131
        </dependency>
132
        <dependency>
133
            <groupId>org.gvsig</groupId>
134
            <artifactId>org.gvsig.utils</artifactId>
135
            <scope>compile</scope>
136
        </dependency>
137
        <dependency>
138
            <groupId>org.gvsig</groupId>
139
            <artifactId>org.gvsig.timesupport.lib.api</artifactId>
140
            <scope>compile</scope>
141
        </dependency>
142
        <dependency>
143
            <groupId>com.fifesoft</groupId>
144
            <artifactId>rsyntaxtextarea</artifactId>
145
            <scope>compile</scope>
146
        </dependency>
147
        <dependency>
148
            <groupId>org.python</groupId>
149
            <artifactId>jython</artifactId>
150
            <scope>runtime</scope>
151
        </dependency>
152
    </dependencies>
153

  
154

  
155
    <build>
156

  
157
        <plugins>
158
            <plugin>
159
                <groupId>org.apache.maven.plugins</groupId>
160
                <artifactId>maven-surefire-plugin</artifactId>
161
                <configuration>
162
                    <skipTests>true</skipTests>
163
                </configuration>
164
            </plugin>
165

  
166
        </plugins>
167

  
168
    </build>
169

  
170

  
171
    <properties>
172
        <!-- The property svn.tags.folder is used in external projects to override  -->
173
        <!-- configuraction in maven-release-plugin -->
174
        <svn.tags.folder>https://devel.gvsig.org/svn/gvsig-expression-field/org.gvsig.expressionfield/tags/</svn.tags.folder>
175

  
176
        <gvsig.package.info.name>Tools: Field calculator</gvsig.package.info.name>
177
        <gvsig.package.info.dependencies>required: org.gvsig.app.document.table.app.mainplugin -ge 2</gvsig.package.info.dependencies>
178
        <gvsig.package.info.javaVM>j1_6</gvsig.package.info.javaVM>
179
        <gvsig.package.info.state>testing</gvsig.package.info.state>
180
        <gvsig.package.info.official>true</gvsig.package.info.official>
181
        <!-- alpha-devel -->
182
        <gvsig.package.info.categories>Table</gvsig.package.info.categories>
183
        <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-expression-field/pool</gvsig.package.info.poolURL>
184

  
185
    </properties>
186
</project>
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/buildNumber.properties
1
#Fri Nov 26 00:58:35 CET 2021
2
buildNumber=2238
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/assembly/gvsig-plugin-package.xml
1
<!--
2

  
3
    gvSIG. Desktop Geographic Information System.
4

  
5
    Copyright (C) 2007-2013 gvSIG Association.
6

  
7
    This program is free software; you can redistribute it and/or
8
    modify it under the terms of the GNU General Public License
9
    as published by the Free Software Foundation; either version 3
10
    of the License, or (at your option) any later version.
11

  
12
    This program is distributed in the hope that it will be useful,
13
    but WITHOUT ANY WARRANTY; without even the implied warranty of
14
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
    GNU General Public License for more details.
16

  
17
    You should have received a copy of the GNU General Public License
18
    along with this program; if not, write to the Free Software
19
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
    MA  02110-1301, USA.
21

  
22
    For any additional information, do not hesitate to contact us
23
    at info AT gvsig.com, or visit our website www.gvsig.com.
24

  
25
-->
26
<assembly>
27
  <id>gvsig-plugin-package</id>
28
  <formats>
29
    <format>zip</format>
30
  </formats>
31
  <baseDirectory>${project.artifactId}</baseDirectory>
32
  <includeBaseDirectory>true</includeBaseDirectory>
33
  <files>
34
    <file>
35
      <source>target/${project.artifactId}-${project.version}.jar</source>
36
      <outputDirectory>lib</outputDirectory>
37
    </file>
38
    <file>
39
      <source>target/package.info</source>
40
    </file>
41
  </files>
42

  
43
  <fileSets>
44
    <fileSet>
45
      <directory>src/main/resources-plugin</directory>
46
      <outputDirectory>.</outputDirectory>
47
    </fileSet>
48
  </fileSets>
49

  
50
  <dependencySets>
51
    <dependencySet>
52
      <useProjectArtifact>false</useProjectArtifact>
53
      <useTransitiveDependencies>false</useTransitiveDependencies>
54
      <outputDirectory>lib</outputDirectory>
55
      <includes>
56
        <include>bsf:bsf</include>
57
        <include>org.python:jython</include>
58
        <include>com.fifesoft:rsyntaxtextarea</include>
59
      </includes>
60
    </dependencySet>
61
  </dependencySets>
62

  
63
</assembly>
64

  
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/AboutExpressionFieldExtension.java
1
/*******************************************************************************
2
 *
3
 *   gvSIG. Desktop Geographic Information System.
4
 *  
5
 *   Copyright (C) 2007-2013 gvSIG Association.
6
 *  
7
 *   This program is free software; you can redistribute it and/or
8
 *   modify it under the terms of the GNU General Public License
9
 *   as published by the Free Software Foundation; either version 3
10
 *   of the License, or (at your option) any later version.
11
 *  
12
 *   This program is distributed in the hope that it will be useful,
13
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 *   GNU General Public License for more details.
16
 *  
17
 *   You should have received a copy of the GNU General Public License
18
 *   along with this program; if not, write to the Free Software
19
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
 *   MA  02110-1301, USA.
21
 *  
22
 *   For any additional information, do not hesitate to contact us
23
 *   at info AT gvsig.com, or visit our website www.gvsig.com.
24
 *   
25
 *******************************************************************************/
26
package org.gvsig.expressionfield;
27

  
28
import org.gvsig.about.AboutManager;
29
import org.gvsig.about.AboutParticipant;
30
import org.gvsig.andami.plugins.Extension;
31
import org.gvsig.app.ApplicationLocator;
32
import org.gvsig.app.ApplicationManager;
33

  
34

  
35
/**
36
 * About extension.
37
 *
38
 * Add the about coments to the gvSIG About panel
39
 */
40

  
41
public class AboutExpressionFieldExtension extends Extension {
42

  
43
	public void initialize() {
44
		// TODO Auto-generated method stub
45

  
46
	}
47

  
48
	public void postInitialize() {
49
		ApplicationManager application = ApplicationLocator.getManager();
50
		
51
		AboutManager about = application.getAbout();
52

  
53
		about.addDeveloper(
54
				"IVER",
55
				this.getClass().getClassLoader().getResource("iver.html"),
56
				1
57
		);
58
		
59
		AboutParticipant participant = about.getDeveloper("IVER");
60
		participant.addContribution(
61
			"Expression field",
62
			"Extesi?n para el c?lculo de una expresi?n sobre una columna de la tabla.", 
63
			2007,1,1, 
64
			2007,12,31
65
		);
66
	}
67

  
68
	public void execute(String actionCommand) {
69

  
70
	}
71

  
72
	public boolean isEnabled() {
73
		return false;
74
	}
75

  
76
	public boolean isVisible() {
77
		return false;
78
	}
79

  
80
}
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/ExpressionFieldExtension.java
1
/**
2
 * *****************************************************************************
3
 *
4
 * gvSIG. Desktop Geographic Information System.
5
 *
6
 * Copyright (C) 2007-2013 gvSIG Association.
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 3
11
 * of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21
 * MA 02110-1301, USA.
22
 *
23
 * For any additional information, do not hesitate to contact us
24
 * at info AT gvsig.com, or visit our website www.gvsig.com.
25
 *
26
 ******************************************************************************
27
 */
28
package org.gvsig.expressionfield;
29

  
30
import java.awt.Component;
31
import java.util.ArrayList;
32
import java.util.Iterator;
33

  
34
import javax.swing.JOptionPane;
35

  
36
import org.apache.bsf.BSFManager;
37

  
38
import org.gvsig.andami.IconThemeHelper;
39
import org.gvsig.andami.PluginServices;
40
import org.gvsig.andami.messages.NotificationManager;
41
import org.gvsig.andami.plugins.Extension;
42
import org.gvsig.app.project.documents.table.gui.FeatureTableDocumentPanel;
43
import org.gvsig.expressionfield.gui.FieldExpressionPage;
44
import org.gvsig.expressionfield.project.documents.table.IOperator;
45
import org.gvsig.expressionfield.project.documents.table.gui.EvalExpressionDialog;
46
import org.gvsig.expressionfield.project.documents.table.operators.Abs;
47
import org.gvsig.expressionfield.project.documents.table.operators.Acos;
48
import org.gvsig.expressionfield.project.documents.table.operators.After;
49
import org.gvsig.expressionfield.project.documents.table.operators.Area;
50
import org.gvsig.expressionfield.project.documents.table.operators.Asin;
51
import org.gvsig.expressionfield.project.documents.table.operators.Atan;
52
import org.gvsig.expressionfield.project.documents.table.operators.Before;
53
import org.gvsig.expressionfield.project.documents.table.operators.Ceil;
54
import org.gvsig.expressionfield.project.documents.table.operators.Cos;
55
import org.gvsig.expressionfield.project.documents.table.operators.DateToString;
56
import org.gvsig.expressionfield.project.documents.table.operators.Distinct;
57
import org.gvsig.expressionfield.project.documents.table.operators.Division;
58
import org.gvsig.expressionfield.project.documents.table.operators.E;
59
import org.gvsig.expressionfield.project.documents.table.operators.EndsWith;
60
import org.gvsig.expressionfield.project.documents.table.operators.Equal;
61
import org.gvsig.expressionfield.project.documents.table.operators.Equals;
62
import org.gvsig.expressionfield.project.documents.table.operators.Exp;
63
import org.gvsig.expressionfield.project.documents.table.operators.Floor;
64
import org.gvsig.expressionfield.project.documents.table.operators.Geometry;
65
import org.gvsig.expressionfield.project.documents.table.operators.GetTimeDate;
66
import org.gvsig.expressionfield.project.documents.table.operators.IndexOf;
67
import org.gvsig.expressionfield.project.documents.table.operators.IsNumber;
68
import org.gvsig.expressionfield.project.documents.table.operators.LastIndexOf;
69
import org.gvsig.expressionfield.project.documents.table.operators.Length;
70
import org.gvsig.expressionfield.project.documents.table.operators.LessEquals;
71
import org.gvsig.expressionfield.project.documents.table.operators.LessThan;
72
import org.gvsig.expressionfield.project.documents.table.operators.Log;
73
import org.gvsig.expressionfield.project.documents.table.operators.Max;
74
import org.gvsig.expressionfield.project.documents.table.operators.Min;
75
import org.gvsig.expressionfield.project.documents.table.operators.Minus;
76
import org.gvsig.expressionfield.project.documents.table.operators.MoreEquals;
77
import org.gvsig.expressionfield.project.documents.table.operators.MoreThan;
78
import org.gvsig.expressionfield.project.documents.table.operators.Perimeter;
79
import org.gvsig.expressionfield.project.documents.table.operators.Pi;
80
import org.gvsig.expressionfield.project.documents.table.operators.Plus;
81
import org.gvsig.expressionfield.project.documents.table.operators.PointX;
82
import org.gvsig.expressionfield.project.documents.table.operators.PointY;
83
import org.gvsig.expressionfield.project.documents.table.operators.Pow;
84
import org.gvsig.expressionfield.project.documents.table.operators.Random;
85
import org.gvsig.expressionfield.project.documents.table.operators.RecordIndex;
86
import org.gvsig.expressionfield.project.documents.table.operators.Replace;
87
import org.gvsig.expressionfield.project.documents.table.operators.Round;
88
import org.gvsig.expressionfield.project.documents.table.operators.SetTimeDate;
89
import org.gvsig.expressionfield.project.documents.table.operators.Sin;
90
import org.gvsig.expressionfield.project.documents.table.operators.Sqrt;
91
import org.gvsig.expressionfield.project.documents.table.operators.StartsWith;
92
import org.gvsig.expressionfield.project.documents.table.operators.SubString;
93
import org.gvsig.expressionfield.project.documents.table.operators.Tan;
94
import org.gvsig.expressionfield.project.documents.table.operators.Times;
95
import org.gvsig.expressionfield.project.documents.table.operators.ToDate;
96
import org.gvsig.expressionfield.project.documents.table.operators.ToDegrees;
97
import org.gvsig.expressionfield.project.documents.table.operators.ToLowerCase;
98
import org.gvsig.expressionfield.project.documents.table.operators.ToNumber;
99
import org.gvsig.expressionfield.project.documents.table.operators.ToRadians;
100
import org.gvsig.expressionfield.project.documents.table.operators.ToString;
101
import org.gvsig.expressionfield.project.documents.table.operators.ToUpperCase;
102
import org.gvsig.expressionfield.project.documents.table.operators.Trim;
103
import org.gvsig.fmap.dal.exception.DataException;
104
import org.gvsig.tools.ToolsLocator;
105
import org.gvsig.tools.extensionpoint.ExtensionPoint;
106
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
107
import org.gvsig.utils.swing.threads.AbstractMonitorableTask;
108

  
109
import org.slf4j.Logger;
110
import org.slf4j.LoggerFactory;
111

  
112
/**
113
 * @author Vicente Caballero Navarro
114
 */
115
public class ExpressionFieldExtension extends Extension {
116

  
117
    private static Logger logger = LoggerFactory.getLogger(ExpressionFieldExtension.class);
118

  
119
    public static final String JYTHON = "jython";
120
    private static BSFManager interpreter = new BSFManager();
121
    private FeatureTableDocumentPanel table = null;
122
    private static ArrayList<IOperator> operators = new ArrayList<IOperator>();
123

  
124
    public void initialize() {
125
        registerIcons();
126
        registerOperations();
127
    }
128

  
129
    public void execute(String actionCommand) {
130
        if ( "table-expression-field".equalsIgnoreCase(actionCommand) ) {
131
            org.gvsig.andami.ui.mdiManager.IWindow window = PluginServices.getMDIManager().getActiveWindow();
132
            table = (FeatureTableDocumentPanel) window;
133
            if ( !table.getModel().getStore().isEditing() ) {
134
                int option = JOptionPane.showConfirmDialog((Component) PluginServices.getMainFrame(), PluginServices.getText(this, "is_not_in_editing_are_you_sure"));
135
                if ( option != JOptionPane.OK_OPTION ) {
136
                    return;
137
                }
138
            }
139
            if ( operators.isEmpty() ) {
140
                PluginServices.cancelableBackgroundExecution(new EvalOperatorsTask());
141
            } else {
142
                EvalExpressionDialog eed = new EvalExpressionDialog(table, interpreter, operators);
143
                PluginServices.getMDIManager().addWindow(eed);
144
            }
145
        }
146
    }
147

  
148
    public void postInitialize() {
149

  
150
    }
151

  
152
    public boolean isEnabled() {
153
        org.gvsig.andami.ui.mdiManager.IWindow window = PluginServices.getMDIManager().getActiveWindow();
154
        if ( window instanceof FeatureTableDocumentPanel ) {
155
            FeatureTableDocumentPanel table = (FeatureTableDocumentPanel) window;
156
            int columnSelected = 0;
157
            try {
158
                columnSelected = table.getTablePanel().getTable().getSelectedColumnCount();
159
            } catch (DataException e) {
160
                logger.error("Can't get selected column in table.", e);
161
            }
162
            if ( columnSelected > 0 && table.getModel().getStore().isEditing() ) {
163
                return true;
164
            }
165
        }
166
        return false;
167
    }
168

  
169
    public boolean isVisible() {
170

  
171
        org.gvsig.andami.ui.mdiManager.IWindow window = PluginServices.getMDIManager().getActiveWindow();
172
        if ( window instanceof FeatureTableDocumentPanel ) {
173
            return true;
174
        }
175
        return false;
176
    }
177

  
178
    private void registerOperations() {
179
        ExtensionPointManager extensionPointsManager =ToolsLocator.getExtensionPointManager();
180
        ExtensionPoint ep = extensionPointsManager.add("AplicationPreferences", "");
181
        ep.append("fieldExpression", "", new FieldExpressionPage());
182

  
183
        ExtensionPoint extensionPoints = ToolsLocator.getExtensionPointManager().add(
184
                "ColumnOperators", "");
185
        extensionPoints.append(Abs.class.toString(), "", Abs.class);
186
        extensionPoints.append(Acos.class.toString(), "", Acos.class);
187
        extensionPoints.append(After.class.toString(), "", After.class);
188
        extensionPoints.append(Area.class.toString(), "", Area.class);
189
        extensionPoints.append(Asin.class.toString(), "", Asin.class);
190
        extensionPoints.append(Atan.class.toString(), "", Atan.class);
191
        extensionPoints.append(Acos.class.toString(), "", Acos.class);
192
        extensionPoints.append(Before.class.toString(), "", Before.class);
193
        extensionPoints.append(Ceil.class.toString(), "", Ceil.class);
194
        extensionPoints.append(Cos.class.toString(), "", Cos.class);
195
        extensionPoints.append(DateToString.class.toString(), "", DateToString.class);
196
        extensionPoints.append(Distinct.class.toString(), "", Distinct.class);
197
        extensionPoints.append(Division.class.toString(), "", Division.class);
198
        extensionPoints.append(E.class.toString(), "", E.class);
199
        extensionPoints.append(EndsWith.class.toString(), "", EndsWith.class);
200
        extensionPoints.append(Equal.class.toString(), "", Equal.class);
201
        extensionPoints.append(Equals.class.toString(), "", Equals.class);
202
        extensionPoints.append(Exp.class.toString(), "", Exp.class);
203
        extensionPoints.append(Floor.class.toString(), "", Floor.class);
204
        extensionPoints.append(Geometry.class.toString(), "", Geometry.class);
205
        extensionPoints.append(GetTimeDate.class.toString(), "", GetTimeDate.class);
206
        extensionPoints.append(IndexOf.class.toString(), "", IndexOf.class);
207
        extensionPoints.append(IsNumber.class.toString(), "", IsNumber.class);
208
        extensionPoints.append(LastIndexOf.class.toString(), "", LastIndexOf.class);
209
        extensionPoints.append(Length.class.toString(), "", Length.class);
210
        extensionPoints.append(LessEquals.class.toString(), "", LessEquals.class);
211
        extensionPoints.append(LessThan.class.toString(), "", LessThan.class);
212
        extensionPoints.append(Log.class.toString(), "", Log.class);
213
        extensionPoints.append(Max.class.toString(), "", Max.class);
214
        extensionPoints.append(Min.class.toString(), "", Min.class);
215
        extensionPoints.append(Minus.class.toString(), "", Minus.class);
216
        extensionPoints.append(MoreEquals.class.toString(), "", MoreEquals.class);
217
        extensionPoints.append(MoreThan.class.toString(), "", MoreThan.class);
218
        extensionPoints.append(Perimeter.class.toString(), "", Perimeter.class);
219
        extensionPoints.append(Pi.class.toString(), "", Pi.class);
220
        extensionPoints.append(Plus.class.toString(), "", Plus.class);
221
        extensionPoints.append(PointX.class.toString(), "", PointX.class);
222
        extensionPoints.append(PointY.class.toString(), "", PointY.class);
223
        extensionPoints.append(Pow.class.toString(), "", Pow.class);
224
        extensionPoints.append(Random.class.toString(), "", Random.class);
225

  
226
        // Added November 2013
227
        extensionPoints.append(RecordIndex.class.toString(), "", RecordIndex.class);
228

  
229
        extensionPoints.append(Replace.class.toString(), "", Replace.class);
230
        extensionPoints.append(Round.class.toString(), "", Round.class);
231
        extensionPoints.append(SetTimeDate.class.toString(), "", SetTimeDate.class);
232
        extensionPoints.append(Sin.class.toString(), "", Sin.class);
233
        extensionPoints.append(Sqrt.class.toString(), "", Sqrt.class);
234
        extensionPoints.append(StartsWith.class.toString(), "", StartsWith.class);
235
        extensionPoints.append(SubString.class.toString(), "", SubString.class);
236
        extensionPoints.append(Tan.class.toString(), "", Tan.class);
237
        extensionPoints.append(Times.class.toString(), "", Times.class);
238
        extensionPoints.append(ToDate.class.toString(), "", ToDate.class);
239
        extensionPoints.append(ToDegrees.class.toString(), "", ToDegrees.class);
240
        extensionPoints.append(ToLowerCase.class.toString(), "", ToLowerCase.class);
241
        extensionPoints.append(ToNumber.class.toString(), "", ToNumber.class);
242
        extensionPoints.append(ToRadians.class.toString(), "", ToRadians.class);
243
        extensionPoints.append(ToString.class.toString(), "", ToString.class);
244
        extensionPoints.append(ToUpperCase.class.toString(), "", ToUpperCase.class);
245
        extensionPoints.append(Trim.class.toString(), "", Trim.class);
246
    }
247

  
248
    private void registerIcons() {
249
        IconThemeHelper.registerIcon("action", "table-expression-field", this);
250
        IconThemeHelper.registerIcon("preferences", "expression-field-preferences", this);
251
    }
252

  
253
    private class EvalOperatorsTask extends AbstractMonitorableTask {
254

  
255
        private ExtensionPoint extensionPoint;
256

  
257
        public EvalOperatorsTask() {
258
            setInitialStep(0);
259
            setDeterminatedProcess(true);
260
            setStatusMessage(PluginServices.getText(this, "charging_operators") + "...");
261
            this.extensionPoint = ToolsLocator.getExtensionPointManager().get(
262
                    "ColumnOperators");
263
            setFinalStep(extensionPoint.getCount() + 1);
264
        }
265

  
266
        public void run() throws Exception {
267
            NotificationManager.addInfo(PluginServices.getText(this, "charging_operators"));
268
            long t1 = System.currentTimeMillis();
269
            Iterator iterator = extensionPoint.iterator();
270
            while ( iterator.hasNext() ) {
271
                try {
272
                    if ( isCanceled() ) {
273
                        return;
274
                    }
275
                    org.gvsig.tools.extensionpoint.ExtensionPoint.Extension obj = (org.gvsig.tools.extensionpoint.ExtensionPoint.Extension) iterator.next();
276
                    IOperator operator = (IOperator) extensionPoint.create(obj.getName());
277

  
278
                    operator.eval(interpreter);
279
                    operators.add(operator);
280
                    reportStep();
281
                    setNote(operator.getClass().getName());
282
                } catch (InstantiationException e) {
283
                    e.printStackTrace();
284
                } catch (IllegalAccessException e) {
285
                    e.printStackTrace();
286
                } catch (ClassCastException e) {
287
                    e.printStackTrace();
288
                }
289
            }
290
            long t2 = System.currentTimeMillis();
291
            System.out.println("Tiempo en evaluar y crear del extension point = " + (t2 - t1));
292
            long t3 = System.currentTimeMillis();
293
            System.out.println("Tiempo en a?adir los operadores correctos = " + (t3 - t2));
294
            reportStep();
295
        }
296

  
297
        public void finished() {
298
            if ( isCanceled() ) {
299
                return;
300
            }
301
            NotificationManager.addInfo(PluginServices.getText(this, "charged_operators"));
302
            EvalExpressionDialog eed = new EvalExpressionDialog(table, interpreter, operators);
303
            PluginServices.getMDIManager().addWindow(eed);
304
        }
305

  
306
    }
307
}
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/gui/FieldExpressionPage.java
1
/*******************************************************************************
2
 *
3
 *   gvSIG. Desktop Geographic Information System.
4
 *  
5
 *   Copyright (C) 2007-2013 gvSIG Association.
6
 *  
7
 *   This program is free software; you can redistribute it and/or
8
 *   modify it under the terms of the GNU General Public License
9
 *   as published by the Free Software Foundation; either version 3
10
 *   of the License, or (at your option) any later version.
11
 *  
12
 *   This program is distributed in the hope that it will be useful,
13
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 *   GNU General Public License for more details.
16
 *  
17
 *   You should have received a copy of the GNU General Public License
18
 *   along with this program; if not, write to the Free Software
19
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
 *   MA  02110-1301, USA.
21
 *  
22
 *   For any additional information, do not hesitate to contact us
23
 *   at info AT gvsig.com, or visit our website www.gvsig.com.
24
 *   
25
 *******************************************************************************/
26
package org.gvsig.expressionfield.gui;
27

  
28
import java.awt.event.MouseEvent;
29
import java.awt.event.MouseListener;
30
import java.util.prefs.Preferences;
31

  
32
import javax.swing.ImageIcon;
33
import javax.swing.JCheckBox;
34
import javax.swing.JPanel;
35
import javax.swing.JTextArea;
36
import javax.swing.JTextField;
37

  
38
import org.gvsig.andami.IconThemeHelper;
39
import org.gvsig.andami.PluginServices;
40
import org.gvsig.andami.preferences.AbstractPreferencePage;
41
import org.gvsig.andami.preferences.StoreException;
42

  
43

  
44
/**
45
 * @author Vicente Caballero Navarro
46
 */
47
public class FieldExpressionPage extends AbstractPreferencePage {
48
	private static Preferences prefs = Preferences.userRoot().node( "fieldExpressionOptions" );
49
	private JTextArea jTextArea = null;
50
	private JTextField txtLimit;
51
	private JCheckBox ckLimit=null;
52
	private ImageIcon icon;
53

  
54
	public FieldExpressionPage() {
55
		super();
56
		
57
		icon = IconThemeHelper.getImageIcon("expression-field-preferences");
58
		
59
		addComponent(getJTextArea());
60

  
61
		addComponent(PluginServices.getText(this, "limit_rows_in_memory") + ":",
62
			txtLimit = new JTextField("", 15));
63
		addComponent(ckLimit = new JCheckBox(PluginServices.getText(this, "without_limit")));
64
		ckLimit.addMouseListener(new MouseListener() {
65
			public void mouseClicked(MouseEvent e) {
66
				if (ckLimit.isSelected()) {
67
					txtLimit.setText(PluginServices.getText(this, "without_limit"));
68
				}else {
69
					if (txtLimit.getText().equals(PluginServices.getText(this, "without_limit")))
70
					txtLimit.setText("500000");
71
				}
72

  
73
			}
74
			public void mouseEntered(MouseEvent e) {
75
			}
76
			public void mouseExited(MouseEvent e) {
77
			}
78
			public void mousePressed(MouseEvent e) {
79
			}
80
			public void mouseReleased(MouseEvent e) {
81
			}
82

  
83
		});
84
	}
85

  
86
	public void initializeValues() {
87
		int limit = prefs.getInt("limit_rows_in_memory",-1);
88
		if (limit==-1) {
89
			ckLimit.setSelected(true);
90
			txtLimit.setText(PluginServices.getText(this,"without_limit"));
91
		}else {
92
			ckLimit.setSelected(false);
93
			txtLimit.setText(String.valueOf(limit));
94
		}
95
	}
96

  
97
	public String getID() {
98
		return this.getClass().getName();
99
	}
100

  
101
	public String getTitle() {
102
		return PluginServices.getText(this, "limit_rows_in_memory");
103
	}
104

  
105
	public JPanel getPanel() {
106
		return this;
107
	}
108

  
109
	public void storeValues() throws StoreException {
110
		int limit;
111
		try{
112
			if (ckLimit.isSelected()) {
113
				limit=-1;
114
			}else {
115
//			if (txtLimit.getText().equals(PluginServices.getText(this,"without_limit"))) {
116
//				limit=-1;
117
//			}else {
118
				limit=Integer.parseInt(txtLimit.getText());
119
			}
120
		}catch (Exception e) {
121
			throw new StoreException(PluginServices.getText(this,"limit_rows_in_memory")+PluginServices.getText(this,"error"));
122
		}
123
		prefs.putInt("limit_rows_in_memory", limit);
124
	}
125

  
126
	public void initializeDefaults() {
127
		int limit=prefs.getInt("limit_rows_in_memory",-1);
128
		if (limit==-1) {
129
			ckLimit.setSelected(true);
130
			txtLimit.setText(PluginServices.getText(this,"without_limit"));
131
		}else {
132
			ckLimit.setSelected(false);
133
			txtLimit.setText(String.valueOf(limit));
134
		}
135
	}
136

  
137
	public ImageIcon getIcon() {
138
		return icon;
139
	}
140
	/**
141
	 * This method initializes jTextArea
142
	 *
143
	 * @return javax.swing.JTextArea
144
	 */
145
	private JTextArea getJTextArea() {
146
		if (jTextArea == null) {
147
			jTextArea = new JTextArea();
148
			jTextArea.setBounds(new java.awt.Rectangle(13,7,285,57));
149
			jTextArea.setForeground(java.awt.Color.black);
150
			jTextArea.setBackground(java.awt.SystemColor.control);
151
			jTextArea.setRows(3);
152
			jTextArea.setWrapStyleWord(true);
153
			jTextArea.setLineWrap(true);
154
			jTextArea.setEditable(false);
155
			jTextArea.setText(PluginServices.getText(this,"specifies_the_limit_rows_in_memory_when_the_program_eval_the_expression"));
156
		}
157
		return jTextArea;
158
	}
159

  
160
	public boolean isValueChanged() {
161
		return super.hasChanged();
162
	}
163

  
164
	public void setChangesApplied() {
165
		setChanged(false);
166
	}
167
}
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/project/documents/table/GraphicOperator.java
1
/*******************************************************************************
2
 *
3
 *   gvSIG. Desktop Geographic Information System.
4
 *  
5
 *   Copyright (C) 2007-2013 gvSIG Association.
6
 *  
7
 *   This program is free software; you can redistribute it and/or
8
 *   modify it under the terms of the GNU General Public License
9
 *   as published by the Free Software Foundation; either version 3
10
 *   of the License, or (at your option) any later version.
11
 *  
12
 *   This program is distributed in the hope that it will be useful,
13
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 *   GNU General Public License for more details.
16
 *  
17
 *   You should have received a copy of the GNU General Public License
18
 *   along with this program; if not, write to the Free Software
19
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
 *   MA  02110-1301, USA.
21
 *  
22
 *   For any additional information, do not hesitate to contact us
23
 *   at info AT gvsig.com, or visit our website www.gvsig.com.
24
 *   
25
 *******************************************************************************/
26
package org.gvsig.expressionfield.project.documents.table;
27

  
28
import java.awt.geom.PathIterator;
29
import java.util.ArrayList;
30

  
31
import org.gvsig.fmap.geom.Geometry;
32
import org.gvsig.fmap.geom.GeometryLocator;
33
import org.gvsig.fmap.geom.GeometryManager;
34
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
35

  
36
/**
37
 * @author Vicente Caballero Navarro
38
 */
39
public abstract class GraphicOperator extends AbstractOperator{
40
	private FLyrVect lv=null;
41
	protected static final GeometryManager geomManager = GeometryLocator.getGeometryManager();
42
	
43
	public void setLayer(FLyrVect lv) {
44
		this.lv=lv;
45
	}
46
	public FLyrVect getLayer() {
47
		return lv;
48
	}
49
	public abstract double process(org.gvsig.fmap.dal.feature.Feature feature);
50
}
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/Area.java
1
/**
2
 * *****************************************************************************
3
 *
4
 * gvSIG. Desktop Geographic Information System.
5
 *
6
 * Copyright (C) 2007-2013 gvSIG Association.
7
 *
8
 * This program is free software; you can redistribute it and/or modify it under
9
 * the terms of the GNU General Public License as published by the Free Software
10
 * Foundation; either version 3 of the License, or (at your option) any later
11
 * version.
12
 *
13
 * This program is distributed in the hope that it will be useful, but WITHOUT
14
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
16
 * details.
17
 *
18
 * You should have received a copy of the GNU General Public License along with
19
 * this program; if not, write to the Free Software Foundation, Inc., 51
20
 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21
 *
22
 * For any additional information, do not hesitate to contact us at info AT
23
 * gvsig.com, or visit our website www.gvsig.com.
24
 *
25
 ******************************************************************************
26
 */
27
package org.gvsig.expressionfield.project.documents.table.operators;
28

  
29

  
30
import org.apache.bsf.BSFException;
31
import org.apache.bsf.BSFManager;
32
import org.cresques.cts.IProjection;
33
import org.gvsig.andami.PluginServices;
34
import org.gvsig.expressionfield.ExpressionFieldExtension;
35
import org.gvsig.expressionfield.project.documents.table.GraphicOperator;
36
import org.gvsig.expressionfield.project.documents.table.IOperator;
37
import org.gvsig.fmap.dal.exception.DataException;
38
import org.gvsig.fmap.dal.feature.FeatureStore;
39
import org.gvsig.fmap.geom.Geometry;
40

  
41
import org.gvsig.fmap.mapcontext.MapContext;
42
import org.gvsig.fmap.mapcontrol.MapControlLocator;
43
import org.slf4j.Logger;
44
import org.slf4j.LoggerFactory;
45

  
46
public class Area extends GraphicOperator {
47

  
48
    private static final Logger logger = LoggerFactory.getLogger(Area.class);
49
    
50
    @Override
51
    public String addText(String s) {
52
        return s.concat(toString() + "()");
53
    }
54

  
55
    @Override
56
    public double process(org.gvsig.fmap.dal.feature.Feature feature) {
57
        org.gvsig.fmap.geom.Geometry geom;
58
        geom = feature.getDefaultGeometry();
59
        MapContext mapContext = getLayer().getMapContext();
60
        IProjection proj = mapContext.getProjection();
61
        int areaUnits = mapContext.getViewPort().getDistanceArea();
62
        return MapControlLocator.getMapControlManager().area(geom, proj, areaUnits);
63
    }
64

  
65
    @Override
66
    public void eval(BSFManager interpreter) throws BSFException {
67
        interpreter.declareBean("jarea", this, Area.class);
68
//		interpreter.eval(ExpressionFieldExtension.BEANSHELL,null,-1,-1,"double area(){return area.process(indexRow);};");
69
        interpreter.exec(ExpressionFieldExtension.JYTHON, null, -1, -1, "def area():\n"
70
                + "  return jarea.process(featureContainer.getFeature())");
71
    }
72

  
73
    @Override
74
    public String toString() {
75
        return "area";
76
    }
77

  
78
    @Override
79
    public boolean isEnable() {
80
        if (getLayer() == null) {
81
            return false;
82
        }
83
        FeatureStore store;
84
        int geomType = Geometry.TYPES.POINT;
85
        try {
86
            store = getLayer().getFeatureStore();
87
            geomType = store.getDefaultFeatureType().getDefaultGeometryAttribute().getGeomType().getType();
88
        } catch (DataException e) {
89
            logger.warn("Can't get geometry type for default geometry attribute of layer '"+getLayer().getName()+"'.",e);
90
        }
91
//        GeometryManager geomManager = GeometryLocator.getGeometryManager();
92
        
93
        return getType() == IOperator.NUMBER && (
94
            geomManager.isSubtype(Geometry.TYPES.SURFACE, geomType) ||
95
            geomManager.isSubtype(Geometry.TYPES.MULTISURFACE, geomType) 
96
        );
97
    }
98

  
99
    @Override
100
    public String getTooltip() {
101
        return PluginServices.getText(this, "operator") + ":  " + addText("") + "\n" + getDescription();
102
    }
103

  
104
    @Override
105
    public String getDescription() {
106
        return PluginServices.getText(this, "returns") + ": "
107
                + PluginServices.getText(this, "numeric_value") + "\n"
108
                + PluginServices.getText(this, "description") + ": "
109
                + "Returns the area of polygon geometry of this row in the units of the view.";
110
    }
111
}
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/Pi.java
1
/*******************************************************************************
2
 *
3
 *   gvSIG. Desktop Geographic Information System.
4
 *  
5
 *   Copyright (C) 2007-2013 gvSIG Association.
6
 *  
7
 *   This program is free software; you can redistribute it and/or
8
 *   modify it under the terms of the GNU General Public License
9
 *   as published by the Free Software Foundation; either version 3
10
 *   of the License, or (at your option) any later version.
11
 *  
12
 *   This program is distributed in the hope that it will be useful,
13
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 *   GNU General Public License for more details.
16
 *  
17
 *   You should have received a copy of the GNU General Public License
18
 *   along with this program; if not, write to the Free Software
19
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
 *   MA  02110-1301, USA.
21
 *  
22
 *   For any additional information, do not hesitate to contact us
23
 *   at info AT gvsig.com, or visit our website www.gvsig.com.
24
 *   
25
 *******************************************************************************/
26
package org.gvsig.expressionfield.project.documents.table.operators;
27

  
28
import org.apache.bsf.BSFException;
29
import org.apache.bsf.BSFManager;
30
import org.gvsig.andami.PluginServices;
31
import org.gvsig.expressionfield.ExpressionFieldExtension;
32
import org.gvsig.expressionfield.project.documents.table.AbstractOperator;
33
import org.gvsig.expressionfield.project.documents.table.IOperator;
34

  
35

  
36
/**
37
 * @author Vicente Caballero Navarro
38
 */
39
public class Pi extends AbstractOperator{
40

  
41
	public String addText(String s) {
42
		return s.concat(toString()+"()");
43
	}
44
	public String toString() {
45
		return "pi";
46
	}
47
	public void eval(BSFManager interpreter) throws BSFException {
48
//		interpreter.eval(ExpressionFieldExtension.BEANSHELL,null,-1,-1,"double pi(){return java.lang.Math.PI;};");
49
		interpreter.exec(ExpressionFieldExtension.JYTHON,null,-1,-1,"def pi():\n" +
50
				"  import java.lang.Math\n" +
51
				"  return java.lang.Math.PI");
52
	}
53
	public boolean isEnable() {
54
		return (getType()==IOperator.NUMBER);
55
	}
56
	public String getTooltip(){
57
		return PluginServices.getText(this,"operator")+":  "+addText("")+"\n"+getDescription();
58
	}
59
	public String getDescription() {
60
        return PluginServices.getText(this, "returns") + ": " +
61
        PluginServices.getText(this, "numeric_value") + "\n" +
62
        PluginServices.getText(this, "description") + ": " +
63
        "The double value that is closer than any other to pi, the ratio of the circumference of a circle to its diameter.";
64
    }
65
}
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/ToString.java
1
/*******************************************************************************
2
 *
3
 *   gvSIG. Desktop Geographic Information System.
4
 *  
5
 *   Copyright (C) 2007-2013 gvSIG Association.
6
 *  
7
 *   This program is free software; you can redistribute it and/or
8
 *   modify it under the terms of the GNU General Public License
9
 *   as published by the Free Software Foundation; either version 3
10
 *   of the License, or (at your option) any later version.
11
 *  
12
 *   This program is distributed in the hope that it will be useful,
13
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 *   GNU General Public License for more details.
16
 *  
17
 *   You should have received a copy of the GNU General Public License
18
 *   along with this program; if not, write to the Free Software
19
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
 *   MA  02110-1301, USA.
21
 *  
22
 *   For any additional information, do not hesitate to contact us
23
 *   at info AT gvsig.com, or visit our website www.gvsig.com.
24
 *   
25
 *******************************************************************************/
26
package org.gvsig.expressionfield.project.documents.table.operators;
27

  
28
import org.apache.bsf.BSFException;
29
import org.apache.bsf.BSFManager;
30
import org.gvsig.andami.PluginServices;
31
import org.gvsig.expressionfield.ExpressionFieldExtension;
32
import org.gvsig.expressionfield.project.documents.table.AbstractOperator;
33
import org.gvsig.expressionfield.project.documents.table.IOperator;
34

  
35

  
36
/**
37
 * @author Vicente Caballero Navarro
38
 */
39
public class ToString extends AbstractOperator{
40

  
41
	public String addText(String s) {
42
		return toString()+"("+s+")";
43
	}
44
	public String toString() {
45
		return "toString";
46
	}
47
	public void eval(BSFManager interpreter) throws BSFException {
48
//		interpreter.eval(ExpressionFieldExtension.BEANSHELL,null,-1,-1,"String toString(java.lang.Object value){" +
49
//				"if (value instanceof java.util.Date)" +
50
//					"return ((java.util.Date)value).toString();" +
51
//				"return String.valueOf(value);};");
52
		interpreter.exec(ExpressionFieldExtension.JYTHON,null,-1,-1,"def toString(value):\n" +
53
				"  return str(value)");
54
	}
55
	public boolean isEnable() {
56
		return (getType()==IOperator.NUMBER);// || getType()==IOperator.DATE);
57
	}
58
	public String getDescription() {
59
	    return PluginServices.getText(this, "parameter") + ": " +
60
	    PluginServices.getText(this, "value") + "\n" +
61
	    PluginServices.getText(this, "returns") + ": " +
62
	    PluginServices.getText(this, "string_value") + "\n" +
63
	    PluginServices.getText(this, "description") + ": " +
64
	    "Returns the string representation of the Object argument";
65
	}
66
}
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/Replace.java
1
/*******************************************************************************
2
 *
3
 *   gvSIG. Desktop Geographic Information System.
4
 *  
5
 *   Copyright (C) 2007-2013 gvSIG Association.
6
 *  
7
 *   This program is free software; you can redistribute it and/or
8
 *   modify it under the terms of the GNU General Public License
9
 *   as published by the Free Software Foundation; either version 3
10
 *   of the License, or (at your option) any later version.
11
 *  
12
 *   This program is distributed in the hope that it will be useful,
13
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 *   GNU General Public License for more details.
16
 *  
17
 *   You should have received a copy of the GNU General Public License
18
 *   along with this program; if not, write to the Free Software
19
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
 *   MA  02110-1301, USA.
21
 *  
22
 *   For any additional information, do not hesitate to contact us
23
 *   at info AT gvsig.com, or visit our website www.gvsig.com.
24
 *   
25
 *******************************************************************************/
26
package org.gvsig.expressionfield.project.documents.table.operators;
27

  
28
import org.apache.bsf.BSFException;
29
import org.apache.bsf.BSFManager;
30
import org.gvsig.andami.PluginServices;
31
import org.gvsig.expressionfield.ExpressionFieldExtension;
32
import org.gvsig.expressionfield.project.documents.table.AbstractOperator;
33
import org.gvsig.expressionfield.project.documents.table.IOperator;
34

  
35

  
36
/**
37
 * @author Vicente Caballero Navarro
38
 */
39
public class Replace extends AbstractOperator{
40

  
41
	public String addText(String s) {
42
		return toString()+"("+s+" , \"\",\"\")";
43
	}
44
	public String toString() {
45
		return "replace";
46
	}
47
	public void eval(BSFManager interpreter) throws BSFException {
48
//		interpreter.eval(ExpressionFieldExtension.BEANSHELL,null,-1,-1,"String replace(String value1,String value2,String value3){return value1.replaceAll(value2,value3);};");
49
		interpreter.exec(ExpressionFieldExtension.JYTHON,null,-1,-1,"def replace(value1,value2,value3):\n" +
50
				"  return value1.replace(value2,value3)");
51
	}
52
	public boolean isEnable() {
53
		return (getType()==IOperator.STRING);
54
	}
55
	public String getTooltip(){
56
		return PluginServices.getText(this,"operator")+":  "+toString()+"("+PluginServices.getText(this,"parameter")+"1,"+PluginServices.getText(this,"parameter")+"2, "+PluginServices.getText(this,"parameter")+"3"+")"+"\n"+getDescription();
57
	}
58
	public String getDescription() {
59
        return PluginServices.getText(this, "parameter") + "1"+": " +
60
        PluginServices.getText(this, "string_value") + "\n"+
61
        PluginServices.getText(this, "parameter") + "2"+": " +
62
        PluginServices.getText(this, "string_value") + "\n"+
63
        PluginServices.getText(this, "parameter") + "3"+": " +
64
        PluginServices.getText(this, "string_value") + "\n"+
65
        PluginServices.getText(this, "returns") + ": " +
66
        PluginServices.getText(this, "string_value") + "\n" +
67
        PluginServices.getText(this, "description") + ": " +
68
        "Replaces each substring(parameter2) of parameter1 string that matches the given regular expression with the given replacement parameter3";
69
    }
70
}
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/Ceil.java
1
/*******************************************************************************
2
 *
3
 *   gvSIG. Desktop Geographic Information System.
4
 *  
5
 *   Copyright (C) 2007-2013 gvSIG Association.
6
 *  
7
 *   This program is free software; you can redistribute it and/or
8
 *   modify it under the terms of the GNU General Public License
9
 *   as published by the Free Software Foundation; either version 3
10
 *   of the License, or (at your option) any later version.
11
 *  
12
 *   This program is distributed in the hope that it will be useful,
13
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 *   GNU General Public License for more details.
16
 *  
17
 *   You should have received a copy of the GNU General Public License
18
 *   along with this program; if not, write to the Free Software
19
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
 *   MA  02110-1301, USA.
21
 *  
22
 *   For any additional information, do not hesitate to contact us
23
 *   at info AT gvsig.com, or visit our website www.gvsig.com.
24
 *   
25
 *******************************************************************************/
26
package org.gvsig.expressionfield.project.documents.table.operators;
27

  
28
import org.apache.bsf.BSFException;
29
import org.apache.bsf.BSFManager;
30
import org.gvsig.andami.PluginServices;
31
import org.gvsig.expressionfield.ExpressionFieldExtension;
32
import org.gvsig.expressionfield.project.documents.table.AbstractOperator;
33
import org.gvsig.expressionfield.project.documents.table.IOperator;
34

  
35

  
36
/**
37
 * @author Vicente Caballero Navarro
38
 */
39
public class Ceil extends AbstractOperator{
40

  
41
	public String addText(String s) {
42
		return toString()+"("+s+")";
43
	}
44
	public String toString() {
45
		return "ceil";
46
	}
47
	public void eval(BSFManager interpreter) throws BSFException {
48
//		interpreter.eval(ExpressionFieldExtension.BEANSHELL,null,-1,-1,"double ceil(double value){return java.lang.Math.ceil(value);};");
49
		interpreter.exec(ExpressionFieldExtension.JYTHON,null,-1,-1,"def ceil(value):\n" +
50
				"  import java.lang.Math\n" +
51
				"  return java.lang.Math.ceil(value)");
52
	}
53
	public boolean isEnable() {
54
		return (getType()==IOperator.NUMBER);
55
	}
56
	public String getDescription() {
57
        return PluginServices.getText(this, "parameter") + ": " +
58
        PluginServices.getText(this, "numeric_value") + "\n" +
59
        PluginServices.getText(this, "returns") + ": " +
60
        PluginServices.getText(this, "numeric_value") + "\n" +
61
        PluginServices.getText(this, "description") + ": " +
62
        "Returns the smallest (closest to negative infinity) double value that is not less than the argument and is equal to a mathematical integer. Special cases:\n" +
63
        "* If the argument value is already equal to a mathematical integer, then the result is the same as the argument.\n" +
64
        "* If the argument is NaN or an infinity or positive zero or negative zero, then the result is the same as the argument.\n" +
65
        "* If the argument value is less than zero but greater than -1.0, then the result is negative zero.\n";
66
    }
67

  
68
}
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/StartsWith.java
1
/*******************************************************************************
2
 *
3
 *   gvSIG. Desktop Geographic Information System.
4
 *  
5
 *   Copyright (C) 2007-2013 gvSIG Association.
6
 *  
7
 *   This program is free software; you can redistribute it and/or
8
 *   modify it under the terms of the GNU General Public License
9
 *   as published by the Free Software Foundation; either version 3
10
 *   of the License, or (at your option) any later version.
11
 *  
12
 *   This program is distributed in the hope that it will be useful,
13
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 *   GNU General Public License for more details.
16
 *  
17
 *   You should have received a copy of the GNU General Public License
18
 *   along with this program; if not, write to the Free Software
19
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
 *   MA  02110-1301, USA.
21
 *  
22
 *   For any additional information, do not hesitate to contact us
23
 *   at info AT gvsig.com, or visit our website www.gvsig.com.
24
 *   
25
 *******************************************************************************/
26
package org.gvsig.expressionfield.project.documents.table.operators;
27

  
28
import org.apache.bsf.BSFException;
29
import org.apache.bsf.BSFManager;
30
import org.gvsig.andami.PluginServices;
31
import org.gvsig.expressionfield.ExpressionFieldExtension;
32
import org.gvsig.expressionfield.project.documents.table.AbstractOperator;
33
import org.gvsig.expressionfield.project.documents.table.IOperator;
34

  
35

  
36
/**
37
 * @author Vicente Caballero Navarro
38
 */
39
public class StartsWith extends AbstractOperator{
40

  
41
	public String addText(String s) {
42
		return toString()+"("+s+",\"\")";
43
	}
44
	public String toString() {
45
		return "startsWith";
46
	}
47
	public void eval(BSFManager interpreter) throws BSFException {
48
//		interpreter.eval(ExpressionFieldExtension.BEANSHELL,null,-1,-1,"boolean startsWith(String value1,String value2){return value1.startsWith(value2);};");
49
		interpreter.exec(ExpressionFieldExtension.JYTHON,null,-1,-1,"def startsWith(value1,value2):\n" +
50
				" return value1.startswith(value2)");
51
	}
52
	public boolean isEnable() {
53
		return (getType()==IOperator.STRING);
54
	}
55
	public String getTooltip(){
56
		return PluginServices.getText(this,"operator")+":  "+toString()+"("+PluginServices.getText(this,"parameter")+"1,"+PluginServices.getText(this,"parameter")+"2"+")"+"\n"+getDescription();
57
	}
58
	public String getDescription() {
59
        return PluginServices.getText(this, "parameter") + "1"+": " +
60
        PluginServices.getText(this, "string_value") + "\n"+
61
        PluginServices.getText(this, "parameter") + "2"+": " +
62
        PluginServices.getText(this, "string_value") + "\n"+
63
        PluginServices.getText(this, "returns") + ": " +
64
        PluginServices.getText(this, "boolean_value") + "\n" +
65
        PluginServices.getText(this, "description") + ": " +
66
        "Tests if this parameter1 starts with the specified parameter2.";
67
    }
68
}
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/MoreEquals.java
1
/*******************************************************************************
2
 *
3
 *   gvSIG. Desktop Geographic Information System.
4
 *  
5
 *   Copyright (C) 2007-2013 gvSIG Association.
6
 *  
7
 *   This program is free software; you can redistribute it and/or
8
 *   modify it under the terms of the GNU General Public License
9
 *   as published by the Free Software Foundation; either version 3
10
 *   of the License, or (at your option) any later version.
11
 *  
12
 *   This program is distributed in the hope that it will be useful,
13
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 *   GNU General Public License for more details.
16
 *  
17
 *   You should have received a copy of the GNU General Public License
18
 *   along with this program; if not, write to the Free Software
19
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
 *   MA  02110-1301, USA.
21
 *  
22
 *   For any additional information, do not hesitate to contact us
23
 *   at info AT gvsig.com, or visit our website www.gvsig.com.
24
 *   
25
 *******************************************************************************/
26
package org.gvsig.expressionfield.project.documents.table.operators;
27

  
28
import org.apache.bsf.BSFException;
29
import org.apache.bsf.BSFManager;
30
import org.gvsig.andami.PluginServices;
31
import org.gvsig.expressionfield.project.documents.table.AbstractOperator;
32
import org.gvsig.expressionfield.project.documents.table.IOperator;
33

  
34

  
35
/**
36
 * @author Vicente Caballero Navarro
37
 */
38
public class MoreEquals extends AbstractOperator{
39

  
40
	public String addText(String s) {
41
		return s.concat(toString());
42
	}
43

  
44
	public void eval(BSFManager interpreter) throws BSFException {
45
	}
46
	public String toString() {
47
		return ">=";
48
	}
49
	public boolean isEnable() {
50
		return ( getType()==IOperator.NUMBER);
51
	}
52
	public String getTooltip(){
53
		return PluginServices.getText(this,"operator")+":  "+addText("")+"\n"+getDescription();
54
	}
55
	public String getDescription() {
56
        return PluginServices.getText(this, "returns") + ": " +
57
        PluginServices.getText(this, "boolean_value") + "\n" +
58
        PluginServices.getText(this, "description") + ": " +
59
        "Returns true if the first object value is more or equals than the second value.";
60
    }
61
}
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.159/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/MoreThan.java
1
/*******************************************************************************
2
 *
3
 *   gvSIG. Desktop Geographic Information System.
4
 *  
5
 *   Copyright (C) 2007-2013 gvSIG Association.
6
 *  
7
 *   This program is free software; you can redistribute it and/or
8
 *   modify it under the terms of the GNU General Public License
9
 *   as published by the Free Software Foundation; either version 3
10
 *   of the License, or (at your option) any later version.
11
 *  
12
 *   This program is distributed in the hope that it will be useful,
13
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 *   GNU General Public License for more details.
16
 *  
17
 *   You should have received a copy of the GNU General Public License
18
 *   along with this program; if not, write to the Free Software
19
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
 *   MA  02110-1301, USA.
21
 *  
22
 *   For any additional information, do not hesitate to contact us
23
 *   at info AT gvsig.com, or visit our website www.gvsig.com.
24
 *   
25
 *******************************************************************************/
26
package org.gvsig.expressionfield.project.documents.table.operators;
27

  
28
import org.apache.bsf.BSFException;
29
import org.apache.bsf.BSFManager;
30
import org.gvsig.andami.PluginServices;
31
import org.gvsig.expressionfield.project.documents.table.AbstractOperator;
32
import org.gvsig.expressionfield.project.documents.table.IOperator;
33

  
34

  
35
/**
36
 * @author Vicente Caballero Navarro
37
 */
38
public class MoreThan extends AbstractOperator{
39

  
40
	public String addText(String s) {
41
		return s.concat(toString());
42
	}
43
	public void eval(BSFManager interpreter) throws BSFException {
44

  
45
	}
46
	public String toString() {
47
		return ">";
48
	}
49
	public boolean isEnable() {
50
		return (getType()==IOperator.NUMBER);
51
	}
52
	public String getTooltip(){
53
		return PluginServices.getText(this,"operator")+":  "+addText("")+"\n"+getDescription();
54
	}
55
	public String getDescription() {
56
        return PluginServices.getText(this, "returns") + ": " +
57
        PluginServices.getText(this, "boolean_value") + "\n" +
58
        PluginServices.getText(this, "description") + ": " +
59
        "Returns true if the first object value is more than the second value.";
60
    }
61
}
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff