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