Please post to the user list.
FYI I hope to turn my attention to many of the outstanding tree2
issues shortly. Stay tuned on the user list.
Sean
On 2/8/06, Michal Glowacki <[EMAIL PROTECTED]> wrote:
> Hello all,
>
> I've got question to Sean (well, maybe someone else could help me as
> well).
>
> I'm developing an admin console for my company. All employers are using
> browser with java script enabled so I decided to use tree2 with
> clientSideToggle set to "true". What my problem is, when I delete LAST
> subcategory in EXPANDED category node, I've ServletException about expanded
> leaf - well, it's logical, I deleted last subnode, so parent has become leaf
> and cannot be expanded. I using the following code (in my backing bean -
> actually it's PageBean 'cause I'm using Creator 2) to collapse path to
> deleted node and expand new path without deleted node. It doesn't work - I
> event tried to use toggleExpand() on this node - no results. Still error
> "Encountered node [0:0:0:2:3] + in illogical state ...". Could anyone give
> me a hint how to fix it? I believe the problem is that the old tree is
> somewhere cached and my methods called in backing bean doesn't update it.
> That's my code:
>
>
> public String removeButton_action() {
> categoryTree.setNodeId(selectedNodeId);
> if(!categoryTree.getNode().isLeaf()) {
> messageStaticText.setText("Selected category is not empty.
> Delete all subcategories first."
> );return null;
> }
> else if(selectedCategoryId == 0) {
> messageStaticText.setText("Category not selected or not
> exists.");
> return null;
> }
>
> javax.swing.JOptionPane confirmDialog = new
> javax.swing.JOptionPane();
> confirmDialog.grabFocus();
> int i = confirmDialog.showConfirmDialog(new javax.swing.JFrame(),
> "Are you sure you want to delete this category?", "Confirm",
> javax.swing.JOptionPane.YES_NO_OPTION);
> if(i ==
> javax.swing.JOptionPane.YES_OPTION) {
> String[] selectionPath =
> categoryTree.getPathInformation(selectedNodeId);
> for(int k=0;k<=selectionPath.length-1;k++) {
> System.out.println("selectionPath["+k+"]: " +
> selectionPath[k]);
> }
>
>
> categoryTree.collapsePath(selectionPath);
>
>
> // skiping last node as it has been deleted
> String[] newSelectionPath = new String[selectionPath.length-1];
> for(int j = 0; j <= selectionPath.length - 2; j++) {
> newSelectionPath[j] = selectionPath[j];
> }
>
> for(int k=0;k<=newSelectionPath.length-1;k++) {
> System.out.println("newSelectionPath["+k+"]: " +
> newSelectionPath[k]);
> }
>
>
> categoryTree.expandPath(newSelectionPath);
>
> categoryTree.setNodeId(newSelectionPath[newSelectionPath.length-1]);
> categoryTree.toggleExpanded();
>
> selectedCategoryStaticText.setText(
> (String)createSelectionPath(
> newSelectionPath[newSelectionPath.length-1]));
>
>
> categoryTree.setNodeId(newSelectionPath[newSelectionPath.length-1]);
>
> categoryTree.getDataModel();
>
> CategoryData.removeCategory(
> new Integer(selectedCategoryId));
> clearEditRemoveTabFields();
>
> selectedCategoryId = 0;
>
> return "delete";
> }
> else
> return null;
> }
>
>
> Michael
>
>
>