package gr.grnet.pithos.web.client.grouptree;
import gr.grnet.pithos.web.client.Pithos;
+import gr.grnet.pithos.web.client.commands.CreateGroupCommand;
import gr.grnet.pithos.web.client.foldertree.File;
import gr.grnet.pithos.web.client.grouptree.GroupTreeView.Templates;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
-import java.util.Set;
import com.google.gwt.cell.client.AbstractCell;
import com.google.gwt.cell.client.Cell;
@Override
public void onBrowserEvent(Cell.Context context, com.google.gwt.dom.client.Element parent, Group group, com.google.gwt.dom.client.NativeEvent event, com.google.gwt.cell.client.ValueUpdater<Group> valueUpdater) {
- GroupTreeViewModel.this.groupSelectionModel.setSelected(group, true);
- if (event.getType().equals(ContextMenuEvent.getType().getName())) {
- GroupContextMenu menu = new GroupContextMenu(app, GroupTreeView.images, group);
- menu.setPopupPosition(event.getClientX(), event.getClientY());
- menu.show();
- }
+ if (!group.equals(createGroup)) {
+ GroupTreeViewModel.this.groupSelectionModel.setSelected(group, true);
+ if (event.getType().equals(ContextMenuEvent.getType().getName())) {
+ GroupContextMenu menu = new GroupContextMenu(app, GroupTreeView.images, group);
+ menu.setPopupPosition(event.getClientX(), event.getClientY());
+ menu.show();
+ }
+ }
}
};
SingleSelectionModel<Group> groupSelectionModel;
SingleSelectionModel<User> userSelectionModel;
+
+ final Group createGroup = new Group("Create new group...");
public GroupTreeViewModel(Pithos _app) {
app = _app;
@Override
public void onSelectionChange(SelectionChangeEvent event) {
- if (groupSelectionModel.getSelectedObject() != null) {
+ Group selected = groupSelectionModel.getSelectedObject();
+ if (selected != null) {
app.deselectOthers(app.getGroupTreeView(), groupSelectionModel);
app.showFiles(new HashSet<File>());
app.showRelevantToolbarButtons();
+ if (selected.equals(createGroup)) {
+ new CreateGroupCommand(app, null).execute();
+ groupSelectionModel.setSelected(createGroup, false);
+ }
}
else {
if (app.getSelectedTree().equals(app.getGroupTreeView()))
if (value == null) {
groupsDataProvider.getList().clear();
groupsDataProvider.getList().addAll(app.getAccount().getGroups());
- groupsDataProvider.getList().add(new Group("Create new group..."));
+ groupsDataProvider.getList().add(createGroup);
return new DefaultNodeInfo<Group>(groupsDataProvider, groupCell, groupSelectionModel, null);
}
Group g = (Group) value;
if (group == null) {
groupsDataProvider.getList().clear();
groupsDataProvider.getList().addAll(app.getAccount().getGroups());
- groupsDataProvider.getList().add(new Group("Create new group..."));
+ groupsDataProvider.getList().add(createGroup);
}
else {
if (userDataProviderMap.get(group) == null) {