Author: tchemit Date: 2008-01-22 02:49:56 +0000 (Tue, 22 Jan 2008) New Revision: 375 Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowLocalTabAction.java trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowRemoteTabAction.java Log: implantation init list ok Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowLocalTabAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowLocalTabAction.java 2008-01-22 02:45:59 UTC (rev 374) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowLocalTabAction.java 2008-01-22 02:49:56 UTC (rev 375) @@ -22,13 +22,15 @@ import fr.cemagref.simexplorer.is.service.StorageService; import fr.cemagref.simexplorer.is.ui.SimExplorer; import fr.cemagref.simexplorer.is.ui.swing.action.ShowTabAbstractAction; -import fr.cemagref.simexplorer.is.ui.swing.bean.ListApplicationBean; -import fr.cemagref.simexplorer.is.ui.swing.bean.PaginationBean; +import fr.cemagref.simexplorer.is.ui.swing.model.PaginationModel; import fr.cemagref.simexplorer.is.ui.swing.model.JApplicationTableModel; import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; import fr.cemagref.simexplorer.is.ui.swing.tab.JApplicationListTab; +import jaxx.runtime.JAXXObject; import jaxx.runtime.swing.JAXXComboBox; +import javax.swing.JTabbedPane; +import java.awt.Component; import java.awt.event.ActionEvent; /** @@ -49,68 +51,84 @@ private static final long serialVersionUID = -5349479338237813002L; + protected Boolean firstTime; + public ShowLocalTabAction(String name) { super(name); } - static ListApplicationBean list; - ListApplicationBean newList; + protected boolean beforeAction(ActionEvent e) throws Exception { - protected boolean beforeAction(ActionEvent e) { + JTabbedPane tabbedPane = getTabContainer(); + JAXXObject ui = tab.getUI(); + if (tab.isTabVisible(tabbedPane)) { + // tab is already visible, just select it + tabbedPane.setSelectedComponent((Component) ui); + return false; + } + + // mark it, after action will push table model + firstTime = ui == null; + ListTabModel model = (ListTabModel) getModel(); - if (model.getList() == null) { + MetaDataEntity[] data = model.getList(); - // first local query, build listBean - newList = new ListApplicationBean(); + if (data == null) { + // first local query, build model + StorageService service = SimExplorer.getStorageService(); + long size = service.findApplicationsCount(false); - try { - StorageService service = SimExplorer.getStorageService(); - long size = service.findApplicationsCount(false); - PaginationBean paginationBean = new PaginationBean(); - paginationBean.setFirstIndex(0); - paginationBean.setSize(size); - paginationBean.setWidth(getContext().getConfig().getSizor()); - newList.setPagination(paginationBean); - MetaDataEntity[] data = service.findApplications(false, (int) paginationBean.getFirstIndex(), paginationBean.getWidth(), -1); - newList.setList(data); - // save in model - model.setList(newList); - } catch (Exception ee) { - ee.printStackTrace(); - } - } else { - newList = model.getList(); + // init pagination + PaginationModel paginationModel = new PaginationModel(); + paginationModel.setFirstIndex(0); + paginationModel.setSize(size); + paginationModel.setWidth(getContext().getConfig().getSizor()); + model.setPagination(paginationModel); + + // obtain datas from service + data = service.findApplications(false, (int) paginationModel.getFirstIndex(), paginationModel.getWidth(), -1); + + // save in model + model.setList(data); } - log.info("use local list " + newList); return true; } + @Override protected void afterAction(ActionEvent e) { - if (list == null || newList.getTimestamp() > list.getTimestamp()) { - // nothing to ? + ListTabModel model = (ListTabModel) getModel(); + + if (firstTime) { + + // push model into tableModel JApplicationListTab container = (JApplicationListTab) getTab(); - JApplicationTableModel model = (JApplicationTableModel) container.getTable().getModel(); - model.setData(newList.getList()); + JApplicationTableModel modelTab = (JApplicationTableModel) container.getTable().getModel(); + modelTab.setData(model.getList()); + // init pagination - initPagination(newList.getPagination(), container); + initPagination(model.getPagination(), container); } + } - list = newList; + @Override + protected void clear() { + super.clear(); + firstTime = null; } - private void initPagination(PaginationBean bean, JApplicationListTab container) { + public static void initPagination(PaginationModel model, JApplicationListTab container) { JAXXComboBox combo; combo = container.getChangeSizor(); combo.setEnabled(false); - combo.setSelectedItem("" + bean.getWidth()); + combo.setSelectedItem("" + model.getWidth()); combo.setEnabled(true); combo = container.getGoPage(); - long size = bean.getNbPages(); + long size = model.getNbPages(); combo.setEnabled(false); combo.removeAllItems(); for (int i = 0; i < size; i++) { Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowRemoteTabAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowRemoteTabAction.java 2008-01-22 02:45:59 UTC (rev 374) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowRemoteTabAction.java 2008-01-22 02:49:56 UTC (rev 375) @@ -21,12 +21,18 @@ import fr.cemagref.simexplorer.is.service.StorageService; import fr.cemagref.simexplorer.is.ui.SimExplorer; import fr.cemagref.simexplorer.is.ui.swing.action.ShowTabAbstractAction; -import fr.cemagref.simexplorer.is.ui.swing.bean.ListApplicationBean; -import fr.cemagref.simexplorer.is.ui.swing.bean.PaginationBean; +import fr.cemagref.simexplorer.is.ui.swing.model.PaginationModel; import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; +import fr.cemagref.simexplorer.is.ui.swing.model.JApplicationTableModel; +import fr.cemagref.simexplorer.is.ui.swing.tab.JApplicationListTab; +import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity; +import javax.swing.JTabbedPane; import java.awt.event.ActionEvent; +import java.awt.Component; +import jaxx.runtime.JAXXObject; + /** * Action pour afficher le tab local * @@ -45,34 +51,64 @@ private static final long serialVersionUID = -5349479338237813002L; + protected Boolean firstTime; + public ShowRemoteTabAction(String name) { super(name); } - protected void initAction() throws Exception { + protected boolean beforeAction(ActionEvent e) throws Exception { - StorageService service; + JTabbedPane tabbedPane = getTabContainer(); + JAXXObject ui = tab.getUI(); - ListApplicationBean list; + if (tab.isTabVisible(tabbedPane)) { + // tab is already visible, just select it + tabbedPane.setSelectedComponent((Component) ui); + return false; + } + + // mark it, after action will push table model + firstTime = ui == null; + ListTabModel model = (ListTabModel) getModel(); - if (model.getList() == null) { - // first remote query, - service = SimExplorer.getRemoteStorageService(); + MetaDataEntity[] data = model.getList(); - list = new ListApplicationBean(); + if (data == null) { + // first local query, build model + StorageService service = SimExplorer.getRemoteStorageService(); long size = service.findApplicationsCount(false); - PaginationBean paginationBean = new PaginationBean(); - paginationBean.setFirstIndex(0); - paginationBean.setSize(size); - paginationBean.setWidth(getContext().getConfig().getSizor()); - list.setPagination(paginationBean); - model.setList(list); + + // init pagination + PaginationModel paginationModel = new PaginationModel(); + paginationModel.setFirstIndex(0); + paginationModel.setSize(size); + paginationModel.setWidth(getContext().getConfig().getSizor()); + model.setPagination(paginationModel); + + // obtain datas from service + data = service.findApplications(false, (int) paginationModel.getFirstIndex(), paginationModel.getWidth(), -1); + + // save in model + model.setList(data); } - } + return true; + } @Override - protected void doAction(ActionEvent e) throws Exception { - super.doAction(e); + protected void afterAction(ActionEvent e) { + ListTabModel model = (ListTabModel) getModel(); + + if (firstTime) { + + // push model into TableModel + JApplicationListTab container = (JApplicationListTab) getTab(); + JApplicationTableModel modelTab = (JApplicationTableModel) container.getTable().getModel(); + modelTab.setData(model.getList()); + + // init pagination + ShowLocalTabAction.initPagination(model.getPagination(), container); + } } } \ No newline at end of file