From: Fotis Stamatelopoulos Date: Fri, 28 Aug 2009 14:27:04 +0000 (+0300) Subject: properly select and expand the tree item (group) that was previously "selected",... X-Git-Tag: pithos/v0.7.8~323^2~14^2~345 X-Git-Url: https://code.grnet.gr/git/pithos/commitdiff_plain/9db64e8c85bbb59b05fedd64b3922a7c03473809 properly select and expand the tree item (group) that was previously "selected", upon updating the tree --- 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