r1184 - in jaxx/trunk/jaxx-runtime-swing: . src/main/java/jaxx/runtime/swing/navigation
Author: tchemit Date: 2009-01-24 10:44:23 +0000 (Sat, 24 Jan 2009) New Revision: 1184 Modified: jaxx/trunk/jaxx-runtime-swing/changelog.txt jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeCellRenderer.java jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java Log: improve NavigationTreeNodeRenderer (now can customized node internalClass) Modified: jaxx/trunk/jaxx-runtime-swing/changelog.txt =================================================================== --- jaxx/trunk/jaxx-runtime-swing/changelog.txt 2009-01-24 10:36:55 UTC (rev 1183) +++ jaxx/trunk/jaxx-runtime-swing/changelog.txt 2009-01-24 10:44:23 UTC (rev 1184) @@ -1,8 +1,9 @@ 1.1 chemit 200901?? + * 20090123 [chemit] - improve NavigationTreeNodeRenderer (now can customized node internalClass) * 20090121 [letellier] - add some usefull methods in JAXXList and JAXXComboBox 1.0 chemit 20090111 - * 20090111 [chemit] - integrate new architecture to allow to have runtime code with NO link with compiler :) + * 20090111 [chemit] - integrate new architecture to allow to have runtime code with NO link with compiler :) * 20090105 [chemit] - improve CardLayout2 0.8 ??? 200812?? * 20081228 [chemit] - generify ClassDescriptor @@ -50,11 +51,11 @@ - make possible binding to the javaBean added properties - clean generated code - * 20081105 [chemit] introduce a CardLayout2 to extends awt CardLayout - introduce a NavigationTreeModel - introduce a Decorator to render Object - propagate constructor JAXXContext(JAXXContext) in JAXXObject generation - begin of rst documentation + * 20081105 [chemit] - introduce a CardLayout2 to extends awt CardLayout + - introduce a NavigationTreeModel + - introduce a Decorator to render Object + - propagate constructor JAXXContext(JAXXContext) in JAXXObject generation + - begin of rst documentation * 20081104 [chemit] can add extra beanInfoSearchPath in SwingInitializer * 20081104 [chemit] add jaxxContextImplementorClass in option to make possible use of other JAXXContext implementor. Modified: jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeCellRenderer.java =================================================================== --- jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeCellRenderer.java 2009-01-24 10:36:55 UTC (rev 1183) +++ jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeCellRenderer.java 2009-01-24 10:44:23 UTC (rev 1184) @@ -64,17 +64,30 @@ return delegate.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); } + /** + * @param value the value which should be a node + * @return the nodeRenderer attached to node via the {@link NavigationTreeNode#userObject}, + * or <code>null</code> if value is null, or value is not int good type. + */ protected NodeRenderer getNodeRenderer(Object value) { NodeRenderer render = null; - if (value != null && value instanceof NavigationTreeNode && ((NavigationTreeNode) value).getUserObject() instanceof NodeRenderer) { + if (value != null) { + NavigationTreeNode node = getNode(value); - // NodeRenderer used as userObject - NavigationTreeNode navigationTreeNode = (NavigationTreeNode) value; - - render = (NodeRenderer) navigationTreeNode.getUserObject(); + if (node != null && node.getUserObject() instanceof NodeRenderer) { + render = (NodeRenderer) node.getUserObject(); + } } return render; } + /** + * @param value the value which should be a node + * @return the cast {@link NavigationTreeNode}, or <code>null</code> if value is null. + */ + protected NavigationTreeNode getNode(Object value) { + return value instanceof NavigationTreeNode ? (NavigationTreeNode) value : null; + } + } Modified: jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java =================================================================== --- jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java 2009-01-24 10:36:55 UTC (rev 1183) +++ jaxx/trunk/jaxx-runtime-swing/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java 2009-01-24 10:44:23 UTC (rev 1184) @@ -243,6 +243,16 @@ /** renderer of the node */ protected NodeRenderer renderer; + /** + * The type of the related bean associated with the node. + * <p/> + * Note: This type is here to override the NodeRenderer internalClass, since + * we could need to override this data. + * <p/> + * If this property is let to null, then we will use the NodeRenderer one + */ + protected Class<?> internalClass; + public NavigationTreeNode(Object renderer, Object jaxxContextEntryDef, String navigationPath, @@ -313,6 +323,10 @@ this.jaxxClass = jaxxClass; } + public void setInternalClass(Class<?> internalClass) { + this.internalClass = internalClass; + } + public Class<? extends JAXXAction> getJaxxActionClass() { return jaxxActionClass; } @@ -338,7 +352,7 @@ } public Class<?> getInternalClass() { - return renderer.getInternalClass(); + return internalClass == null ? renderer.getInternalClass() : internalClass; } /** @return the fully context pathof the node from the root node to this. */
participants (1)
-
tchemit@users.labs.libre-entreprise.org