Statistics
| Revision:

root / trunk / libraries / libUIComponent / src / org / gvsig / gui / beans / filterPanel / tableFilterQueryPanel / TableFilterQueryJPanel.java @ 13655

History | View | Annotate | Download (13.5 KB)

1
package org.gvsig.gui.beans.filterPanel.tableFilterQueryPanel;
2

    
3
import java.awt.Dimension;
4
import java.awt.GridBagConstraints;
5
import java.awt.GridBagLayout;
6
import java.io.Serializable;
7

    
8
import javax.swing.BorderFactory;
9
import javax.swing.DefaultListModel;
10
import javax.swing.JPanel;
11
import javax.swing.JScrollPane;
12
import javax.swing.tree.DefaultMutableTreeNode;
13

    
14
import org.gvsig.gui.beans.Messages;
15
import org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel;
16

    
17

    
18
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
19
 *
20
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
21
 *
22
 * This program is free software; you can redistribute it and/or
23
 * modify it under the terms of the GNU General Public License
24
 * as published by the Free Software Foundation; either version 2
25
 * of the License, or (at your option) any later version.
26
 *
27
 * This program is distributed in the hope that it will be useful,
28
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
29
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
30
 * GNU General Public License for more details.
31
 *
32
 * You should have received a copy of the GNU General Public License
33
 * along with this program; if not, write to the Free Software
34
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
35
 *
36
 * For more information, contact:
37
 *
38
 *  Generalitat Valenciana
39
 *   Conselleria d'Infraestructures i Transport
40
 *   Av. Blasco Ib??ez, 50
41
 *   46010 VALENCIA
42
 *   SPAIN
43
 *
44
 *      +34 963862235
45
 *   gvsig@gva.es
46
 *      www.gvsig.gva.es
47
 *
48
 *    or
49
 *
50
 *   IVER T.I. S.A
51
 *   Salamanca 50
52
 *   46005 Valencia
53
 *   Spain
54
 *
55
 *   +34 963163400
56
 *   dac@iver.es
57
 */
58

    
59
/**
60
 * This class is the graphical interface of the "FilterDialog" which was made by Fernando and is in 'appgvSIG' project.
61
 * It's supposed that other classes will extend from this and will add the logic as is in the "FilterDialog" class.
62
 *
63
 * @author Pablo Piqueras Bartolom? (p_queras@hotmail.com)
64
 */
65
public class TableFilterQueryJPanel extends AbstractFilterQueryJPanel implements Serializable {        
66
  private static final long serialVersionUID = 5248037057106760613L;
67
        protected javax.swing.JPanel buttonsSetJPanel = null;
68
        protected javax.swing.JButton btnNewSet = null;
69
        protected javax.swing.JButton btnAddToCurrentSet = null;
70
        protected javax.swing.JButton btnFromSet = null;
71
        protected int defaultButtonsSetPanelWidth = 190; 
72
        protected int defaultButtonsSetPanelHeight = 100;
73
        protected int filterJScrollPaneHeight = defaultBottomJPanelHeight - 10;
74
        protected int filterJScrollPanelWidth = defaultBottomJPanelWidth - 10 - defaultButtonsSetPanelWidth;
75
        protected int setButtonWidth = defaultButtonsSetPanelWidth - 5;
76
        protected int setButtonHeight = 25;
77

    
78
        protected DefaultMutableTreeNode jtreeRoot;
79
        
80
        /**
81
         * @see AbstractFilterQueryJPanel#AbstractFilterQueryJPanel()
82
         */
83
        public TableFilterQueryJPanel() {
84
                super();
85
                this.initialize();
86
        }
87

    
88
        /**
89
         * @see AbstractFilterQueryJPanel#AbstractFilterQueryJPanel(String)
90
         */
91
        public TableFilterQueryJPanel(String _title) {
92
                super(_title);
93
                this.initialize();
94
        }
95

    
96
        /*
97
         *  (non-Javadoc)
98
         * @see org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel#initialize()
99
         */
100
        protected void initialize() {
101
                super.initialize();
102
                this.setBorder(BorderFactory.createTitledBorder(Messages.getText("filter_of_Table")));
103
                jtreeRoot = new DefaultMutableTreeNode(fieldsJTree.getModel().getRoot());
104
        }
105
        
106
        /*
107
         *  (non-Javadoc)
108
         * @see org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel#getFieldsJPanel()
109
         */
110
        protected JPanel getFieldsJPanel() {
111
                if (fieldsJPanel == null) {
112
                        fieldsJPanel = new javax.swing.JPanel();
113
                        fieldsJPanel.setPreferredSize(new java.awt.Dimension(fieldsJPanelWidth, fieldsJPanelHeight));
114
                        fieldsJPanel.setLayout(new GridBagLayout());
115
                        GridBagConstraints gridBagConstraints = new GridBagConstraints();
116
                        gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
117
                        gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER;
118
                        gridBagConstraints.anchor = GridBagConstraints.NORTH;                        
119
                        fieldsJPanel.add(getFieldsJLabel(), gridBagConstraints);
120
                        gridBagConstraints.anchor = GridBagConstraints.SOUTH;
121
                        fieldsJPanel.add(getFieldsJScrollPane(), gridBagConstraints);                        
122
                }
123

    
124
                return fieldsJPanel;
125
        }
126
        
127
        /**
128
         * @see AbstractFilterQueryJPanel#getValuesJList()
129
         */
130
        protected javax.swing.JList getValuesJList() {
131
                if (valuesJList == null) {
132
                        valuesJList = new javax.swing.JList(new DefaultListModel());
133
                        valuesListModel = new DefaultListModel();
134
                        valuesJList.setModel(valuesListModel);
135
                        valuesJList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
136
                        
137
//                        valuesJList.addMouseListener(new MouseAdapter() {
138
//                                /*
139
//                                 *  (non-Javadoc)
140
//                                 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
141
//                                 */
142
//                                public void mouseClicked(MouseEvent e) {
143
//                                        if (e.getClickCount() == 2) {
144
//                                                int row = fieldsJTree.getRowForLocation(e.getX(), e.getY());
145
//        
146
//                                                if (row > -1) {
147
//                                                        putSymbol(((DefaultListModel)valuesJList.getModel()).get(row).toString());
148
//                                                }
149
//                                        }
150
//                                }
151
//                        });
152
                }
153

    
154
                return valuesJList;
155
        }
156
        
157
        /*
158
         * (non-Javadoc)
159
         * @see org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel#getFieldsJScrollPane()
160
         */
161
        protected javax.swing.JScrollPane getFieldsJScrollPane() {
162
                if (fieldsJScrollPane == null) {
163
                        fieldsJScrollPane = new javax.swing.JScrollPane();
164
                        fieldsJScrollPane.setPreferredSize(new java.awt.Dimension(fieldsAndValuesJScrollPaneWidth, fieldsAndValuesJScrollPaneHeight));
165
                        fieldsJScrollPane.setViewportView(getFieldsJTree());
166
                }
167

    
168
                return fieldsJScrollPane;
169
        }
170

    
171
        /*
172
         *  (non-Javadoc)
173
         * @see org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel#getValuesJPanel()
174
         */
175
        protected JPanel getValuesJPanel() {
176
                if (valuesJPanel == null) {
177
                        valuesJPanel = new javax.swing.JPanel();
178
                        valuesJPanel.setPreferredSize(new java.awt.Dimension(valuesJPanelWidth, valuesJPanelHeight));
179
                        valuesJPanel.setLayout(new GridBagLayout());
180
                        GridBagConstraints gridBagConstraints = new GridBagConstraints();
181
                        gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
182
                        gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER;
183
                        gridBagConstraints.anchor = GridBagConstraints.NORTH;
184
                        valuesJPanel.add(getValuesJLabel(), gridBagConstraints);
185
                        gridBagConstraints.anchor = GridBagConstraints.SOUTH;
186
                        valuesJPanel.add(getValuesJScrollPane(), gridBagConstraints);
187
                }
188

    
189
                return valuesJPanel;
190
        }
191
        
192
        /*
193
         * (non-Javadoc)
194
         * @see org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel#getValuesJScrollPane()
195
         */
196
        protected javax.swing.JScrollPane getValuesJScrollPane() {
197
                if (valuesJScrollPane == null) {
198
                        valuesJScrollPane = new javax.swing.JScrollPane();
199
                        valuesJScrollPane.setPreferredSize(new Dimension(fieldsAndValuesJScrollPaneWidth, fieldsAndValuesJScrollPaneHeight));
200
                        valuesJScrollPane.setViewportView(getValuesJList());
201
                }
202

    
203
                return valuesJScrollPane;
204
        }
205

    
206
        /*
207
         *  (non-Javadoc)
208
         * @see org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel#getFilterJScrollPane()
209
         */
210
        protected JScrollPane getFilterJScrollPane() {
211
                if (filterJScrollPane == null) {
212
                        filterJScrollPane = new javax.swing.JScrollPane();
213
                        filterJScrollPane.setPreferredSize(new java.awt.Dimension(filterJScrollPanelWidth, filterJScrollPaneHeight));
214
                        filterJScrollPane.setViewportView(getTxtExpression());
215
                        filterJScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
216
                }
217

    
218
                return filterJScrollPane;
219
        }        
220
        
221
        /**
222
         * This method initializes buttonsSetJPanel
223
         *
224
         * @return javax.swing.JPanel
225
         */
226
        protected javax.swing.JPanel getButtonsSetJPanel() {
227
                if (buttonsSetJPanel == null) {
228
                        buttonsSetJPanel = new javax.swing.JPanel();
229
                        buttonsSetJPanel.setPreferredSize(new java.awt.Dimension(defaultButtonsSetPanelWidth, defaultButtonsSetPanelHeight));
230
                        buttonsSetJPanel.add(getBtnNewSet(), null);
231
                        buttonsSetJPanel.add(getBtnAddToCurrentSet(), null);
232
                        buttonsSetJPanel.add(getBtnFromSet(), null);                        
233
                }
234

    
235
                return buttonsSetJPanel;
236
        }
237

    
238
        /**
239
         * This method initializes btnNewSet
240
         *
241
         * @return javax.swing.JButton
242
         */
243
        protected javax.swing.JButton getBtnNewSet() {
244
                if (btnNewSet == null) {
245
                        btnNewSet = new javax.swing.JButton();
246
                        btnNewSet.setPreferredSize(new Dimension(this.setButtonWidth, this.setButtonHeight));
247
                        btnNewSet.setText(Messages.getText("Nuevo_conjunto"));
248
//                        btnNewSet.setMargin(new java.awt.Insets(2, 2, 2, 2));
249
                }
250

    
251
                return btnNewSet;
252
        }
253

    
254
        /**
255
         * This method initializes btnAddToCurrentSet
256
         *
257
         * @return javax.swing.JButton
258
         */
259
        protected javax.swing.JButton getBtnAddToCurrentSet() {
260
                if (btnAddToCurrentSet == null) {
261
                        btnAddToCurrentSet = new javax.swing.JButton();
262
                        btnAddToCurrentSet.setPreferredSize(new Dimension(this.setButtonWidth, this.setButtonHeight));
263
                        btnAddToCurrentSet.setText(Messages.getText("Anadir_al_conjunto"));
264
//                        btnAddToCurrentSet.setMargin(new java.awt.Insets(2, 2, 2, 2));
265
                }
266

    
267
                return btnAddToCurrentSet;
268
        }
269

    
270
        /**
271
         * This method initializes btnFromSet
272
         *
273
         * @return javax.swing.JButton
274
         */
275
        protected javax.swing.JButton getBtnFromSet() {
276
                if (btnFromSet == null) {
277
                        btnFromSet = new javax.swing.JButton();
278
                        btnFromSet.setPreferredSize(new Dimension(this.setButtonWidth, this.setButtonHeight));
279
                        btnFromSet.setText(Messages.getText(
280
                                        "Seleccionar_del_conjunto"));
281
//                        btnFromSet.setMargin(new java.awt.Insets(2, 2, 2, 2));
282
                }
283

    
284
                return btnFromSet;
285
        }
286
        
287
        /*
288
         * (non-Javadoc)
289
         * @see org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel#getTxtExpression()
290
         */
291
        protected javax.swing.JTextArea getTxtExpression() {
292
                if (txtExpression == null) {
293
                        txtExpression = new javax.swing.JTextArea();
294
                        txtExpression.setLineWrap(true);
295
                        txtExpression.setToolTipText(Messages.getText("write_here_a_filter_expression"));
296
                }
297

    
298
                return txtExpression;
299
        }
300

    
301
        /*
302
         *  (non-Javadoc)
303
         * @see org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel#getTopJPanel()
304
         */
305
        protected JPanel getTopJPanel() {
306
                if (topJPanel == null) {
307
                        topJPanel = new JPanel();
308

    
309
                    topJPanel.setPreferredSize(new Dimension(defaultTopJPanelWidth, defaultTopJPanelHeight));
310
                    topJPanel.setLayout(new GridBagLayout());
311
                    
312
                    GridBagConstraints gridBagConstraints = new GridBagConstraints();
313
                    gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;            
314
                    
315
                    gridBagConstraints.anchor = GridBagConstraints.WEST;
316
                    topJPanel.add(getFieldsJPanel(), gridBagConstraints);
317
                    
318
                        gridBagConstraints.anchor = GridBagConstraints.CENTER;
319
                        topJPanel.add(getFilterButtonsJPanel(), gridBagConstraints);
320
                        
321
                        gridBagConstraints.anchor = GridBagConstraints.EAST;
322
                        topJPanel.add(getValuesJPanel(), gridBagConstraints);
323
                }
324
                
325
                return topJPanel;
326
        }
327

    
328
        /*
329
         *  (non-Javadoc)
330
         * @see org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel#getBottomJPanel()
331
         */
332
        protected JPanel getBottomJPanel() {
333
                if (bottomJPanel == null) {
334
                        bottomJPanel = new JPanel();
335
                        bottomJPanel.setPreferredSize(new Dimension(defaultBottomJPanelWidth, defaultBottomJPanelHeight));
336
                        bottomJPanel.add(getFilterJScrollPane(), null);
337
                        bottomJPanel.add(getButtonsSetJPanel(), null);
338
                }
339
                
340
                return bottomJPanel;
341
        }
342
        
343
        /*
344
         *  (non-Javadoc)
345
         * @see org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel#resizeWidth(int)
346
         */
347
        public void resizeWidth(int new_Width) {        
348
                int difference = new_Width - DefaultWidth;
349
                
350
                if (difference != 0) {
351
                        this.setPreferredSize(new Dimension(this.getPreferredSize().width + difference, this.getPreferredSize().height));
352
                        getTopJPanel().setPreferredSize(new Dimension(getTopJPanel().getPreferredSize().width + difference, getTopJPanel().getPreferredSize().height));
353
                        getBottomJPanel().setPreferredSize(new Dimension(getBottomJPanel().getPreferredSize().width + difference, getBottomJPanel().getPreferredSize().height));
354
                        int halfDifference = difference / 2;
355

    
356
                        getFilterJScrollPane().setPreferredSize(new Dimension(getFilterJScrollPane().getPreferredSize().width + halfDifference, getFilterJScrollPane().getPreferredSize().height));
357
                        
358
                        getButtonsSetJPanel().setPreferredSize(new Dimension(getButtonsSetJPanel().getPreferredSize().width + halfDifference, getButtonsSetJPanel().getPreferredSize().height));
359
                        getBtnNewSet().setPreferredSize(new Dimension(getBtnNewSet().getPreferredSize().width + halfDifference, getBtnNewSet().getPreferredSize().height));
360
                        getBtnAddToCurrentSet().setPreferredSize(new Dimension(getBtnAddToCurrentSet().getPreferredSize().width + halfDifference, getBtnAddToCurrentSet().getPreferredSize().height));
361
                        getBtnFromSet().setPreferredSize(new Dimension(getBtnFromSet().getPreferredSize().width + halfDifference, getBtnFromSet().getPreferredSize().height));
362
                                
363
                        getFieldsJLabel().setPreferredSize(new Dimension(getFieldsJLabel().getPreferredSize().width + halfDifference, getFieldsJLabel().getPreferredSize().height));
364
                        getFieldsJPanel().setPreferredSize(new Dimension(getFieldsJPanel().getPreferredSize().width + halfDifference, getFieldsJPanel().getPreferredSize().height));
365
                        getFieldsJScrollPane().setPreferredSize(new Dimension(getFieldsJScrollPane().getPreferredSize().width + halfDifference, getFieldsJScrollPane().getPreferredSize().height));
366
                
367
                        getValuesJLabel().setPreferredSize(new Dimension(getValuesJLabel().getPreferredSize().width + halfDifference, getValuesJLabel().getPreferredSize().height));
368
                        getValuesJPanel().setPreferredSize(new Dimension(getValuesJPanel().getPreferredSize().width + halfDifference, getValuesJPanel().getPreferredSize().height));
369
                        getValuesJScrollPane().setPreferredSize(new Dimension(getValuesJScrollPane().getPreferredSize().width + halfDifference, getValuesJScrollPane().getPreferredSize().height));
370
                }
371
        }
372
}