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 |
} |