import java.util.List;\r
\r
import com.google.gwt.core.client.GWT;\r
+import com.google.gwt.event.dom.client.ClickEvent;\r
+import com.google.gwt.event.dom.client.ClickHandler;\r
import com.google.gwt.http.client.URL;\r
import com.google.gwt.i18n.client.DateTimeFormat;\r
+import com.google.gwt.resources.client.ClientBundle;\r
+import com.google.gwt.resources.client.ImageResource;\r
import com.google.gwt.user.client.DOM;\r
import com.google.gwt.user.client.DeferredCommand;\r
import com.google.gwt.user.client.Event;\r
import com.google.gwt.user.client.IncrementalCommand;\r
import com.google.gwt.user.client.Window;\r
import com.google.gwt.user.client.ui.AbstractImagePrototype;\r
-import com.google.gwt.user.client.ui.ClickListener;\r
import com.google.gwt.user.client.ui.Composite;\r
import com.google.gwt.user.client.ui.Grid;\r
import com.google.gwt.user.client.ui.HTML;\r
import com.google.gwt.user.client.ui.HasHorizontalAlignment;\r
import com.google.gwt.user.client.ui.HorizontalPanel;\r
-import com.google.gwt.user.client.ui.SourcesTableEvents;\r
-import com.google.gwt.user.client.ui.TableListener;\r
import com.google.gwt.user.client.ui.VerticalPanel;\r
-import com.google.gwt.user.client.ui.Widget;\r
+import com.google.gwt.user.client.ui.HTMLTable.Cell;\r
\r
/**\r
* A composite that displays a list of search results for a particular query on\r
* files.\r
*/\r
-public class SearchResults extends Composite implements TableListener, ClickListener {\r
+public class SearchResults extends Composite implements ClickHandler {\r
\r
private HTML prevButton = new HTML("<a href='javascript:;'>< Previous</a>", true);\r
\r
* Specifies that the images available for this composite will be the ones\r
* available in FileContextMenu.\r
*/\r
- public interface Images extends FileContextMenu.Images, Folders.Images {\r
+ public interface Images extends ClientBundle,FileContextMenu.Images, Folders.Images {\r
\r
- @Resource("gr/ebs/gss/resources/blank.gif")\r
- AbstractImagePrototype blank();\r
+ @Source("gr/ebs/gss/resources/blank.gif")\r
+ ImageResource blank();\r
\r
- @Resource("gr/ebs/gss/resources/asc.png")\r
- AbstractImagePrototype asc();\r
+ @Source("gr/ebs/gss/resources/asc.png")\r
+ ImageResource asc();\r
\r
- @Resource("gr/ebs/gss/resources/desc.png")\r
- AbstractImagePrototype desc();\r
+ @Source("gr/ebs/gss/resources/desc.png")\r
+ ImageResource desc();\r
}\r
\r
/**\r
return;\r
if (DOM.eventGetType(event) == Event.ONCONTEXTMENU && selectedRows.size() != 0) {\r
FileContextMenu fm = new FileContextMenu(images, false, false);\r
- fm.onClick(contextMenu);\r
+ fm.onEvent(event);\r
}\r
else if (DOM.eventGetType(event) == Event.ONDBLCLICK)\r
if(getSelectedFiles().size() == 1){\r
super.onBrowserEvent(event);\r
}\r
};\r
- prevButton.addClickListener(this);\r
- nextButton.addClickListener(this);\r
+ prevButton.addClickHandler(this);\r
+ nextButton.addClickHandler(this);\r
\r
- contextMenu = new DnDFocusPanel(new HTML(images.fileContextMenu().getHTML()));\r
- contextMenu.addClickListener(new FileContextMenu(images, false, false));\r
+ contextMenu = new DnDFocusPanel(new HTML(AbstractImagePrototype.create(images.fileContextMenu()).getHTML()));\r
+ contextMenu.addClickHandler(new FileContextMenu(images, false, false));\r
app.getDragController().makeDraggable(contextMenu);\r
\r
// Setup the table.\r
table.setWidth("100%");\r
\r
// Hook up events.\r
- table.addTableListener(this);\r
+ table.addClickHandler(new ClickHandler() {\r
+\r
+ @Override\r
+ public void onClick(ClickEvent event) {\r
+ Cell cell = table.getCellForEvent(event);\r
+ onRowClicked(cell.getRowIndex());\r
+ }\r
+ });\r
\r
// Create the 'navigation' bar at the upper-right.\r
HorizontalPanel innerNavBar = new HorizontalPanel();\r
navBar.setWidth("100%");\r
VerticalPanel vp = new VerticalPanel();\r
vp.add(searchResults);\r
- searchResults.addStyleName("gss-searchlabel");\r
+ searchResults.addStyleName("gss-searchLabel");\r
vp.add(table);\r
initWidget(vp);\r
table.setStyleName("gss-List");\r
preventIESelection();\r
}\r
\r
- public void onClick(Widget sender) {\r
- if (sender == nextButton) {\r
+ public void onClick(ClickEvent event) {\r
+ if (event.getSource() == nextButton) {\r
// Move forward a page.\r
clearSelectedRows();\r
startIndex += GSS.VISIBLE_FILE_COUNT;\r
if (startIndex >= folderFileCount)\r
startIndex -= GSS.VISIBLE_FILE_COUNT;\r
else\r
- update();\r
- } else if (sender == prevButton) {\r
+ update(false);\r
+ } else if (event.getSource() == prevButton) {\r
clearSelectedRows();\r
// Move back a page.\r
startIndex -= GSS.VISIBLE_FILE_COUNT;\r
if (startIndex < 0)\r
startIndex = 0;\r
else\r
- update();\r
+ update(false);\r
}\r
}\r
\r
return DONE;\r
}\r
\r
- public void onCellClicked(SourcesTableEvents sender, int row, int cell) {\r
+ public void onRowClicked(int row) {\r
// Select the row that was clicked (-1 to account for header row).\r
if (row > folderFileCount)\r
return;\r
private void initTable() {\r
\r
nameLabel = new HTML("Name");\r
- nameLabel.addClickListener(new ClickListener() {\r
-\r
- public void onClick(Widget sender) {\r
+ nameLabel.addClickHandler(new ClickHandler() {\r
+ @Override\r
+ public void onClick(ClickEvent event) {\r
sortFiles("name");\r
- update();\r
-\r
}\r
\r
});\r
versionLabel = new HTML("Version");\r
- versionLabel.addClickListener(new ClickListener() {\r
-\r
- public void onClick(Widget sender) {\r
+ versionLabel.addClickHandler(new ClickHandler() {\r
+ @Override\r
+ public void onClick(ClickEvent event) {\r
sortFiles("version");\r
- update();\r
-\r
}\r
\r
});\r
sizeLabel = new HTML("Size");\r
- sizeLabel.addClickListener(new ClickListener() {\r
-\r
- public void onClick(Widget sender) {\r
+ sizeLabel.addClickHandler(new ClickHandler() {\r
+ @Override\r
+ public void onClick(ClickEvent event) {\r
sortFiles("size");\r
- update();\r
-\r
}\r
\r
});\r
- dateLabel = new HTML("Date");\r
- dateLabel.addClickListener(new ClickListener() {\r
-\r
- public void onClick(Widget sender) {\r
+ dateLabel = new HTML("Last modified");\r
+ dateLabel.addClickHandler(new ClickHandler() {\r
+ @Override\r
+ public void onClick(ClickEvent event) {\r
sortFiles("date");\r
- update();\r
-\r
}\r
\r
});\r
ownerLabel = new HTML("Owner");\r
- ownerLabel.addClickListener(new ClickListener() {\r
-\r
- public void onClick(Widget sender) {\r
+ ownerLabel.addClickHandler(new ClickHandler() {\r
+ @Override\r
+ public void onClick(ClickEvent event) {\r
sortFiles("owner");\r
- update();\r
-\r
}\r
\r
});\r
\r
pathLabel = new HTML("Path");\r
- pathLabel.addClickListener(new ClickListener() {\r
-\r
- public void onClick(Widget sender) {\r
+ pathLabel.addClickHandler(new ClickHandler() {\r
+ @Override\r
+ public void onClick(ClickEvent event) {\r
sortFiles("path");\r
- update();\r
-\r
}\r
\r
});\r
table.setWidget(0, 4, versionLabel);\r
// table.setText(0, 4, "Size");\r
table.setWidget(0, 5, sizeLabel);\r
- // table.setText(0, 5, "Date");\r
+ // table.setText(0, 5, "Last modified");\r
table.setWidget(0, 6, dateLabel);\r
table.setWidget(0, 7, navBar);\r
table.getRowFormatter().setStyleName(0, "gss-ListHeader");\r
} else {\r
for (int r : selectedRows) {\r
int prow = r - startIndex;\r
- table.setWidget(prow + 1, 0, images.document().createImage());\r
+ table.setWidget(prow + 1, 0, AbstractImagePrototype.create(images.document()).createImage());\r
}\r
selectedRows.add(startIndex + row);\r
styleRow(row, true);\r
/**\r
* Update the display of the file list.\r
*/\r
- void update() {\r
+ void update(boolean sort) {\r
int count = folderFileCount;\r
int max = startIndex + GSS.VISIBLE_FILE_COUNT;\r
if (max > count)\r
max = count;\r
folderTotalSize = 0;\r
\r
+ if (sort && files != null && files.size() != 0) {\r
+ clearLabels();\r
+ clearSelectedRows();\r
+\r
+ Collections.sort(files, new Comparator<FileResource>() {\r
+\r
+ public int compare(FileResource arg0, FileResource arg1) {\r
+ AbstractImagePrototype descPrototype = AbstractImagePrototype.create(images.desc());\r
+ AbstractImagePrototype ascPrototype = AbstractImagePrototype.create(images.asc());\r
+ if (sortingType)\r
+ if (sortingProperty.equals("version")) {\r
+ versionLabel.setHTML("Version " + descPrototype.getHTML());\r
+ return arg0.getVersion().compareTo(arg1.getVersion());\r
+ } else if (sortingProperty.equals("owner")) {\r
+ ownerLabel.setHTML("Owner " + descPrototype.getHTML());\r
+ return arg0.getOwner().compareTo(arg1.getOwner());\r
+ } else if (sortingProperty.equals("date")) {\r
+ dateLabel.setHTML("Last modified " + descPrototype.getHTML());\r
+ return arg0.getModificationDate().compareTo(arg1.getModificationDate());\r
+ } else if (sortingProperty.equals("size")) {\r
+ sizeLabel.setHTML("Size " + descPrototype.getHTML());\r
+ return arg0.getContentLength().compareTo(arg1.getContentLength());\r
+ } else if (sortingProperty.equals("name")) {\r
+ nameLabel.setHTML("Name " + descPrototype.getHTML());\r
+ return arg0.getName().compareTo(arg1.getName());\r
+ } else if (sortingProperty.equals("path")) {\r
+ pathLabel.setHTML("Path " + descPrototype.getHTML());\r
+ return arg0.getUri().compareTo(arg1.getUri());\r
+ } else {\r
+ nameLabel.setHTML("Name " + descPrototype.getHTML());\r
+ return arg0.getName().compareTo(arg1.getName());\r
+ }\r
+ else if (sortingProperty.equals("version")) {\r
+ versionLabel.setHTML("Version " + ascPrototype.getHTML());\r
+ return arg1.getVersion().compareTo(arg0.getVersion());\r
+ } else if (sortingProperty.equals("owner")) {\r
+ ownerLabel.setHTML("Owner " + ascPrototype.getHTML());\r
+ return arg1.getOwner().compareTo(arg0.getOwner());\r
+ } else if (sortingProperty.equals("date")) {\r
+ dateLabel.setHTML("Last modified " + ascPrototype.getHTML());\r
+ return arg1.getModificationDate().compareTo(arg0.getModificationDate());\r
+ } else if (sortingProperty.equals("size")) {\r
+ sizeLabel.setHTML("Size " + ascPrototype.getHTML());\r
+ return arg1.getContentLength().compareTo(arg0.getContentLength());\r
+ } else if (sortingProperty.equals("name")) {\r
+ nameLabel.setHTML("Name " + ascPrototype.getHTML());\r
+ return arg1.getName().compareTo(arg0.getName());\r
+ } else if (sortingProperty.equals("path")) {\r
+ pathLabel.setHTML("Path " + ascPrototype.getHTML());\r
+ return arg1.getUri().compareTo(arg0.getUri());\r
+ } else {\r
+ nameLabel.setHTML("Name " + ascPrototype.getHTML());\r
+ return arg1.getName().compareTo(arg0.getName());\r
+ }\r
+ }\r
+\r
+ });\r
+\r
+ }\r
// Show the selected files.\r
int i = 1;\r
for (; i < GSS.VISIBLE_FILE_COUNT + 1; ++i) {\r
break;\r
// Add a new row to the table, then set each of its columns to the\r
// proper values.\r
- table.setWidget(i, 0, images.document().createImage());\r
+ table.setWidget(i, 0, AbstractImagePrototype.create(images.document()).createImage());\r
FileResource fileHeader = files.get(startIndex + i - 1);\r
table.getRowFormatter().addStyleName(i, "gss-fileRow");\r
table.setHTML(i, 1, fileHeader.getName());\r
table.setText(i, 4, String.valueOf(fileHeader.getVersion()));\r
table.setText(i, 5, String.valueOf(fileHeader.getFileSizeAsString()));\r
final DateTimeFormat formatter = DateTimeFormat.getFormat("d/M/yyyy h:mm a");\r
- table.setText(i, 6, formatter.format(fileHeader.getCreationDate()));\r
+ table.setText(i, 6, formatter.format(fileHeader.getModificationDate()));\r
folderTotalSize += fileHeader.getContentLength();\r
}\r
\r
public void updateFileCache(String query) {\r
final GSS app = GSS.get();\r
clearSelectedRows();\r
- sortingProperty = "name";\r
clearLabels();\r
- nameLabel.setHTML("Name " + images.desc().getHTML());\r
- sortingType = true;\r
startIndex = 0;\r
app.showLoadingIndicator();\r
if (query == null || query.trim().equals("")) {\r
searchResults.setHTML("You must specify a query");\r
setFiles(new ArrayList());\r
- update();\r
+ update(true);\r
app.hideLoadingIndicator();\r
} else{\r
searchResults.setHTML("Search results for " + query);\r
public void onComplete() {\r
SearchResource s = getResult();\r
setFiles(s.getFiles());\r
- update();\r
+ update(true);\r
}\r
\r
@Override\r
sortingProperty = sortProperty;\r
sortingType = true;\r
}\r
- clearLabels();\r
- clearSelectedRows();\r
- if (files == null || files.size() == 0)\r
- return;\r
- Collections.sort(files, new Comparator<FileResource>() {\r
-\r
- public int compare(FileResource arg0, FileResource arg1) {\r
- if (sortingType)\r
- if (sortProperty.equals("version")) {\r
- versionLabel.setHTML("Version " + images.desc().getHTML());\r
- return new Integer(arg0.getVersion()).compareTo(new Integer(arg1.getVersion()));\r
- } else if (sortProperty.equals("owner")) {\r
- ownerLabel.setHTML("Owner " + images.desc().getHTML());\r
- GWT.log(arg0.getOwner() + "/" + arg1.getOwner(), null);\r
- return arg0.getOwner().compareTo(arg1.getOwner());\r
- } else if (sortProperty.equals("date")) {\r
- dateLabel.setHTML("Date " + images.desc().getHTML());\r
- return arg0.getCreationDate().compareTo(arg1.getCreationDate());\r
- } else if (sortProperty.equals("size")) {\r
- sizeLabel.setHTML("Size " + images.desc().getHTML());\r
- return new Long(arg0.getContentLength()).compareTo(new Long(arg1.getContentLength()));\r
- } else if (sortProperty.equals("name")) {\r
- nameLabel.setHTML("Name " + images.desc().getHTML());\r
- return arg0.getName().compareTo(arg1.getName());\r
- } else if (sortProperty.equals("path")) {\r
- pathLabel.setHTML("Path " + images.desc().getHTML());\r
- return arg0.getUri().compareTo(arg1.getUri());\r
- } else {\r
- nameLabel.setHTML("Name " + images.desc().getHTML());\r
- return arg0.getName().compareTo(arg1.getName());\r
- }\r
- else if (sortProperty.equals("version")) {\r
- versionLabel.setHTML("Version " + images.asc().getHTML());\r
- return new Integer(arg1.getVersion()).compareTo(new Integer(arg0.getVersion()));\r
- } else if (sortProperty.equals("owner")) {\r
- ownerLabel.setHTML("Owner " + images.asc().getHTML());\r
- return arg1.getOwner().compareTo(arg0.getOwner());\r
- } else if (sortProperty.equals("date")) {\r
- dateLabel.setHTML("Date " + images.asc().getHTML());\r
- return arg1.getCreationDate().compareTo(arg0.getCreationDate());\r
- } else if (sortProperty.equals("size")) {\r
- sizeLabel.setHTML("Size " + images.asc().getHTML());\r
- return new Long(arg1.getContentLength()).compareTo(new Long(arg0.getContentLength()));\r
- } else if (sortProperty.equals("name")) {\r
- nameLabel.setHTML("Name " + images.asc().getHTML());\r
- return arg1.getName().compareTo(arg0.getName());\r
- } else if (sortProperty.equals("path")) {\r
- pathLabel.setHTML("Path " + images.asc().getHTML());\r
- return arg1.getUri().compareTo(arg0.getUri());\r
- } else {\r
- nameLabel.setHTML("Name " + images.asc().getHTML());\r
- return arg1.getName().compareTo(arg0.getName());\r
- }\r
- }\r
-\r
- });\r
+ update(true);\r
}\r
\r
private void clearLabels() {\r
nameLabel.setText("Name");\r
versionLabel.setText("Version");\r
sizeLabel.setText("Size");\r
- dateLabel.setText("Date");\r
+ dateLabel.setText("Last modified");\r
ownerLabel.setText("Owner");\r
pathLabel.setText("Path");\r
}\r
for (int r : selectedRows) {\r
int row = r - startIndex;\r
styleRow(row, false);\r
- table.setWidget(row + 1, 0, images.document().createImage());\r
+ table.setWidget(row + 1, 0, AbstractImagePrototype.create(images.document()).createImage());\r
}\r
selectedRows.clear();\r
Object sel = GSS.get().getCurrentSelection();\r