Author: tchemit Date: 2008-02-24 21:33:36 +0000 (Sun, 24 Feb 2008) New Revision: 1222 Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorer.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/HistoryModel.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerTabModel.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabUpdater.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerMainUI.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabUpdater.java Log: integration context dans les modeles Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorer.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorer.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorer.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -114,7 +114,6 @@ public static void dispose(boolean reload) { SimExplorerTab.dispose(); - SimExplorerAbstractAction.dispose(); SimExplorerActionManager.dispose(); ErrorDialog.disposeUI(); Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -21,6 +21,7 @@ import fr.cemagref.simexplorer.is.entities.attachment.Attachment; import fr.cemagref.simexplorer.is.entities.data.LoggableElement; import fr.cemagref.simexplorer.is.entities.metadata.Version; +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -45,8 +46,6 @@ /** la propriété pour indiquer un changement de sélection de fichier attaché */ public static final String SELECTED_ATTACHMENT_INDEX_PROPERTY_CHANGED = "selectedAttachmentIndexPropertyChanged"; - private static final int HISTORY_CAPACITY = 20; - private static final long serialVersionUID = 4851121531481734868L; static protected Log log = LogFactory.getLog(DetailTabModel.class); @@ -85,8 +84,43 @@ */ protected Integer selectedAttachmentIndex; + /** + * l'historique des elements deja visites. + * + * @see HistoryModel + */ protected HistoryModel<EntityTreeNode> history; + public DetailTabModel(SimExplorerContext context) { + super(context); + history =new HistoryModel<EntityTreeNode>(); + } + + public void setRootNode(EntityTreeNode rootNode) { + EntityTreeNode oldRootNode = this.rootNode; + this.rootNode = rootNode; + firePropertyChange(ROOT_NODE_PROPERTY_CHANGED, oldRootNode, rootNode); + } + + public void setSelectedNode(LoggableElement selectedNode) { + LoggableElement oldSelectedNode = this.selectedNode; + this.selectedNode = selectedNode; + this.detailNode = selectedNode; + firePropertyChange(SELECTED_NODE_PROPERTY_CHANGED, oldSelectedNode, selectedNode); + } + + public void setSelectedVersion(Version version) { + Integer oldSelectedVersionIndex = this.selectedVersionIndex; + this.selectedVersionIndex = getVersionIndex(version); + firePropertyChange(SELECTED_VERSION_INDEX_PROPERTY_CHANGED, oldSelectedVersionIndex, selectedVersionIndex); + } + + public void setSelectedAttachmentIndex(Integer selectedAttachmentIndex) { + Integer oldSelectedAttachmentIndex = this.selectedAttachmentIndex; + this.selectedAttachmentIndex = selectedAttachmentIndex; + firePropertyChange(SELECTED_ATTACHMENT_INDEX_PROPERTY_CHANGED, oldSelectedAttachmentIndex, selectedAttachmentIndex); + } + public EntityTreeNode getRootNode() { return rootNode; } @@ -121,36 +155,11 @@ public HistoryModel<EntityTreeNode> getHistory() { if (history == null) { - history = new HistoryModel<EntityTreeNode>(HISTORY_CAPACITY); + history = new HistoryModel<EntityTreeNode>(HistoryModel.HISTORY_CAPACITY); } return history; } - public void setRootNode(EntityTreeNode rootNode) { - EntityTreeNode oldRootNode = this.rootNode; - this.rootNode = rootNode; - firePropertyChange(ROOT_NODE_PROPERTY_CHANGED, oldRootNode, rootNode); - } - - public void setSelectedNode(LoggableElement selectedNode) { - LoggableElement oldSelectedNode = this.selectedNode; - this.selectedNode = selectedNode; - this.detailNode = selectedNode; - firePropertyChange(SELECTED_NODE_PROPERTY_CHANGED, oldSelectedNode, selectedNode); - } - - public void setSelectedVersion(Version version) { - Integer oldSelectedVersionIndex = this.selectedVersionIndex; - this.selectedVersionIndex = getVersionIndex(version); - firePropertyChange(SELECTED_VERSION_INDEX_PROPERTY_CHANGED, oldSelectedVersionIndex, selectedVersionIndex); - } - - public void setSelectedAttachmentIndex(Integer selectedAttachmentIndex) { - Integer oldSelectedAttachmentIndex = this.selectedAttachmentIndex; - this.selectedAttachmentIndex = selectedAttachmentIndex; - firePropertyChange(SELECTED_ATTACHMENT_INDEX_PROPERTY_CHANGED, oldSelectedAttachmentIndex, selectedAttachmentIndex); - } - public void setDetailNode(LoggableElement detailNode) { this.detailNode = detailNode; } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/HistoryModel.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/HistoryModel.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/HistoryModel.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -39,11 +39,19 @@ protected int capacity; private static final long serialVersionUID = -6436315419371336090L; + /** + * capacite maximum de l'historique + */ + public static final int HISTORY_CAPACITY = 20; public HistoryModel(int capacity) { this.capacity = capacity; } + public HistoryModel() { + this(HISTORY_CAPACITY); + } + /** * Ajoute à l'historique une donnée après la position courante s'il y avait * déjà des données ou en première position le cas échéant. Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -46,25 +46,22 @@ protected final PaginationModel pagination; protected final PaginationModel oldPagination; - protected SimExplorerContext context; - protected MetaData[] list; protected int selectedIndex; private static final long serialVersionUID = -3623331875470531459L; - public ListTabModel() { + public ListTabModel(SimExplorerContext context) { + super(context); queryModel = new QueryModel(); oldQueryModel = new QueryModel(); pagination = new PaginationModel(SimplePaginationEnum._10); oldPagination= new PaginationModel(SimplePaginationEnum._10); } - public void initTabModel(SimExplorerContext context, boolean remote) { + public void initTabModel(boolean remote) { - this.context=context; - reset(); // no selection at first load Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerTabModel.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerTabModel.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerTabModel.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -21,6 +21,7 @@ import fr.cemagref.simexplorer.is.entities.metadata.MetaData; import fr.cemagref.simexplorer.is.entities.metadata.Version; import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab; +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext; import jaxx.runtime.builder.TabModel; import java.beans.PropertyChangeListener; @@ -44,11 +45,17 @@ /** flag pour savoir si la source est remote ou non */ protected Boolean remote; + protected final SimExplorerContext context; + /** support pourles changements des propriétés */ protected PropertyChangeSupport changeSupport; private static final long serialVersionUID = 4136959472154027361L; + public SimExplorerTabModel(SimExplorerContext context) { + this.context = context; + } + public String getName() { return tab.name(); } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -58,6 +58,10 @@ /** l'élément de l'arbre de navigation distant sélectionné */ protected LoggableElement remoteSelectedNode; + public SynchronizeTabModel(SimExplorerContext context) { + super(context); + } + /** * @param remote flag pour indiquer sur quel arbre on travaille * @return le LE encapsulé dans le root de l'arbre de navigation, ou null Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabUpdater.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabUpdater.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabUpdater.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -56,10 +56,6 @@ public void propertyChange(PropertyChangeEvent evt) { String evtName = evt.getPropertyName(); - if (log.isDebugEnabled()) { - log.debug(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); - } - if (evtName.equals(DetailTabModel.ROOT_NODE_PROPERTY_CHANGED)) { fireRootSelected(getUi(), getModel(), evt); return; @@ -77,12 +73,14 @@ return; } - throw new IllegalStateException("could not treate property " + evtName); + throw new IllegalStateException("could not treate property " + evtName+"\n"+evt); } protected void fireRootSelected(JDetailTab ui, DetailTabModel model, PropertyChangeEvent evt) { - log.info(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + if (log.isDebugEnabled()) { + log.debug(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + } EntityTreeNode node = (EntityTreeNode) evt.getNewValue(); @@ -121,7 +119,9 @@ } protected void fireNodeSelected(JDetailTab ui, DetailTabModel model, PropertyChangeEvent evt) { - log.info(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + if (log.isDebugEnabled()) { + log.debug(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + } LoggableElement newSelectedNode = (LoggableElement) evt.getNewValue(); @@ -159,7 +159,9 @@ } protected void fireVersionSelected(JDetailTab ui, DetailTabModel model, PropertyChangeEvent evt) { - log.info(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + if (log.isDebugEnabled()) { + log.debug(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + } Integer index = (Integer) evt.getNewValue(); Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -68,7 +68,9 @@ } protected void fireRowSelected(JListTab ui, ListTabModel model, PropertyChangeEvent evt) { - log.info(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + if (log.isDebugEnabled()) { + log.debug(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + } if (!model.isEmpty()) { ui.getTable().getSelectionModel().setSelectionInterval(model.getSelectedIndex(), model.getSelectedIndex()); @@ -81,7 +83,9 @@ } protected void fireQueryChanged(JListTab ui, ListTabModel model, PropertyChangeEvent evt) { - log.info(evt.getPropertyName() + "\n\told:" + evt.getOldValue() + ",\n\tnew:" + evt.getNewValue()); + if (log.isDebugEnabled()) { + log.debug(evt.getPropertyName() + "\n\told:" + evt.getOldValue() + ",\n\tnew:" + evt.getNewValue()); + } QueryModel query = (QueryModel) evt.getNewValue(); if (query == null) { resetSearch(); @@ -103,7 +107,9 @@ } protected void firePaginationChanged(JListTab ui, ListTabModel model, PropertyChangeEvent evt) { - log.info(evt.getPropertyName() + "\n\told:" + evt.getOldValue() + ",\n\tnew:" + evt.getNewValue()); + if (log.isDebugEnabled()) { + log.debug(evt.getPropertyName() + "\n\told:" + evt.getOldValue() + ",\n\tnew:" + evt.getNewValue()); + } ui.getSearchText().setText(model.getQuery()); Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -56,7 +56,7 @@ @SuppressWarnings({"unchecked"}) public M getModel() { - return (M) tab.getModel(); + return (M) tab.getModel(context); } @SuppressWarnings({"unchecked"}) Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerMainUI.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerMainUI.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerMainUI.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -48,6 +48,11 @@ /** l'ui principale de l'application */ public static SimExplorerMainUI ui; + + public DetailTabUpdater detailUpdater; + public ListTabUpdater localUpdater; + public ListTabUpdater remoteUpdater; + public SynchronizeTabUpdater synchronizeUpdater; public static SimExplorerMainUI getUI() { SimExplorer.checkInitContext(); @@ -59,6 +64,22 @@ public void disposeUI() { super.dispose(); + if (detailUpdater != null) { + detailUpdater.removeListeners(); + detailUpdater = null; + } + if (localUpdater != null) { + localUpdater.removeListeners(); + localUpdater = null; + } + if (remoteUpdater != null) { + remoteUpdater.removeListeners(); + remoteUpdater = null; + } + if (synchronizeUpdater != null) { + synchronizeUpdater.removeListeners(); + synchronizeUpdater = null; + } ui = null; } @@ -171,4 +192,35 @@ } } + public DetailTabUpdater getDetailUpdater(SimExplorerContext context) { + if (detailUpdater == null) { + detailUpdater = new DetailTabUpdater(context); + } + return detailUpdater; + } + + public ListTabUpdater getListUpdater(SimExplorerContext context, boolean remote) { + return remote?getRemoteUpdater(context):getLocalUpdater(context); + } + + public ListTabUpdater getLocalUpdater(SimExplorerContext context) { + if (localUpdater == null) { + localUpdater = new ListTabUpdater(context, false); + } + return localUpdater; + } + + public ListTabUpdater getRemoteUpdater(SimExplorerContext context) { + if (remoteUpdater == null) { + remoteUpdater = new ListTabUpdater(context, true); + } + return remoteUpdater; + } + + public SynchronizeTabUpdater getSynchronizeUpdater(SimExplorerContext context) { + if (synchronizeUpdater == null) { + synchronizeUpdater = new SynchronizeTabUpdater(context); + } + return synchronizeUpdater; + } } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -22,6 +22,7 @@ import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel; +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext; import jaxx.runtime.builder.TabContentConfig; import jaxx.runtime.swing.JAXXTab; @@ -117,19 +118,23 @@ return (JListTab) getListTab(remote).getUI(); } - public static ListTabModel getListModel(boolean remote) { + /*public static ListTabModel getListModel(boolean remote) { return (ListTabModel) getListTab(remote).getModel(); - } + }*/ public JAXXTab getUI() { return getFactory().getUI(name()); } - public SimExplorerTabModel getModel() { + private SimExplorerTabModel getModel() { return getFactory().getModel(name()); } + public SimExplorerTabModel getModel(SimExplorerContext context) { + return getFactory().getModel(name(),context); + } + public boolean isTabVisible(JTabbedPane container) { JAXXTab ui = getUI(); return ui != null && getFactory().getTabIndex(container, ui) > -1; @@ -148,14 +153,14 @@ getFactory().showTab(container, name()); } - public void closeTab(SimExplorerMainUI mainUi, JTabbedPane container) { + public void closeTab(SimExplorerContext context, SimExplorerMainUI mainUi, JTabbedPane container) { getFactory().closeTab(mainUi, container, name()); - getModel().setSelectedItem(null); + getModel(context).setSelectedItem(null); } public static void dispose() { - for (SimExplorerTab simExplorerTab : values()) { - simExplorerTab.getModel().removePropertyChangeListeners(); + for (String simExplorerTab : getFactory().keySet()) { + getFactory().getModel(simExplorerTab).removePropertyChangeListeners(); } getFactory().resetCache(); } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -20,11 +20,13 @@ import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext; import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerTabModel; import fr.cemagref.simexplorer.is.ui.swing.ui.util.MyTabHeader; import jaxx.runtime.JAXXObject; import jaxx.runtime.builder.TabContentConfig; import jaxx.runtime.builder.TabFactory; +import jaxx.runtime.builder.TabModel; import jaxx.runtime.swing.JAXXTab; import static org.codelutin.i18n.I18n._; @@ -35,6 +37,8 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.lang.reflect.Field; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; import java.util.Map; import java.util.TreeMap; @@ -69,11 +73,24 @@ } @Override - public SimExplorerTabModel getModel(String tabName) { - return (SimExplorerTabModel) super.getModel(tabName); + protected TabModel initTabModel(TabContentConfig config, Object... params) throws InstantiationException, IllegalAccessException { + try { + Constructor<?> constructor = config.model().getConstructor(SimExplorerContext.class); + return (TabModel) constructor.newInstance(params[0]); + } catch (InvocationTargetException e) { + throw new SimExplorerRuntimeException(e); + } catch (NoSuchMethodException e) { + throw new SimExplorerRuntimeException(e); + } } + @Override + public SimExplorerTabModel getModel(String tabName,Object... params) { + return (SimExplorerTabModel) super.getModel(tabName,params); + } + + @Override protected JComponent addTabHeader(final JTabbedPane container, String tabName, TabContentConfig tab, Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabUpdater.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabUpdater.java 2008-02-24 21:32:07 UTC (rev 1221) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabUpdater.java 2008-02-24 21:33:36 UTC (rev 1222) @@ -77,12 +77,14 @@ } private void fireSources(PropertyChangeEvent evt) { - log.info(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + if (log.isDebugEnabled()) { + log.debug(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + } LoggableElement[] oldSources = (LoggableElement[]) evt.getOldValue(); LoggableElement[] sources = (LoggableElement[]) evt.getNewValue(); if (sources[0] == null && sources[1] == null) { // close tab - SimExplorerTab.synchronize.closeTab(getMainUI(), getMainUI().getContent()); + SimExplorerTab.synchronize.closeTab(getContext(), getMainUI(), getMainUI().getContent()); } if (sources[0]==null && oldSources[0]==null) { @@ -94,13 +96,12 @@ // disable remote SimExplorerMainUI.DisableButton(getUi().getExportButton(true), getUi().getShowDetailButton(true),getUi().getCollapseButton(true),getUi().getExpandButton(true)); } - // by default disable the action - //SimExplorerMainUI.DisableButton(getUi().getExportButton(false), getUi().getExportButton(true)); - } protected void fireRootSelected(PropertyChangeEvent evt, boolean remote) { - log.info(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + if (log.isDebugEnabled()) { + log.debug(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); + } LoggableElement le = (LoggableElement) evt.getNewValue();