Author: tchemit Date: 2010-08-29 08:50:57 +0200 (Sun, 29 Aug 2010) New Revision: 2041 Url: http://nuiton.org/repositories/revision/jaxx/2041 Log: - Evolution #824: Can inject a TreeWillExpandListener to NavHelper - clean api and javadoc Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavBridge.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavHelper.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/package.html trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeBridge.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeHelper.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/treetable/NavTreeTableHelper.java Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavBridge.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavBridge.java 2010-08-29 06:40:54 UTC (rev 2040) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavBridge.java 2010-08-29 06:50:57 UTC (rev 2041) @@ -61,6 +61,8 @@ //-- Model modification //-------------------------------------------------------------------------- + void setModel(M delegate); + void setRoot(N node); void insertNodeInto(N newChild, N parent, int index); @@ -154,6 +156,5 @@ // * selection empty. // */ // N getSelectedNode(); - - void setModel(M delegate); + } Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavHelper.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavHelper.java 2010-08-29 06:40:54 UTC (rev 2040) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavHelper.java 2010-08-29 06:50:57 UTC (rev 2041) @@ -153,10 +153,10 @@ /** * Register a new root node. * <p/> - * If internal {@link #getModel()} does not exists, creates a new one from his given root {@code node}, - * otherwise just set the new root on the existing model. + * If internal {@link #getModel()} does not exists, creates a new one from + * his given root {@code node}, otherwise just set the new root on the + * existing model. * <p/> - * <p/> * <b>Note:</b> As a side-effect, the model will be keep in field {@link #getModel()} * and the {@link #treeModelListener} will be registred on this model. * @@ -164,10 +164,58 @@ * @param extraArgs extra args to create initial model * @return the new model */ - @SuppressWarnings({"unchecked"}) protected abstract M createModel(N node, Object... extraArgs); /** + * Obtains the {@link AbstractNavTreeCellRenderer} renderer of the + * registred tree. + * + * @return the renderer of the registred tree or null if no tree was + * registred nor the renderer is a {@link AbstractNavTreeCellRenderer}. + */ + public abstract AbstractNavTreeCellRenderer<M, N> getTreeCellRenderer(); + + /** + * Obtains the selected node of the registred tree. + * + * @return the selected tree or {@code null} if no registred tree nor + * selection empty. + */ + public abstract N getSelectedNode(); + + /** + * Obtains the selected nodes of the registred tree. + * + * @return the selected tree or {@code null} if no registred tree nor + * selection empty. + */ + public abstract List<N> getSelectedNodes(); + + /** + * Registers the given {@code tree} for this helper. + * <p/> + * <b>Note:</b> as a side-effect, it will register (if required) the + * {@link #expandListener} listener and (if required) the + * {@link #selectionListener}. + * <b>Note :</b> as a second side-effect, it will register the given {@code willExpandListener} (if not null) + * for the ui and do it <b>BEFORE</b> the {@link #expandListener}. The main + * idea here is to be able to block any expand (or collapse). + * + * @param tree the tree to register + * @param addExpandTreeListener a flag to add expand listener + * @param addOneClickSelectionListener a flag to expend when selection + * @param listener the optional selection listener to add + * @param willExpandListener the optional will expand listener to add <b>BEFORE</b> the default expand tree listener (if he was required) + * @since 2.1.2 + */ + public abstract void setUI(U tree, + boolean addExpandTreeListener, + boolean addOneClickSelectionListener, + TreeSelectionListener listener, + TreeWillExpandListener willExpandListener); + + + /** * The shared bridge. * <p/> * A helper deals with only ONE model (this one), becuase we add some @@ -449,7 +497,7 @@ } /** - * Obtains the jaxx delegate tree model + * Obtains the model. * * @return the internal tree model or {@code null} if none was created. */ @@ -458,9 +506,9 @@ } /** - * Obtains the jaxx delegate tree model + * Obtains the bridge . * - * @return the internal tree model or {@code null} if none was created. + * @return the internal bridge used by helper. */ protected B getBridge() { return bridge; @@ -483,31 +531,6 @@ } /** - * Obtains the {@link AbstractNavTreeCellRenderer} renderer of the - * registred tree. - * - * @return the renderer of the registred tree or null if no tree was - * registred nor the renderer is a {@link AbstractNavTreeCellRenderer}. - */ - public abstract AbstractNavTreeCellRenderer<M, N> getTreeCellRenderer(); - - /** - * Obtains the selected node of the registred tree. - * - * @return the selected tree or {@code null} if no registred tree nor - * selection empty. - */ - public abstract N getSelectedNode(); - - /** - * Obtains the selected nodes of the registred tree. - * - * @return the selected tree or {@code null} if no registred tree nor - * selection empty. - */ - public abstract List<N> getSelectedNodes(); - - /** * Obtains the path of ids fro the root node to the selected node on the * registred tree. * @@ -534,9 +557,10 @@ * @param tree the tree to register * @param addExpandTreeListener a flag to add expand listener */ - @SuppressWarnings({"unchecked"}) - public abstract void setUI(U tree, - boolean addExpandTreeListener); + public void setUI(U tree, + boolean addExpandTreeListener) { + setUI(tree, addExpandTreeListener, null); + } /** * Registers the given {@code tree} for this helper. @@ -548,11 +572,13 @@ * @param addExpandTreeListener a flag to add expand listener * @param listener the optional selection listener to add */ - @SuppressWarnings({"unchecked"}) - public abstract void setUI(U tree, - boolean addExpandTreeListener, - TreeSelectionListener listener); + public void setUI(U tree, + boolean addExpandTreeListener, + TreeSelectionListener listener) { + setUI(tree, addExpandTreeListener, true, listener); + } + /** * Registers the given {@code tree} for this helper. * <p/> @@ -565,11 +591,17 @@ * @param addOneClickSelectionListener a flag to expend when selection * @param listener the optional selection listener to add */ - @SuppressWarnings({"unchecked"}) - public abstract void setUI(U tree, + public void setUI(U tree, boolean addExpandTreeListener, boolean addOneClickSelectionListener, - TreeSelectionListener listener); + TreeSelectionListener listener) { + setUI(tree, + addExpandTreeListener, + addOneClickSelectionListener, + listener, + null + ); + } /** * Registers the {@code dataProvider} for the helper. Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/package.html =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/package.html 2010-08-29 06:40:54 UTC (rev 2040) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/package.html 2010-08-29 06:50:57 UTC (rev 2041) @@ -2,7 +2,7 @@ <body> <h1>JAXX - nav api</h1> -This package contains a little framework to build dynamci nodes. +This package contains a little framework to build dynamic nodes. Tow implementations are offers : @@ -26,14 +26,12 @@ <p> While previous api we had to load all the model in memory, now we can build - a - tree model with no data. + a tree model with no data. </p> <p> When the tree will need to expand a node, it will ask first in childs of - node - were loaded, if not, load them then give by hand to system. + node were loaded, if not, load them then give by hand to system. </p> <p> Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeBridge.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeBridge.java 2010-08-29 06:40:54 UTC (rev 2040) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeBridge.java 2010-08-29 06:50:57 UTC (rev 2041) @@ -127,7 +127,7 @@ } //-------------------------------------------------------------------------- - //-- Listeners notifications + //-- Model Listeners notifications //-------------------------------------------------------------------------- @Override @@ -235,72 +235,4 @@ return model.getListeners(listenerType); } - //-------------------------------------------------------------------------- - //-- UI - //-------------------------------------------------------------------------- - -// @Override -// public JTree getUI() { -// return ui; -// } -// -// @Override -// public void setUI(JTree ui) { -// this.ui = ui; -// } -// -// @Override -// public void scrollPathToVisible(TreePath path) { -// getUI().scrollPathToVisible(path); -// } -// -// @Override -// public void setSelectionPath(TreePath path) { -// getUI().setSelectionPath(path); -// } -// -// @Override -// public TreeSelectionModel getSelectionModel() { -// return getUI().getSelectionModel(); -// } -// -// @Override -// public boolean isExpanded(TreePath pathToExpand) { -// return getUI().isExpanded(pathToExpand); -// } -// -// @Override -// public void expandPath(TreePath pathToExpand) { -// getUI().expandPath(pathToExpand); -// } -// -// @SuppressWarnings({"unchecked"}) -// @Override -// public AbstractNavTreeCellRenderer<DefaultTreeModel, N> getTreeCellRenderer() { -// JTree t = getUI(); -// if (t == null) { -// return null; -// } -// TreeCellRenderer r = t.getCellRenderer(); -// if (r instanceof AbstractNavTreeCellRenderer) { -// return (AbstractNavTreeCellRenderer<DefaultTreeModel, N>) r; -// } -// return null; -// } -// -// @SuppressWarnings({"unchecked"}) -// @Override -// public N getSelectedNode() { -// JTree tree = getUI(); -// if (tree == null) { -// return null; -// } -// TreePath path = tree.getSelectionPath(); -// N node = null; -// if (path != null) { -// node = (N) path.getLastPathComponent(); -// } -// return node; -// } - } \ No newline at end of file Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeHelper.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeHelper.java 2010-08-29 06:40:54 UTC (rev 2040) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeHelper.java 2010-08-29 06:50:57 UTC (rev 2041) @@ -28,12 +28,12 @@ import javax.swing.JTree; import javax.swing.event.TreeSelectionListener; +import javax.swing.event.TreeWillExpandListener; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeCellRenderer; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; import java.util.ArrayList; -import java.util.Collections; import java.util.List; /** @@ -141,29 +141,38 @@ return nodes; } - @SuppressWarnings({"unchecked"}) - @Override - public void setUI(JTree tree, - boolean addExpandTreeListener) { - setUI(tree, addExpandTreeListener, null); - } +// @Override +// public void setUI(JTree tree, +// boolean addExpandTreeListener) { +// setUI(tree, addExpandTreeListener, null); +// } +// +// @Override +// public void setUI(JTree tree, +// boolean addExpandTreeListener, +// TreeSelectionListener listener) { +// +// setUI(tree, addExpandTreeListener, true, listener); +// } +// +// @Override +// public void setUI(JTree tree, +// boolean addExpandTreeListener, +// boolean addOneClickSelectionListener, +// TreeSelectionListener listener) { +// setUI(tree, addExpandTreeListener, addOneClickSelectionListener, listener, null); +// } - @SuppressWarnings({"unchecked"}) @Override public void setUI(JTree tree, boolean addExpandTreeListener, - TreeSelectionListener listener) { - - setUI(tree, addExpandTreeListener, true, listener); - } - - @SuppressWarnings({"unchecked"}) - @Override - public void setUI(JTree tree, - boolean addExpandTreeListener, boolean addOneClickSelectionListener, - TreeSelectionListener listener) { + TreeSelectionListener listener, + TreeWillExpandListener willExpandListener) { setUI(tree); + if (willExpandListener != null) { + tree.addTreeWillExpandListener(willExpandListener); + } if (addExpandTreeListener) { tree.addTreeWillExpandListener(expandListener); } Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/treetable/NavTreeTableHelper.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/treetable/NavTreeTableHelper.java 2010-08-29 06:40:54 UTC (rev 2040) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/treetable/NavTreeTableHelper.java 2010-08-29 06:50:57 UTC (rev 2041) @@ -29,6 +29,7 @@ import org.jdesktop.swingx.JXTreeTable; import javax.swing.event.TreeSelectionListener; +import javax.swing.event.TreeWillExpandListener; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; import java.util.ArrayList; @@ -126,38 +127,25 @@ } return nodes; } - - @SuppressWarnings({"unchecked"}) - @Override - public void setUI(JXTreeTable treeTable, - boolean addExpandTreeListener) { - setUI(treeTable, addExpandTreeListener, null); - } - @SuppressWarnings({"unchecked"}) @Override - public void setUI(JXTreeTable treeTable, + public void setUI(JXTreeTable tree, boolean addExpandTreeListener, - TreeSelectionListener listener) { - - setUI(treeTable, addExpandTreeListener, true, listener); - } - - @SuppressWarnings({"unchecked"}) - @Override - public void setUI(JXTreeTable treeTable, - boolean addExpandTreeListener, boolean addOneClickSelectionListener, - TreeSelectionListener listener) { - setUI(treeTable); + TreeSelectionListener listener, + TreeWillExpandListener willExpandListener) { + setUI(tree); + if (willExpandListener != null) { + tree.addTreeWillExpandListener(willExpandListener); + } if (addExpandTreeListener) { - treeTable.addTreeWillExpandListener(expandListener); + tree.addTreeWillExpandListener(expandListener); } if (listener != null) { - treeTable.addTreeSelectionListener(listener); + tree.addTreeSelectionListener(listener); } if (addOneClickSelectionListener) { - treeTable.addTreeSelectionListener(selectionListener); + tree.addTreeSelectionListener(selectionListener); } }
participants (1)
-
tchemit@users.nuiton.org