X-Git-Url: https://code.grnet.gr/git/pithos/blobdiff_plain/5c6b2883c2651e310563773a655d12600c6a059a..c3cf7286a71489b56e28c33cd446ef1f1c80e271:/src/gr/ebs/gss/client/Groups.java diff --git a/src/gr/ebs/gss/client/Groups.java b/src/gr/ebs/gss/client/Groups.java index 340bfcc..cab515d 100644 --- a/src/gr/ebs/gss/client/Groups.java +++ b/src/gr/ebs/gss/client/Groups.java @@ -27,6 +27,7 @@ import gr.ebs.gss.client.rest.resource.GroupsResource; import java.util.List; import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.event.dom.client.ContextMenuEvent; import com.google.gwt.event.dom.client.ContextMenuHandler; import com.google.gwt.event.logical.shared.OpenEvent; @@ -35,6 +36,7 @@ import com.google.gwt.event.logical.shared.SelectionEvent; import com.google.gwt.event.logical.shared.SelectionHandler; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.DeferredCommand; import com.google.gwt.user.client.Event; import com.google.gwt.user.client.ui.AbstractImagePrototype; @@ -62,14 +64,11 @@ public class Groups extends Composite implements SelectionHandler, OpenHandler { @Source("gr/ebs/gss/resources/groupevent.png") ImageResource groupImage(); + @Override @Source("gr/ebs/gss/resources/editdelete.png") ImageResource delete(); - } - private boolean ctrlKeyPressed = false; - - private boolean leftClicked = false; - private boolean rightClicked = false; + } /** * cached latest group selection (for selecting and expanding on refresh) @@ -92,18 +91,12 @@ public class Groups extends Composite implements SelectionHandler, OpenHandler { private TreeItem previous; /** - * A cached copy of the currently changed group widget. - */ - private TreeItem changed; - - /** * The widget's image bundle. */ private final Images images; private GroupContextMenu menu; - private boolean showMenu=false; /** * Constructs a new groups widget with a bundle of images. * @@ -119,10 +112,8 @@ public class Groups extends Composite implements SelectionHandler, OpenHandler { @Override public void onContextMenu(ContextMenuEvent event) { if(current==null) return; - int left = current.getAbsoluteLeft() + 40; int top = current.getAbsoluteTop() + 20; - GWT.log("SHOWING POPUP", null); showPopup(left, top); } @@ -143,19 +134,20 @@ public class Groups extends Composite implements SelectionHandler, OpenHandler { * user. */ public void updateGroups() { - GetCommand gg = new GetCommand(GroupsResource.class, GSS.get().getCurrentUserResource().getGroupsPath()){ + GetCommand gg = new GetCommand(GroupsResource.class, GSS.get().getCurrentUserResource().getGroupsPath(),null){ @Override public void onComplete() { GroupsResource res = getResult(); - MultipleGetCommand ga = new MultipleGetCommand(GroupResource.class, res.getGroupPaths().toArray(new String[]{})){ + MultipleGetCommand ga = new MultipleGetCommand(GroupResource.class, res.getGroupPaths().toArray(new String[]{}), null){ @Override public void onComplete() { List groupList = getResult(); tree.clear(); for (int i = 0; i < groupList.size(); i++) { - final TreeItem item = new TreeItem(imageItemHTML(images.groupImage(), groupList.get(i).getName())); + final TreeItem item = new TreeItem(); + item.setWidget(imageItemHTML(images.groupImage(), groupList.get(i).getName(),item)); item.setUserObject(groupList.get(i)); tree.addItem(item); updateUsers(item); @@ -200,7 +192,8 @@ public class Groups extends Composite implements SelectionHandler, OpenHandler { * @return the new tree item */ private TreeItem addImageItem(final TreeItem parent, final String title, final ImageResource imageProto) { - final TreeItem item = new TreeItem(imageItemHTML(imageProto, title)); + final TreeItem item = new TreeItem(); + item.setWidget(imageItemHTML(imageProto, title,item)); parent.addItem(item); return item; } @@ -212,8 +205,21 @@ public class Groups extends Composite implements SelectionHandler, OpenHandler { * @param title the title of the item * @return the resultant HTML */ - private HTML imageItemHTML(final ImageResource imageProto, final String title) { - final HTML link = new HTML("" + "" + AbstractImagePrototype.create(imageProto).getHTML() + " " + title + "" + ""); + private HTML imageItemHTML(final ImageResource imageProto, final String title,final TreeItem item) { + final HTML link = new HTML("" + "" + AbstractImagePrototype.create(imageProto).getHTML() + " " + title + "" + ""){ + @Override + public void onBrowserEvent(Event event) { + switch (DOM.eventGetType(event)) { + case Event.ONMOUSEDOWN: + if (DOM.eventGetButton(event) == NativeEvent.BUTTON_RIGHT || DOM.eventGetButton(event) == NativeEvent.BUTTON_LEFT) + onSelection(item); + break; + } + super.onBrowserEvent(event); + + } + }; + link.sinkEvents(Event.ONMOUSEDOWN); return link; } @@ -227,7 +233,6 @@ public class Groups extends Composite implements SelectionHandler, OpenHandler { menu.hide(); menu = new GroupContextMenu(images); menu.setPopupPosition(x, y); - showMenu=false; menu.show(); } @@ -244,7 +249,7 @@ public class Groups extends Composite implements SelectionHandler, OpenHandler { void updateUsers(final TreeItem groupItem) { if(groupItem.getUserObject() instanceof GroupResource){ GroupResource res = (GroupResource) groupItem.getUserObject(); - MultipleGetCommand gu = new MultipleGetCommand(GroupUserResource.class, res.getUserPaths().toArray(new String[]{})){ + MultipleGetCommand gu = new MultipleGetCommand(GroupUserResource.class, res.getUserPaths().toArray(new String[]{}), null){ @Override public void onComplete() { List users = getResult(); @@ -294,15 +299,6 @@ public class Groups extends Composite implements SelectionHandler, OpenHandler { } /** - * Modify the changed. - * - * @param newChanged the changed to set - */ - private void setChanged(final TreeItem newChanged) { - changed = newChanged; - } - - /** * Retrieve the previous. * * @return the previous @@ -354,8 +350,6 @@ public class Groups extends Composite implements SelectionHandler, OpenHandler { @Override public void onOpen(OpenEvent event) { final TreeItem item = (TreeItem) event.getTarget(); - setChanged(item); updateUsers(item); - } }