Author: tchemit Date: 2008-01-22 05:57:42 +0000 (Tue, 22 Jan 2008) New Revision: 378 Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerMainUI.java Log: ajout m?\195?\169thodes pour rafraichir ui ?\195?\160 partir du mod?\195?\168le ListTabModel Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerMainUI.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerMainUI.java 2008-01-22 05:57:07 UTC (rev 377) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerMainUI.java 2008-01-22 05:57:42 UTC (rev 378) @@ -20,10 +20,15 @@ import fr.cemagref.simexplorer.is.ui.SimExplorer; import fr.cemagref.simexplorer.is.ui.swing.action.ChangeI18nAbstractAction; +import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; +import fr.cemagref.simexplorer.is.ui.swing.model.PaginationModel; +import fr.cemagref.simexplorer.is.ui.swing.tab.JApplicationListTab; import org.codelutin.i18n.CountryEnum; import org.codelutin.i18n.LanguageEnum; import javax.swing.AbstractButton; +import javax.swing.JComboBox; +import javax.swing.SwingUtilities; import java.util.regex.Matcher; /** @@ -58,4 +63,68 @@ button.setEnabled(enable); } } + + public void refreshListTabUI(final ListTabModel model, final JApplicationListTab ui) { + + SwingUtilities.invokeLater(new Runnable() { + public void run() { + + // refresh changePage combobox + refreshChangePageCombo(ui, model); + + // refresh changeSizor combo + refreshChangeSizorCombo(ui, model); + + // refresh pagination buttons + refreshPagination(ui, model.getPagination()); + + // table data model may have changed, must revalidate + ui.getTable().invalidate(); + + // parent must be repaint (will revalidate layout for table) + ui.repaint(); + } + }); + } + + protected void refreshPagination(JApplicationListTab ui, PaginationModel pagination) { + int page = pagination.getCurrentPage(); + + boolean notFirst = page > 0; + ui.getGoFirstPage().setEnabled(notFirst); + ui.getGoPreviousPage().setEnabled(notFirst); + boolean notLast = page + 1 < pagination.getNbPages(); + ui.getGoNextPage().setEnabled(notLast); + ui.getGoLastPage().setEnabled(notLast); + } + + protected void refreshChangeSizorCombo(JApplicationListTab ui, ListTabModel model) { + JComboBox combo = ui.getChangeSizor(); + String s = model.getPagination().getWidth() + ""; + if (!s.equals(String.valueOf(combo.getSelectedItem()))) { + combo.setEnabled(false); + combo.setSelectedItem(s); + combo.setEnabled(true); + } + } + + protected void refreshChangePageCombo(JApplicationListTab ui, ListTabModel model) { + JComboBox combo = ui.getGoPage(); + long size = model.getPagination().getNbPages(); + combo.setEnabled(false); + //System.out.println("page old size : " + combo.getItemCount() + " new size : " + size); + if (size < combo.getItemCount()) { + while (size < combo.getItemCount()) { + combo.removeItemAt(combo.getItemCount() - 1); + } + } else { + while (size > combo.getItemCount()) { + combo.addItem(combo.getItemCount()); + } + } + //System.out.println("new page size : " + combo.getItemCount()); + + combo.setSelectedIndex(model.getPagination().getCurrentPage()); + combo.setEnabled(combo.getItemCount() > 1); + } }