Statistics
| Revision:

root / trunk / libraries / libJCRS / src / org / gvsig / crs / gui / panels / CrsRecentsPanel.java @ 8113

History | View | Annotate | Download (4.68 KB)

1
package org.gvsig.crs.gui.panels;
2

    
3
import java.awt.Dimension;
4
import java.awt.FlowLayout;
5
import java.awt.GridLayout;
6
import java.sql.ResultSet;
7
import java.sql.SQLException;
8

    
9
import javax.swing.BorderFactory;
10
import javax.swing.JLabel;
11
import javax.swing.JOptionPane;
12
import javax.swing.JPanel;
13
import javax.swing.JScrollPane;
14
import javax.swing.JTable;
15
import javax.swing.ListSelectionModel;
16
import javax.swing.table.DefaultTableModel;
17
import javax.swing.table.TableColumn;
18

    
19
import org.cresques.cts.IProjection;
20
import org.gvsig.crs.CrsException;
21
import org.gvsig.crs.CrsFactory;
22
import org.gvsig.crs.ICrs;
23
import org.gvsig.crs.Query;
24
import org.gvsig.crs.ogr.Epsg2wkt;
25
import org.gvsig.crs.ogr.GetCRSepsg;
26
import org.gvsig.crs.persistence.CrsData;
27
import org.gvsig.crs.persistence.RecentCRSsPersistence;
28

    
29
import com.iver.andami.PluginServices;
30
import com.iver.cit.gvsig.gui.TableSorter;
31

    
32
public class CrsRecentsPanel extends JPanel {
33

    
34
        /**
35
         * 
36
         */
37
        private static final long serialVersionUID = 1L;
38

    
39
        public JPanel Recientes = null;
40
        
41
        public JTable jTable = null;
42
        private JScrollPane jScrollPane = null;
43
        public DefaultTableModel dtm = null;
44
        private CrsData crsDataArray[] = null;
45
        
46
        public int selectedRowTable = -1;
47
        private int codeCRS = -1;        
48
        String cadWKT = "";
49
        
50
        public CrsRecentsPanel() {
51
                super();
52
                initialize();
53
        }
54
        
55
        private void initialize(){
56
                this.setLayout(new GridLayout(1,2));
57
                this.setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
58
                this.add(getJLabel(), null);
59
                this.add(getJScrollPane(), null);
60
                
61
                /*
62
                 * Rellenar la tabla de recientes:
63
                 */
64
                RecentCRSsPersistence persistence = new RecentCRSsPersistence();
65
                crsDataArray = persistence.getArrayOfCrsData();
66
                
67
                for (int iRow = crsDataArray.length-1;iRow>=0;iRow--){
68
                        Object row[] ={crsDataArray[iRow].getAuthority(),Integer.toString(crsDataArray[iRow].getCode()),crsDataArray[iRow].getName()};
69
                        dtm.addRow(row);
70
                }
71
                int numr = dtm.getRowCount();
72
                if (numr != 0 )
73
                        this.getJTable().setRowSelectionInterval(0,0);
74
        }
75
        
76
/*        public JPanel getJPanel(){
77
                if (Recientes == null) {
78
                        Recientes = new JPanel();                        
79
                        Recientes.setLayout(new GridLayout(1,2));
80
                        Recientes.setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
81
                        Recientes.add(getJLabel(), null);
82
                        Recientes.add(getJScrollPane(), null);
83
                }
84
                
85
                return Recientes;
86
        }*/
87
        
88
        private JLabel getJLabel(){
89
                JLabel label = new JLabel();
90
                label.setPreferredSize(new Dimension(500, 30));
91
                label.setText(PluginServices.getText(this, "?ltimos CRS utilizados:"));
92
                return label;
93
        }
94
        
95
        private JScrollPane getJScrollPane() {
96
                if (jScrollPane == null) {
97
                        jScrollPane = new JScrollPane();
98
                        jScrollPane.setPreferredSize(new Dimension(500,150));
99
                        jScrollPane.setBorder(
100
                                    BorderFactory.createCompoundBorder(
101
                                        BorderFactory.createCompoundBorder(
102
                                                        BorderFactory.createTitledBorder(PluginServices.getText(this,"Coordinate Reference Systems")),
103
                                                        BorderFactory.createEmptyBorder(5,5,5,5)),
104
                                                        jScrollPane.getBorder()));
105
                        jScrollPane.setViewportView(getJTable());
106
                }
107
                return jScrollPane;
108
        }
109
        
110
        public JTable getJTable() {
111
                if (jTable == null) {
112
                        String[] columnNames= {"Fuente","C?digo","Nombre"};
113
                        Object[][]data = {};                        
114
                        dtm = new DefaultTableModel(data, columnNames)
115
                         {
116
                                public boolean isCellEditable(int row, int column) {
117
                                        return false;
118
                                }
119
                                };
120
                        TableSorter sorter = new TableSorter(dtm);                        
121

    
122
                        jTable = new JTable(sorter);
123
                        sorter.setTableHeader(jTable.getTableHeader());                        
124
                        jTable.setCellSelectionEnabled(false);
125
                        jTable.setRowSelectionAllowed(true);
126
                        jTable.setColumnSelectionAllowed(false);
127
                        jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
128
                        TableColumn column = null;
129
                        for (int i = 0; i < 3; i++) {
130
                            column = jTable.getColumnModel().getColumn(i);
131
                            if (i == 0) {
132
                                column.setPreferredWidth(60); //code column is shorter                                     
133
                            }else if (i == 2) {
134
                                    column.setPreferredWidth(275);
135
                            }
136
                            else {                            
137
                                column.setPreferredWidth(160);
138
                            }
139
                        }        
140
        }
141
                return jTable;                
142
        }
143
        
144
        public ICrs getProjection() {
145
                try {
146
                        String txt = getWKT();                        
147
                        ICrs crs = new CrsFactory().getCRS(getCodeCRS(), txt); 
148
                        return crs ;
149
                } catch (CrsException e) {
150
                        e.printStackTrace();
151
                }
152
                return null;
153
        }
154
        
155
        public void setWKT(String authority){                
156
                int cod = getCodeCRS();
157
                for (int i = 0; i < crsDataArray.length; i++){
158
                        if (crsDataArray[i].getCode() == cod && authority.equals(crsDataArray[i].getAuthority())){
159
                                cadWKT = crsDataArray[i].getWkt();
160
                                break;
161
                        }
162
                }                
163
        
164
        }
165
                
166
        public String getWKT(){
167
                return cadWKT;
168
        }
169
        
170
        public void setCodeCRS(int code) {
171
                codeCRS = code;
172
        }
173
        
174
        public int getCodeCRS() {
175
                return codeCRS;
176
        }
177
        
178
        public void setProjection(IProjection crs) {
179
                //setCrs((ICrs) crs);
180
        }
181

    
182
}