Revision 1506 org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.swing/org.gvsig.raster.swing.impl/src/main/java/org/gvsig/raster/swing/impl/pagedtable/PagedTableImpl.java

View differences:

PagedTableImpl.java
203 203
	}
204 204
	
205 205
	public int[] getSelectedRows() {
206
		/*int[] tSelected = getJTable().getSelectedRows();
207
		int[] result = new int[tSelected.length];
208
		for (int i = 0; i < result.length; i++) {
209
			result[i] =  pager.getSelectedPageNumber() * pager.getEntriesPerPage() + tSelected[i];
210
		}
211
		return result;*/
212 206
		return pager.getSelectedRows();
213 207
	}
214 208
	
......
226 220
	}
227 221
	
228 222
	public void setSelectedRow(int row) {
229
		pager.setSelectedRows(new int[]{row});
223
		if(row == -1) {
224
			pager.setSelectedRows(new int[]{pager.getEntriesCount() - 1});
225
		} else {
226
			pager.setSelectedRows(new int[]{row});
227
		}
230 228
	}
231 229
	
232 230
	public void addSelectedRow(int row) {
......
234 232
	}
235 233
	
236 234
	public void increaseSelectedRows() {
237
		pager.increaseSelectedPage();
235
		pager.increaseSelectedRows();
238 236
	}
239 237
	
240 238
	public void decreaseSelectedRows() {
241
		pager.decreaseSelectedPage();
239
		pager.decreaseSelectedRows();
242 240
	}
243 241
	
244 242
	public TableModel getTableModel() {
......
267 265
	 * Reloads the selected page in the visual table
268 266
	 */
269 267
	private int reloadPage() {
270
		removeAllVisualRows();
268
		model.setNumRows(0);
271 269
		List<Object> lines = pager.getSelectedPage();
272 270
		if(lines == null)
273 271
			return pager.getSelectedPageNumber();
......
277 275
		return pager.getSelectedPageNumber();
278 276
	}
279 277
	
280
	/**
281
	 * Removes all rows of this table.
282
	 */
283
	private void removeAllVisualRows() {
284
		model.setNumRows(0);
285
		getTableEntryController().setNItems(0);
278
	
279
	private void loadPageInTable(int page, int selection) {
280
		for (int i = model.getRowCount() - 1; i >= 0; i--) {
281
			model.removeRow(i);
282
		}
283
		List<Object> pageElements = pager.getPage(page);
284
		for (int i = 0; i < pageElements.size(); i++) {
285
			model.addRow((Object[])pageElements.get(i));
286
		}
287
		if(selection >= 0 && selection < model.getRowCount()) {
288
			getJTable().setRowSelectionInterval(selection, selection);
289
		}
286 290
	}
287
	
288
	/**
289
	 * Selects a i point
290
	 * @param i punto a seleccionar
291
	 */
292
	/*private void setSelectedIndex(int i) {
293
		//int index = pager.getSelectedPageNumber() * pager.getEntriesPerPage() + i;
294
		//pager.setSelectedRows(new int[]{index});
295
		//getMoveRowsPanel().setSelectedIndex(i, model.getRowCount());
296
		getJTable().setRowSelectionInterval(i, i);
297
	}*/
298
	
291

  
299 292
	public void mouseClicked(MouseEvent e) {
300 293
		if(e.getSource() == jTable) {
301 294
			//When the user clicks on table, it selects the entry in the table control
......
335 328
						pager.setSelectedPage(pager.getPageFromRow(selectedRows[0]));
336 329
						reloadPage();
337 330
					}
331
					int r = selectedRows[0] % pager.getEntriesPerPage();
332
					if(r >= 0 && r < model.getRowCount())
333
						getJTable().setRowSelectionInterval(r, r);
338 334
				}
339 335
			}
340 336
			
......
348 344
					getPaginationBar().getSelectedPage().setText(pager.getSelectedPageNumber() + "");
349 345
				}
350 346
				model.addRow(pager.getLastEntry());
347
				int lastTableRow = model.getRowCount() - 1;
348
				getJTable().setRowSelectionInterval(lastTableRow, lastTableRow);
351 349
			}
352 350
			
353 351
			if(option == Pager.CHANGE_REMOVE_ENTRY ) {
......
358 356
				if(currentPage != pageLoaded) { 
359 357
					int r = model.getRowCount() - 1;
360 358
					getJTable().setRowSelectionInterval(r, r);
361
				} else if(selectedRow >= 0 && selectedRow < model.getRowCount()) {
362
					getJTable().setRowSelectionInterval(selectedRow, selectedRow);
359
				} else {
360
					if(selectedRow >= 0 && selectedRow < model.getRowCount()) {
361
						getJTable().setRowSelectionInterval(selectedRow, selectedRow);
362
					} else {
363
						getJTable().setRowSelectionInterval(0, 0);
364
					}
363 365
				}
364 366
			}
365 367
			

Also available in: Unified diff