X-Git-Url: https://code.grnet.gr/git/pithos/blobdiff_plain/4bf05cadf6d6717dd975d083d31bbeb7dd2d9946..7fac9334048078b87411068073cb2568a7cb6929:/src/gr/ebs/gss/client/FileList.java
diff --git a/src/gr/ebs/gss/client/FileList.java b/src/gr/ebs/gss/client/FileList.java
index db4a970..7cd33c1 100644
--- a/src/gr/ebs/gss/client/FileList.java
+++ b/src/gr/ebs/gss/client/FileList.java
@@ -44,6 +44,7 @@ import com.google.gwt.http.client.URL;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.ImageResource;
+import com.google.gwt.resources.client.ClientBundle.Source;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Event;
@@ -220,7 +221,7 @@ public class FileList extends Composite implements ClickHandler {
private HTML ownerLabel;
private HTML pathLabel;
-
+ private FileContextMenu menuShowing;
/**
* Construct the file list widget. This entails setting up the widget
* layout, fetching the number of files in the current folder from the
@@ -242,6 +243,8 @@ public class FileList extends Composite implements ClickHandler {
table.setCellSpacing(0);
table.setCellPadding(2);
table.setWidth("100%");
+
+ // Hook up events.
table.addClickHandler(new ClickHandler() {
@Override
@@ -251,6 +254,7 @@ public class FileList extends Composite implements ClickHandler {
onRowClicked(cell.getRowIndex(), true);
}
});
+
// Create the 'navigation' bar at the upper-right.
HorizontalPanel innerNavBar = new HorizontalPanel();
innerNavBar.setStyleName("gss-ListNavBar");
@@ -303,7 +307,6 @@ public class FileList extends Composite implements ClickHandler {
}
}
-
@Override
public void onBrowserEvent(Event event) {
if (DOM.eventGetType(event) == Event.ONMOUSEDOWN && DOM.eventGetButton(event) == NativeEvent.BUTTON_RIGHT){
@@ -326,20 +329,20 @@ public class FileList extends Composite implements ClickHandler {
if(!selectedRows.contains(ri-1))
onRowClicked(ri, false);
}
-
if (files == null || files.size() == 0) {
if (DOM.eventGetType(event) == Event.ONCONTEXTMENU && selectedRows.size() == 0) {
- FileContextMenu fm = new FileContextMenu(images, false, true);
- fm.onEmptyEvent(event);
+ menuShowing = new FileContextMenu(images, false, true);
+ menuShowing=menuShowing.onEmptyEvent(event);
}
return;
}
if (DOM.eventGetType(event) == Event.ONCONTEXTMENU && selectedRows.size() != 0) {
- FileContextMenu fm = new FileContextMenu(images, false, false);
- fm.onEvent(event);
+ GWT.log("*****GOING TO SHOW CONTEXT MENU ****", null);
+ menuShowing = new FileContextMenu(images, false, false);
+ menuShowing=menuShowing.onEvent(event);
} else if (DOM.eventGetType(event) == Event.ONCONTEXTMENU && selectedRows.size() == 0) {
- FileContextMenu fm = new FileContextMenu(images, false, true);
- fm.onEmptyEvent(event);
+ menuShowing = new FileContextMenu(images, false, true);
+ menuShowing=menuShowing.onEmptyEvent(event);
} else if (DOM.eventGetType(event) == Event.ONDBLCLICK)
if (getSelectedFiles().size() == 1) {
GSS app = GSS.get();
@@ -392,17 +395,20 @@ public class FileList extends Composite implements ClickHandler {
return;
if (clickShift) {
GWT.log("Row is: " + row + " fs: " + firstShift, null);
- if (firstShift == -1)
+ if (firstShift == -1){
firstShift = row;
+ makeRowDraggable(row);
+ }
else if (row > firstShift) {
clearSelectedRows();
for (int i = firstShift; i < row; i++) {
selectedRows.add(startIndex + i);
styleRow(i, true);
+ makeRowDraggable(i+1);
}
GSS.get().setCurrentSelection(getSelectedFiles());
contextMenu.setFiles(getSelectedFiles());
- makeRowDraggable(row);
+ //makeRowDraggable(row);
} else if (row != -1 && row == firstShift) {
selectedRows.add(row - 1);
styleRow(row, true);
@@ -410,6 +416,7 @@ public class FileList extends Composite implements ClickHandler {
GSS.get().setCurrentSelection(getSelectedFiles());
contextMenu.setFiles(getSelectedFiles());
makeRowDraggable(row);
+ makeRowDraggable(row+1);
} else if (row < firstShift) {
GWT.log("Row is:" + row + " fs:" + firstShift, null);
clearSelectedRows();
@@ -417,9 +424,10 @@ public class FileList extends Composite implements ClickHandler {
for (int i = firstShift; i >= row - 1; i--) {
selectedRows.add(startIndex + i);
styleRow(i, true);
+ makeRowDraggable(i+1);
}
GSS.get().setCurrentSelection(getSelectedFiles());
- makeRowDraggable(row);
+ //makeRowDraggable(row);
contextMenu.setFiles(getSelectedFiles());
}
} else if (row > 0)
@@ -437,7 +445,6 @@ public class FileList extends Composite implements ClickHandler {
@Override
public void onClick(ClickEvent event) {
sortFiles("name");
-
}
});
@@ -666,14 +673,17 @@ public class FileList extends Composite implements ClickHandler {
//add view image link for image files
String contentType = file.getContentType();
+ HTML nameHtml = null;
if (contentType.endsWith("png") || contentType.endsWith("gif") || contentType.endsWith("jpeg") )
- table.setHTML(i, 1, file.getName() + " " +
+ "' title='" + file.getOwner() + " : " + file.getPath() + file.getName() +
+ "' rel='lytebox[mnf]' " +
+ "onclick='myLytebox.start(this, false, false); return false;'>" +
"(view)" + "");
else
- table.setHTML(i, 1, file.getName());
+ nameHtml=new HTML( file.getName());
+ table.setWidget(i, 1, nameHtml);
if(GSS.get().findUserFullName(file.getOwner()) == null){
GetUserCommand guc = new GetUserCommand(file.getOwner());
@@ -730,7 +740,7 @@ public class FileList extends Composite implements ClickHandler {
*/
private AbstractImagePrototype getFileIcon(FileResource file) {
String mimetype = file.getContentType();
- boolean shared=false;
+ boolean shared = false;
Folders folders = GSS.get().getFolders();
if(folders.getCurrent() != null && folders.isOthersSharedItem(folders.getCurrent())){
DnDTreeItem otherUser = (DnDTreeItem) folders.getUserOfSharedItem(folders.getCurrent());
@@ -808,69 +818,69 @@ public class FileList extends Composite implements ClickHandler {
}
public void updateFileCache(boolean updateSelectedFolder, final boolean clearSelection, final String newFilename) {
- if (!updateSelectedFolder && !GSS.get().getFolders().getTrashItem().equals(GSS.get().getFolders().getCurrent()))
+ if (!updateSelectedFolder && !GSS.get().getFolders().getCurrent().equals(GSS.get().getFolders().getTrashItem()))
updateFileCache(clearSelection);
else if (GSS.get().getFolders().getCurrent() != null) {
final DnDTreeItem folderItem = (DnDTreeItem) GSS.get().getFolders().getCurrent();
- if( folderItem.getFolderResource()!= null){
+ if (folderItem.getFolderResource() != null) {
if(GSS.get().getFolders().isFileItem(folderItem) || GSS.get().getFolders().isMySharedItem(folderItem) || GSS.get().getFolders().isOthersSharedItem(folderItem) ){
- update(true);
- GetCommand gf = new GetCommand(FolderResource.class, folderItem.getFolderResource().getUri(),folderItem.getFolderResource()) {
+ update(true);
+ GetCommand gf = new GetCommand(FolderResource.class, folderItem.getFolderResource().getUri(),folderItem.getFolderResource()) {
- @Override
- public void onComplete() {
- folderItem.setUserObject(getResult());
+ @Override
+ public void onComplete() {
+ folderItem.setUserObject(getResult());
if(GSS.get().getFolders().isFileItem(folderItem)){
- String[] filePaths = new String[folderItem.getFolderResource().getFilePaths().size()];
- int c=0;
- for(String fpath : folderItem.getFolderResource().getFilePaths()){
- filePaths[c] = fpath + "?" + Math.random();
- c++;
+ String[] filePaths = new String[folderItem.getFolderResource().getFilePaths().size()];
+ int c=0;
+ for(String fpath : folderItem.getFolderResource().getFilePaths()){
+ filePaths[c] = fpath + "?" + Math.random();
+ c++;
+ }
+ MultipleHeadCommand getFiles = new MultipleHeadCommand(FileResource.class, filePaths, folderItem.getFolderResource().getFileCache()){
+
+ @Override
+ public void onComplete(){
+ List result = getResult();
+ //remove random from path
+ for(FileResource r : result){
+ String p = r.getUri();
+ int indexOfQuestionMark = p.lastIndexOf('?');
+ if(indexOfQuestionMark>0)
+ r.setUri(p.substring(0, indexOfQuestionMark));
+ GWT.log("FETCHED:"+r.getLastModifiedSince(), null);
}
- MultipleHeadCommand getFiles = new MultipleHeadCommand(FileResource.class, filePaths, folderItem.getFolderResource().getFileCache()){
-
- @Override
- public void onComplete(){
- List result = getResult();
- //remove random from path
- for(FileResource r : result){
- String p = r.getUri();
- int indexOfQuestionMark = p.lastIndexOf('?');
- if(indexOfQuestionMark>0)
- r.setUri(p.substring(0, indexOfQuestionMark));
- GWT.log("FETCHED:"+r.getLastModifiedSince(), null);
- }
- folderItem.getFolderResource().setFiles(result);
- folderItem.getFolderResource().setFilesExpanded(true);
- updateFileCache(clearSelection, newFilename);
- }
-
- @Override
- public void onError(String p, Throwable throwable) {
- if(throwable instanceof RestException)
- GSS.get().displayError("Unable to retrieve file details:"+((RestException)throwable).getHttpStatusText());
- }
-
- @Override
- public void onError(Throwable t) {
- GWT.log("", t);
- GSS.get().displayError("Unable to fetch files for folder " + folderItem.getFolderResource().getName());
- }
-
- };
- DeferredCommand.addCommand(getFiles);
- }
- else
+ folderItem.getFolderResource().setFiles(result);
+ folderItem.getFolderResource().setFilesExpanded(true);
updateFileCache(clearSelection, newFilename);
- }
+ }
- @Override
- public void onError(Throwable t) {
- GWT.log("", t);
- GSS.get().displayError("Unable to fetch folder " + folderItem.getFolderResource().getName());
- }
- };
- DeferredCommand.addCommand(gf);
+ @Override
+ public void onError(String p, Throwable throwable) {
+ if(throwable instanceof RestException)
+ GSS.get().displayError("Unable to retrieve file details:"+((RestException)throwable).getHttpStatusText());
+ }
+
+ @Override
+ public void onError(Throwable t) {
+ GWT.log("", t);
+ GSS.get().displayError("Unable to fetch files for folder " + folderItem.getFolderResource().getName());
+ }
+
+ };
+ DeferredCommand.addCommand(getFiles);
+ }
+ else
+ updateFileCache(clearSelection, newFilename);
+ }
+
+ @Override
+ public void onError(Throwable t) {
+ GWT.log("", t);
+ GSS.get().displayError("Unable to fetch folder " + folderItem.getFolderResource().getName());
+ }
+ };
+ DeferredCommand.addCommand(gf);
}
}
else if (folderItem.getTrashResource() != null) {
@@ -900,45 +910,16 @@ public class FileList extends Composite implements ClickHandler {
@Override
public void onComplete() {
folderItem.setUserObject(getResult());
- updateFileCache(clearSelection, newFilename);
- String[] filePaths = new String[folderItem.getSharedResource().getFilePaths().size()];
- int c=0;
- for(String fpath : folderItem.getSharedResource().getFilePaths()){
- filePaths[c] = fpath + "?" + Math.random();
- c++;
- }
- MultipleHeadCommand getFiles = new MultipleHeadCommand(FileResource.class, filePaths, folderItem.getSharedResource().getFileCache()){
-
- @Override
- public void onComplete(){
- List result = getResult();
- //remove random from path
- for(FileResource r : result){
+ for(FileResource r : folderItem.getSharedResource().getFiles()){
String p = r.getUri();
int indexOfQuestionMark = p.lastIndexOf('?');
if(indexOfQuestionMark>0)
r.setUri(p.substring(0, indexOfQuestionMark));
GWT.log("FETCHED:"+r.getLastModifiedSince(), null);
}
- folderItem.getSharedResource().setFiles(result);
folderItem.getSharedResource().setFilesExpanded(true);
updateFileCache(clearSelection, newFilename);
- }
-
- @Override
- public void onError(String p, Throwable throwable) {
- if(throwable instanceof RestException)
- GSS.get().displayError("Unable to retrieve file details:"+((RestException)throwable).getHttpStatusText());
- }
-
- @Override
- public void onError(Throwable t) {
- GWT.log("", t);
- GSS.get().displayError("Unable to fetch files for folder " + folderItem.getFolderResource().getName());
- }
-
- };
- DeferredCommand.addCommand(getFiles);
+
}
@Override
@@ -954,45 +935,17 @@ public class FileList extends Composite implements ClickHandler {
@Override
public void onComplete() {
folderItem.setUserObject(getResult());
- updateFileCache(clearSelection, newFilename);
- String[] filePaths = new String[folderItem.getOtherUserResource().getFilePaths().size()];
- int c=0;
- for(String fpath : folderItem.getOtherUserResource().getFilePaths()){
- filePaths[c] = fpath + "?" + Math.random();
- c++;
- }
- MultipleHeadCommand getFiles = new MultipleHeadCommand(FileResource.class, filePaths, folderItem.getOtherUserResource().getFileCache()){
-
- @Override
- public void onComplete(){
- List result = getResult();
- //remove random from path
- for(FileResource r : result){
+ //updateFileCache(clearSelection, newFilename);
+ for(FileResource r : folderItem.getOtherUserResource().getFiles()){
String p = r.getUri();
int indexOfQuestionMark = p.lastIndexOf('?');
if(indexOfQuestionMark>0)
r.setUri(p.substring(0, indexOfQuestionMark));
GWT.log("FETCHED:"+r.getLastModifiedSince(), null);
}
- folderItem.getOtherUserResource().setFiles(result);
folderItem.getOtherUserResource().setFilesExpanded(true);
updateFileCache(clearSelection, newFilename);
- }
-
- @Override
- public void onError(String p, Throwable throwable) {
- if(throwable instanceof RestException)
- GSS.get().displayError("Unable to retrieve file details:"+((RestException)throwable).getHttpStatusText());
- }
-
- @Override
- public void onError(Throwable t) {
- GWT.log("", t);
- GSS.get().displayError("Unable to fetch files for folder " + folderItem.getFolderResource().getName());
- }
-
- };
- DeferredCommand.addCommand(getFiles);
+
}
@Override
@@ -1007,6 +960,7 @@ public class FileList extends Composite implements ClickHandler {
updateFileCache(clearSelection);
}
+
private void updateFileCache(boolean clearSelection) {
updateFileCache(clearSelection, null);
}
@@ -1014,7 +968,6 @@ public class FileList extends Composite implements ClickHandler {
/**
* Update the file cache with data from the server.
*
- * @param userId the ID of the current user
* @param newFilename the new name of the previously selected file,
* if a rename operation has taken place
*/
@@ -1133,11 +1086,16 @@ public class FileList extends Composite implements ClickHandler {
for (int r : selectedRows) {
int row = r - startIndex;
styleRow(row, false);
+ makeRowNotDraggable(row+1);
}
selectedRows.clear();
Object sel = GSS.get().getCurrentSelection();
if (sel instanceof FileResource || sel instanceof List)
GSS.get().setCurrentSelection(null);
+ if(menuShowing != null && menuShowing.isShowing()){
+ menuShowing.hide();
+ menuShowing=null;
+ }
}
/**
@@ -1160,10 +1118,11 @@ public class FileList extends Composite implements ClickHandler {
break;
selectedRows.add(startIndex + i - 1);
styleRow(i - 1, true);
+ makeRowDraggable(i);
}
GSS.get().setCurrentSelection(getSelectedFiles());
contextMenu.setFiles(getSelectedFiles());
- makeRowDraggable(i-1);
+
}
@@ -1173,6 +1132,19 @@ public class FileList extends Composite implements ClickHandler {
table.setWidget(contextRow, 0, getFileIcon(files.get(contextRow - 1)).createImage());
contextMenu.setWidget(new HTML(getFileIcon(files.get(row - 1)).getHTML()));
table.setWidget(row, 0, contextMenu);
+ //for(int i=1;i