Statistics
| Revision:

root / trunk / extensions / extGeoreferencing / src / com / iver / cit / gvsig / gui / Panels / TablePointsPanel.java @ 3049

History | View | Annotate | Download (8.04 KB)

1
package com.iver.cit.gvsig.gui.Panels;
2

    
3
import java.awt.BorderLayout;
4
import java.awt.Dimension;
5
import java.awt.FlowLayout;
6
import java.awt.GridBagConstraints;
7
import java.awt.GridBagLayout;
8
import java.awt.GridLayout;
9
import java.awt.event.ActionEvent;
10
import java.awt.event.ActionListener;
11
import java.awt.event.MouseAdapter;
12
import java.awt.event.MouseEvent;
13

    
14
import javax.swing.JLabel;
15
import javax.swing.JPanel;
16
import javax.swing.JScrollPane;
17
import javax.swing.JTable;
18
import javax.swing.table.DefaultTableModel;
19

    
20
import com.iver.cit.gvsig.gui.Dialogs.GeoreferencingDialog;
21
public class TablePointsPanel extends JPanel implements ActionListener{
22

    
23
        private GeoreferencingDialog parent = null;
24
        
25
        private JPanel pTable = null;
26
        private JPanel pPointSelection = null;
27
        private TableControlerPanel tableControlerPanel = null;
28
        private JLabel jLabel = null;
29
        
30
        private int widthGeneralPanel = 380, heightGeneralPanel = 160;
31
        private int widthSupPanel = 370, heightSupPanel = 125;
32
        private int widthInfPanel = 375, heightInfPanel = 27;
33
        private int widthTable = 375, heightTable = 110;
34
        
35
        final static String[] columnNames = {"N?",
36
                "X",
37
                "Y",
38
                "X'",
39
                "Y'",
40
                "Error X", 
41
                "Error Y", 
42
                "RMS"};
43
        
44
        private PointTable table = null;
45
        
46
        
47
        
48
        /**
49
         * This is the default constructor
50
         */
51
        public TablePointsPanel(GeoreferencingDialog p) {
52
                super();
53
                this.parent = p;
54
                initialize();
55
        }
56

    
57
        /**
58
         * This method initializes this
59
         * 
60
         * @return void
61
         */
62
        private void initialize() {
63
        GridBagConstraints gridBagConstraints5 = new GridBagConstraints();
64
        GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
65
        GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
66
        this.setLayout(new GridBagLayout());
67
        this.setPreferredSize(new java.awt.Dimension(widthGeneralPanel, heightGeneralPanel));
68
        this.setSize(new java.awt.Dimension(widthGeneralPanel, heightGeneralPanel));
69
        this.setLocation(new java.awt.Point(0,0));
70
        gridBagConstraints1.gridx = 0;
71
        gridBagConstraints1.gridy = 0;
72
        gridBagConstraints1.insets = new java.awt.Insets(2,0,2,0);
73
        gridBagConstraints2.gridx = 0;
74
        gridBagConstraints2.gridy = 1;
75
        gridBagConstraints2.insets = new java.awt.Insets(5,0,5,0);
76
        gridBagConstraints2.anchor = java.awt.GridBagConstraints.NORTH;
77
        gridBagConstraints5.gridx = 0;
78
        gridBagConstraints5.gridy = 1;
79
        gridBagConstraints5.insets = new java.awt.Insets(1,0,1,0);
80
        this.add(getPTable(), gridBagConstraints1);
81
        this.add(getPPointSelection(), gridBagConstraints5);
82
        }
83

    
84
        /**
85
         * This method initializes jPanel        
86
         *         
87
         * @return javax.swing.JPanel        
88
         */    
89
        private JPanel getPTable() {
90
                if (pTable == null) {
91
                        BorderLayout borderLayout4 = new BorderLayout();
92
                        pTable = new JPanel();
93
                        pTable.setLayout(borderLayout4);
94
                        pTable.setSize(new java.awt.Dimension(widthSupPanel,heightSupPanel));
95
                        pTable.setPreferredSize(new java.awt.Dimension(widthSupPanel,heightSupPanel));
96
                        pTable.add(getJTable(), BorderLayout.CENTER);
97
                }
98
                return pTable;
99
        }
100
        
101
        /**
102
         * This method initializes jPanel1        
103
         *         
104
         * @return javax.swing.JPanel        
105
         */    
106
        private JPanel getPPointSelection() {
107
                if (pPointSelection == null) {
108
                        pPointSelection = new JPanel();
109
                        pPointSelection.setPreferredSize(new java.awt.Dimension(widthInfPanel, heightInfPanel));
110
                        if(this.tableControlerPanel == null){
111
                                FlowLayout flowLayout1 = new FlowLayout();
112
                                FlowLayout flowLayout = new FlowLayout();
113
                                jLabel = new JLabel();
114
                                FlowLayout flowLayout6 = new FlowLayout();
115
                                pPointSelection.setLayout(flowLayout6);
116
                                tableControlerPanel = new TableControlerPanel();
117
                                tableControlerPanel.setLayout(flowLayout1);
118
                                flowLayout1.setVgap(1);
119
                                flowLayout1.setHgap(0);
120
                                jLabel.setVerticalAlignment(javax.swing.SwingConstants.CENTER);
121
                                flowLayout6.setAlignment(java.awt.FlowLayout.LEFT);
122
                                flowLayout6.setHgap(3);
123
                                flowLayout6.setVgap(1);
124
                                pPointSelection.add(tableControlerPanel, null);
125
                                pPointSelection.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray,1));
126
                                tableControlerPanel.setLNumberOfPoints(jLabel);
127
                                tableControlerPanel.getBFirst().addActionListener(this);
128
                                tableControlerPanel.getBLast().addActionListener(this);
129
                                tableControlerPanel.getBNext().addActionListener(this);
130
                                tableControlerPanel.getBPrev().addActionListener(this);
131
                                tableControlerPanel.getBNew().addActionListener(this);
132
                                tableControlerPanel.getCPoint().addActionListener(this);
133
                        }
134
                        //pPointSelection.add(getPTableControl(), null);
135
                }
136
                return pPointSelection;
137
        }
138
        
139
        /* (non-Javadoc)
140
         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
141
         */
142
        public void actionPerformed(ActionEvent arg0) {
143
                // TODO Auto-generated method stub
144

    
145
        }
146
        /**
147
         * This method initializes jTable        
148
         *         
149
         * @return javax.swing.JTable        
150
         */    
151
        public PointTable getJTable() {
152
                if (table == null) {
153
                        table = new PointTable(null);
154
                        table.setSize(new java.awt.Dimension(widthTable, heightTable));
155
                        table.setPreferredSize(new java.awt.Dimension(widthTable, heightTable));
156
                }
157
                return table;
158
        }
159
        
160
        /**
161
         * Asigna una tabla
162
         * @param table
163
         */
164
        public void setTable(PointTable table){
165
                this.table = table;
166
                table.setSize(new java.awt.Dimension(widthTable, heightTable));
167
                table.setPreferredSize(new java.awt.Dimension(widthTable, heightTable));
168
        }
169
        
170
        /**
171
         * Calculo del nuevo tama?o a partir de un frame redimensionado
172
         * @param w Ancho del frame
173
         * @param h Alto del frame
174
         */
175
        public void newFrameSize(int w, int h){
176
                int initWFrame = 385, initHFrame = 185;
177
                int initWGen = 380, initWSup = 370, initWInf = 375 , initWTable = 375;
178
                
179
                widthGeneralPanel = (int)((initWGen * w)/initWFrame);
180
                widthSupPanel = (int)((initWSup * w)/initWFrame);
181
                widthInfPanel = (int)((initWInf * w)/initWFrame);
182
                widthTable = (int)((initWTable * w)/initWFrame);
183
                
184
        this.resize(new java.awt.Dimension(widthGeneralPanel, heightGeneralPanel));
185
        getPTable().resize(new java.awt.Dimension(widthSupPanel,heightSupPanel));
186
                getPPointSelection().resize(new java.awt.Dimension(widthInfPanel, heightInfPanel));
187
                getJTable().resize(new java.awt.Dimension(widthTable, heightTable));
188
                
189
        }
190
        
191
        public class PointTable extends JPanel {
192
           
193
                private JTable table = null;
194
                private JScrollPane scrollPane = null;
195
                
196
                private TableModelPoint tabModel = null;
197
                
198
                public TableModelPoint getTableModel(){
199
                        return tabModel;
200
                }
201
                
202
            public PointTable(Object[][] d) {
203
                super(new GridLayout(1,0));
204
               
205
                tabModel = new TableModelPoint();
206
                table = new JTable(tabModel);
207
                table.setPreferredScrollableViewportSize(new Dimension(500, 70));
208

    
209
               
210
                table.addMouseListener(new MouseAdapter() {
211
                   public void mouseClicked(MouseEvent e) {
212
                           
213
                   }
214
                });
215

    
216
                scrollPane = new JScrollPane(table);
217
                add(scrollPane);
218
            }
219

    
220
            /**
221
             * TableModel del JTable que contiene los puntos con sus errores
222
             * @author Nacho Brodin (brodin_ign@gva.es)
223
             *
224
             */
225
            public class TableModelPoint extends DefaultTableModel {
226
                     
227
                public TableModelPoint(){
228
                        super(new Object[0][8], columnNames);
229
                }
230
                
231
                public int getColumnCount() {
232
                    return columnNames.length;
233
                }
234

    
235
                public String getColumnName(int col) {
236
                    return columnNames[col];
237
                }
238

    
239
                public Class getColumnClass(int c) {
240
                   return String.class;
241
                }
242

    
243
                public void addNew() {
244
                    super.addRow(new Object[] {"", "", "", "", "", "", "", ""});
245
                }
246
                
247
                public void setValueAt(Object value, int row, int col) { 
248
                        super.setValueAt(value, row, col);
249
                }
250
                
251
                /**
252
                 * Devuelve true si la celda es editable. Solo son editables
253
                 * las celdas de los puntos.
254
                 */
255
                public boolean isCellEditable(int row, int col){
256
                        if(col >=1 && col <=4)
257
                                return true;
258
                        return false;
259
                }
260

    
261
         
262
            }
263
                /**
264
                 * @return Returns the table.
265
                 */
266
                public JTable getTable() {
267
                        return table;
268
                }
269
        }
270
}