import gr.grnet.pithos.web.client.grouptree.Group;
import gr.grnet.pithos.web.client.grouptree.GroupTreeView;
import gr.grnet.pithos.web.client.grouptree.GroupTreeViewModel;
+import gr.grnet.pithos.web.client.grouptree.User;
import gr.grnet.pithos.web.client.mysharedtree.MysharedTreeView;
import gr.grnet.pithos.web.client.mysharedtree.MysharedTreeViewModel;
import gr.grnet.pithos.web.client.othersharedtree.OtherSharedTreeView;
account.addGroup(newGroup);
groupTreeView.updateGroupNode(null);
}
+
+ public void removeGroup(Group group) {
+ account.removeGroup(group);
+ updateGroupsNode();
+ }
}
*/
package gr.grnet.pithos.web.client.commands;
-import gr.grnet.pithos.web.client.MessagePanel.Images;
import gr.grnet.pithos.web.client.Pithos;
import gr.grnet.pithos.web.client.foldertree.Resource;
import gr.grnet.pithos.web.client.grouptree.Group;
@Override
public void onSuccess(Resource result) {
- app.updateGroupsNode();
+ app.removeGroup(group);
}
@Override
};
updateGroup.setHeader("X-Auth-Token", app.getToken());
String groupMembers = "";
- for (String u : group.getMembers())
- groupMembers += (u + ",");
+ if (!group.getMembers().isEmpty()) {
+ for (String u : group.getMembers())
+ groupMembers += (u + ",");
+ }
+ else
+ groupMembers = "~";
updateGroup.setHeader("X-Account-Group-" + group.getName(), groupMembers);
Scheduler.get().scheduleDeferred(updateGroup);
}
public void addGroup(Group newGroup) {
groups.add(newGroup);
}
+
+ public void removeGroup(Group group) {
+ groups.remove(group);
+ }
}
private void updateChildren(TreeNode node, Group group) {
for (int i=0; i<node.getChildCount(); i++) {
- if (node.isChildOpen(i)) {
- if (group.equals(node.getChildValue(i))) {
- node.setChildOpen(i, false, true);
- node.setChildOpen(i, true, true);
- }
- else {
- TreeNode n = node.setChildOpen(i, true);
- updateChildren(n, group);
- }
+ if (group.equals(node.getChildValue(i))) {
+ node.setChildOpen(i, false, true);
+ node.setChildOpen(i, true, true);
+ }
+ else {
+ if (node.isChildOpen(i)) {
+ TreeNode n = node.setChildOpen(i, true);
+ updateChildren(n, group);
+ }
}
}
}
}
public void updateGroupNode(Group group) {
+ model.updateGroupNode(group);
updateChildren(group);
}
}
return new DefaultNodeInfo<String>(rootDataProvider, rootCell, null, null);
}
else if (value instanceof String) {
+ groupsDataProvider.getList().clear();
groupsDataProvider.getList().addAll(app.getAccount().getGroups());
return new DefaultNodeInfo<Group>(groupsDataProvider, groupCell, null, null);
}
}
else if (o instanceof Group)
return ((Group) o).getMembers().isEmpty();
- else
+ else if (o != null)
return true;
+ return false;
}
public void initialize() {
rootDataProvider.getList().clear();
rootDataProvider.getList().add("Groups");
}
+
+ public void updateGroupNode(Group group) {
+ if (group == null) {
+ groupsDataProvider.getList().clear();
+ groupsDataProvider.getList().addAll(app.getAccount().getGroups());
+ }
+ else {
+ if (userDataProviderMap.get(group) == null) {
+ userDataProviderMap.put(group, new ListDataProvider<User>());
+ }
+ final ListDataProvider<User> dataProvider = userDataProviderMap.get(group);
+ dataProvider.getList().clear();
+ for (String u : group.getMembers())
+ dataProvider.getList().add(new User(u, group));
+ }
+ }
}