svn-gvsig-desktop / branches / v10 / extensions / extExpressionField / src / com / iver / cit / gvsig / project / documents / table / operators / PointX.java @ 20331
History | View | Annotate | Download (2.18 KB)
1 |
package com.iver.cit.gvsig.project.documents.table.operators; |
---|---|
2 |
|
3 |
import java.util.ArrayList; |
4 |
|
5 |
import org.apache.bsf.BSFException; |
6 |
import org.apache.bsf.BSFManager; |
7 |
|
8 |
import com.iver.andami.PluginServices; |
9 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
10 |
import com.iver.cit.gvsig.fmap.core.FShape; |
11 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
12 |
import com.iver.cit.gvsig.fmap.drivers.DriverIOException; |
13 |
import com.iver.cit.gvsig.fmap.layers.ReadableVectorial; |
14 |
import com.iver.cit.gvsig.project.documents.table.GraphicOperator; |
15 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
16 |
import com.iver.cit.gvsig.project.documents.table.Index; |
17 |
/**
|
18 |
* @author Vicente Caballero Navarro
|
19 |
*/
|
20 |
public class PointX extends GraphicOperator{ |
21 |
|
22 |
public String addText(String s) { |
23 |
return s.concat(toString()+"()"); |
24 |
} |
25 |
public double process(Index index) throws DriverIOException { |
26 |
ReadableVectorial adapter = getLayer().getSource(); |
27 |
IGeometry geom=adapter.getShape(index.get()); |
28 |
ArrayList parts=getXY(geom);
|
29 |
Double[][] xsys=(Double[][])parts.get(0);//getXY(geom); |
30 |
return xsys[0][0].doubleValue(); |
31 |
} |
32 |
public void eval(BSFManager interpreter) throws BSFException { |
33 |
interpreter.declareBean("pointX",this,PointX.class); |
34 |
// interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double x(){return pointX.process(indexRow);};");
|
35 |
interpreter.exec(ExpresionFieldExtension.JYTHON,null,-1,-1,"def x():\n" + |
36 |
" return pointX.process(indexRow)");
|
37 |
} |
38 |
public String toString() { |
39 |
return "x"; |
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.POINT);
|
52 |
} |
53 |
public String getTooltip(){ |
54 |
return PluginServices.getText(this,"operator")+": "+addText("")+"\n"+getDescription(); |
55 |
} |
56 |
public String getDescription() { |
57 |
return PluginServices.getText(this, "returns") + ": " + |
58 |
PluginServices.getText(this, "numeric_value") + "\n" + |
59 |
PluginServices.getText(this, "description") + ": " + |
60 |
"Returns the X coordenate of point geometry of this row.";
|
61 |
} |
62 |
} |