[Buix-commits] r1034 - lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation
Author: chemit Date: 2008-11-25 09:42:25 +0000 (Tue, 25 Nov 2008) New Revision: 1034 Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeSelectionAdapter.java lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationUtil.java Log: fix bugs on navigation Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java 2008-11-25 09:00:41 UTC (rev 1033) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java 2008-11-25 09:42:25 UTC (rev 1034) @@ -219,7 +219,7 @@ public Object getJAXXContextValue(JAXXContext context) throws InvocationTargetException, NoSuchMethodException, IllegalAccessException { Object result; - if (getJaxxContextEntryDef() != null && jaxxContextEntryPath==null) { + if (getJaxxContextEntryDef() != null && jaxxContextEntryPath == null) { // the node maps directly a value in context, with no jxpath resolving result = getJaxxContextEntryDef().getContextValue(context); return result; @@ -242,7 +242,14 @@ return null; } - if (this == parentNode && jaxxContextEntryPath == null) { + if (parentNode.jaxxContextEntryPath != null) { + // apply the jxpath on parentBean + JXPathContext jxcontext = JXPathContext.newContext(parentBean); + + parentBean = jxcontext.getValue(parentNode.jaxxContextEntryPath); + } + + if (this == parentNode) { // current node is the node matching the context entry value and no jxpath is found return parentBean; } 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-11-25 09:00:41 UTC (rev 1033) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeSelectionAdapter.java 2008-11-25 09:42:25 UTC (rev 1034) @@ -144,14 +144,16 @@ Object data = getNavigationTreeModel().getJAXXContextValue(context, path); if (log.isDebugEnabled()) { - log.debug("find data for contextPath <" + path + "> : " + data.getClass()); + log.debug("find data for contextPath <" + path + "> : " + (data == null ? null : data.getClass())); } + context.removeContextValue(Object.class,NAVIGATION_SELECTED_BEAN); + if (data != null) { context.setContextValue(data, NAVIGATION_SELECTED_BEAN); //todo should we not use this to avoid conflict in context ? context.setContextValue(data); - } + } if (newUI == null) { Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationUtil.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationUtil.java 2008-11-25 09:00:41 UTC (rev 1033) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/navigation/NavigationUtil.java 2008-11-25 09:42:25 UTC (rev 1034) @@ -25,8 +25,8 @@ return context.getContextValue(NavigationTreeNode.class, NavigationTreeSelectionAdapter.NAVIGATION_SELECTED_NODE); } - public static Object getSelectedBean(JAXXContext context) { - return context.getContextValue(Object.class, NavigationTreeSelectionAdapter.NAVIGATION_SELECTED_BEAN); + public static <O> O getSelectedBean(JAXXContext context,Class<O> clazz) { + return context.getContextValue(clazz, NavigationTreeSelectionAdapter.NAVIGATION_SELECTED_BEAN); } public static Object getContextValue(JAXXContext context, String contextKey, String navigationPath) throws InvocationTargetException, NoSuchMethodException, IllegalAccessException {
participants (1)
-
chemit@users.labs.libre-entreprise.org