Revision 54348648
b/src/gr/grnet/pithos/web/client/grouptree/GroupTreeViewModel.java | ||
---|---|---|
36 | 36 |
package gr.grnet.pithos.web.client.grouptree; |
37 | 37 |
|
38 | 38 |
import gr.grnet.pithos.web.client.Pithos; |
39 |
import gr.grnet.pithos.web.client.commands.CreateGroupCommand; |
|
39 | 40 |
import gr.grnet.pithos.web.client.foldertree.File; |
40 | 41 |
import gr.grnet.pithos.web.client.grouptree.GroupTreeView.Templates; |
41 | 42 |
|
42 | 43 |
import java.util.HashMap; |
43 | 44 |
import java.util.HashSet; |
44 | 45 |
import java.util.Map; |
45 |
import java.util.Set; |
|
46 | 46 |
|
47 | 47 |
import com.google.gwt.cell.client.AbstractCell; |
48 | 48 |
import com.google.gwt.cell.client.Cell; |
... | ... | |
69 | 69 |
|
70 | 70 |
@Override |
71 | 71 |
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) { |
72 |
GroupTreeViewModel.this.groupSelectionModel.setSelected(group, true); |
|
73 |
if (event.getType().equals(ContextMenuEvent.getType().getName())) { |
|
74 |
GroupContextMenu menu = new GroupContextMenu(app, GroupTreeView.images, group); |
|
75 |
menu.setPopupPosition(event.getClientX(), event.getClientY()); |
|
76 |
menu.show(); |
|
77 |
} |
|
72 |
if (!group.equals(createGroup)) { |
|
73 |
GroupTreeViewModel.this.groupSelectionModel.setSelected(group, true); |
|
74 |
if (event.getType().equals(ContextMenuEvent.getType().getName())) { |
|
75 |
GroupContextMenu menu = new GroupContextMenu(app, GroupTreeView.images, group); |
|
76 |
menu.setPopupPosition(event.getClientX(), event.getClientY()); |
|
77 |
menu.show(); |
|
78 |
} |
|
79 |
} |
|
78 | 80 |
} |
79 | 81 |
}; |
80 | 82 |
|
... | ... | |
104 | 106 |
|
105 | 107 |
SingleSelectionModel<Group> groupSelectionModel; |
106 | 108 |
SingleSelectionModel<User> userSelectionModel; |
109 |
|
|
110 |
final Group createGroup = new Group("Create new group..."); |
|
107 | 111 |
|
108 | 112 |
public GroupTreeViewModel(Pithos _app) { |
109 | 113 |
app = _app; |
... | ... | |
114 | 118 |
|
115 | 119 |
@Override |
116 | 120 |
public void onSelectionChange(SelectionChangeEvent event) { |
117 |
if (groupSelectionModel.getSelectedObject() != null) { |
|
121 |
Group selected = groupSelectionModel.getSelectedObject(); |
|
122 |
if (selected != null) { |
|
118 | 123 |
app.deselectOthers(app.getGroupTreeView(), groupSelectionModel); |
119 | 124 |
app.showFiles(new HashSet<File>()); |
120 | 125 |
app.showRelevantToolbarButtons(); |
126 |
if (selected.equals(createGroup)) { |
|
127 |
new CreateGroupCommand(app, null).execute(); |
|
128 |
groupSelectionModel.setSelected(createGroup, false); |
|
129 |
} |
|
121 | 130 |
} |
122 | 131 |
else { |
123 | 132 |
if (app.getSelectedTree().equals(app.getGroupTreeView())) |
... | ... | |
154 | 163 |
if (value == null) { |
155 | 164 |
groupsDataProvider.getList().clear(); |
156 | 165 |
groupsDataProvider.getList().addAll(app.getAccount().getGroups()); |
157 |
groupsDataProvider.getList().add(new Group("Create new group..."));
|
|
166 |
groupsDataProvider.getList().add(createGroup);
|
|
158 | 167 |
return new DefaultNodeInfo<Group>(groupsDataProvider, groupCell, groupSelectionModel, null); |
159 | 168 |
} |
160 | 169 |
Group g = (Group) value; |
... | ... | |
182 | 191 |
if (group == null) { |
183 | 192 |
groupsDataProvider.getList().clear(); |
184 | 193 |
groupsDataProvider.getList().addAll(app.getAccount().getGroups()); |
185 |
groupsDataProvider.getList().add(new Group("Create new group..."));
|
|
194 |
groupsDataProvider.getList().add(createGroup);
|
|
186 | 195 |
} |
187 | 196 |
else { |
188 | 197 |
if (userDataProviderMap.get(group) == null) { |
Also available in: Unified diff