Author: tchemit Date: 2008-12-03 16:23:49 +0000 (Wed, 03 Dec 2008) New Revision: 1055 Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeSelectionAdapter.java Log: fix bug when go back on a PER_UI strategy Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeSelectionAdapter.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeSelectionAdapter.java 2008-12-02 22:25:40 UTC (rev 1054) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeSelectionAdapter.java 2008-12-03 16:23:49 UTC (rev 1055) @@ -1,6 +1,7 @@ package jaxx.runtime.swing.navigation; import jaxx.runtime.JAXXAction; +import jaxx.runtime.JAXXContextEntryDef; import jaxx.runtime.JAXXObject; import jaxx.runtime.swing.navigation.NavigationTreeModel.NavigationTreeNode; import org.apache.commons.logging.Log; @@ -24,6 +25,8 @@ static public final String NAVIGATION_SELECTED_BEAN = "navigation-selected-bean"; + static public final JAXXContextEntryDef<Boolean> GO_BACK_DEF = JAXXContextEntryDef.newDef("goBack", Boolean.class); + /** defined the stategy of instanciation of ui */ public enum Strategy { /** instanciate a ui for a node */ @@ -125,6 +128,13 @@ return; } + Boolean goBack = GO_BACK_DEF.getContextValue(context); + if (goBack != null && goBack) { + // do not treate this, apsecial flag told us :) + GO_BACK_DEF.removeContextValue(context); + return; + } + try { NavigationTreeNode node = prepareNode(event); @@ -144,6 +154,7 @@ } if (!closeUI(event, component)) { + GO_BACK_DEF.setContextValue(context, Boolean.TRUE); // previous ui was not closed, so reselect the previous node in navigation goBackToPreviousNode(event, null); // and quit