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