Revision 13928 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/styling/SymbolLevelsWindow.java
SymbolLevelsWindow.java | ||
---|---|---|
86 | 86 |
* @author jaume dominguez faus - jaume.dominguez@iver.es |
87 | 87 |
*/ |
88 | 88 |
public class SymbolLevelsWindow extends JPanel implements IWindow, ActionListener { |
89 |
private static final long serialVersionUID = 3241898997869313055L; |
|
89 | 90 |
private static final int DESCRIPTION_COLUMN_INDEX = 1; |
90 | 91 |
private static final int SYMBOL_COLUMN_INDEX = 0; |
91 | 92 |
private static final int MERGE_COLUMN_INDEX = 3; |
... | ... | |
104 | 105 |
private JPanel pnlCenter = null; |
105 | 106 |
private JScrollPane srclLevels = null; |
106 | 107 |
private JTable tblLevels = null; |
107 |
private JButton btnUp = null; // @jve:decl-index=0:visual-constraint="310,110"
|
|
108 |
private JButton btnUp = null; |
|
108 | 109 |
private JButton btnDown; |
109 | 110 |
private JPanel pnlSouth = null; |
110 | 111 |
private String[] advancedHeaders; |
... | ... | |
149 | 150 |
System.out.println(); |
150 | 151 |
} |
151 | 152 |
|
153 |
// if (true) return; |
|
152 | 154 |
|
153 |
Hashtable aTable = new Hashtable();
|
|
155 |
Hashtable<ISymbol, int[]> aTable = new Hashtable<ISymbol, int[]>();
|
|
154 | 156 |
ISymbol[] symbols = new ISymbol[model.getRowCount()]; |
155 | 157 |
for (int i = 0; i < symbols.length; i++) { |
156 | 158 |
symbols[i] = (ISymbol) model.getValueAt(i, SYMBOL_COLUMN_INDEX); |
... | ... | |
162 | 164 |
|
163 | 165 |
int[] symbolLevels = new int[length]; |
164 | 166 |
if (viewMode == DEFAULT_VIEW) { |
167 |
// default view (JOIN and MERGE) |
|
165 | 168 |
if (symbols[i] instanceof IMultiLayerSymbol) { |
166 | 169 |
boolean join = ((Boolean) model.getValueAt(i, JOIN_COLUMN_INDEX)).booleanValue(); |
167 | 170 |
boolean merge= ((Boolean) model.getValueAt(i, MERGE_COLUMN_INDEX)).booleanValue(); |
... | ... | |
169 | 172 |
if (merge && i>0) { |
170 | 173 |
int j=0; |
171 | 174 |
try { |
172 |
int[] prevSymbolLevels = (int[]) aTable.get(symbols[i-1]);
|
|
175 |
int[] prevSymbolLevels = aTable.get(symbols[i-1]); |
|
173 | 176 |
for (j = 0; j < symbolLevels.length; j++) { |
174 | 177 |
symbolLevels[j] = prevSymbolLevels[j]; |
175 | 178 |
} |
... | ... | |
199 | 202 |
symbolLevels[0] = zSort.getLevelCount(); |
200 | 203 |
} |
201 | 204 |
} else { |
205 |
// ADVANCED VIEW (user may set map levels manually) |
|
202 | 206 |
for (int j = 0; j < symbolLevels.length; j++) { |
203 | 207 |
symbolLevels[j] = ((Integer) model.getValueAt(i, j+FIRST_LEVEL_COLUMN_INDEX)).intValue(); |
204 | 208 |
} |
... | ... | |
207 | 211 |
aTable.put(symbols[i], symbolLevels); |
208 | 212 |
} |
209 | 213 |
|
210 |
Iterator it = aTable.keySet().iterator(); |
|
214 |
Iterator<ISymbol> it = aTable.keySet().iterator();
|
|
211 | 215 |
while (it.hasNext()) { |
212 |
ISymbol sym = (ISymbol) it.next();
|
|
213 |
zSort.setLevelsToSymbol(sym, (int[]) aTable.get(sym));
|
|
216 |
ISymbol sym = it.next(); |
|
217 |
zSort.setLevels(sym, aTable.get(sym));
|
|
214 | 218 |
} |
215 | 219 |
|
216 | 220 |
zSort.setUsingZSort(getChkSpecifyDrawOrder().isSelected()); |
... | ... | |
233 | 237 |
|
234 | 238 |
public void setModel(ZSort plan) { |
235 | 239 |
advancedHeaders = new String[FIRST_LEVEL_COLUMN_INDEX |
236 |
+plan.getMaxSymbolLayerCount()];
|
|
240 |
+plan.getTopLevelIndexAllowed() ];
|
|
237 | 241 |
advancedHeaders[SYMBOL_COLUMN_INDEX] = defaultHeaders[SYMBOL_COLUMN_INDEX]; |
238 | 242 |
advancedHeaders[DESCRIPTION_COLUMN_INDEX] = defaultHeaders[DESCRIPTION_COLUMN_INDEX]; |
239 | 243 |
for (int i = 2; i < advancedHeaders.length; i++) { |
... | ... | |
260 | 264 |
System.out.println(zSort); |
261 | 265 |
|
262 | 266 |
if (mode == DEFAULT_VIEW) { |
267 |
// default view (JOIN and MERGE) |
|
263 | 268 |
dataVector = new Object[syms.length][syms.length]; |
264 | 269 |
for (int i = 0; i < syms.length; i++) { |
265 | 270 |
dataVector[i] = new Object[defaultHeaders.length]; |
... | ... | |
307 | 312 |
col.setCellRenderer(new BooleanTableCellRenderer(true)); |
308 | 313 |
col.setCellEditor(new BooleanTableCellEditor(table)); |
309 | 314 |
} else { |
310 |
dataVector = new Object[syms.length][zSort.getMaxSymbolLayerCount()+FIRST_LEVEL_COLUMN_INDEX]; |
|
315 |
// advanced view (user may input the map level manually) |
|
316 |
dataVector = new Object[syms.length][ |
|
317 |
FIRST_LEVEL_COLUMN_INDEX + /* this is the first column that |
|
318 |
* contains a level for the symbol |
|
319 |
*/ |
|
320 |
|
|
321 |
zSort.getTopLevelIndexAllowed() + /* according to the set of |
|
322 |
* symbols this will get the |
|
323 |
* max level reachable |
|
324 |
*/ |
|
325 |
1 /* plus 1 to get a count instead of an index */]; |
|
311 | 326 |
for (int i = 0; i < syms.length; i++) { |
312 | 327 |
dataVector[i][SYMBOL_COLUMN_INDEX] = syms[i]; |
313 | 328 |
dataVector[i][DESCRIPTION_COLUMN_INDEX] = labels[i]; |
... | ... | |
324 | 339 |
model.setDataVector(dataVector, advancedHeaders); |
325 | 340 |
table.setModel(model); |
326 | 341 |
for (int j = FIRST_LEVEL_COLUMN_INDEX; j < model.getColumnCount(); j++) { |
327 |
|
|
342 |
|
|
328 | 343 |
table.getColumnModel().getColumn(j).setCellRenderer(new NumberTableCellRenderer(true, false)); |
329 | 344 |
table.getColumnModel().getColumn(j).setCellEditor(new IntegerTableCellEditor()); |
330 | 345 |
} |
Also available in: Unified diff