From: Christos Stathis Date: Wed, 2 May 2012 14:42:08 +0000 (+0300) Subject: Added a special node for group creation in group tree (issue #2341) X-Git-Tag: 0.14rc1~126 X-Git-Url: https://code.grnet.gr/git/pithos-web-client/commitdiff_plain/5434864833f944b12bbbc86f6af0cfc9763a4f1c Added a special node for group creation in group tree (issue #2341) --- diff --git a/src/gr/grnet/pithos/web/client/grouptree/GroupTreeViewModel.java b/src/gr/grnet/pithos/web/client/grouptree/GroupTreeViewModel.java index baef54b..3648646 100644 --- a/src/gr/grnet/pithos/web/client/grouptree/GroupTreeViewModel.java +++ b/src/gr/grnet/pithos/web/client/grouptree/GroupTreeViewModel.java @@ -36,13 +36,13 @@ 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; @@ -69,12 +69,14 @@ public class GroupTreeViewModel implements TreeViewModel { @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 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(); + } + } } }; @@ -104,6 +106,8 @@ public class GroupTreeViewModel implements TreeViewModel { SingleSelectionModel groupSelectionModel; SingleSelectionModel userSelectionModel; + + final Group createGroup = new Group("Create new group..."); public GroupTreeViewModel(Pithos _app) { app = _app; @@ -114,10 +118,15 @@ public class GroupTreeViewModel implements TreeViewModel { @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()); app.showRelevantToolbarButtons(); + if (selected.equals(createGroup)) { + new CreateGroupCommand(app, null).execute(); + groupSelectionModel.setSelected(createGroup, false); + } } else { if (app.getSelectedTree().equals(app.getGroupTreeView())) @@ -154,7 +163,7 @@ public class GroupTreeViewModel implements TreeViewModel { 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(groupsDataProvider, groupCell, groupSelectionModel, null); } Group g = (Group) value; @@ -182,7 +191,7 @@ public class GroupTreeViewModel implements TreeViewModel { 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) {