r1584 - branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation
Author: sletellier Date: 2009-10-23 16:30:44 +0200 (Fri, 23 Oct 2009) New Revision: 1584 Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHelper.java Log: Adding repaint node mathods Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHelper.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHelper.java 2009-10-22 10:57:40 UTC (rev 1583) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHelper.java 2009-10-23 14:30:44 UTC (rev 1584) @@ -1,6 +1,7 @@ package jaxx.runtime.swing.navigation; import java.lang.reflect.InvocationTargetException; +import java.util.Enumeration; import java.util.regex.Pattern; import javax.swing.JTree; import javax.swing.tree.TreePath; @@ -123,6 +124,63 @@ tree.scrollPathToVisible(path); } + /** + * Sélection du parent du noeud selectionne dans l'arbre de navigation. + * + * @param context le contexte applicatif + */ + public void gotoParentNode(JAXXContext context) { + + NavigationTreeNode node = getSelectedNode(context); + + if (node == null) { + // pas de noeud selectionne + throw new NullPointerException("no selected node in context"); + } + node = node.getParent(); + + selectNode(context, node); + } + + /** + * Demande une opération de repaint sur un noeud de l'arbre de navigation. + * + * <b>Note:</b> La descendance du noeud n'est pas repainte. + * + * @param context le contexte applicatif + * @param node le noeud à repaindre + */ + public void repaintNode(JAXXContext context, NavigationTreeNode node) { + repaintNode(context, node, false); + } + + /** + * Demande une opération de repaint sur un noeud de l'arbre de navigation. + * + * <b>Note:</b> La descendance du noeud est repainte si le paramètre + * <code>deep</code> est à <code>true</code>. + * + * @param context le contexte applicatif + * @param node le noeud à repaindre + * @param deep un flag pour activer la repainte de la descendance du noeud + */ + public void repaintNode(JAXXContext context, NavigationTreeNode node, boolean deep) { + NavigationTreeModel navigationModel = getSafeTreeModel(context); + if (log.isDebugEnabled()) { + log.debug(node); + } + navigationModel.nodeChanged(node); + if (deep) { + // repaint childs nodes + //todo we should only repaint necessary nodes ? + Enumeration<?> e = node.children(); + while (e.hasMoreElements()) { + NavigationTreeNode child = (NavigationTreeNode) e.nextElement(); + repaintNode(context, child, true); + } + } + } + public NavigationTreeModel getSafeTreeModel(JAXXContext context) throws NullPointerException { NavigationTreeModel treeModel = getTreeModel(context); if (treeModel == null) {
participants (1)
-
sletellier@users.nuiton.org