Author: tchemit Date: 2008-01-22 09:07:39 +0000 (Tue, 22 Jan 2008) New Revision: 399 Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/pagination/ChangeSizorAction.java Log: simplification algo lors d'un changement de sizor afin d'?\195?\169viter les effets de bord (gestion d'un segment de table) ==> code plus simple Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/pagination/ChangeSizorAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/pagination/ChangeSizorAction.java 2008-01-22 09:06:50 UTC (rev 398) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/pagination/ChangeSizorAction.java 2008-01-22 09:07:39 UTC (rev 399) @@ -65,7 +65,7 @@ if (o != null) { newWidth = Integer.valueOf(o + ""); } - return o!=null && !oldIndex.equals(newWidth); + return o != null && !oldIndex.equals(newWidth); } @Override @@ -74,35 +74,29 @@ final ListTabModel model = (ListTabModel) getModel(); final PaginationModel pagination = model.getPagination(); - int oldWidth = pagination.getWidth(); - MetaDataEntity[] data; + // pour le moment, chaque retaille de fenetre repositionne + // la liste à zero pour simplifier - if (oldWidth > newWidth || model.size() > newWidth) { - // just cut the data in the table model, don't touch the list - data = new MetaDataEntity[newWidth]; - System.arraycopy(model.getList(), 0, data, 0, newWidth); - - } else { - // need ask service more data - long firstIndex = pagination.getFirstIndex() + oldWidth; - int size = newWidth - oldWidth; - MetaDataEntity[] newData = getData(false,size, (int) firstIndex,-1); - data = new MetaDataEntity[oldWidth + newData.length]; - System.arraycopy(model.getList(), 0, data, 0, oldWidth); - System.arraycopy(newData, 0, data, oldWidth, newData.length); - - // save in model - model.setList(data); + long firstIndex = 0; + long lastIndex = newWidth; + if (lastIndex >= pagination.getSize()) { + lastIndex = pagination.getSize() - 1; } + int size = (int) (lastIndex - firstIndex); + MetaDataEntity[] data = getData(false, size, (int) firstIndex, -1); + // save list + model.setList(data); + // save in TableModel JApplicationListTab container = (JApplicationListTab) getUI(); JApplicationTable jApplicationTable = container.getTable(); JApplicationTableModel modelTab = (JApplicationTableModel) jApplicationTable.getModel(); modelTab.setData(data); - // save new width in model + // save pagination pagination.setWidth(newWidth); + pagination.setFirstIndex(0); // refresh ui getMainUI().refreshListTabUI(model, container);
participants (1)
-
tchemit@users.labs.libre-entreprise.org