Revision cf2dddff

b/web_client/src/gr/grnet/pithos/web/client/Clipboard.java
81 81
        folder = null;
82 82
        files = null;
83 83
    }
84

  
85
    public boolean isEmpty() {
86
        return (files == null || files.isEmpty()) && folder == null;
87
    }
88

  
89
    public boolean hasFiles() {
90
        return files != null && !files.isEmpty();
91
    }
84 92
}
b/web_client/src/gr/grnet/pithos/web/client/FileContextMenu.java
137 137
		images = newImages;
138 138
        MenuBar contextMenu = new MenuBar(true);
139 139

  
140
		pasteItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(GSS.get(), this, selectedFolder));
141
        contextMenu.addItem(pasteItem);
142

  
143
        MenuItem upload = new MenuItem("<span>" + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + "&nbsp;Upload</span>", true, new UploadFileCommand(this, selectedFolder));
144
        contextMenu.addItem(upload);
145

  
146
        MenuItem refresh = new MenuItem("<span>" + AbstractImagePrototype.create(images.refresh()).getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));
147
        contextMenu.addItem(refresh);
148

  
149
		if (isTrash) {
150
			MenuItem restore = new MenuItem("<span>" + AbstractImagePrototype.create(images.versions()).getHTML() + "&nbsp;Restore</span>", true, new RestoreTrashCommand(this));
151
			contextMenu.addItem(restore);
152

  
153
			MenuItem delete = new MenuItem("<span>" + AbstractImagePrototype.create(images.delete()).getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, null, images));
154
			contextMenu.addItem(delete);
155
		} else {
140
        if (GSS.get().getClipboard().hasFiles()) {
141
            pasteItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(GSS.get(), this, selectedFolder));
142
            contextMenu.addItem(pasteItem);
143
        }
144

  
145
//        MenuItem upload = new MenuItem("<span>" + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + "&nbsp;Upload</span>", true, new UploadFileCommand(this, selectedFolder));
146
//        contextMenu.addItem(upload);
147

  
148
//        MenuItem refresh = new MenuItem("<span>" + AbstractImagePrototype.create(images.refresh()).getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));
149
//        contextMenu.addItem(refresh);
150

  
151
//		if (isTrash) {
152
//			MenuItem restore = new MenuItem("<span>" + AbstractImagePrototype.create(images.versions()).getHTML() + "&nbsp;Restore</span>", true, new RestoreTrashCommand(this));
153
//			contextMenu.addItem(restore);
154
//
155
//			MenuItem delete = new MenuItem("<span>" + AbstractImagePrototype.create(images.delete()).getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, null, images));
156
//			contextMenu.addItem(delete);
157
//		} else {
156 158
			cutItem = new MenuItem("<span id='fileContextMenu.cut'>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + "&nbsp;Cut</span>", true, new CutCommand(GSS.get(), this, selectedFiles));
157 159
            contextMenu.addItem(cutItem);
158 160

  
......
165 167
			deleteItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.delete()).getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, selectedFiles, images));
166 168
            contextMenu.addItem(deleteItem);
167 169

  
168
			sharingItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, images, 1));
169
            contextMenu.addItem(sharingItem);
170
//			sharingItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, images, 1));
171
//            contextMenu.addItem(sharingItem);
170 172

  
171
			propItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, images, 0));
172
            contextMenu.addItem(propItem);
173
//			propItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, images, 0));
174
//            contextMenu.addItem(propItem);
173 175

  
174
			downloadItem = new MenuItem("<span><a class='hidden-link' href='" + GSS.get().getApiPath() + GSS.get().getUsername() + selectedFiles.get(0).getUri() + "?X-Auth-Token=" + GSS.get().getToken() + "' target='_blank'>" + AbstractImagePrototype.create(newImages.download()).getHTML() + " Download</a></span>", true, new Command() {
175
                @Override
176
                public void execute() {
177
                }
178
            });
179
			contextMenu.addItem(downloadItem);
176
//			downloadItem = new MenuItem("<span><a class='hidden-link' href='" + GSS.get().getApiPath() + GSS.get().getUsername() + selectedFiles.get(0).getUri() + "?X-Auth-Token=" + GSS.get().getToken() + "' target='_blank'>" + AbstractImagePrototype.create(newImages.download()).getHTML() + " Download</a></span>", true, new Command() {
177
//                @Override
178
//                public void execute() {
179
//                }
180
//            });
181
//			contextMenu.addItem(downloadItem);
180 182
			
181
            final Command unselectAllCommand = new Command() {
182

  
183
                @Override
184
                public void execute() {
185
                    hide();
186
                    if(GSS.get().isFileListShowing())
187
                        GSS.get().getFileList().clearSelectedRows();
188
                }
189
            };
190
			MenuItem unSelect = new MenuItem("<span>" + AbstractImagePrototype.create(images.unselectAll()).getHTML() + "&nbsp;Unselect</span>", true, unselectAllCommand);
191
			contextMenu.addItem(unSelect);
192

  
193
		}
183
//            final Command unselectAllCommand = new Command() {
184
//
185
//                @Override
186
//                public void execute() {
187
//                    hide();
188
//                    if(GSS.get().isFileListShowing())
189
//                        GSS.get().getFileList().clearSelectedRows();
190
//                }
191
//            };
192
//			MenuItem unSelect = new MenuItem("<span>" + AbstractImagePrototype.create(images.unselectAll()).getHTML() + "&nbsp;Unselect</span>", true, unselectAllCommand);
193
//			contextMenu.addItem(unSelect);
194

  
195
//		}
194 196
		add(contextMenu);
195

  
196
//		if (gss.getClipboard().hasFileItem())
197
//			pasteItem.setVisible(true);
198
//		else
199
//			pasteItem.setVisible(false);
200 197
	}
201 198
}
b/web_client/src/gr/grnet/pithos/web/client/FolderContextMenu.java
98 98
        MenuItem newFolder = new MenuItem("<span id = 'folderContextMenu.newFolder'>" + AbstractImagePrototype.create(newImages.folderNew()).getHTML() + "&nbsp;New Folder</span>", true, new NewFolderCommand(this, folder, images));
99 99
        contextMenu.addItem(newFolder);
100 100

  
101
        // do not show the copy & cut option for the user's root folder
102
        MenuItem cut = new MenuItem("<span id = 'folderContextMenu.cut'>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + "&nbsp;Cut</span>", true, new CutCommand(GSS.get(), this, folder));
103
        contextMenu.addItem(cut);
101
        if (!folder.isContainer()) {
102
            MenuItem cut = new MenuItem("<span id = 'folderContextMenu.cut'>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + "&nbsp;Cut</span>", true, new CutCommand(GSS.get(), this, folder));
103
            contextMenu.addItem(cut);
104
        }
104 105

  
105 106
        MenuItem copy = new MenuItem("<span id = 'folderContextMenu.copy'>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + "&nbsp;Copy</span>", true, new CopyCommand(GSS.get(), this, folder));
106 107
        contextMenu.addItem(copy);
107 108

  
108
        pasteItem = new MenuItem("<span id = 'folderContextMenu.paste'>" + AbstractImagePrototype.create(newImages.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(GSS.get(), this, folder));
109
        contextMenu.addItem(pasteItem);
109
        if (!GSS.get().getClipboard().isEmpty()) {
110
            pasteItem = new MenuItem("<span id = 'folderContextMenu.paste'>" + AbstractImagePrototype.create(newImages.paste()).getHTML() + "&nbsp;Paste</span>", true, new PasteCommand(GSS.get(), this, folder));
111
            contextMenu.addItem(pasteItem);
112
        }
110 113

  
111
        // do not show delete options for the user's root folder
112
        MenuItem moveToTrash = new MenuItem("<span id = 'folderContextMenu.moveToTrash'>" + AbstractImagePrototype.create(newImages.emptyTrash()).getHTML() + "&nbsp;Move to Trash</span>", true, new ToTrashCommand(GSS.get(), this, folder));
113
        contextMenu.addItem(moveToTrash);
114
        if (!folder.isContainer()) {
115
            MenuItem moveToTrash = new MenuItem("<span id = 'folderContextMenu.moveToTrash'>" + AbstractImagePrototype.create(newImages.emptyTrash()).getHTML() + "&nbsp;Move to Trash</span>", true, new ToTrashCommand(GSS.get(), this, folder));
116
            contextMenu.addItem(moveToTrash);
114 117

  
115
        MenuItem delete = new MenuItem("<span id = 'folderContextMenu.delete'>" + AbstractImagePrototype.create(newImages.delete()).getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, folder, newImages));
116
        contextMenu.addItem(delete);
118
            MenuItem delete = new MenuItem("<span id = 'folderContextMenu.delete'>" + AbstractImagePrototype.create(newImages.delete()).getHTML() + "&nbsp;Delete</span>", true, new DeleteCommand(this, folder, newImages));
119
            contextMenu.addItem(delete);
120
        }
117 121

  
118
        MenuItem refresh = new MenuItem("<span id = 'folderContextMenu.refresh'>" + AbstractImagePrototype.create(images.refresh()).getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));
119
        contextMenu.addItem(refresh);
122
//        MenuItem refresh = new MenuItem("<span id = 'folderContextMenu.refresh'>" + AbstractImagePrototype.create(images.refresh()).getHTML() + "&nbsp;Refresh</span>", true, new RefreshCommand(this, images));
123
//        contextMenu.addItem(refresh);
120 124

  
121
        MenuItem sharing = new MenuItem("<span id = 'folderContextMenu.sharing'>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, newImages, 1));
122
        contextMenu.addItem(sharing);
125
//        MenuItem sharing = new MenuItem("<span id = 'folderContextMenu.sharing'>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(this, newImages, 1));
126
//        contextMenu.addItem(sharing);
123 127

  
124
        MenuItem properties = new MenuItem("<span id = 'folderContextMenu.properties'>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, newImages, 0));
125
        contextMenu.addItem(properties);
128
//        MenuItem properties = new MenuItem("<span id = 'folderContextMenu.properties'>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(this, newImages, 0));
129
//        contextMenu.addItem(properties);
126 130

  
127 131
		add(contextMenu);
128 132
	}
b/web_client/src/gr/grnet/pithos/web/client/foldertree/Folder.java
233 233
    public boolean isInTrash() {
234 234
        return inTrash;
235 235
    }
236

  
237
    public boolean isContainer() {
238
        return parent == null;
239
    }
236 240
}

Also available in: Unified diff