Revision 606
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/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.115</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.291</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.115</connection> |
|
21 |
<developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-expression-field/org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115</developerConnection> |
|
22 |
<url>scm:svn:https://devel.gvsig.org/svn/gvsig-expression-field/org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115</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 |
|
|
43 |
<dependencyManagement> |
|
44 |
<dependencies> |
|
45 |
<!-- Adding this dependency because this project is using a jython version |
|
46 |
different to the version defined by the parent pom --> |
|
47 |
<dependency> |
|
48 |
<groupId>org.python</groupId> |
|
49 |
<artifactId>jython</artifactId> |
|
50 |
<version>2.2.1</version> |
|
51 |
</dependency> |
|
52 |
</dependencies> |
|
53 |
</dependencyManagement> |
|
54 |
|
|
55 |
<dependencies> |
|
56 |
<dependency> |
|
57 |
<groupId>org.gvsig</groupId> |
|
58 |
<artifactId>org.gvsig.app.mainplugin</artifactId> |
|
59 |
<scope>compile</scope> |
|
60 |
</dependency> |
|
61 |
<dependency> |
|
62 |
<groupId>org.gvsig</groupId> |
|
63 |
<artifactId>org.gvsig.app.document.table.app.mainplugin</artifactId> |
|
64 |
<scope>compile</scope> |
|
65 |
</dependency> |
|
66 |
<dependency> |
|
67 |
<groupId>bsf</groupId> |
|
68 |
<artifactId>bsf</artifactId> |
|
69 |
<scope>compile</scope> |
|
70 |
</dependency> |
|
71 |
|
|
72 |
<dependency> |
|
73 |
<groupId>bsh</groupId> |
|
74 |
<artifactId>bsh</artifactId> |
|
75 |
<scope>compile</scope> |
|
76 |
</dependency> |
|
77 |
|
|
78 |
<dependency> |
|
79 |
<groupId>org.gvsig</groupId> |
|
80 |
<artifactId>org.gvsig.about.api</artifactId> |
|
81 |
<scope>compile</scope> |
|
82 |
</dependency> |
|
83 |
<dependency> |
|
84 |
<groupId>org.gvsig</groupId> |
|
85 |
<artifactId>org.gvsig.andami</artifactId> |
|
86 |
<scope>compile</scope> |
|
87 |
</dependency> |
|
88 |
<dependency> |
|
89 |
<groupId>org.gvsig</groupId> |
|
90 |
<artifactId>org.gvsig.fmap.dal.api</artifactId> |
|
91 |
<scope>compile</scope> |
|
92 |
</dependency> |
|
93 |
<dependency> |
|
94 |
<groupId>org.gvsig</groupId> |
|
95 |
<artifactId>org.gvsig.fmap.mapcontext.api</artifactId> |
|
96 |
<scope>compile</scope> |
|
97 |
</dependency> |
|
98 |
<dependency> |
|
99 |
<groupId>org.gvsig</groupId> |
|
100 |
<artifactId>org.gvsig.tools.lib</artifactId> |
|
101 |
<scope>compile</scope> |
|
102 |
</dependency> |
|
103 |
<dependency> |
|
104 |
<groupId>org.gvsig</groupId> |
|
105 |
<artifactId>org.gvsig.tools.swing.api</artifactId> |
|
106 |
<scope>compile</scope> |
|
107 |
</dependency> |
|
108 |
<dependency> |
|
109 |
<groupId>org.gvsig</groupId> |
|
110 |
<artifactId>org.gvsig.fmap.geometry.api</artifactId> |
|
111 |
<scope>compile</scope> |
|
112 |
</dependency> |
|
113 |
<dependency> |
|
114 |
<groupId>org.gvsig</groupId> |
|
115 |
<artifactId>org.gvsig.metadata.lib.basic.api</artifactId> |
|
116 |
<scope>compile</scope> |
|
117 |
</dependency> |
|
118 |
<dependency> |
|
119 |
<groupId>org.gvsig</groupId> |
|
120 |
<artifactId>org.gvsig.ui</artifactId> |
|
121 |
<scope>compile</scope> |
|
122 |
</dependency> |
|
123 |
<dependency> |
|
124 |
<groupId>org.gvsig</groupId> |
|
125 |
<artifactId>org.gvsig.projection.api</artifactId> |
|
126 |
<scope>compile</scope> |
|
127 |
</dependency> |
|
128 |
<dependency> |
|
129 |
<groupId>org.gvsig</groupId> |
|
130 |
<artifactId>org.gvsig.fmap.control</artifactId> |
|
131 |
<scope>compile</scope> |
|
132 |
</dependency> |
|
133 |
<dependency> |
|
134 |
<groupId>org.gvsig</groupId> |
|
135 |
<artifactId>org.gvsig.utils</artifactId> |
|
136 |
<scope>compile</scope> |
|
137 |
</dependency> |
|
138 |
<dependency> |
|
139 |
<groupId>org.gvsig</groupId> |
|
140 |
<artifactId>org.gvsig.timesupport.lib.api</artifactId> |
|
141 |
<scope>compile</scope> |
|
142 |
</dependency> |
|
143 |
<dependency> |
|
144 |
<groupId>com.fifesoft</groupId> |
|
145 |
<artifactId>rsyntaxtextarea</artifactId> |
|
146 |
<scope>compile</scope> |
|
147 |
</dependency> |
|
148 |
<dependency> |
|
149 |
<groupId>org.python</groupId> |
|
150 |
<artifactId>jython</artifactId> |
|
151 |
<scope>runtime</scope> |
|
152 |
</dependency> |
|
153 |
</dependencies> |
|
154 |
|
|
155 |
|
|
156 |
<build> |
|
157 |
|
|
158 |
<plugins> |
|
159 |
<plugin> |
|
160 |
<groupId>org.apache.maven.plugins</groupId> |
|
161 |
<artifactId>maven-surefire-plugin</artifactId> |
|
162 |
<configuration> |
|
163 |
<skipTests>true</skipTests> |
|
164 |
</configuration> |
|
165 |
</plugin> |
|
166 |
|
|
167 |
<plugin> |
|
168 |
<artifactId>maven-release-plugin</artifactId> |
|
169 |
<version>2.0</version> |
|
170 |
<configuration> |
|
171 |
<tagBase>https://devel.gvsig.org/svn/gvsig-expression-field/org.gvsig.expressionfield/tags</tagBase> |
|
172 |
</configuration> |
|
173 |
</plugin> |
|
174 |
|
|
175 |
</plugins> |
|
176 |
|
|
177 |
</build> |
|
178 |
|
|
179 |
|
|
180 |
<properties> |
|
181 |
<gvsig.package.info.name>Tools: Field calculator</gvsig.package.info.name> |
|
182 |
<gvsig.package.info.dependencies>required: org.gvsig.app.document.table.app.mainplugin -ge 2</gvsig.package.info.dependencies> |
|
183 |
<gvsig.package.info.javaVM>j1_6</gvsig.package.info.javaVM> |
|
184 |
<gvsig.package.info.state>testing</gvsig.package.info.state> |
|
185 |
<gvsig.package.info.official>true</gvsig.package.info.official> |
|
186 |
<!-- alpha-devel --> |
|
187 |
<gvsig.package.info.categories>Table</gvsig.package.info.categories> |
|
188 |
<gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-expression-field/pool</gvsig.package.info.poolURL> |
|
189 |
|
|
190 |
</properties> |
|
191 |
</project> |
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/buildNumber.properties | ||
---|---|---|
1 |
#Mon Aug 31 00:46:35 CEST 2020 |
|
2 |
buildNumber=2193 |
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/src/test/java/org/gvsig/expressionfield/AllTests.java | ||
---|---|---|
1 |
package org.gvsig.expressionfield; |
|
2 |
|
|
3 |
import junit.framework.Test; |
|
4 |
import junit.framework.TestSuite; |
|
5 |
|
|
6 |
public class AllTests { |
|
7 |
|
|
8 |
public static Test suite() { |
|
9 |
TestSuite suite = new TestSuite( |
|
10 |
"Test for com.iver.cit.gvsig.expressionField"); |
|
11 |
//$JUnit-BEGIN$ |
|
12 |
|
|
13 |
//$JUnit-END$ |
|
14 |
return suite; |
|
15 |
} |
|
16 |
|
|
17 |
} |
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/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.115/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.115/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.115/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/Minus.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 |
* @author Vicente Caballero Navarro |
|
36 |
*/ |
|
37 |
public class Minus extends AbstractOperator{ |
|
38 |
|
|
39 |
public String addText(String s) { |
|
40 |
return s.concat(toString()); |
|
41 |
} |
|
42 |
public String toString() { |
|
43 |
return "-"; |
|
44 |
} |
|
45 |
public void eval(BSFManager interpreter) throws BSFException { |
|
46 |
} |
|
47 |
public boolean isEnable() { |
|
48 |
return (getType()==IOperator.NUMBER); |
|
49 |
} |
|
50 |
public String getTooltip(){ |
|
51 |
return PluginServices.getText(this,"operator")+": "+addText("")+"\n"+getDescription(); |
|
52 |
} |
|
53 |
public String getDescription() { |
|
54 |
return PluginServices.getText(this, "returns") + ": " + |
|
55 |
PluginServices.getText(this, "numeric_value") + "\n" + |
|
56 |
PluginServices.getText(this, "description") + ": " + |
|
57 |
"Returns the result of rest."; |
|
58 |
} |
|
59 |
} |
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/IndexOf.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 IndexOf extends AbstractOperator{ |
|
40 |
|
|
41 |
public String addText(String s) { |
|
42 |
return toString()+"("+s+", \"\")"; |
|
43 |
} |
|
44 |
public String toString() { |
|
45 |
return "indexOf"; |
|
46 |
} |
|
47 |
public void eval(BSFManager interpreter) throws BSFException { |
|
48 |
interpreter.exec(ExpressionFieldExtension.JYTHON,null,-1,-1,"def indexOf(value1,value2):\n" + |
|
49 |
" return value1.find(value2)"); |
|
50 |
} |
|
51 |
public boolean isEnable() { |
|
52 |
return (getType()==IOperator.STRING); |
|
53 |
} |
|
54 |
public String getTooltip(){ |
|
55 |
return PluginServices.getText(this,"operator")+": " + |
|
56 |
toString()+ |
|
57 |
"("+PluginServices.getText(this,"parameter")+"1,"+PluginServices.getText(this,"parameter")+"2)\n"+ |
|
58 |
getDescription(); |
|
59 |
} |
|
60 |
|
|
61 |
public String getDescription() { |
|
62 |
return PluginServices.getText(this, "parameter") + "1"+": " + |
|
63 |
PluginServices.getText(this, "string_value") + "\n"+ |
|
64 |
PluginServices.getText(this, "parameter") + "2"+": " + |
|
65 |
PluginServices.getText(this, "string_value") + "\n"+ |
|
66 |
PluginServices.getText(this, "returns") + ": " + |
|
67 |
PluginServices.getText(this, "integer_value") + "\n" + |
|
68 |
PluginServices.getText(this, "description") + ": " + |
|
69 |
"Returns the index within parameter1 of the first occurrence of the parameter2."; |
|
70 |
} |
|
71 |
} |
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/GetTimeDate.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 GetTimeDate extends AbstractOperator{ |
|
40 |
|
|
41 |
public String addText(String s) { |
|
42 |
return toString()+"("+s+")"; |
|
43 |
} |
|
44 |
public String toString() { |
|
45 |
return "getTimeDate"; |
|
46 |
} |
|
47 |
public void eval(BSFManager interpreter) throws BSFException { |
|
48 |
// interpreter.eval(ExpressionFieldExtension.BEANSHELL,null,-1,-1,"double getTimeDate(java.lang.Object value){return value.getTime();};"); |
|
49 |
interpreter.exec(ExpressionFieldExtension.JYTHON,null,-1,-1, |
|
50 |
"def getTimeDate(value):\n" + |
|
51 |
" return value.getTime()"); |
|
52 |
} |
|
53 |
public boolean isEnable() { |
|
54 |
return (getType()==IOperator.DATE); |
|
55 |
} |
|
56 |
|
|
57 |
public String getDescription() { |
|
58 |
return PluginServices.getText(this, "parameter") +": " + |
|
59 |
PluginServices.getText(this, "date_value") + "\n"+ |
|
60 |
PluginServices.getText(this, "returns") + ": " + |
|
61 |
PluginServices.getText(this, "numeric_value") + "\n" + |
|
62 |
PluginServices.getText(this, "description") + ": " + |
|
63 |
"Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object."; |
|
64 |
} |
|
65 |
} |
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/Exp.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 Exp extends AbstractOperator{ |
|
40 |
|
|
41 |
public String addText(String s) { |
|
42 |
return toString()+"("+s+")"; |
|
43 |
} |
|
44 |
public String toString() { |
|
45 |
return "exp"; |
|
46 |
} |
|
47 |
public void eval(BSFManager interpreter) throws BSFException { |
|
48 |
// interpreter.eval(ExpressionFieldExtension.BEANSHELL,null,-1,-1,"double exp(double value){return java.lang.Math.exp(value);};"); |
|
49 |
interpreter.exec(ExpressionFieldExtension.JYTHON,null,-1,-1,"def exp(value):\n" + |
|
50 |
" import java.lang.Math\n" + |
|
51 |
" return java.lang.Math.exp(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 Euler's number e raised to the power of a double value. Special cases:\n" + |
|
63 |
"* If the argument is NaN, the result is NaN.\n" + |
|
64 |
"* If the argument is positive infinity, then the result is positive infinity.\n" + |
|
65 |
"* If the argument is negative infinity, then the result is positive zero."; |
|
66 |
} |
|
67 |
} |
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/Perimeter.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.Feature; |
|
39 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
40 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
41 |
import org.gvsig.fmap.geom.GeometryManager; |
|
42 |
import org.gvsig.fmap.mapcontext.MapContext; |
|
43 |
import org.gvsig.fmap.mapcontrol.MapControlLocator; |
|
44 |
import org.slf4j.Logger; |
|
45 |
import org.slf4j.LoggerFactory; |
|
46 |
|
|
47 |
/** |
|
48 |
* @author Vicente Caballero Navarro |
|
49 |
*/ |
|
50 |
public class Perimeter extends GraphicOperator { |
|
51 |
|
|
52 |
private static final Logger logger = LoggerFactory.getLogger(Area.class); |
|
53 |
|
|
54 |
public String addText(String s) { |
|
55 |
return s.concat(toString() + "()"); |
|
56 |
} |
|
57 |
|
|
58 |
public double process(Feature feature) { |
|
59 |
org.gvsig.fmap.geom.Geometry geom = null; |
|
60 |
geom = feature.getDefaultGeometry(); |
|
61 |
MapContext mapContext = getLayer().getMapContext(); |
|
62 |
IProjection proj = mapContext.getProjection(); |
|
63 |
int distanceUnits = mapContext.getViewPort().getDistanceArea(); |
|
64 |
return MapControlLocator.getMapControlManager().perimeter(geom, proj, distanceUnits); |
|
65 |
} |
|
66 |
|
|
67 |
public void eval(BSFManager interpreter) throws BSFException { |
|
68 |
interpreter.declareBean("jperimeter", this, Perimeter.class); |
|
69 |
// interpreter.eval(ExpressionFieldExtension.BEANSHELL,null,-1,-1,"double perimeter(){return jperimeter.process(indexRow);};"); |
|
70 |
interpreter.exec(ExpressionFieldExtension.JYTHON, null, -1, -1, "def perimeter():\n" |
|
71 |
+ " return jperimeter.process(featureContainer.getFeature())"); |
|
72 |
} |
|
73 |
|
|
74 |
public String toString() { |
|
75 |
return "perimeter"; |
|
76 |
} |
|
77 |
|
|
78 |
public boolean isEnable() { |
|
79 |
if (getLayer() == null) { |
|
80 |
return false; |
|
81 |
} |
|
82 |
int geomType = org.gvsig.fmap.geom.Geometry.TYPES.POINT; |
|
83 |
try { |
|
84 |
FeatureStore store = getLayer().getFeatureStore(); |
|
85 |
geomType = store.getDefaultFeatureType().getDefaultGeometryAttribute().getGeomType().getType(); |
|
86 |
} catch (DataException e) { |
|
87 |
logger.warn("Can't get geometry type for default geometry attribute of layer '"+getLayer().getName()+"'.",e); |
|
88 |
} |
|
89 |
GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
90 |
|
|
91 |
return getType() == IOperator.NUMBER && ( |
|
92 |
geomManager.isSubtype(org.gvsig.fmap.geom.Geometry.TYPES.CURVE, geomType) || |
|
93 |
geomManager.isSubtype(org.gvsig.fmap.geom.Geometry.TYPES.MULTICURVE, geomType) || |
|
94 |
geomManager.isSubtype(org.gvsig.fmap.geom.Geometry.TYPES.SURFACE, geomType) || |
|
95 |
geomManager.isSubtype(org.gvsig.fmap.geom.Geometry.TYPES.MULTISURFACE, geomType) |
|
96 |
); |
|
97 |
} |
|
98 |
|
|
99 |
public String getTooltip() { |
|
100 |
return PluginServices.getText(this, "operator") + ": " + addText("") + "\n" + getDescription(); |
|
101 |
} |
|
102 |
|
|
103 |
public String getDescription() { |
|
104 |
return PluginServices.getText(this, "returns") + ": " |
|
105 |
+ PluginServices.getText(this, "numeric_value") + "\n" |
|
106 |
+ PluginServices.getText(this, "description") + ": " |
|
107 |
+ "Returns the perimeter of polygon or line geometry of this row in the units of the view."; |
|
108 |
} |
|
109 |
} |
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/After.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 After extends AbstractOperator{ |
|
40 |
|
|
41 |
public String addText(String s) { |
|
42 |
return toString()+"("+s+",)"; |
|
43 |
} |
|
44 |
public String toString() { |
|
45 |
return "after"; |
|
46 |
} |
|
47 |
public void eval(BSFManager interpreter) throws BSFException { |
|
48 |
// interpreter.eval(ExpressionFieldExtension.BEANSHELL,null,-1,-1,"boolean after(java.lang.Object value1,java.lang.Object value2){return value1.after(value2);};"); |
|
49 |
interpreter.exec(ExpressionFieldExtension.JYTHON,null,-1,-1,"def after(value1, value2):\n" + |
|
50 |
" return value1.after(value2)"); |
|
51 |
} |
|
52 |
public boolean isEnable() { |
|
53 |
return (getType()==IOperator.DATE); |
|
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, "date_value") + "\n"+ |
|
61 |
PluginServices.getText(this, "parameter") + "2"+": " + |
|
62 |
PluginServices.getText(this, "date_value") + "\n"+ |
|
63 |
PluginServices.getText(this, "returns") + ": " + |
|
64 |
PluginServices.getText(this, "boolean_value") + "\n" + |
|
65 |
PluginServices.getText(this, "description") + ": " + |
|
66 |
"Tests if parameter1 date is after the parameter2 date."; |
|
67 |
} |
|
68 |
|
|
69 |
} |
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/Abs.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 |
/** |
|
38 |
* |
|
39 |
* @author Vicente Caballero Navarro |
|
40 |
*/ |
|
41 |
public class Abs extends AbstractOperator { |
|
42 |
public String addText(String s) { |
|
43 |
return toString() + "(" + s + ")"; |
|
44 |
} |
|
45 |
|
|
46 |
public String toString() { |
|
47 |
return "abs"; |
|
48 |
} |
|
49 |
|
|
50 |
public void eval(BSFManager interpreter) throws BSFException { |
|
51 |
interpreter.exec(ExpressionFieldExtension.JYTHON, null, -1, -1, |
|
52 |
"def abs(value):\n" + |
|
53 |
" import java.lang.Math\n"+ |
|
54 |
" return java.lang.Math.abs(value)\n"); |
|
55 |
} |
|
56 |
|
|
57 |
public boolean isEnable() { |
|
58 |
return (getType() == IOperator.NUMBER); |
|
59 |
} |
|
60 |
|
|
61 |
public double abs(double value) { |
|
62 |
return java.lang.Math.abs(value); |
|
63 |
} |
|
64 |
|
|
65 |
public String getDescription() { |
|
66 |
return PluginServices.getText(this, "parameter") + ": " + |
|
67 |
PluginServices.getText(this, "numeric_value") + "\n" + |
|
68 |
PluginServices.getText(this, "returns") + ": " + |
|
69 |
PluginServices.getText(this, "numeric_value") + "\n" + |
|
70 |
PluginServices.getText(this, "description") + ": " + |
|
71 |
"Returns the absolute value of a double value. If the argument is not negative, the argument is returned. " + |
|
72 |
"If the argument is negative, the negation of the argument is returned.\n " + |
|
73 |
"Special cases:\n" + |
|
74 |
"* If the argument is positive zero or negative zero, the result is positive zero.\n" + |
|
75 |
"* If the argument is infinite, the result is positive infinity.\n" + |
|
76 |
"* If the argument is NaN, the result is NaN."; |
|
77 |
} |
|
78 |
} |
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/Pow.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 Pow extends AbstractOperator{ |
|
40 |
|
|
41 |
public String addText(String s) { |
|
42 |
return toString()+"("+s+", )"; |
|
43 |
} |
|
44 |
|
|
45 |
public void eval(BSFManager interpreter) throws BSFException { |
|
46 |
// interpreter.eval(ExpressionFieldExtension.BEANSHELL,null,-1,-1,"double pow(double value1,double value2){return java.lang.Math.pow(value1,value2);};"); |
|
47 |
interpreter.exec(ExpressionFieldExtension.JYTHON,null,-1,-1,"def pow(value1, value2):\n" + |
|
48 |
" import java.lang.Math\n" + |
|
49 |
" return java.lang.Math.pow(value1,value2)"); |
|
50 |
} |
|
51 |
public String toString() { |
|
52 |
return "pow"; |
|
53 |
} |
|
54 |
public boolean isEnable() { |
|
55 |
return (getType()==IOperator.NUMBER); |
|
56 |
} |
|
57 |
public String getTooltip(){ |
|
58 |
return PluginServices.getText(this,"operator")+": "+ toString()+ "(" +PluginServices.getText(this,"parameter")+"1,"+PluginServices.getText(this,"parameter")+"2"+")\n"+getDescription(); |
|
59 |
} |
|
60 |
public String getDescription() { |
|
61 |
return PluginServices.getText(this, "parameter") + "1"+": " + |
|
62 |
PluginServices.getText(this, "numeric_value") + "\n"+ |
|
63 |
PluginServices.getText(this, "parameter") + "2"+": " + |
|
64 |
PluginServices.getText(this, "numeric_value") + "\n"+ |
|
65 |
PluginServices.getText(this, "returns") + ": " + |
|
66 |
PluginServices.getText(this, "numeric_value") + "\n" + |
|
67 |
PluginServices.getText(this, "description") + ": " + |
|
68 |
"Returns the value of the first argument raised to the power of the second argument. Special cases:\n" + |
|
69 |
"* If the second argument is positive or negative zero, then the result is 1.0.\n" + |
|
70 |
"* If the second argument is 1.0, then the result is the same as the first argument.\n" + |
|
71 |
"* If the second argument is NaN, then the result is NaN.\n" + |
|
72 |
"* If the first argument is NaN and the second argument is nonzero, then the result is NaN.\n" + |
|
73 |
"* If\n" + |
|
74 |
" - the absolute value of the first argument is greater than 1 and the second argument is positive infinity, or\n" + |
|
75 |
" - the absolute value of the first argument is less than 1 and the second argument is negative infinity,\n" + |
|
76 |
"then the result is positive infinity.\n" + |
|
77 |
"* If\n" + |
|
78 |
" - the absolute value of the first argument is greater than 1 and the second argument is negative infinity, or\n" + |
|
79 |
" - the absolute value of the first argument is less than 1 and the second argument is positive infinity,\n" + |
|
80 |
"then the result is positive zero.\n" + |
|
81 |
"* If the absolute value of the first argument equals 1 and the second argument is infinite, then the result is NaN.\n" + |
|
82 |
"* If\n" + |
|
83 |
" - the first argument is positive zero and the second argument is greater than zero, or\n" + |
|
84 |
" - the first argument is positive infinity and the second argument is less than zero,\n" + |
|
85 |
"then the result is positive zero.\n" + |
|
86 |
"* If\n" + |
|
87 |
" - the first argument is positive zero and the second argument is less than zero, or\n" + |
|
88 |
" - the first argument is positive infinity and the second argument is greater than zero,\n" + |
|
89 |
"then the result is positive infinity.\n" + |
|
90 |
"* If\n" + |
|
91 |
" - the first argument is negative zero and the second argument is greater than zero but not a finite odd integer, or\n" + |
|
92 |
" - the first argument is negative infinity and the second argument is less than zero but not a finite odd integer,\n" + |
|
93 |
"then the result is positive zero.\n" + |
|
94 |
"* If\n" + |
|
95 |
" - the first argument is negative zero and the second argument is a positive finite odd integer, or\n" + |
|
96 |
" - the first argument is negative infinity and the second argument is a negative finite odd integer,\n" + |
|
97 |
"then the result is negative zero.\n" + |
|
98 |
"* If\n" + |
|
99 |
" - the first argument is negative zero and the second argument is less than zero but not a finite odd integer, or\n" + |
|
100 |
" - the first argument is negative infinity and the second argument is greater than zero but not a finite odd integer,\n" + |
|
101 |
"then the result is positive infinity.\n" + |
|
102 |
"* If\n" + |
|
103 |
" - the first argument is negative zero and the second argument is a negative finite odd integer, or\n" + |
|
104 |
" - the first argument is negative infinity and the second argument is a positive finite odd integer,\n" + |
|
105 |
"then the result is negative infinity.\n" + |
|
106 |
"* If the first argument is finite and less than zero\n" + |
|
107 |
" - if the second argument is a finite even integer, the result is equal to the result of raising the absolute value of the first argument to the power of the second argument\n" + |
|
108 |
" - if the second argument is a finite odd integer, the result is equal to the negative of the result of raising the absolute value of the first argument to the power of the second argument\n" + |
|
109 |
" - if the second argument is finite and not an integer, then the result is NaN.\n" + |
|
110 |
"* If both arguments are integers, then the result is exactly equal to the mathematical result of raising the first argument to the power of the second argument if that result can in fact be represented exactly as a double value."; |
|
111 |
} |
|
112 |
} |
org.gvsig.expressionfield/tags/org.gvsig.expressionfield-2.0.115/src/main/java/org/gvsig/expressionfield/project/documents/table/operators/RecordIndex.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.FeatureIndex; |
|
34 |
|
|
35 |
/** |
|
36 |
* This operator returns the 0-based feature index |
|
37 |
* by using the Jython bean 'featureIndex' previously declared |
|
38 |
* @author jldominguez |
|
39 |
* |
|
40 |
*/ |
|
41 |
public class RecordIndex extends AbstractOperator { |
|
42 |
|
|
43 |
public String addText(String s) { |
|
44 |
return toString()+"()"; |
|
45 |
} |
|
46 |
|
|
47 |
public long process(FeatureIndex featIndex) { |
|
48 |
|
Also available in: Unified diff