Revision 13928 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/styling/SymbolLevelsWindow.java

View differences:

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