Revision 2e3e007c

b/web_client/src/gr/grnet/pithos/web/client/Pithos.java
44 44
import gr.grnet.pithos.web.client.grouptree.Group;
45 45
import gr.grnet.pithos.web.client.grouptree.GroupTreeView;
46 46
import gr.grnet.pithos.web.client.grouptree.GroupTreeViewModel;
47
import gr.grnet.pithos.web.client.grouptree.User;
47 48
import gr.grnet.pithos.web.client.mysharedtree.MysharedTreeView;
48 49
import gr.grnet.pithos.web.client.mysharedtree.MysharedTreeViewModel;
49 50
import gr.grnet.pithos.web.client.othersharedtree.OtherSharedTreeView;
......
933 934
		account.addGroup(newGroup);
934 935
		groupTreeView.updateGroupNode(null);
935 936
	}
937

  
938
	public void removeGroup(Group group) {
939
		account.removeGroup(group);
940
		updateGroupsNode();
941
	}
936 942
}
b/web_client/src/gr/grnet/pithos/web/client/commands/DeleteGroupCommand.java
34 34
 */
35 35
package gr.grnet.pithos.web.client.commands;
36 36

  
37
import gr.grnet.pithos.web.client.MessagePanel.Images;
38 37
import gr.grnet.pithos.web.client.Pithos;
39 38
import gr.grnet.pithos.web.client.foldertree.Resource;
40 39
import gr.grnet.pithos.web.client.grouptree.Group;
......
78 77
				
79 78
				@Override
80 79
				public void onSuccess(Resource result) {
81
					app.updateGroupsNode();
80
					app.removeGroup(group);
82 81
				}
83 82
				
84 83
				@Override
b/web_client/src/gr/grnet/pithos/web/client/commands/RemoveUserCommand.java
93 93
		};
94 94
		updateGroup.setHeader("X-Auth-Token", app.getToken());
95 95
		String groupMembers = "";
96
		for (String u : group.getMembers())
97
			groupMembers += (u + ",");
96
		if (!group.getMembers().isEmpty()) {
97
			for (String u : group.getMembers())
98
				groupMembers += (u + ",");
99
		}
100
		else
101
			groupMembers = "~";
98 102
		updateGroup.setHeader("X-Account-Group-" + group.getName(), groupMembers);
99 103
		Scheduler.get().scheduleDeferred(updateGroup);
100 104
	}
b/web_client/src/gr/grnet/pithos/web/client/foldertree/AccountResource.java
235 235
	public void addGroup(Group newGroup) {
236 236
		groups.add(newGroup);
237 237
	}
238

  
239
	public void removeGroup(Group group) {
240
		groups.remove(group);
241
	}
238 242
}
b/web_client/src/gr/grnet/pithos/web/client/grouptree/GroupTreeView.java
63 63

  
64 64
    private void updateChildren(TreeNode node, Group group) {
65 65
        for (int i=0; i<node.getChildCount(); i++) {
66
            if (node.isChildOpen(i)) {
67
                if (group.equals(node.getChildValue(i))) {
68
                    node.setChildOpen(i, false, true);
69
                    node.setChildOpen(i, true, true);
70
                }
71
                else {
72
                    TreeNode n = node.setChildOpen(i, true);
73
                    updateChildren(n, group);
74
                }
66
            if (group.equals(node.getChildValue(i))) {
67
                node.setChildOpen(i, false, true);
68
                node.setChildOpen(i, true, true);
69
            }
70
            else {
71
                if (node.isChildOpen(i)) {
72
                	TreeNode n = node.setChildOpen(i, true);
73
                	updateChildren(n, group);
74
                }	
75 75
            }
76 76
        }
77 77
    }
......
136 136
    }
137 137

  
138 138
    public void updateGroupNode(Group group) {
139
    	model.updateGroupNode(group);
139 140
    	updateChildren(group);
140 141
    }
141 142
}
b/web_client/src/gr/grnet/pithos/web/client/grouptree/GroupTreeViewModel.java
131 131
            return new DefaultNodeInfo<String>(rootDataProvider, rootCell,  null, null);
132 132
        }
133 133
        else if (value instanceof String) {
134
        	groupsDataProvider.getList().clear();
134 135
        	groupsDataProvider.getList().addAll(app.getAccount().getGroups());
135 136
            return new DefaultNodeInfo<Group>(groupsDataProvider, groupCell, null, null);
136 137
        }
......
154 155
        }
155 156
        else if (o instanceof Group)
156 157
        	return ((Group) o).getMembers().isEmpty();
157
        else
158
        else if (o != null)
158 159
        	return true;
160
        return false;
159 161
    }
160 162
	
161 163
	public void initialize() {
162 164
    	rootDataProvider.getList().clear();
163 165
    	rootDataProvider.getList().add("Groups");
164 166
	}
167

  
168
	public void updateGroupNode(Group group) {
169
		if (group == null) {
170
			groupsDataProvider.getList().clear();
171
			groupsDataProvider.getList().addAll(app.getAccount().getGroups());
172
		}
173
		else {
174
			if (userDataProviderMap.get(group) == null) {
175
				userDataProviderMap.put(group, new ListDataProvider<User>());
176
			}
177
			final ListDataProvider<User> dataProvider = userDataProviderMap.get(group);
178
			dataProvider.getList().clear();
179
			for (String u : group.getMembers())
180
				dataProvider.getList().add(new User(u, group));
181
		}
182
	}
165 183
}

Also available in: Unified diff