Revision 10254
trunk/extensions/extCAD/config/config.xml | ||
---|---|---|
3 | 3 |
<libraries library-dir="./"/> |
4 | 4 |
<depends plugin-name="com.iver.cit.gvsig" /> |
5 | 5 |
<depends plugin-name="com.iver.cit.gvsig.jdbc_spatial" /> |
6 |
<depends plugin-name="com.iver.cit.gvsig.scripting" /> |
|
6 | 7 |
<resourceBundle name="text"/> |
7 | 8 |
<extensions> |
8 | 9 |
<extension class-name="com.iver.cit.gvsig.CreateNewLayer" |
... | ... | |
240 | 241 |
<action-tool icon="images/previousSel.png" action-command="previous_selection" tooltip="previous_selection" group="vista" position="19"/> |
241 | 242 |
</tool-bar> |
242 | 243 |
</extension> |
243 |
|
|
244 | 244 |
|
245 |
|
|
245 | 246 |
<extension class-name="com.iver.cit.gvsig.LayerPropertiesExtension" |
246 | 247 |
description="Abre el di?logo de propiedades de la capa." |
247 | 248 |
active="true" > |
248 | 249 |
<menu text="Capa/Propiedades" action-command="PROPERTIES"/> |
249 | 250 |
</extension> |
251 |
<extension class-name="com.iver.cit.gvsig.ExpresionFieldExtension" |
|
252 |
description="Extension that evaluate the expresion to a column." |
|
253 |
active="true"> |
|
254 |
<menu text="field/expresion" tooltip="expresion" |
|
255 |
action-command="EXPRESION" |
|
256 |
icon="images/expresion.png" /> |
|
257 |
<tool-bar name="field_toolbar"> |
|
258 |
<action-tool icon="images/expresion.png" |
|
259 |
action-command="EXPRESION" tooltip="expresion" |
|
260 |
last="true"/> |
|
261 |
</tool-bar> |
|
262 |
</extension> |
|
250 | 263 |
</extensions> |
251 | 264 |
</plugin-config> |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/Index.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table; |
|
2 |
/** |
|
3 |
* @author Vicente Caballero Navarro |
|
4 |
*/ |
|
5 |
public class Index { |
|
6 |
private int index=0; |
|
7 |
|
|
8 |
public void next() { |
|
9 |
index++; |
|
10 |
} |
|
11 |
public void previous() { |
|
12 |
index--; |
|
13 |
} |
|
14 |
public int get() { |
|
15 |
return index; |
|
16 |
} |
|
17 |
public void set(int i) { |
|
18 |
index=i; |
|
19 |
} |
|
20 |
} |
|
0 | 21 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/GraphicOperator.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table; |
|
2 |
|
|
3 |
import java.awt.geom.PathIterator; |
|
4 |
import java.util.ArrayList; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
|
7 |
import com.iver.cit.gvsig.fmap.core.v02.FConverter; |
|
8 |
import com.iver.cit.gvsig.fmap.drivers.DriverIOException; |
|
9 |
import com.iver.cit.gvsig.fmap.layers.FLyrVect; |
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public abstract class GraphicOperator extends AbstractOperator{ |
|
14 |
private FLyrVect lv=null; |
|
15 |
public void setLayer(FLyrVect lv) { |
|
16 |
this.lv=lv; |
|
17 |
} |
|
18 |
public FLyrVect getLayer() { |
|
19 |
return lv; |
|
20 |
} |
|
21 |
public abstract double process(Index index) throws DriverIOException; |
|
22 |
protected Double[][] getXY(IGeometry geometry) { |
|
23 |
ArrayList xs = new ArrayList(); |
|
24 |
ArrayList ys = new ArrayList(); |
|
25 |
double[] theData = new double[6]; |
|
26 |
|
|
27 |
//double[] aux = new double[6]; |
|
28 |
PathIterator theIterator; |
|
29 |
int theType; |
|
30 |
int numParts = 0; |
|
31 |
|
|
32 |
// boolean bFirst = true; |
|
33 |
// int xInt, yInt, antX = -1, antY = -1; |
|
34 |
theIterator = geometry.getPathIterator(null,FConverter.FLATNESS); //, flatness); |
|
35 |
|
|
36 |
// int numSegmentsAdded = 0; |
|
37 |
while (!theIterator.isDone()) { |
|
38 |
theType = theIterator.currentSegment(theData); |
|
39 |
|
|
40 |
switch (theType) { |
|
41 |
case PathIterator.SEG_MOVETO: |
|
42 |
numParts++; |
|
43 |
xs.add(new Double(theData[0])); |
|
44 |
ys.add(new Double(theData[1])); |
|
45 |
|
|
46 |
|
|
47 |
break; |
|
48 |
|
|
49 |
case PathIterator.SEG_LINETO: |
|
50 |
xs.add(new Double(theData[0])); |
|
51 |
ys.add(new Double(theData[1])); |
|
52 |
|
|
53 |
|
|
54 |
break; |
|
55 |
|
|
56 |
|
|
57 |
case PathIterator.SEG_CLOSE: |
|
58 |
xs.add(new Double(theData[0])); |
|
59 |
ys.add(new Double(theData[1])); |
|
60 |
|
|
61 |
break; |
|
62 |
} //end switch |
|
63 |
|
|
64 |
theIterator.next(); |
|
65 |
} //end while loop |
|
66 |
|
|
67 |
Double[] x = (Double[]) xs.toArray(new Double[0]); |
|
68 |
Double[] y = (Double[]) ys.toArray(new Double[0]); |
|
69 |
|
|
70 |
return new Double[][] { x, y }; |
|
71 |
|
|
72 |
} |
|
73 |
|
|
74 |
} |
|
0 | 75 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/ToRadians.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class ToRadians extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "toRadians"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double toRadians(double value){return java.lang.Math.toRadians(value);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/IsNumber.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class IsNumber extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "isNumber"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"boolean isNumber (String value){try{java.lang.Double.parseDouble(value);}catch(java.lang.NumberFormatException e){return false;}return true;};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.STRING); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Division.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
8 |
|
|
9 |
/** |
|
10 |
* @author Vicente Caballero Navarro |
|
11 |
*/ |
|
12 |
public class Division extends AbstractOperator{ |
|
13 |
|
|
14 |
public String addText(String s) { |
|
15 |
return s.concat(toString()); |
|
16 |
} |
|
17 |
|
|
18 |
public void eval(BSFManager interpreter) throws BSFException { |
|
19 |
} |
|
20 |
public String toString() { |
|
21 |
return "/"; |
|
22 |
} |
|
23 |
public boolean isEnable() { |
|
24 |
return (getType()==IOperator.NUMBER); |
|
25 |
} |
|
26 |
|
|
27 |
} |
|
0 | 28 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/EndsWith.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class EndsWith extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+",\"\")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "endsWith"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"boolean endsWith(String value1,String value2){return value1.endsWith(value2);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.STRING); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Sin.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Sin extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "sin"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double sin(double value){return java.lang.Math.sin(value);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Asin.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Asin extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "asin"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double asin(double value){return java.lang.Math.asin(value);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Minus.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
8 |
/** |
|
9 |
* @author Vicente Caballero Navarro |
|
10 |
*/ |
|
11 |
public class Minus extends AbstractOperator{ |
|
12 |
|
|
13 |
public String addText(String s) { |
|
14 |
return s.concat(toString()); |
|
15 |
} |
|
16 |
public String toString() { |
|
17 |
return "-"; |
|
18 |
} |
|
19 |
public void eval(BSFManager interpreter) throws BSFException { |
|
20 |
} |
|
21 |
public boolean isEnable() { |
|
22 |
return (getType()==IOperator.NUMBER || getType()==IOperator.DATE); |
|
23 |
} |
|
24 |
} |
|
0 | 25 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/ToNumber.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class ToNumber extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "toNumber"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double toNumber(String value){return java.lang.Double.parseDouble(value);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER ); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/IndexOf.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class IndexOf extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+", \"\")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "indexOf"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"int indexOf(String value1,String value2){return value1.indexOf(value2);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.STRING); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Exp.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Exp extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "exp"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double exp(double value){return java.lang.Math.exp(value);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Perimeter.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import java.awt.geom.Point2D; |
|
4 |
|
|
5 |
import org.apache.bsf.BSFException; |
|
6 |
import org.apache.bsf.BSFManager; |
|
7 |
|
|
8 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
9 |
import com.iver.cit.gvsig.fmap.MapContext; |
|
10 |
import com.iver.cit.gvsig.fmap.ViewPort; |
|
11 |
import com.iver.cit.gvsig.fmap.core.FShape; |
|
12 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
|
13 |
import com.iver.cit.gvsig.fmap.drivers.DriverIOException; |
|
14 |
import com.iver.cit.gvsig.fmap.layers.ReadableVectorial; |
|
15 |
import com.iver.cit.gvsig.project.documents.table.GraphicOperator; |
|
16 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
17 |
import com.iver.cit.gvsig.project.documents.table.Index; |
|
18 |
/** |
|
19 |
* @author Vicente Caballero Navarro |
|
20 |
*/ |
|
21 |
public class Perimeter extends GraphicOperator{ |
|
22 |
|
|
23 |
public String addText(String s) { |
|
24 |
return s.concat(toString()+"()"); |
|
25 |
} |
|
26 |
public double process(Index index) throws DriverIOException { |
|
27 |
ReadableVectorial adapter = getLayer().getSource(); |
|
28 |
IGeometry geom=adapter.getShape(index.get()); |
|
29 |
Double[][] xsys=getXY(geom); |
|
30 |
double dist = 0; |
|
31 |
double distAll = 0; |
|
32 |
|
|
33 |
ViewPort vp = getLayer().getMapContext().getViewPort(); |
|
34 |
for (int i = 0; i < (xsys[0].length - 1); i++) { |
|
35 |
dist = 0; |
|
36 |
|
|
37 |
Point2D p = new Point2D.Double(xsys[0][i].doubleValue(), xsys[1][i].doubleValue());//vp.toMapPoint(new Point(event.getXs()[i].intValue(), event.getYs()[i].intValue())); |
|
38 |
Point2D p2 = new Point2D.Double(xsys[0][i + 1].doubleValue(), xsys[1][i + 1].doubleValue());//vp.toMapPoint(new Point(event.getXs()[i + 1].intValue(), event.getYs()[i + 1].intValue())); |
|
39 |
dist = vp.distanceWorld(p,p2); |
|
40 |
System.out.println("distancia parcial = "+dist); |
|
41 |
distAll += dist; |
|
42 |
} |
|
43 |
int distanceUnits=vp.getDistanceUnits(); |
|
44 |
return distAll/MapContext.CHANGEM[distanceUnits]; |
|
45 |
} |
|
46 |
public void eval(BSFManager interpreter) throws BSFException { |
|
47 |
interpreter.declareBean("perimeter",this,Perimeter.class); |
|
48 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double perimeter(){return perimeter.process(indexRow);};"); |
|
49 |
} |
|
50 |
public String toString() { |
|
51 |
return "perimeter"; |
|
52 |
} |
|
53 |
public boolean isEnable() { |
|
54 |
if (getLayer()==null) |
|
55 |
return false; |
|
56 |
ReadableVectorial adapter = getLayer().getSource(); |
|
57 |
int type=FShape.POINT; |
|
58 |
try { |
|
59 |
type=adapter.getShapeType(); |
|
60 |
} catch (DriverIOException e) { |
|
61 |
e.printStackTrace(); |
|
62 |
} |
|
63 |
return (getType()==IOperator.NUMBER && (type==FShape.POLYGON || type==FShape.LINE)); |
|
64 |
} |
|
65 |
} |
|
0 | 66 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Abs.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
/** |
|
10 |
* @author Vicente Caballero Navarro |
|
11 |
*/ |
|
12 |
public class Abs extends AbstractOperator{ |
|
13 |
|
|
14 |
public String addText(String s) { |
|
15 |
return toString()+"("+s+")"; |
|
16 |
} |
|
17 |
public String toString() { |
|
18 |
return "abs"; |
|
19 |
} |
|
20 |
public void eval(BSFManager interpreter) throws BSFException { |
|
21 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double abs(double value){return java.lang.Math.abs(value);};"); |
|
22 |
} |
|
23 |
public boolean isEnable() { |
|
24 |
return (getType()==IOperator.NUMBER); |
|
25 |
} |
|
26 |
public double abs(double value) { |
|
27 |
return java.lang.Math.abs(value); |
|
28 |
} |
|
29 |
} |
|
0 | 30 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Pow.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Pow extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+", \"\")"; |
|
17 |
} |
|
18 |
|
|
19 |
public void eval(BSFManager interpreter) throws BSFException { |
|
20 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double pow(double value1,double value2){return java.lang.Math.pow(value1,value2);};"); |
|
21 |
} |
|
22 |
public String toString() { |
|
23 |
return "pow"; |
|
24 |
} |
|
25 |
public boolean isEnable() { |
|
26 |
return (getType()==IOperator.NUMBER); |
|
27 |
} |
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Trim.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Trim extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "trim"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"String trim(String value){return value.trim();};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.STRING); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/PointX.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.fmap.core.FShape; |
|
8 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
|
9 |
import com.iver.cit.gvsig.fmap.drivers.DriverIOException; |
|
10 |
import com.iver.cit.gvsig.fmap.layers.ReadableVectorial; |
|
11 |
import com.iver.cit.gvsig.project.documents.table.GraphicOperator; |
|
12 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
13 |
import com.iver.cit.gvsig.project.documents.table.Index; |
|
14 |
/** |
|
15 |
* @author Vicente Caballero Navarro |
|
16 |
*/ |
|
17 |
public class PointX extends GraphicOperator{ |
|
18 |
|
|
19 |
public String addText(String s) { |
|
20 |
return s.concat(toString()+"()"); |
|
21 |
} |
|
22 |
public double process(Index index) throws DriverIOException { |
|
23 |
ReadableVectorial adapter = getLayer().getSource(); |
|
24 |
IGeometry geom=adapter.getShape(index.get()); |
|
25 |
Double[][] xsys=getXY(geom); |
|
26 |
return xsys[0][0].doubleValue(); |
|
27 |
} |
|
28 |
public void eval(BSFManager interpreter) throws BSFException { |
|
29 |
interpreter.declareBean("pointX",this,PointX.class); |
|
30 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double x(){return pointX.process(indexRow);};"); |
|
31 |
} |
|
32 |
public String toString() { |
|
33 |
return "x"; |
|
34 |
} |
|
35 |
public boolean isEnable() { |
|
36 |
if (getLayer()==null) |
|
37 |
return false; |
|
38 |
ReadableVectorial adapter = getLayer().getSource(); |
|
39 |
int type=FShape.POINT; |
|
40 |
try { |
|
41 |
type=adapter.getShapeType(); |
|
42 |
} catch (DriverIOException e) { |
|
43 |
e.printStackTrace(); |
|
44 |
} |
|
45 |
return (getType()==IOperator.NUMBER && type==FShape.POINT); |
|
46 |
} |
|
47 |
} |
|
0 | 48 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/ToDegrees.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class ToDegrees extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "toDegrees"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
|
|
23 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double toDegrees(double value){return java.lang.Math.toDegrees(value);};"); |
|
24 |
} |
|
25 |
public boolean isEnable() { |
|
26 |
return (getType()==IOperator.NUMBER); |
|
27 |
} |
|
28 |
|
|
29 |
} |
|
0 | 30 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Tan.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Tan extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "tan"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double tan(double value){return java.lang.Math.tan(value);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Plus.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
8 |
/** |
|
9 |
* @author Vicente Caballero Navarro |
|
10 |
*/ |
|
11 |
public class Plus extends AbstractOperator{ |
|
12 |
|
|
13 |
public String addText(String s) { |
|
14 |
return s.concat(toString()); |
|
15 |
} |
|
16 |
public String toString() { |
|
17 |
return "+"; |
|
18 |
} |
|
19 |
public void eval(BSFManager interpreter) throws BSFException { |
|
20 |
} |
|
21 |
public boolean isEnable() { |
|
22 |
return (getType()==IOperator.NUMBER || getType()==IOperator.STRING || getType()==IOperator.DATE); |
|
23 |
} |
|
24 |
} |
|
0 | 25 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Atan.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Atan extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "atan"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double asin(double value){return java.lang.Math.atan(value);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Cos.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Cos extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "cos"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double cos(double value){return java.lang.Math.cos(value);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/E.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class E extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return s.concat(toString()+"()"); |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "e"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double e(){return java.lang.Math.E;};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Acos.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Acos extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "acos"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double acos(double value){return java.lang.Math.acos(value);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Round.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Round extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "round"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double round(double value){return java.lang.Math.round(value);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/ToLowerCase.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class ToLowerCase extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "toLowerCase"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"String toLowerCase(String value){return value.toLowerCase();};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.STRING); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Sqrt.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Sqrt extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "sqrt"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double sqrt(double value){return java.lang.Math.sqrt(value);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.NUMBER); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Equals.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class Equals extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+", \"\")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "equals"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"boolean equals(java.lang.Object value1,java.lang.Object value2){return value1.equals(value2);};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.STRING || getType()==IOperator.DATE); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/ToUpperCase.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
8 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
9 |
|
|
10 |
/** |
|
11 |
* @author Vicente Caballero Navarro |
|
12 |
*/ |
|
13 |
public class ToUpperCase extends AbstractOperator{ |
|
14 |
|
|
15 |
public String addText(String s) { |
|
16 |
return toString()+"("+s+")"; |
|
17 |
} |
|
18 |
public String toString() { |
|
19 |
return "toUpperCase"; |
|
20 |
} |
|
21 |
public void eval(BSFManager interpreter) throws BSFException { |
|
22 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"String toUpperCase(String value){return value.toUpperCase();};"); |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.STRING); |
|
26 |
} |
|
27 |
|
|
28 |
} |
|
0 | 29 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Equal.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.project.documents.table.AbstractOperator; |
|
7 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
8 |
|
|
9 |
/** |
|
10 |
* @author Vicente Caballero Navarro |
|
11 |
*/ |
|
12 |
public class Equal extends AbstractOperator{ |
|
13 |
|
|
14 |
public String addText(String s) { |
|
15 |
return s.concat(toString()); |
|
16 |
} |
|
17 |
|
|
18 |
public void eval(BSFManager interpreter) throws BSFException { |
|
19 |
|
|
20 |
} |
|
21 |
public String toString() { |
|
22 |
return "=="; |
|
23 |
} |
|
24 |
public boolean isEnable() { |
|
25 |
return (getType()==IOperator.DATE || getType()==IOperator.NUMBER || getType()==IOperator.STRING); |
|
26 |
} |
|
27 |
} |
|
0 | 28 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Area.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import java.awt.geom.Point2D; |
|
4 |
|
|
5 |
import org.apache.bsf.BSFException; |
|
6 |
import org.apache.bsf.BSFManager; |
|
7 |
import org.cresques.cts.IProjection; |
|
8 |
|
|
9 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
|
10 |
import com.iver.cit.gvsig.fmap.MapContext; |
|
11 |
import com.iver.cit.gvsig.fmap.ViewPort; |
|
12 |
import com.iver.cit.gvsig.fmap.core.FShape; |
|
13 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
|
14 |
import com.iver.cit.gvsig.fmap.drivers.DriverIOException; |
|
15 |
import com.iver.cit.gvsig.fmap.layers.ReadableVectorial; |
|
16 |
import com.iver.cit.gvsig.fmap.tools.geo.Geo; |
|
17 |
import com.iver.cit.gvsig.project.documents.table.GraphicOperator; |
|
18 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
|
19 |
import com.iver.cit.gvsig.project.documents.table.Index; |
|
20 |
/** |
|
21 |
* @author Vicente Caballero Navarro |
|
22 |
*/ |
|
23 |
public class Area extends GraphicOperator{ |
|
24 |
|
|
25 |
public String addText(String s) { |
|
26 |
return s.concat(toString()+"()"); |
|
27 |
} |
|
28 |
public double process(Index index) throws DriverIOException { |
|
29 |
ReadableVectorial adapter = getLayer().getSource(); |
|
30 |
IGeometry geom=adapter.getShape(index.get()); |
|
31 |
int distanceUnits=getLayer().getMapContext().getViewPort().getDistanceUnits(); |
|
32 |
return returnArea(geom)/Math.pow(MapContext.CHANGEM[distanceUnits],2); |
|
33 |
} |
|
34 |
public void eval(BSFManager interpreter) throws BSFException { |
|
35 |
interpreter.declareBean("area",this,Area.class); |
|
36 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double area(){return area.process(indexRow);};"); |
|
37 |
} |
|
38 |
public String toString() { |
|
39 |
return "area"; |
|
40 |
} |
|
41 |
public boolean isEnable() { |
|
42 |
if (getLayer()==null) |
|
43 |
return false; |
|
44 |
ReadableVectorial adapter = getLayer().getSource(); |
|
45 |
int type=FShape.POINT; |
|
46 |
try { |
|
47 |
type=adapter.getShapeType(); |
|
48 |
} catch (DriverIOException e) { |
|
49 |
e.printStackTrace(); |
|
50 |
} |
|
51 |
return (getType()==IOperator.NUMBER && type==FShape.POLYGON); |
|
52 |
} |
|
53 |
|
|
54 |
private double returnArea(IGeometry geom) { |
|
55 |
Double[][] xsys=getXY(geom); |
|
56 |
Double[] xs=xsys[0]; |
|
57 |
Double[] ys=xsys[1]; |
|
58 |
IProjection proj=getLayer().getMapContext().getProjection(); |
|
59 |
if (proj.isProjected()) { |
|
60 |
return returnCoordsArea(xs,ys,new Point2D.Double(xs[xs.length-1].doubleValue(),ys[ys.length-1].doubleValue())); |
|
61 |
} |
|
62 |
return returnGeoCArea(xs,ys); |
|
63 |
} |
|
64 |
private double returnGeoCArea(Double[] xs,Double[] ys) { |
|
65 |
double[] lat=new double[xs.length]; |
|
66 |
double[] lon=new double[xs.length]; |
|
67 |
for (int K= 0; K < xs.length; K++){ |
|
68 |
lon[K]= xs[K].doubleValue()/Geo.Degree; |
|
69 |
lat[K]= ys[K].doubleValue()/Geo.Degree; |
|
70 |
} |
|
71 |
return (Geo.sphericalPolyArea(lat,lon,xs.length-1)*Geo.SqM); |
|
72 |
} |
|
73 |
/** |
|
74 |
* Calcula el ?rea. |
|
75 |
* |
|
76 |
* @param aux ?ltimo punto. |
|
77 |
* |
|
78 |
* @return ?rea. |
|
79 |
*/ |
|
80 |
public double returnCoordsArea(Double[] xs,Double[] ys, Point2D point) { |
|
81 |
Point2D aux=point; |
|
82 |
double elArea = 0.0; |
|
83 |
Point2D pPixel; |
|
84 |
Point2D p = new Point2D.Double(); |
|
85 |
Point2D.Double pAnt = new Point2D.Double(); |
|
86 |
ViewPort vp = getLayer().getMapContext().getViewPort(); |
|
87 |
for (int pos = 0; pos < xs.length-1; pos++) { |
|
88 |
pPixel = new Point2D.Double(xs[pos].doubleValue(), |
|
89 |
ys[pos].doubleValue()); |
|
90 |
p = pPixel; |
|
91 |
if (pos == 0) { |
|
92 |
pAnt.x = aux.getX(); |
|
93 |
pAnt.y = aux.getY(); |
|
94 |
} |
|
95 |
elArea = elArea + ((pAnt.x - p.getX()) * (pAnt.y + p.getY())); |
|
96 |
pAnt.setLocation(p); |
|
97 |
} |
|
98 |
|
|
99 |
elArea = elArea + ((pAnt.x - aux.getX()) * (pAnt.y + aux.getY())); |
|
100 |
elArea = Math.abs(elArea / 2.0); |
|
101 |
return (elArea*(Math.pow(MapContext.CHANGEM[vp.getMapUnits()],2))); |
|
102 |
} |
|
103 |
} |
|
0 | 104 |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/project/documents/table/operators/Pi.java | ||
---|---|---|
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
|
2 |
|
|
3 |
import org.apache.bsf.BSFException; |
|
4 |
import org.apache.bsf.BSFManager; |
|
5 |
|
|
6 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
Also available in: Unified diff