- protected Map<String, Set<File>> sharedFiles = new HashMap<String, Set<File>>();
-
- private SingleSelectionModel<String> selectionModel;
-
- public GroupTreeViewModel(Pithos _app, SingleSelectionModel<String> selectionModel) {
- app = _app;
- this.selectionModel = selectionModel;
- }
-
- @Override
- public <T> NodeInfo<?> getNodeInfo(T value) {
- if (value == null) {
- rootDataProvider.getList().add("Groups");
- return new DefaultNodeInfo<String>(rootDataProvider, new TextCell(new SafeHtmlRenderer<String>() {
- @Override
- public SafeHtml render(String object) {
- SafeHtmlBuilder builder = new SafeHtmlBuilder();
- render(object, builder);
- return builder.toSafeHtml();
- }
-
- @Override
- public void render(String object, SafeHtmlBuilder builder) {
- String html = AbstractImagePrototype.create(GroupTreeView.images.groups()).getHTML();
- builder.appendHtmlConstant(html);
- builder.append(GroupTreeView.Templates.INSTANCE.nameSpan(object));
- }
-
- }), null, null);
- }
- else if (value instanceof String) {
- if (value.equals("Groups")) {
- //fetch groups
- return new DefaultNodeInfo<String>(groupsDataProvider, new TextCell(new SafeHtmlRenderer<String>() {
-
- @Override
- public SafeHtml render(String object) {
- SafeHtmlBuilder builder = new SafeHtmlBuilder();
- render(object, builder);
- return builder.toSafeHtml();
- }
-
- @Override
- public void render(String object, SafeHtmlBuilder builder) {
- String html = AbstractImagePrototype.create(GroupTreeView.images.group()).getHTML();
- builder.appendHtmlConstant(html);
- builder.append(GroupTreeView.Templates.INSTANCE.nameSpan(object));
- }
- }), selectionModel3, null);
- }
- String username = (String) value;
- if (userDataProviderMap.get(username) == null) {
- userDataProviderMap.put(username, new ListDataProvider<Folder>());
- }
- final ListDataProvider<Folder> dataProvider = userDataProviderMap.get(username);
- fetchSharedContainers(username, dataProvider);
- return new DefaultNodeInfo<Folder>(dataProvider, folderCell, selectionModel, null);
+ private Cell<String> rootCell = new AbstractCell<String>(ContextMenuEvent.getType().getName()) {
+
+ @Override
+ public void render(@SuppressWarnings("unused") Context context, String value, SafeHtmlBuilder sb) {
+ String html = AbstractImagePrototype.create(GroupTreeView.images.groups()).getHTML();
+ sb.appendHtmlConstant(html);
+ sb.append(Templates.INSTANCE.nameSpan(value));
+ }
+
+ @Override
+ public void onBrowserEvent(@SuppressWarnings("unused") Cell.Context context, @SuppressWarnings("unused") com.google.gwt.dom.client.Element parent, @SuppressWarnings("unused") String s, com.google.gwt.dom.client.NativeEvent event, @SuppressWarnings("unused") com.google.gwt.cell.client.ValueUpdater<String> valueUpdater) {
+ GroupTreeViewModel.this.rootSelectionModel.setSelected(s, true);
+ if (event.getType().equals(ContextMenuEvent.getType().getName())) {
+ GroupContextMenu menu = new GroupContextMenu(app, GroupTreeView.images, null);
+ menu.setPopupPosition(event.getClientX(), event.getClientY());
+ menu.show();
+ }