Revision 7c02238e src/gr/grnet/pithos/web/client/Pithos.java

b/src/gr/grnet/pithos/web/client/Pithos.java
34 34
 */
35 35
package gr.grnet.pithos.web.client;
36 36

  
37
import gr.grnet.pithos.web.client.commands.NewFolderCommand;
38
import gr.grnet.pithos.web.client.commands.PropertiesCommand;
39 37
import gr.grnet.pithos.web.client.commands.UploadFileCommand;
40 38
import gr.grnet.pithos.web.client.foldertree.AccountResource;
41 39
import gr.grnet.pithos.web.client.foldertree.File;
......
67 65
import com.google.gwt.core.client.GWT;
68 66
import com.google.gwt.core.client.Scheduler;
69 67
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
70
import com.google.gwt.dom.client.Style.Display;
71 68
import com.google.gwt.event.dom.client.ClickEvent;
72 69
import com.google.gwt.event.dom.client.ClickHandler;
73 70
import com.google.gwt.event.logical.shared.ResizeEvent;
......
92 89
import com.google.gwt.user.client.History;
93 90
import com.google.gwt.user.client.Window;
94 91
import com.google.gwt.user.client.ui.AbstractImagePrototype;
95
import com.google.gwt.user.client.ui.Anchor;
96 92
import com.google.gwt.user.client.ui.Button;
97 93
import com.google.gwt.user.client.ui.Composite;
98
import com.google.gwt.user.client.ui.FlowPanel;
99 94
import com.google.gwt.user.client.ui.HTML;
100 95
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
101 96
import com.google.gwt.user.client.ui.HasVerticalAlignment;
......
271 266
    
272 267
    private HTML numOfFiles;
273 268
    
274
    private Anchor refreshButton;
275

  
276
    private Anchor toolsButton;
277

  
278 269
	@Override
279 270
	public void onModuleLoad() {
280 271
		if (parseUserCredentials())
......
319 310
        header.setCellHorizontalAlignment(messagePanel, HasHorizontalAlignment.ALIGN_CENTER);
320 311
        header.setCellVerticalAlignment(messagePanel, HasVerticalAlignment.ALIGN_MIDDLE);
321 312

  
322
        FlowPanel toolbar = new FlowPanel();
323
        toolbar.getElement().setId("toolbar");
324
        toolbar.addStyleName("clearfix");
325
        toolbar.getElement().getStyle().setDisplay(Display.BLOCK);
326

  
327
        Anchor newFolderButton = new Anchor("<span class='ico'></span><span class='title'>New folder</span>", true);
328
        newFolderButton.getElement().setId("newfolder-button");
329
        newFolderButton.addStyleName("pithos-toolbarItem");
330
        newFolderButton.addClickHandler(new ClickHandler() {
331
			
332
			@Override
333
			public void onClick(ClickEvent event) {
334
				Folder folder = getSelectedTree().getSelection();
335
				if (folder != null) {
336
			        Boolean[] permissions = folder.getPermissions().get(getUsername());
337
			    	boolean canWrite = folder.getOwner().equals(getUsername()) || (permissions!= null && permissions[1] != null && permissions[1]);
338
			    	
339
			    	if (!folder.isInTrash() && canWrite)
340
			    		new NewFolderCommand(Pithos.this, null, folder).execute();
341
				}
342
			}
343
		});
344
        toolbar.add(newFolderButton);
345

  
346
        Anchor shareFolderButton = new Anchor("<span class='ico'></span><span class='title'>Share folder</span>", true);
347
        shareFolderButton.getElement().setId("sharefolder-button");
348
        shareFolderButton.addStyleName("pithos-toolbarItem");
349
        shareFolderButton.addClickHandler(new ClickHandler() {
350
			
351
			@Override
352
			public void onClick(ClickEvent event) {
353
				Folder folder = getSelectedTree().getSelection();
354
				if (folder != null) {
355
			        Boolean[] permissions = folder.getPermissions().get(getUsername());
356
			    	boolean canWrite = folder.getOwner().equals(getUsername()) || (permissions!= null && permissions[1] != null && permissions[1]);
357
			    	boolean isFolderTreeSelected = selectedTree.equals(getFolderTreeView());
358
			    	
359
			    	if (!folder.isInTrash() && canWrite && isFolderTreeSelected && !folder.isContainer())
360
			    		new PropertiesCommand(Pithos.this, null, folder, PropertiesCommand.PERMISSIONS).execute();
361
				}
362
			}
363
		});
364
        toolbar.add(shareFolderButton);
365

  
366
        refreshButton = new Anchor("<span class='ico'></span><span class='title'>Refresh</span>", true);
367
        refreshButton.getElement().setId("refresh-button");
368
        refreshButton.addStyleName("pithos-toolbarItem");
369
        refreshButton.addClickHandler(new ClickHandler() {
370
			
371
			@Override
372
			public void onClick(ClickEvent event) {
373
		    	boolean isFolderTreeSelected = selectedTree.equals(getFolderTreeView());
374
		    	boolean otherSharedTreeSelected = selectedTree.equals(getOtherSharedTreeView());
375
		    	Folder folder = getSelectedTree().getSelection();
376
		    	
377
		    	if (folder != null && (isFolderTreeSelected || otherSharedTreeSelected))
378
		    		updateFolder(folder, true, new Command() {
379
		    			
380
		    			@Override
381
		    			public void execute() {
382
		    				updateStatistics();
383
		    			}
384
		    		});
385
			}
386
		});
387
        toolbar.add(refreshButton);
388

  
389
        toolsButton = new Anchor("<span class='ico'></span><span class='title'>More...</span>", true);
390
        toolsButton.getElement().setId("tools-button");
391
        toolsButton.addStyleName("pithos-toolbarItem");
392
        toolsButton.addClickHandler(new ClickHandler() {
393
			
394
			@Override
395
			public void onClick(ClickEvent event) {
396
                ToolsMenu menu = new ToolsMenu(Pithos.this, images, getSelectedTree(), getSelectedTree().getSelection(), getFileList().getSelectedFiles());
397
                if (!menu.isEmpty()) {
398
		            menu.setPopupPosition(event.getClientX(), event.getClientY());
399
		            menu.show();
400
                }
401
			}
402
		});
403
        toolbar.add(toolsButton);
404
  
313
        final Toolbar toolbar = new Toolbar(this);
405 314
        header.add(toolbar);
406 315
        header.setCellHorizontalAlignment(toolbar, HasHorizontalAlignment.ALIGN_CENTER);
407 316
        header.setCellVerticalAlignment(toolbar, HasVerticalAlignment.ALIGN_MIDDLE);
......
440 349
            			}
441 350
            		});
442 351
                }
352
                toolbar.showRelevantButtons();
443 353
            }
444 354
        });
445 355
        selectionModels.add(folderTreeSelectionModel);

Also available in: Unified diff