properly select and expand the tree item (group) that was previously "selected",...
authorFotis Stamatelopoulos <fstamatelopoulos@gmail.com>
Fri, 28 Aug 2009 14:27:04 +0000 (17:27 +0300)
committerFotis Stamatelopoulos <fstamatelopoulos@gmail.com>
Fri, 28 Aug 2009 14:27:04 +0000 (17:27 +0300)
src/gr/ebs/gss/client/Groups.java

index 9e1c552..c82adb7 100644 (file)
@@ -67,6 +67,10 @@ public class Groups extends Composite implements TreeListener {
 \r
        private boolean rightClicked = false;\r
 \r
+       /**\r
+        * cached latest group selection (for selecting and expanding on refresh)\r
+        */\r
+       private String selectedGroup = null;\r
 \r
        /**\r
         * The tree widget that displays the groups.\r
@@ -163,7 +167,7 @@ public class Groups extends Composite implements TreeListener {
                                                        final TreeItem item = new TreeItem(imageItemHTML(images.groupImage(), groupList.get(i).getName()));\r
                                                        item.setUserObject(groupList.get(i));\r
                                                        tree.addItem(item);\r
-                                                       updateUsers( item);\r
+                                                       updateUsers(item);\r
                                                }\r
                                        }\r
 \r
@@ -237,6 +241,11 @@ public class Groups extends Composite implements TreeListener {
                getCurrent().getWidget().addStyleName("gss-SelectedRow");\r
                setPrevious(getCurrent());\r
                GSS.get().setCurrentSelection(selected);\r
+               //cache the latest top level node (group) for selecting and expanding on refresh\r
+               if (item.getParentItem() == null)\r
+                       selectedGroup = item.getText();\r
+               else\r
+                       selectedGroup = item.getParentItem().getText();\r
                if (rightClicked) {\r
                        int left = item.getAbsoluteLeft() + 40;\r
                        int top = item.getAbsoluteTop() + 20;\r
@@ -264,7 +273,7 @@ public class Groups extends Composite implements TreeListener {
                        return;\r
 \r
                setChanged(item);\r
-               updateUsers( item);\r
+               updateUsers(item);\r
        }\r
 \r
        /**\r
@@ -287,6 +296,10 @@ public class Groups extends Composite implements TreeListener {
                                                final TreeItem userItem = addImageItem(groupItem, users.get(i).getName() + " &lt;" + users.get(i).getUsername() + "&gt;", images.permUser());\r
                                                userItem.setUserObject(users.get(i));\r
                                        }\r
+                                       if (selectedGroup != null && groupItem.getText().equals(selectedGroup)) {\r
+                                               onTreeItemSelected(groupItem);\r
+                                               groupItem.setState(true);\r
+                                       }\r
                                }\r
 \r
                                @Override\r