From 9db64e8c85bbb59b05fedd64b3922a7c03473809 Mon Sep 17 00:00:00 2001 From: Fotis Stamatelopoulos Date: Fri, 28 Aug 2009 17:27:04 +0300 Subject: [PATCH] properly select and expand the tree item (group) that was previously "selected", upon updating the tree --- src/gr/ebs/gss/client/Groups.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/gr/ebs/gss/client/Groups.java b/src/gr/ebs/gss/client/Groups.java index 9e1c552..c82adb7 100644 --- a/src/gr/ebs/gss/client/Groups.java +++ b/src/gr/ebs/gss/client/Groups.java @@ -67,6 +67,10 @@ public class Groups extends Composite implements TreeListener { private boolean rightClicked = false; + /** + * cached latest group selection (for selecting and expanding on refresh) + */ + private String selectedGroup = null; /** * The tree widget that displays the groups. @@ -163,7 +167,7 @@ public class Groups extends Composite implements TreeListener { final TreeItem item = new TreeItem(imageItemHTML(images.groupImage(), groupList.get(i).getName())); item.setUserObject(groupList.get(i)); tree.addItem(item); - updateUsers( item); + updateUsers(item); } } @@ -237,6 +241,11 @@ public class Groups extends Composite implements TreeListener { getCurrent().getWidget().addStyleName("gss-SelectedRow"); setPrevious(getCurrent()); GSS.get().setCurrentSelection(selected); + //cache the latest top level node (group) for selecting and expanding on refresh + if (item.getParentItem() == null) + selectedGroup = item.getText(); + else + selectedGroup = item.getParentItem().getText(); if (rightClicked) { int left = item.getAbsoluteLeft() + 40; int top = item.getAbsoluteTop() + 20; @@ -264,7 +273,7 @@ public class Groups extends Composite implements TreeListener { return; setChanged(item); - updateUsers( item); + updateUsers(item); } /** @@ -287,6 +296,10 @@ public class Groups extends Composite implements TreeListener { final TreeItem userItem = addImageItem(groupItem, users.get(i).getName() + " <" + users.get(i).getUsername() + ">", images.permUser()); userItem.setUserObject(users.get(i)); } + if (selectedGroup != null && groupItem.getText().equals(selectedGroup)) { + onTreeItemSelected(groupItem); + groupItem.setState(true); + } } @Override -- 1.7.10.4