root / trunk / extensions / extGeoreferencing / src / com / iver / cit / gvsig / gui / Panels / DataPointsTabPanel.java @ 3195
History | View | Annotate | Download (6.61 KB)
1 | 3012 | nacho | package com.iver.cit.gvsig.gui.Panels; |
---|---|---|---|
2 | |||
3 | 3064 | nacho | import java.awt.Component; |
4 | 3133 | nacho | import java.awt.Toolkit; |
5 | import java.awt.event.MouseEvent; |
||
6 | 3064 | nacho | import java.awt.geom.Point2D; |
7 | |||
8 | import javax.swing.JOptionPane; |
||
9 | 3014 | nacho | import javax.swing.JPanel; |
10 | 3012 | nacho | import javax.swing.JTabbedPane; |
11 | 3040 | nacho | import javax.swing.event.ChangeEvent; |
12 | import javax.swing.event.ChangeListener; |
||
13 | 3012 | nacho | |
14 | 3040 | nacho | import com.iver.andami.PluginServices; |
15 | import com.iver.cit.gvsig.fmap.layers.FLayer; |
||
16 | 3064 | nacho | import com.iver.cit.gvsig.fmap.layers.FLyrGeoRaster; |
17 | 3040 | nacho | import com.iver.cit.gvsig.gui.View; |
18 | 3014 | nacho | import com.iver.cit.gvsig.gui.Dialogs.GeoreferencingDialog; |
19 | 3012 | nacho | |
20 | 3040 | nacho | public class DataPointsTabPanel extends JPanel implements ChangeListener{ |
21 | |||
22 | 3014 | nacho | private GeoreferencingDialog parent = null; |
23 | 3012 | nacho | private SelectPointsPanel selectPointsPanel = null; |
24 | private TablePointsPanel tablePointsPanel = null; |
||
25 | 3014 | nacho | private JTabbedPane tbPoints = null; |
26 | 3040 | nacho | private int widthTab = 380, heightTab = 185; |
27 | 3012 | nacho | |
28 | /**
|
||
29 | * This is the default constructor
|
||
30 | */
|
||
31 | 3014 | nacho | public DataPointsTabPanel(GeoreferencingDialog p) {
|
32 | 3012 | nacho | super();
|
33 | 3014 | nacho | this.parent = p;
|
34 | 3012 | nacho | initialize(); |
35 | } |
||
36 | |||
37 | /**
|
||
38 | * This method initializes this
|
||
39 | *
|
||
40 | * @return void
|
||
41 | */
|
||
42 | private void initialize() { |
||
43 | 3040 | nacho | this.setPreferredSize(new java.awt.Dimension(widthTab, heightTab)); |
44 | this.setSize(new java.awt.Dimension(widthTab, heightTab)); |
||
45 | 3012 | nacho | this.setLocation(new java.awt.Point(0,0)); |
46 | 3014 | nacho | this.add(getTbPoints(), null); |
47 | 3012 | nacho | } |
48 | |||
49 | /**
|
||
50 | * @return Returns the selectPointsPanel.
|
||
51 | */
|
||
52 | 3014 | nacho | public TablePointsPanel getTablePointsPanel() {
|
53 | if(tablePointsPanel == null){ |
||
54 | tablePointsPanel = new TablePointsPanel(parent);
|
||
55 | } |
||
56 | return tablePointsPanel;
|
||
57 | 3012 | nacho | } |
58 | |||
59 | /**
|
||
60 | 3014 | nacho | * @return Returns the selectPointsPanel.
|
61 | 3012 | nacho | */
|
62 | 3014 | nacho | public SelectPointsPanel getSelectPointsPanel() {
|
63 | if(selectPointsPanel == null){ |
||
64 | selectPointsPanel = new SelectPointsPanel(parent);
|
||
65 | } |
||
66 | return selectPointsPanel;
|
||
67 | 3012 | nacho | } |
68 | 3014 | nacho | |
69 | 3012 | nacho | /**
|
70 | 3014 | nacho | * This method initializes jTabbedPane
|
71 | *
|
||
72 | * @return javax.swing.JTabbedPane
|
||
73 | 3012 | nacho | */
|
74 | 3064 | nacho | public JTabbedPane getTbPoints() { |
75 | 3014 | nacho | if (tbPoints == null) { |
76 | tbPoints = new JTabbedPane(); |
||
77 | 3040 | nacho | tbPoints.setSize(widthTab, heightTab); |
78 | tbPoints.setPreferredSize(new java.awt.Dimension(widthTab, heightTab));
|
||
79 | 3014 | nacho | tbPoints.addTab("georef", this.getSelectPointsPanel()); |
80 | tbPoints.addTab("table", this.getTablePointsPanel()); |
||
81 | 3040 | nacho | tbPoints.addChangeListener(this);
|
82 | 3014 | nacho | } |
83 | return tbPoints;
|
||
84 | 3012 | nacho | } |
85 | 3014 | nacho | |
86 | 3040 | nacho | /**
|
87 | 3064 | nacho | * Cuando cambiamos de tab controlamos lo siguiente:
|
88 | * <UL>
|
||
89 | * <LI>Comprobamos que los TextField del selector de puntos no esten en
|
||
90 | * blanco</LI>
|
||
91 | * <LI>Controlamos que la ventana sea redimensionable solo cuando
|
||
92 | * est? en el tab de tabla</LI>
|
||
93 | * <LI>Actualizamos los controles de la ventana a la que vamos con lo
|
||
94 | * que se seleccion? en la ventana de la que venimos</LI>
|
||
95 | * </UL>
|
||
96 | 3040 | nacho | */
|
97 | public void stateChanged(ChangeEvent ev) { |
||
98 | 3129 | nacho | |
99 | 3040 | nacho | if (((JTabbedPane)ev.getSource()).getSelectedIndex() == 0){ |
100 | parent.getFrame().setResizable(false);
|
||
101 | 3064 | nacho | if(getTablePointsPanel().getTableControlerPanel().getSelectedIndex() != -1) |
102 | getSelectPointsPanel().updateComboPoint( |
||
103 | getTablePointsPanel().getTableControlerPanel().getSelectedIndex() |
||
104 | ); |
||
105 | 3119 | nacho | //Ponemos los paneles en su tama?o original
|
106 | parent.resetSize(); |
||
107 | 3040 | nacho | } |
108 | |||
109 | if (((JTabbedPane)ev.getSource()).getSelectedIndex() == 1){ |
||
110 | 3129 | nacho | |
111 | //Si la ventana ha sido redimensionada ponemos la dimensi?n temporal
|
||
112 | |||
113 | 3133 | nacho | if(parent.getTmpWidth() > parent.getNormalWidth()){
|
114 | |||
115 | if(parent.isEnlarge()){
|
||
116 | parent.newFrameSize(parent.getTmpWidth(), parent.getEnlargeHeight()); |
||
117 | parent.getFrame().setSize(parent.getTmpWidth(), parent.getEnlargeHeight() + 10);
|
||
118 | }else{
|
||
119 | parent.newFrameSize(parent.getTmpWidth(), parent.getNormalHeight()); |
||
120 | parent.getFrame().setSize(parent.getTmpWidth(), parent.getNormalHeight() + 10);
|
||
121 | } |
||
122 | 3129 | nacho | } |
123 | |||
124 | 3064 | nacho | try{
|
125 | getSelectPointsPanel().checkInfoPointText(); |
||
126 | }catch(NoSuchFieldException exc){ |
||
127 | //Si no se han salvado los valores de un punto cuando se activa
|
||
128 | //el cambio de tab las coordenadas a las que no se les ha dado
|
||
129 | //valor se pondr?n a 0 y se guardar?n.
|
||
130 | double tx = 0D, ty = 0D, lon = 0D, lat = 0D; |
||
131 | try{
|
||
132 | DataPointPanel dp = getSelectPointsPanel().getDataPointPanel(); |
||
133 | if(dp.getTX() != null && !dp.getTX().equals("")) |
||
134 | tx = Double.valueOf(getSelectPointsPanel().getDataPointPanel().getTX().getText()).doubleValue();
|
||
135 | if(dp.getTY() != null && !dp.getTY().equals("")) |
||
136 | ty = Double.valueOf(getSelectPointsPanel().getDataPointPanel().getTY().getText()).doubleValue();
|
||
137 | if(dp.getLongitud() != null && !dp.getLongitud().equals("")) |
||
138 | lon = Double.valueOf(getSelectPointsPanel().getDataPointPanel().getLongitud().getText()).doubleValue();
|
||
139 | if(dp.getLatitud() != null && !dp.getLatitud().equals("")) |
||
140 | lat = Double.valueOf(getSelectPointsPanel().getDataPointPanel().getLatitud().getText()).doubleValue();
|
||
141 | }catch(NumberFormatException ex){ |
||
142 | |||
143 | } |
||
144 | Point2D pixel = new Point2D.Double(); |
||
145 | pixel.setLocation(tx, ty); |
||
146 | Point2D map = new Point2D.Double(); |
||
147 | map.setLocation(lon, lat); |
||
148 | |||
149 | 3102 | nacho | View theView = null; |
150 | try{
|
||
151 | theView = (View)PluginServices.getMDIManager().getActiveView();
|
||
152 | }catch(ClassCastException exce){ |
||
153 | return;
|
||
154 | } |
||
155 | 3192 | nacho | |
156 | if(parent.getLyrGeoRaster() != null){ |
||
157 | 3064 | nacho | try{
|
158 | 3192 | nacho | parent.getLyrGeoRaster().updateData(getSelectPointsPanel().getTableControlerPanel().getCPoint().getSelectedIndex() + 1,
|
159 | 3064 | nacho | pixel, |
160 | map, |
||
161 | parent, |
||
162 | 3195 | nacho | theView); |
163 | 3064 | nacho | }catch(ArrayIndexOutOfBoundsException ex){ |
164 | //Si da una excepci?n de este tipo es que no hay cargado nin?n punto
|
||
165 | //por lo que no hacemos nada.
|
||
166 | 3102 | nacho | }catch(ClassCastException ex){ |
167 | //Si da una excepci?n de este tipo lo m?s probable es que no haya una
|
||
168 | //vista activa y no se pueda crear una capa de puntos. Tampoco se hace nada.
|
||
169 | 3064 | nacho | } |
170 | }else{
|
||
171 | JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(), |
||
172 | PluginServices.getText(this, "error_capa_puntos")); |
||
173 | } |
||
174 | } |
||
175 | 3142 | nacho | |
176 | 3064 | nacho | if(getSelectPointsPanel().getTableControlerPanel().getSelectedIndex() != -1) |
177 | getTablePointsPanel().updateComboPoint( |
||
178 | getSelectPointsPanel().getTableControlerPanel().getSelectedIndex() |
||
179 | ); |
||
180 | 3142 | nacho | |
181 | parent.getFrame().setResizable(true);
|
||
182 | 3040 | nacho | } |
183 | |||
184 | } |
||
185 | 3012 | nacho | |
186 | 3040 | nacho | /**
|
187 | * Calculo del nuevo tama?o a partir de un frame redimensionado
|
||
188 | * @param w Ancho del frame
|
||
189 | * @param h Alto del frame
|
||
190 | */
|
||
191 | public void newFrameSize(int w, int h){ |
||
192 | 3119 | nacho | int newWidth = w;
|
193 | 3040 | nacho | |
194 | 3119 | nacho | this.setSize(new java.awt.Dimension(newWidth, heightTab)); |
195 | this.setPreferredSize(new java.awt.Dimension(newWidth, heightTab)); |
||
196 | this.getTbPoints().setSize(new java.awt.Dimension(newWidth, heightTab)); |
||
197 | this.getTbPoints().setPreferredSize(new java.awt.Dimension(newWidth, heightTab)); |
||
198 | this.getTablePointsPanel().newFrameSize(newWidth, h);
|
||
199 | 3040 | nacho | } |
200 | |||
201 | } |