svn-gvsig-desktop / trunk / extensions / extCAD / src / com / iver / cit / gvsig / project / documents / table / operators / PointY.java @ 10626
History | View | Annotate | Download (1.69 KB)
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.hardcode.gdbms.driver.exceptions.ReadDriverException; |
7 |
import com.iver.cit.gvsig.ExpresionFieldExtension; |
8 |
import com.iver.cit.gvsig.exceptions.expansionfile.ExpansionFileReadException; |
9 |
import com.iver.cit.gvsig.fmap.core.FShape; |
10 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
11 |
import com.iver.cit.gvsig.fmap.layers.ReadableVectorial; |
12 |
import com.iver.cit.gvsig.project.documents.table.GraphicOperator; |
13 |
import com.iver.cit.gvsig.project.documents.table.IOperator; |
14 |
import com.iver.cit.gvsig.project.documents.table.Index; |
15 |
/**
|
16 |
* @author Vicente Caballero Navarro
|
17 |
*/
|
18 |
public class PointY extends GraphicOperator{ |
19 |
|
20 |
public String addText(String s) { |
21 |
return s.concat(toString()+"()"); |
22 |
} |
23 |
public double process(Index index) throws ReadDriverException, ExpansionFileReadException { |
24 |
ReadableVectorial adapter = getLayer().getSource(); |
25 |
IGeometry geom=adapter.getShape(index.get()); |
26 |
Double[][] xsys=getXY(geom); |
27 |
return xsys[1][0].doubleValue(); |
28 |
} |
29 |
public void eval(BSFManager interpreter) throws BSFException { |
30 |
interpreter.declareBean("pointY",this,PointY.class); |
31 |
interpreter.eval(ExpresionFieldExtension.BEANSHELL,null,-1,-1,"double y(){return pointY.process(indexRow);};"); |
32 |
} |
33 |
public String toString() { |
34 |
return "y"; |
35 |
} |
36 |
public boolean isEnable() { |
37 |
if (getLayer()==null) |
38 |
return false; |
39 |
ReadableVectorial adapter = getLayer().getSource(); |
40 |
int type=FShape.POINT;
|
41 |
try {
|
42 |
type=adapter.getShapeType(); |
43 |
} catch (ReadDriverException e) {
|
44 |
// TODO Auto-generated catch block
|
45 |
e.printStackTrace(); |
46 |
} |
47 |
return (getType()==IOperator.NUMBER && type==FShape.POINT);
|
48 |
} |
49 |
} |