Revision 42214d4a

b/src/gr/grnet/pithos/web/client/FolderContextMenu.java
37 37
import gr.grnet.pithos.web.client.commands.CopyCommand;
38 38
import gr.grnet.pithos.web.client.commands.CutCommand;
39 39
import gr.grnet.pithos.web.client.commands.DeleteCommand;
40
import gr.grnet.pithos.web.client.commands.EmptyTrashCommand;
40
import gr.grnet.pithos.web.client.commands.EmptyContainerCommand;
41 41
import gr.grnet.pithos.web.client.commands.NewFolderCommand;
42 42
import gr.grnet.pithos.web.client.commands.PasteCommand;
43 43
import gr.grnet.pithos.web.client.commands.PropertiesCommand;
......
135 135
			        contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + "&nbsp;Properties</span>", true, new PropertiesCommand(app, this, folder, PropertiesCommand.PROPERTIES)));
136 136
			        contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + "&nbsp;Sharing</span>", true, new PropertiesCommand(app, this, folder, PropertiesCommand.PERMISSIONS)));
137 137
			    }
138
			    
139
			    if (folder.isContainer()) {
140
	    			MenuItem emptyContainer = new MenuItem("<span>Empty Container</span>", true, new EmptyContainerCommand(app, this, folder));
141
	    			contextMenu.addItem(emptyContainer);
142
			    }
138 143
        	}
139 144
        }
140 145
        else {
......
146 151
		        contextMenu.addItem(delete);
147 152
        	}
148 153
        	else {
149
    			MenuItem emptyTrash = new MenuItem("<span>" + AbstractImagePrototype.create(images.emptyTrash()).getHTML() + "&nbsp;Empty Trash</span>", true, new EmptyTrashCommand(app, this));
154
    			MenuItem emptyTrash = new MenuItem("<span>" + AbstractImagePrototype.create(images.emptyTrash()).getHTML() + "&nbsp;Empty Trash</span>", true, new EmptyContainerCommand(app, this, folder));
150 155
    			contextMenu.addItem(emptyTrash);
151 156
        	}
152 157
        }
b/src/gr/grnet/pithos/web/client/Pithos.java
1342 1342
		fileList.selectByUrl(selectedUrls);
1343 1343
	}
1344 1344
	
1345
	public void emptyTrash() {
1346
		DeleteRequest delete = new DeleteRequest(getApiPath(), getUsername(), "/trash?delimiter=/") {
1345
	public void emptyContainer(final Folder container) {
1346
		String path = "/" + container.getName() + "?delimiter=/";
1347
		DeleteRequest delete = new DeleteRequest(getApiPath(), getUsername(), path) {
1347 1348
			
1348 1349
			@Override
1349 1350
			protected void onUnauthorized(Response response) {
......
1352 1353
			
1353 1354
			@Override
1354 1355
			public void onSuccess(Resource result) {
1355
				updateTrash(true, null);
1356
				updateFolder(container, true, null, true);
1356 1357
			}
1357 1358
			
1358 1359
			@Override
b/src/gr/grnet/pithos/web/client/ToolsMenu.java
40 40
import gr.grnet.pithos.web.client.commands.CutCommand;
41 41
import gr.grnet.pithos.web.client.commands.DeleteCommand;
42 42
import gr.grnet.pithos.web.client.commands.DeleteGroupCommand;
43
import gr.grnet.pithos.web.client.commands.EmptyTrashCommand;
43
import gr.grnet.pithos.web.client.commands.EmptyContainerCommand;
44 44
import gr.grnet.pithos.web.client.commands.PasteCommand;
45 45
import gr.grnet.pithos.web.client.commands.PropertiesCommand;
46 46
import gr.grnet.pithos.web.client.commands.RemoveUserCommand;
......
201 201
						}));
202 202
			        	empty = false;
203 203
			        }
204
			        if (isFolderTreeSelected && folder.isContainer()) {
205
		    			MenuItem emptyContainer = new MenuItem("<span>Empty Container</span>", true, new EmptyContainerCommand(app, this, folder));
206
		    			contextMenu.addItem(emptyContainer);
207
			        	empty = false;
208
			        }
204 209
	        	}
205 210
	        }
206 211
	        else {
......
217 222
		        	empty = false;
218 223
	        	}
219 224
	        	else {
220
	    			MenuItem emptyTrash = new MenuItem("<span>" + AbstractImagePrototype.create(images.emptyTrash()).getHTML() + "&nbsp;Empty Trash</span>", true, new EmptyTrashCommand(app, this));
225
	    			MenuItem emptyTrash = new MenuItem("<span>" + AbstractImagePrototype.create(images.emptyTrash()).getHTML() + "&nbsp;Empty Trash</span>", true, new EmptyContainerCommand(app, this, folder));
221 226
	    			contextMenu.addItem(emptyTrash);
222 227
		        	empty = false;
223 228
	        	}
b/src/gr/grnet/pithos/web/client/commands/EmptyContainerCommand.java
1
/*
2
 * Copyright 2011-2012 GRNET S.A. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or
5
 * without modification, are permitted provided that the following
6
 * conditions are met:
7
 *
8
 *   1. Redistributions of source code must retain the above
9
 *      copyright notice, this list of conditions and the following
10
 *      disclaimer.
11
 *
12
 *   2. Redistributions in binary form must reproduce the above
13
 *      copyright notice, this list of conditions and the following
14
 *      disclaimer in the documentation and/or other materials
15
 *      provided with the distribution.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
18
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
24
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
25
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
27
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
 * POSSIBILITY OF SUCH DAMAGE.
29
 *
30
 * The views and conclusions contained in the software and
31
 * documentation are those of the authors and should not be
32
 * interpreted as representing official policies, either expressed
33
 * or implied, of GRNET S.A.
34
 */
35
package gr.grnet.pithos.web.client.commands;
36

  
37
import gr.grnet.pithos.web.client.Pithos;
38
import gr.grnet.pithos.web.client.foldertree.File;
39
import gr.grnet.pithos.web.client.foldertree.Folder;
40
import gr.grnet.pithos.web.client.foldertree.Resource;
41
import gr.grnet.pithos.web.client.rest.DeleteRequest;
42
import gr.grnet.pithos.web.client.rest.GetRequest;
43
import gr.grnet.pithos.web.client.rest.RestException;
44

  
45
import java.util.Iterator;
46

  
47
import com.google.gwt.core.client.GWT;
48
import com.google.gwt.core.client.Scheduler;
49
import com.google.gwt.http.client.Response;
50
import com.google.gwt.http.client.URL;
51
import com.google.gwt.user.client.Command;
52
import com.google.gwt.user.client.ui.PopupPanel;
53

  
54

  
55
/**
56
 * Command to empty trash bin.
57
 */
58
public class EmptyContainerCommand implements Command{
59
	private PopupPanel containerPanel;
60

  
61
    Pithos app;
62
    
63
    Folder container;
64

  
65
	public EmptyContainerCommand(Pithos _app, PopupPanel _containerPanel, Folder _container){
66
        app = _app;
67
		containerPanel = _containerPanel;
68
		container = _container;
69
	}
70

  
71
	@Override
72
	public void execute() {
73
		if (containerPanel != null)
74
			containerPanel.hide();
75
		
76
		app.emptyContainer(container);
77
	}
78
}
/dev/null
1
/*
2
 * Copyright 2011-2012 GRNET S.A. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or
5
 * without modification, are permitted provided that the following
6
 * conditions are met:
7
 *
8
 *   1. Redistributions of source code must retain the above
9
 *      copyright notice, this list of conditions and the following
10
 *      disclaimer.
11
 *
12
 *   2. Redistributions in binary form must reproduce the above
13
 *      copyright notice, this list of conditions and the following
14
 *      disclaimer in the documentation and/or other materials
15
 *      provided with the distribution.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
18
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
24
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
25
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
27
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
 * POSSIBILITY OF SUCH DAMAGE.
29
 *
30
 * The views and conclusions contained in the software and
31
 * documentation are those of the authors and should not be
32
 * interpreted as representing official policies, either expressed
33
 * or implied, of GRNET S.A.
34
 */
35
package gr.grnet.pithos.web.client.commands;
36

  
37
import gr.grnet.pithos.web.client.Pithos;
38
import gr.grnet.pithos.web.client.foldertree.File;
39
import gr.grnet.pithos.web.client.foldertree.Folder;
40
import gr.grnet.pithos.web.client.foldertree.Resource;
41
import gr.grnet.pithos.web.client.rest.DeleteRequest;
42
import gr.grnet.pithos.web.client.rest.GetRequest;
43
import gr.grnet.pithos.web.client.rest.RestException;
44

  
45
import java.util.Iterator;
46

  
47
import com.google.gwt.core.client.GWT;
48
import com.google.gwt.core.client.Scheduler;
49
import com.google.gwt.http.client.Response;
50
import com.google.gwt.http.client.URL;
51
import com.google.gwt.user.client.Command;
52
import com.google.gwt.user.client.ui.PopupPanel;
53

  
54

  
55
/**
56
 * Command to empty trash bin.
57
 */
58
public class EmptyTrashCommand implements Command{
59
	private PopupPanel containerPanel;
60

  
61
    Pithos app;
62

  
63
	public EmptyTrashCommand(Pithos _app, PopupPanel _containerPanel){
64
        app = _app;
65
		containerPanel = _containerPanel;
66
	}
67

  
68
	@Override
69
	public void execute() {
70
		if (containerPanel != null)
71
			containerPanel.hide();
72
		
73
		app.emptyTrash();
74
	}
75
}

Also available in: Unified diff