root / trunk / extensions / extAddEventTheme / src / com / iver / gvsig / addeventtheme / AddEventThemListener.java @ 5184
History | View | Annotate | Download (2.89 KB)
1 | 5115 | caballero | package com.iver.gvsig.addeventtheme; |
---|---|---|---|
2 | |||
3 | 5184 | caballero | import java.io.IOException; |
4 | |||
5 | 5115 | caballero | import com.hardcode.gdbms.engine.values.NumericValue; |
6 | import com.hardcode.gdbms.engine.values.Value; |
||
7 | import com.hardcode.gdbms.engine.values.ValueFactory; |
||
8 | import com.iver.cit.gvsig.fmap.core.DefaultFeature; |
||
9 | import com.iver.cit.gvsig.fmap.core.IGeometry; |
||
10 | import com.iver.cit.gvsig.fmap.core.ShapeFactory; |
||
11 | 5184 | caballero | import com.iver.cit.gvsig.fmap.drivers.DriverIOException; |
12 | 5115 | caballero | import com.iver.cit.gvsig.fmap.drivers.addevent.AddEventThemeDriver; |
13 | import com.iver.cit.gvsig.fmap.edition.AfterRowEditEvent; |
||
14 | import com.iver.cit.gvsig.fmap.edition.BeforeRowEditEvent; |
||
15 | import com.iver.cit.gvsig.fmap.edition.EditionEvent; |
||
16 | import com.iver.cit.gvsig.fmap.edition.IEditionListener; |
||
17 | import com.iver.cit.gvsig.fmap.edition.VectorialEditableAdapter; |
||
18 | import com.iver.cit.gvsig.fmap.layers.FLyrVect; |
||
19 | import com.iver.cit.gvsig.fmap.layers.LayerEvent; |
||
20 | import com.iver.cit.gvsig.fmap.layers.LayerListener; |
||
21 | |||
22 | public class AddEventThemListener implements LayerListener,IEditionListener{ |
||
23 | |||
24 | |||
25 | public void visibilityChanged(LayerEvent e) { |
||
26 | |||
27 | } |
||
28 | |||
29 | public void activationChanged(LayerEvent e) { |
||
30 | |||
31 | } |
||
32 | |||
33 | public void nameChanged(LayerEvent e) { |
||
34 | |||
35 | } |
||
36 | |||
37 | public void editionChanged(LayerEvent e) { |
||
38 | VectorialEditableAdapter vea = |
||
39 | (VectorialEditableAdapter)((FLyrVect)e.getSource()).getSource(); |
||
40 | vea.addEditionListener(this);
|
||
41 | } |
||
42 | |||
43 | public void processEvent(EditionEvent e) { |
||
44 | // TODO Auto-generated method stub
|
||
45 | |||
46 | } |
||
47 | |||
48 | public void beforeRowEditEvent(BeforeRowEditEvent e) { |
||
49 | 5184 | caballero | if (EditionEvent.CHANGE_TYPE_MODIFY == e.getChangeType()){
|
50 | VectorialEditableAdapter vea=(VectorialEditableAdapter)e.getSource(); |
||
51 | int numRow=(int)e.getNumRow(); |
||
52 | DefaultFeature df=null;
|
||
53 | try {
|
||
54 | df = (DefaultFeature)vea.getRow(numRow).getLinkedRow(); |
||
55 | } catch (DriverIOException e1) {
|
||
56 | e1.printStackTrace(); |
||
57 | } catch (IOException e1) { |
||
58 | e1.printStackTrace(); |
||
59 | } |
||
60 | if (EditionEvent.GRAPHIC == e.getSourceType()) {
|
||
61 | double[] d = new double[4]; |
||
62 | IGeometry g = ((DefaultFeature) df).getGeometry(); |
||
63 | g.getPathIterator(null).currentSegment(d);
|
||
64 | int[] xy = ((AddEventThemeDriver) vea.getDriver()).getFieldsIndex(); |
||
65 | Value[] values = df.getAttributes();
|
||
66 | values[xy[0]] = ValueFactory.createValue(d[0]); |
||
67 | values[xy[1]] = ValueFactory.createValue(d[1]); |
||
68 | df = new DefaultFeature(g, values);
|
||
69 | } else if (EditionEvent.ALPHANUMERIC == e.getSourceType()) { |
||
70 | IGeometry g = ((DefaultFeature) df).getGeometry(); |
||
71 | int[] xy = ((AddEventThemeDriver) vea.getDriver()).getFieldsIndex(); |
||
72 | NumericValue x = (NumericValue) ((DefaultFeature) df) |
||
73 | .getAttribute(xy[0]);
|
||
74 | NumericValue y = (NumericValue) ((DefaultFeature) df) |
||
75 | .getAttribute(xy[1]);
|
||
76 | g = ShapeFactory |
||
77 | .createPoint2D(x.doubleValue(), y.doubleValue()); |
||
78 | df = new DefaultFeature(g, ((DefaultFeature) df)
|
||
79 | .getAttributes()); |
||
80 | } |
||
81 | 5115 | caballero | } |
82 | } |
||
83 | |||
84 | public void afterRowEditEvent(AfterRowEditEvent e) { |
||
85 | // TODO Auto-generated method stub
|
||
86 | |||
87 | } |
||
88 | |||
89 | |||
90 | |||
91 | } |