Author: tchemit Date: 2008-02-02 17:01:04 +0000 (Sat, 02 Feb 2008) New Revision: 599 Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/ShowTabAbstractAction.java Log: l'action de base d'ouverture de tab revisit?\195?\169 pour factoriser Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/ShowTabAbstractAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/ShowTabAbstractAction.java 2008-02-02 16:59:48 UTC (rev 598) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/ShowTabAbstractAction.java 2008-02-02 17:01:04 UTC (rev 599) @@ -18,23 +18,72 @@ * ##% */ package fr.cemagref.simexplorer.is.ui.swing.action; +import jaxx.runtime.JAXXObject; +import jaxx.runtime.builder.TabModel; + import java.awt.event.ActionEvent; /** - * Action pour afficher une tab + * Action pour afficher une tab. * * * @author chemit */ -public abstract class ShowTabAbstractAction extends SimExplorerAbstractTabAction { +public abstract class ShowTabAbstractAction<U extends JAXXObject, M extends TabModel> extends SimExplorerAbstractTabAction { - private static final long serialVersionUID = -4030583314708934811L; + protected abstract void initFirstUsage(U ui, M model); + protected abstract void initUI(U ui, M model); + + protected Boolean firstTime; + + + private static final long serialVersionUID = -2050956371415306760L; + protected ShowTabAbstractAction(String name) { super(name, "showTab"); } + @Override + protected boolean beforeAction(ActionEvent e) throws Exception { + + // mark the first use of the tab + firstTime = getUI() == null; + + return true; + } + + @Override protected void doAction(ActionEvent e) throws Exception { getTab().showTab(getTabContainer()); } + + @Override + protected void afterAction(ActionEvent e) throws Exception { + super.afterAction(e); + U ui = getTabUI(); + M model = getTabModel(); + if (firstTime) { + initFirstUsage(ui, model); + } + initUI(ui,model); + + } + + @Override + protected void clear() { + super.clear(); + firstTime = null; + } + + @SuppressWarnings({"unchecked"}) + protected U getTabUI() { + return (U) getUI(); + } + + @SuppressWarnings({"unchecked"}) + protected M getTabModel() { + return (M) getModel(); + } + }
participants (1)
-
tchemit@users.labs.libre-entreprise.org