Author: tchemit Date: 2009-11-03 22:02:20 +0100 (Tue, 03 Nov 2009) New Revision: 1625 Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeContextHelper.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandler.java Log: add selected-ui in context accessible via helper.getSelectedUi() Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeContextHelper.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeContextHelper.java 2009-11-02 07:52:03 UTC (rev 1624) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeContextHelper.java 2009-11-03 21:02:20 UTC (rev 1625) @@ -21,10 +21,13 @@ package jaxx.runtime.swing.navigation; import javax.swing.JTree; + import jaxx.runtime.JAXXContext; import jaxx.runtime.Util; import jaxx.runtime.context.JAXXContextEntryDef; +import java.awt.*; + /** * To help getting and setting navigation tree objects from a {@link JAXXContext}. * <p/> @@ -36,8 +39,9 @@ * <li>selected path : the navigation path of the selected node</li> * <li>selected node : the selected node</li> * <li>selected bean : the selected bean</li> + * <li>selected ui : the selected content ui</li> * </ul> - * + * <p/> * To make possible the use of more than one navigation tree system in a same * context, we <b>MUST</b> distinguish the context entries definition. For this * purpose, entries definition are normalized and prefixed by a unique {@link #prefix}. @@ -50,6 +54,7 @@ * <li>selected path : {@code prefix + "-selected-path"}</li> * <li>selected node : {@code prefix + "-selected-node"}</li> * <li>selected bean : {@code prefix + "-selected-bean"}</li> + * <li>selected ui: {@code prefix + "-selected-ui"}</li> * </ul> * * @author chemit @@ -64,6 +69,7 @@ protected JAXXContextEntryDef<NavigationTreeModel> treeModelContextEntry; protected JAXXContextEntryDef<NavigationTreeHandler> treeHandlerContextEntry; protected JAXXContextEntryDef<JTree> treeContextEntry; + protected JAXXContextEntryDef<Component> selectedUIContextEntry; public NavigationTreeContextHelper(String prefix) { this.prefix = prefix; @@ -73,6 +79,7 @@ selectedBeanContextEntry = Util.newContextEntryDef(prefix + "-selected-bean", Object.class); selectedNodeContextEntry = Util.newContextEntryDef(prefix + "-selected-node", NavigationTreeNode.class); selectedPathContextEntry = Util.newContextEntryDef(prefix + "-selected-path", String.class); + selectedUIContextEntry = Util.newContextEntryDef(prefix + "-selected-ui", Component.class); } public String getPrefix() { @@ -109,6 +116,11 @@ return r; } + public Component getSelectedUI(JAXXContext context) { + Component r = getSelectedUIContextEntry().getContextValue(context); + return r; + } + public void setTreeModel(JAXXContext context, NavigationTreeModel model) { getTreeModelContextEntry().setContextValue(context, model); } @@ -145,6 +157,14 @@ } } + public void setSelectedUI(JAXXContext context, Component ui) { + if (ui == null) { + getSelectedUIContextEntry().removeContextValue(context); + } else { + getSelectedUIContextEntry().setContextValue(context, ui); + } + } + protected JAXXContextEntryDef<NavigationTreeModel> getTreeModelContextEntry() { return treeModelContextEntry; } @@ -168,4 +188,8 @@ protected JAXXContextEntryDef<JTree> getTreeContextEntry() { return treeContextEntry; } + + public JAXXContextEntryDef<Component> getSelectedUIContextEntry() { + return selectedUIContextEntry; + } } Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandler.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandler.java 2009-11-02 07:52:03 UTC (rev 1624) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandler.java 2009-11-03 21:02:20 UTC (rev 1625) @@ -239,10 +239,16 @@ // save in context current node helper.setSelectedNode(ctxt, node); + // save in context current ui + helper.setSelectedUI(ctxt, newUI); + // really open the ui associated with the selected node + // init ui before to be visible if (newUI instanceof NavigationContentUI) { ((NavigationContentUI) newUI).openUI(node); } + + // set ui in content openUI(newUI, node); } catch (Exception e) { @@ -287,15 +293,11 @@ // remove previous selected bean //TODO-TC-20091004 should have an automatic clean context method while - // quiting a node ? helper.setSelectedBean(ctxt, null); if (data != null) { helper.setSelectedBean(ctxt, data); - //FIXME-TC-20091004 : should really remove this, this is not context safe - //todo should we not use this to avoid conflict in context ? - //context.setContextValue(data); } } }
participants (1)
-
tchemit@users.nuiton.org