import java.util.List;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.ContextMenuEvent;
+import com.google.gwt.resources.client.ClientBundle;
+import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
-import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.MenuBar;
import com.google.gwt.user.client.ui.MenuItem;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.TreeItem;
-import com.google.gwt.user.client.ui.Widget;
/**
* The 'File Context' menu implementation.
*/
-public class FileContextMenu extends PopupPanel implements ClickListener {
+public class FileContextMenu extends PopupPanel implements ClickHandler {
/**
* The widget's images.
* The image bundle for this widget's images that reuses images defined in
* other menus.
*/
- public interface Images extends FileMenu.Images, EditMenu.Images {
+ public interface Images extends ClientBundle,FileMenu.Images, EditMenu.Images {
- @Resource("gr/ebs/gss/resources/mimetypes/document.png")
- AbstractImagePrototype fileContextMenu();
+ @Source("gr/ebs/gss/resources/mimetypes/document.png")
+ ImageResource fileContextMenu();
- @Resource("gr/ebs/gss/resources/doc_versions.png")
- AbstractImagePrototype versions();
+ @Source("gr/ebs/gss/resources/doc_versions.png")
+ ImageResource versions();
- @Resource("gr/ebs/gss/resources/group.png")
- AbstractImagePrototype sharing();
+ @Override
+ @Source("gr/ebs/gss/resources/group.png")
+ ImageResource sharing();
- @Resource("gr/ebs/gss/resources/border_remove.png")
- AbstractImagePrototype unselectAll();
- }
+ @Override
+ @Source("gr/ebs/gss/resources/border_remove.png")
+ ImageResource unselectAll();
+
+ @Source("gr/ebs/gss/resources/demo.png")
+ ImageResource viewImage();
+}
public static native String getDate()/*-{
return (new Date()).toUTCString();
// The command that does some validation before downloading a file.
Command downloadCmd = new Command() {
+ @Override
public void execute() {
hide();
GSS.get().getTopPanel().getFileMenu().preDownloadCheck();
}
};
- pasteItem = new MenuItem("<span>" + newImages.paste().getHTML() + " Paste</span>", true, new PasteCommand(this));
+ pasteItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.paste()).getHTML() + " Paste</span>", true, new PasteCommand(this));
MenuBar contextMenu = new MenuBar(true);
if (isEmpty) {
contextMenu.addItem(pasteItem);
if (GSS.get().getFolders().getCurrent() != null)
if (GSS.get().getFolders().isFileItem(GSS.get().getFolders().getCurrent()))
- contextMenu.addItem("<span>" + newImages.fileUpdate().getHTML() + " Upload</span>", true, new UploadFileCommand(this));
+ contextMenu.addItem("<span>" + AbstractImagePrototype.create(newImages.fileUpdate()).getHTML() + " Upload</span>", true, new UploadFileCommand(this));
else if (GSS.get().getFolders().isMySharedItem(GSS.get().getFolders().getCurrent()) || GSS .get()
.getFolders()
.isOthersSharedItem(GSS .get()
.getFolders()
.getCurrent()))
if(GSS.get().getFolders().getCurrent().getUserObject() instanceof FolderResource)
- contextMenu.addItem("<span>" + newImages.fileUpdate().getHTML() + " Upload</span>", true, new UploadFileCommand(this));
- contextMenu.addItem("<span>" + images.refresh().getHTML() + " Refresh</span>", true, new RefreshCommand(this, images));
+ contextMenu.addItem("<span>" + AbstractImagePrototype.create(newImages.fileUpdate()).getHTML() + " Upload</span>", true, new UploadFileCommand(this));
+ contextMenu.addItem("<span>" + AbstractImagePrototype.create(images.refresh()).getHTML() + " Refresh</span>", true, new RefreshCommand(this, images));
} else if (isTrash) {
- contextMenu.addItem("<span>" + newImages.versions().getHTML() + " Restore</span>", true, new RestoreTrashCommand(this));
- contextMenu.addItem("<span>" + newImages.delete().getHTML() + " Delete</span>", true, new DeleteCommand(this, images));
+ contextMenu.addItem("<span>" + AbstractImagePrototype.create(newImages.versions()).getHTML() + " Restore</span>", true, new RestoreTrashCommand(this));
+ contextMenu.addItem("<span>" + AbstractImagePrototype.create(newImages.delete()).getHTML() + " Delete</span>", true, new DeleteCommand(this, images));
} else {
final Command unselectAllCommand = new Command() {
+ @Override
public void execute() {
hide();
if(GSS.get().isFileListShowing())
GSS.get().getSearchResults().clearSelectedRows();
}
};
- cutItem = new MenuItem("<span>" + newImages.cut().getHTML() + " Cut</span>", true, new CutCommand(this));
- copyItem = new MenuItem("<span>" + newImages.copy().getHTML() + " Copy</span>", true, new CopyCommand(this));
+ cutItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + " Cut</span>", true, new CutCommand(this));
+ copyItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + " Copy</span>", true, new CopyCommand(this));
- updateItem = new MenuItem("<span>" + newImages.fileUpdate().getHTML() + " Upload</span>", true, new UploadFileCommand(this));
+ updateItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.fileUpdate()).getHTML() + " Upload</span>", true, new UploadFileCommand(this));
- trashItem = new MenuItem("<span>" + newImages.emptyTrash().getHTML() + " Move to Trash</span>", true, new ToTrashCommand(this));
- deleteItem = new MenuItem("<span>" + newImages.delete().getHTML() + " Delete</span>", true, new DeleteCommand(this, images));
+ trashItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.emptyTrash()).getHTML() + " Move to Trash</span>", true, new ToTrashCommand(this));
+ deleteItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.delete()).getHTML() + " Delete</span>", true, new DeleteCommand(this, images));
- sharingItem = new MenuItem("<span>" + newImages.sharing().getHTML() + " Sharing</span>", true, new PropertiesCommand(this, images, 1));
- propItem = new MenuItem("<span>" + newImages.viewText().getHTML() + " Properties</span>", true, new PropertiesCommand(this, images, 0));
+ sharingItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + " Sharing</span>", true, new PropertiesCommand(this, images, 1));
+ propItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + " Properties</span>", true, new PropertiesCommand(this, images, 0));
TreeItem currentFolder = gss.getFolders().getCurrent();
if(currentFolder!=null && currentFolder.getUserObject() instanceof FolderResource)
contextMenu.addItem(updateItem);
String[] link = {"", ""};
gss.getTopPanel().getFileMenu().createDownloadLink(link, false);
- downloadItem = new MenuItem("<span>" + link[0] + newImages.download().getHTML() + " Download" + link[1] + "</span>", true, downloadCmd);
+ downloadItem = new MenuItem("<span>" + link[0] + AbstractImagePrototype.create(newImages.download()).getHTML() + " Download" + link[1] + "</span>", true, downloadCmd);
contextMenu.addItem(downloadItem);
gss.getTopPanel().getFileMenu().createDownloadLink(link, true);
- saveAsItem = new MenuItem("<span>" + link[0] + newImages.download().getHTML() + " Save As" + link[1] + "</span>", true, downloadCmd);
+ saveAsItem = new MenuItem("<span>" + link[0] + AbstractImagePrototype.create(newImages.download()).getHTML() + " Save As" + link[1] + "</span>", true, downloadCmd);
contextMenu.addItem(saveAsItem);
contextMenu.addItem(cutItem);
contextMenu.addItem(copyItem);
if(currentFolder!=null && currentFolder.getUserObject() instanceof FolderResource)
contextMenu.addItem(pasteItem);
- contextMenu.addItem("<span>" + images.unselectAll().getHTML() + " Unselect</span>", true, unselectAllCommand);
+ contextMenu.addItem("<span>" + AbstractImagePrototype.create(images.unselectAll()).getHTML() + " Unselect</span>", true, unselectAllCommand);
contextMenu.addItem(trashItem);
contextMenu.addItem(deleteItem);
- contextMenu.addItem("<span>" + images.refresh().getHTML() + " Refresh</span>", true, new RefreshCommand(this, images));
+ contextMenu.addItem("<span>" + AbstractImagePrototype.create(images.refresh()).getHTML() + " Refresh</span>", true, new RefreshCommand(this, images));
contextMenu.addItem(sharingItem);
contextMenu.addItem(propItem);
}
void onMultipleSelection() {
updateItem.setVisible(false);
- propItem.setVisible(false);
downloadItem.setVisible(false);
+ saveAsItem.setVisible(false);
sharingItem.setVisible(false);
}
-
- public void onClick(Widget sender) {
+ @Override
+ public void onClick(ClickEvent event) {
if (GSS.get().getCurrentSelection() != null)
if (GSS.get().getCurrentSelection() instanceof FileResource) {
FileResource res = (FileResource) GSS.get().getCurrentSelection();
menu = new FileContextMenu(images, true, false);
else
menu = new FileContextMenu(images, false, false);
- int left = sender.getAbsoluteLeft();
- int top = sender.getAbsoluteTop() + sender.getOffsetHeight();
+ int left = event.getRelativeElement().getAbsoluteLeft();
+ int top = event.getRelativeElement().getAbsoluteTop() + event.getRelativeElement().getOffsetHeight();
menu.setPopupPosition(left, top);
menu.show();
} else if (GSS.get().getCurrentSelection() instanceof List) {
menu = new FileContextMenu(images, false, false);
menu.onMultipleSelection();
}
- int left = sender.getAbsoluteLeft();
- int top = sender.getAbsoluteTop() + sender.getOffsetHeight();
+ int left = event.getRelativeElement().getAbsoluteLeft();
+ int top = event.getRelativeElement().getAbsoluteTop() + event.getRelativeElement().getOffsetHeight();
menu.setPopupPosition(left, top);
menu.show();
}
}
- public void onEvent(Event event) {
+
+ public void onContextEvent(ContextMenuEvent event) {
if (GSS.get().getCurrentSelection() != null)
if (GSS.get().getCurrentSelection() instanceof FileResource) {
FileResource res = (FileResource) GSS.get().getCurrentSelection();
menu = new FileContextMenu(images, true, false);
else
menu = new FileContextMenu(images, false, false);
+ int left = event.getNativeEvent().getClientX();
+ int top = event.getNativeEvent().getClientY();
+ menu.setPopupPosition(left, top);
+ menu.show();
+
+ } else if (GSS.get().getCurrentSelection() instanceof List) {
+ FileContextMenu menu;
+ if (GSS.get().getFolders().isTrashItem(GSS.get().getFolders().getCurrent()))
+ menu = new FileContextMenu(images, true, false);
+ else {
+ menu = new FileContextMenu(images, false, false);
+ menu.onMultipleSelection();
+ }
+ int left = event.getNativeEvent().getClientX();
+ int top = event.getNativeEvent().getClientY();
+ menu.setPopupPosition(left, top);
+ menu.show();
+ }
+ }
+
+ public FileContextMenu onEvent(Event event) {
+ FileContextMenu menu=null;
+ if (GSS.get().getCurrentSelection() != null)
+ if (GSS.get().getCurrentSelection() instanceof FileResource) {
+ FileResource res = (FileResource) GSS.get().getCurrentSelection();
+
+ if (res.isDeleted())
+ menu = new FileContextMenu(images, true, false);
+ else
+ menu = new FileContextMenu(images, false, false);
int left = event.getClientX();
int top = event.getClientY();
menu.setPopupPosition(left, top);
menu.show();
} else if (GSS.get().getCurrentSelection() instanceof List) {
- FileContextMenu menu;
+
if (GSS.get().getFolders().isTrashItem(GSS.get().getFolders().getCurrent()))
menu = new FileContextMenu(images, true, false);
else {
menu.setPopupPosition(left, top);
menu.show();
}
+ return menu;
}
- public void onEmptyEvent(Event event) {
- FileContextMenu menu;
+ public FileContextMenu onEmptyEvent(Event event) {
+ FileContextMenu menu=null;
if (GSS.get().getFolders().isTrashItem(GSS.get().getFolders().getCurrent()))
menu = new FileContextMenu(images, true, true);
else if(((DnDTreeItem)GSS.get().getFolders().getCurrent()).getFolderResource() != null)
menu = new FileContextMenu(images, false, true);
- else return;
+ else return menu;
int left = event.getClientX();
int top = event.getClientY();
menu.setPopupPosition(left, top);
menu.show();
+ return menu;
}
+
+
}