import java.util.List;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+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.Widget;
+import com.google.gwt.user.client.ui.TreeItem;
/**
* The 'File Context' menu implementation.
*/
-public class FileContextMenu extends PopupPanel implements ClickListener {
+public class FileContextMenu extends PopupPanel implements ClickHandler {
/**
* The widget's images.
private MenuItem downloadItem;
+ private MenuItem saveAsItem;
+
/**
* 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();
+ @Source("gr/ebs/gss/resources/group.png")
+ ImageResource sharing();
- @Resource("gr/ebs/gss/resources/border_remove.png")
- AbstractImagePrototype unselectAll();
- }
+ @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 popup's constructor's argument is a boolean specifying that it
// auto-close itself when the user clicks outside of it.
super(true);
+ GSS gss = GSS.get();
setAnimationEnabled(true);
images = newImages;
}
};
- 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() {
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));
- contextMenu.addItem(updateItem);
+ TreeItem currentFolder = gss.getFolders().getCurrent();
+ if(currentFolder!=null && currentFolder.getUserObject() instanceof FolderResource)
+ contextMenu.addItem(updateItem);
String[] link = {"", ""};
- GSS.get().getTopPanel().getFileMenu().createDownloadLink(link);
- downloadItem = new MenuItem("<span>" + link[0] + newImages.download().getHTML() + " Download" + link[1] + "</span>", true, downloadCmd);
+ gss.getTopPanel().getFileMenu().createDownloadLink(link, false);
+ 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] + AbstractImagePrototype.create(newImages.download()).getHTML() + " Save As" + link[1] + "</span>", true, downloadCmd);
+ contextMenu.addItem(saveAsItem);
contextMenu.addItem(cutItem);
contextMenu.addItem(copyItem);
- contextMenu.addItem(pasteItem);
- contextMenu.addItem("<span>" + images.unselectAll().getHTML() + " Unselect</span>", true, unselectAllCommand);
+ if(currentFolder!=null && currentFolder.getUserObject() instanceof FolderResource)
+ contextMenu.addItem(pasteItem);
+ 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);
}
add(contextMenu);
- if (GSS.get().getClipboard().hasFileItem())
+ if (gss.getClipboard().hasFileItem())
pasteItem.setVisible(true);
else
pasteItem.setVisible(false);
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();
}
menu.setPopupPosition(left, top);
menu.show();
}
+
+
}