Updated in order to use setPublic(boolean bool)

Updated icons

git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace@131399 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2016-09-15 14:42:41 +00:00
parent 53ea8e8d5f
commit ccdf36480c
8 changed files with 389 additions and 339 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <classpath>
<classpathentry kind="src" output="target/workspace-6.13.1-SNAPSHOT/WEB-INF/classes" path="src/main/java"> <classpathentry kind="src" output="target/workspace-6.14.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
<attributes> <attributes>
<attribute name="optional" value="true"/> <attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
@ -26,5 +26,5 @@
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/> <classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
<classpathentry kind="output" path="target/workspace-6.13.1-SNAPSHOT/WEB-INF/classes"/> <classpathentry kind="output" path="target/workspace-6.14.0-SNAPSHOT/WEB-INF/classes"/>
</classpath> </classpath>

View File

@ -557,7 +557,7 @@ public class AppController implements SubscriberInterface {
} }
GWT.log("FILE MODEL DOUBLE CLICK: "+fileModel); GWT.log("FILE MODEL DOUBLE CLICK: "+fileModel);
FolderModel folder = new FolderModel(fileModel.getIdentifier(), fileModel.getName(), fileModel.getParentFileModel(), true, fileModel.isShared(),fileModel.isVreFolder()); FolderModel folder = new FolderModel(fileModel.getIdentifier(), fileModel.getName(), fileModel.getParentFileModel(), true, fileModel.isShared(),fileModel.isVreFolder(), fileModel.isPublic());
updateStoreByRpc(folder); updateStoreByRpc(folder);
wsPortlet.getGridGroupContainer().setCurrentFolderView(folder); wsPortlet.getGridGroupContainer().setCurrentFolderView(folder);
loadBreadcrumbByFileModel(fileModel, true); loadBreadcrumbByFileModel(fileModel, true);
@ -867,7 +867,7 @@ public class AppController implements SubscriberInterface {
List<FileModel> ingnoreFile = new ArrayList<FileModel>(size); List<FileModel> ingnoreFile = new ArrayList<FileModel>(size);
for (FileModel file : targets) { for (FileModel file : targets) {
GWT.log("Checking file "+file); GWT.log("Checking file "+file);
if(file.getType()!=null && file.getType().equals(GXTFolderItemTypeEnum.SHARED_FOLDER.toString()) || file.isSpecialFolder()){ if(file.getType()!=null && file.getType().equals(GXTFolderItemTypeEnum.FOLDER_SHARED.toString()) || file.isSpecialFolder()){
ingnoreFile.add(file); ingnoreFile.add(file);
clearTargets.remove(file); clearTargets.remove(file);
} }
@ -1498,7 +1498,7 @@ public class AppController implements SubscriberInterface {
return; return;
//CREATE FOLDER PARENT FOR RPC //CREATE FOLDER PARENT FOR RPC
final FileModel parent = new FolderModel(folder.getIdentifier(), folder.getName(), folder.getParentFileModel(), true, folder.isShared(), folder.isVreFolder()); final FileModel parent = new FolderModel(folder.getIdentifier(), folder.getName(), folder.getParentFileModel(), true, folder.isShared(), folder.isVreFolder(), folder.isPublic());
wsPortlet.getGridGroupContainer().mask(ConstantsExplorer.LOADING,ConstantsExplorer.LOADINGSTYLE); wsPortlet.getGridGroupContainer().mask(ConstantsExplorer.LOADING,ConstantsExplorer.LOADINGSTYLE);
appContrExplorer.getRpcWorkspaceService().getFolderChildrenForFileGrid(parent, new AsyncCallback<List<FileGridModel>>() { appContrExplorer.getRpcWorkspaceService().getFolderChildrenForFileGrid(parent, new AsyncCallback<List<FileGridModel>>() {

View File

@ -1,7 +1,6 @@
package org.gcube.portlets.user.workspace.client.view; package org.gcube.portlets.user.workspace.client.view;
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
import org.gcube.portlets.user.workspace.client.ConstantsPortlet; import org.gcube.portlets.user.workspace.client.ConstantsPortlet;
import org.gcube.portlets.user.workspace.client.model.FileGridModel; import org.gcube.portlets.user.workspace.client.model.FileGridModel;
import org.gcube.portlets.user.workspace.client.model.FileModel; import org.gcube.portlets.user.workspace.client.model.FileModel;
@ -15,47 +14,47 @@ import com.extjs.gxt.ui.client.util.Format;
import com.extjs.gxt.ui.client.widget.ContentPanel; import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.ListView; import com.extjs.gxt.ui.client.widget.ListView;
/** /**
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* *
*/ */
public class GxtListView extends LayoutContainer { public class GxtListView extends LayoutContainer {
private ContentPanel cp = new ContentPanel(); private ContentPanel cp = new ContentPanel();
// private String headerTitle = ConstantsPortlet.RESULT; // private String headerTitle = ConstantsPortlet.RESULT;
private ListStore<FileGridModel> store = ListStoreModel.getInstance().getStore(); private ListStore<FileGridModel> store = ListStoreModel.getInstance().getStore();
public GxtListView() { public GxtListView() {
cp.setBodyBorder(false); cp.setBodyBorder(false);
cp.setHeading(ConstantsPortlet.RESULT); cp.setHeading(ConstantsPortlet.RESULT);
cp.setHeaderVisible(true); cp.setHeaderVisible(true);
ListView<FileGridModel> view = new ListView<FileGridModel>() { ListView<FileGridModel> view = new ListView<FileGridModel>() {
@Override @Override
protected FileGridModel prepareData(FileGridModel model) { protected FileGridModel prepareData(FileGridModel model) {
String s = model.get(ConstantsExplorer.NAME); String s = model.get(FileModel.NAME);
model.set("shortName", Format.ellipse(s, 15)); model.set("shortName", Format.ellipse(s, 15));
return model; return model;
} }
}; };
view.setStore(store); view.setStore(store);
view.setItemSelector("div.thumb-wrap"); view.setItemSelector("div.thumb-wrap");
view.getSelectionModel().addListener(Events.SelectionChange, new Listener<SelectionChangedEvent<FileModel>>() { view.getSelectionModel().addListener(Events.SelectionChange, new Listener<SelectionChangedEvent<FileModel>>() {
public void handleEvent(SelectionChangedEvent<FileModel> be) { public void handleEvent(SelectionChangedEvent<FileModel> be) {
cp.setHeading("Simple ListView (" + be.getSelection().size() cp.setHeading("Simple ListView (" + be.getSelection().size()
+ " items selected)"); + " items selected)");
} }
}); });
cp.add(view); cp.add(view);
add(cp); add(cp);
} }
private native String getTemplate() /*-{ private native String getTemplate() /*-{
return [ '<tpl for=".">', '<div class="thumb-wrap" id="{Name}">', return [ '<tpl for=".">', '<div class="thumb-wrap" id="{Name}">',
@ -63,5 +62,5 @@ public class GxtListView extends LayoutContainer {
'<span class="x-editable">{shortName}</span></div>', '</tpl>', '<span class="x-editable">{shortName}</span></div>', '</tpl>',
'<div class="x-clear"></div>' ].join(""); '<div class="x-clear"></div>' ].join("");
}-*/; }-*/;
} }

View File

@ -173,7 +173,7 @@ public class WorkspaceFeaturesView extends Composite {
overFolderlk.setAnimation(false); overFolderlk.setAnimation(false);
overFolderlk.setWidget(flk); overFolderlk.setWidget(flk);
overFolderlk.setHeading("Workspace Folder Link"); overFolderlk.setHeading("Workspace Folder Link");
String icon = "<span style=\"margin-right:5px\">"+Resources.getIconFolderLink().getSafeHtml().asString()+"</span>"; String icon = "<span style=\"margin-right:5px\">"+Resources.getIconFolderPublic().getSafeHtml().asString()+"</span>";
overFolderlk.setText(icon+"The owner or administrator can create the Folder Link as public link in order to allow 'guest' users to access to the content of the folder (and its sub-folders). " + overFolderlk.setText(icon+"The owner or administrator can create the Folder Link as public link in order to allow 'guest' users to access to the content of the folder (and its sub-folders). " +
"The 'guest' user will access in read-only mode and it will can navigate and download files of the Folder Link (and its subfolders). You can send the Folder Link to anyone by pasting it into Workspace Message, your emails, instant messages, etc."); "The 'guest' user will access in read-only mode and it will can navigate and download files of the Folder Link (and its subfolders). You can send the Folder Link to anyone by pasting it into Workspace Message, your emails, instant messages, etc.");
overFolderlk.setHtml(true); overFolderlk.setHtml(true);

View File

@ -70,7 +70,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
private FileGridModel currentItemSelected = null; private FileGridModel currentItemSelected = null;
private FileModel currentFolderView = null; private FileModel currentFolderView = null;
private GroupingView view = new GroupingView(); private GroupingView view = new GroupingView();
private boolean groupingEnabled = false; private boolean groupingEnabled = false;
private NumberFormat number = ConstantsExplorer.numberFormatterKB; private NumberFormat number = ConstantsExplorer.numberFormatterKB;
private final Grid<FileGridModel> grid; private final Grid<FileGridModel> grid;
@ -82,27 +82,27 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
public GxtGridFilterGroupPanel(boolean group) { public GxtGridFilterGroupPanel(boolean group) {
// setLayout(new FitLayout()); // setLayout(new FitLayout());
setId("GxtGridFilterGroupPanel "+Random.nextInt()); setId("GxtGridFilterGroupPanel "+Random.nextInt());
ColumnConfig icon = new ColumnConfig(ConstantsExplorer.ICON, "", 25); ColumnConfig icon = new ColumnConfig(FileModel.ICON, "", 25);
icon.setSortable(false); icon.setSortable(false);
ColumnConfig name = new ColumnConfig(ConstantsExplorer.NAME, ConstantsExplorer.NAME, 300); ColumnConfig name = new ColumnConfig(FileGridModel.NAME, FileGridModel.NAME, 300);
ColumnConfig type = new ColumnConfig(ConstantsExplorer.TYPE, ConstantsExplorer.TYPE, 50); ColumnConfig type = new ColumnConfig(FileGridModel.TYPE, FileGridModel.TYPE, 50);
ColumnConfig lastUpdate = new ColumnConfig(ConstantsExplorer.LASTMODIFIED, "Last Update", 100); ColumnConfig lastUpdate = new ColumnConfig(FileGridModel.LASTMODIFIED, "Last Update", 100);
lastUpdate.setDateTimeFormat(DateTimeFormat.getFormat("dd MMM hh:mm aaa yyyy")); lastUpdate.setDateTimeFormat(DateTimeFormat.getFormat("dd MMM hh:mm aaa yyyy"));
ColumnConfig category = new ColumnConfig(ConstantsExplorer.SHORTCUTCATEGORY, ConstantsExplorer.SHORTCUTCATEGORY, 100); ColumnConfig category = new ColumnConfig(FileModel.SHORTCUTCATEGORY, FileModel.SHORTCUTCATEGORY, 100);
ColumnConfig size = new ColumnConfig(ConstantsExplorer.SIZE, ConstantsExplorer.SIZE, 50); ColumnConfig size = new ColumnConfig(FileGridModel.SIZE, FileGridModel.SIZE, 50);
ColumnConfig ownerFullName = new ColumnConfig(ConstantsExplorer.OWNERFULLNAME, ConstantsExplorer.OWNER, 100); ColumnConfig ownerFullName = new ColumnConfig(FileGridModel.OWNERFULLNAME, FileGridModel.OWNER, 100);
size.setEditor(new CellEditor(new NumberField())); size.setEditor(new CellEditor(new NumberField()));
ColumnModel cm = null; ColumnModel cm = null;
if(group) if(group)
cm = new ColumnModel(Arrays.asList(icon, name, ownerFullName, type, lastUpdate, size, category)); cm = new ColumnModel(Arrays.asList(icon, name, ownerFullName, type, lastUpdate, size, category));
else else
cm = new ColumnModel(Arrays.asList(icon, name, ownerFullName, type, lastUpdate, size)); cm = new ColumnModel(Arrays.asList(icon, name, ownerFullName, type, lastUpdate, size));
final ColumnModel columnModel = cm; final ColumnModel columnModel = cm;
cp.setBodyBorder(true); cp.setBodyBorder(true);
cp.setHeaderVisible(false); cp.setHeaderVisible(false);
cp.setLayout(new FitLayout()); cp.setLayout(new FitLayout());
@ -110,159 +110,159 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
grid = new Grid<FileGridModel>(store, columnModel); grid = new Grid<FileGridModel>(store, columnModel);
grid.getView().setAutoFill(true); grid.getView().setAutoFill(true);
view.setShowGroupedColumn(false); view.setShowGroupedColumn(false);
view.setForceFit(true); view.setForceFit(true);
grid.setView(view); grid.setView(view);
view.setEmptyText(ConstantsExplorer.EMPTY); view.setEmptyText(FileGridModel.EMPTY);
if(group){ if(group){
store.groupBy(ConstantsExplorer.SHORTCUTCATEGORY); store.groupBy(FileGridModel.SHORTCUTCATEGORY);
groupingEnabled = true; groupingEnabled = true;
} }
GridCellRenderer<FileGridModel> folderRender = new GridCellRenderer<FileGridModel>() { GridCellRenderer<FileGridModel> folderRender = new GridCellRenderer<FileGridModel>() {
@Override @Override
public String render(FileGridModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<FileGridModel> store, Grid<FileGridModel> grid) { public String render(FileGridModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<FileGridModel> store, Grid<FileGridModel> grid) {
String val = model.get(property); String val = model.get(property);
String color = "black"; String color = "black";
if(val==null || val.isEmpty()) if(val==null || val.isEmpty())
return ""; return "";
return "<span qtitle='" + columnModel.getColumnById(property).getHeader() + "' qtip='" + val + "' style='color:" + color + "'>" + val + "</span>"; return "<span qtitle='" + columnModel.getColumnById(property).getHeader() + "' qtip='" + val + "' style='color:" + color + "'>" + val + "</span>";
} }
}; };
GridCellRenderer<FileGridModel> kbRender = new GridCellRenderer<FileGridModel>() { GridCellRenderer<FileGridModel> kbRender = new GridCellRenderer<FileGridModel>() {
@Override @Override
public String render(FileGridModel model, String property, ColumnData config, public String render(FileGridModel model, String property, ColumnData config,
int rowIndex, int colIndex, ListStore<FileGridModel> store, Grid<FileGridModel> grid) { int rowIndex, int colIndex, ListStore<FileGridModel> store, Grid<FileGridModel> grid) {
long value = (Long) model.get(property); long value = (Long) model.get(property);
if(value!=-1){ if(value!=-1){
String color = "black"; String color = "black";
double kb = value/1024; double kb = value/1024;
if(kb<1) if(kb<1)
kb=1; kb=1;
return "<span style='color:"+color+"'>" + number.format(kb) + "</span>"; return "<span style='color:"+color+"'>" + number.format(kb) + "</span>";
} }
return ""; return "";
} }
}; };
size.setRenderer(kbRender); size.setRenderer(kbRender);
type.setRenderer(folderRender); type.setRenderer(folderRender);
//setAlphanumericStoreSorter(grid); //setAlphanumericStoreSorter(grid);
GridFilters filters = new GridFilters(); GridFilters filters = new GridFilters();
filters.setLocal(true); filters.setLocal(true);
StringFilter nameFilter = new StringFilter(ConstantsExplorer.NAME); StringFilter nameFilter = new StringFilter(FileGridModel.NAME);
StringFilter authorFilter = new StringFilter(ConstantsExplorer.TYPE); StringFilter authorFilter = new StringFilter(FileGridModel.TYPE);
DateFilter dateFilter = new DateFilter(ConstantsExplorer.LASTMODIFIED); DateFilter dateFilter = new DateFilter(FileGridModel.LASTMODIFIED);
NumericFilter sizeFilter = new NumericFilter(ConstantsExplorer.SIZE); NumericFilter sizeFilter = new NumericFilter(FileGridModel.SIZE);
filters.addFilter(nameFilter); filters.addFilter(nameFilter);
filters.addFilter(authorFilter); filters.addFilter(authorFilter);
filters.addFilter(dateFilter); filters.addFilter(dateFilter);
filters.addFilter(sizeFilter); filters.addFilter(sizeFilter);
// grid.setStyleAttribute("borderTop", "none"); // grid.setStyleAttribute("borderTop", "none");
grid.setAutoExpandColumn(ConstantsExplorer.NAME); grid.setAutoExpandColumn(FileGridModel.NAME);
grid.setBorders(false); grid.setBorders(false);
grid.setStripeRows(true); grid.setStripeRows(true);
grid.setColumnLines(true); grid.setColumnLines(true);
grid.getView().setShowDirtyCells(false); grid.getView().setShowDirtyCells(false);
grid.addPlugin(filters); grid.addPlugin(filters);
grid.getSelectionModel().setSelectionMode(SelectionMode.MULTI); grid.getSelectionModel().setSelectionMode(SelectionMode.MULTI);
grid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<FileGridModel>() { grid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<FileGridModel>() {
@Override @Override
public void selectionChanged(SelectionChangedEvent<FileGridModel> se) { public void selectionChanged(SelectionChangedEvent<FileGridModel> se) {
System.out.println("selection grid change"); System.out.println("selection grid change");
ModelData target = se.getSelectedItem(); ModelData target = se.getSelectedItem();
if(target!=null){ if(target!=null){
currentItemSelected = (FileGridModel) target; currentItemSelected = (FileGridModel) target;
boolean isMultiselection = false; boolean isMultiselection = false;
if(se.getSelection()!=null && se.getSelection().size()>1) if(se.getSelection()!=null && se.getSelection().size()>1)
isMultiselection = true; isMultiselection = true;
AppController.getEventBus().fireEvent(new GridElementSelectedEvent(target, isMultiselection)); AppController.getEventBus().fireEvent(new GridElementSelectedEvent(target, isMultiselection));
} }
else{ else{
currentItemSelected = null; currentItemSelected = null;
AppController.getEventBus().fireEvent(new GridElementUnSelectedEvent()); AppController.getEventBus().fireEvent(new GridElementUnSelectedEvent());
} }
} }
}); });
grid.addListener(Events.RowDoubleClick, new Listener<BaseEvent>() { grid.addListener(Events.RowDoubleClick, new Listener<BaseEvent>() {
@Override @Override
public void handleEvent(BaseEvent be) { public void handleEvent(BaseEvent be) {
FileGridModel fileModel = grid.getSelectionModel().getSelectedItem(); FileGridModel fileModel = grid.getSelectionModel().getSelectedItem();
if(fileModel!=null) if(fileModel!=null)
fireEventByFileModelType(fileModel); fireEventByFileModelType(fileModel);
// if(fileModel.isDirectory()) // if(fileModel.isDirectory())
// AppController.getEventBus().fireEvent(new DoubleClickElementSelectedEvent(fileModel)); // AppController.getEventBus().fireEvent(new DoubleClickElementSelectedEvent(fileModel));
} }
}); });
grid.setContextMenu(null); //add context menu null - ignore browse event right click grid.setContextMenu(null); //add context menu null - ignore browse event right click
grid.addListener(Events.OnContextMenu, new Listener<GridEvent<FileGridModel>>(){ grid.addListener(Events.OnContextMenu, new Listener<GridEvent<FileGridModel>>(){
@Override @Override
public void handleEvent(GridEvent<FileGridModel> be) public void handleEvent(GridEvent<FileGridModel> be)
{ {
if(be.isRightClick()) if(be.isRightClick())
{ {
if(grid.getSelectionModel().getSelectedItem()!=null){ if(grid.getSelectionModel().getSelectedItem()!=null){
if(grid.getSelectionModel().getSelection().size()>1){ if(grid.getSelectionModel().getSelection().size()>1){
new InfoDisplay("Info", "The context menu is not available if multi-select is active"); new InfoDisplay("Info", "The context menu is not available if multi-select is active");
return; return;
} }
FileGridModel fileGridModel = grid.getSelectionModel().getSelectedItem(); FileGridModel fileGridModel = grid.getSelectionModel().getSelectedItem();
AppController.getEventBus().fireEvent(new OpenContextMenuTreeEvent(fileGridModel, be.getClientX(), be.getClientY())); AppController.getEventBus().fireEvent(new OpenContextMenuTreeEvent(fileGridModel, be.getClientX(), be.getClientY()));
} }
} }
} }
}); });
new GridDragSource(grid); new GridDragSource(grid);
cp.add(grid); cp.add(grid);
add(cp); add(cp);
addDataChangedStoreListener(); addDataChangedStoreListener();
} }
/** /**
* Disable grouping. * Disable grouping.
*/ */
public void disableGrouping() { public void disableGrouping() {
GroupingStore<FileGridModel> groupingStore = null; GroupingStore<FileGridModel> groupingStore = null;
if (this.getStore() instanceof GroupingStore) { if (this.getStore() instanceof GroupingStore) {
groupingStore = (GroupingStore<FileGridModel>) this.getStore(); groupingStore = this.getStore();
if (groupingStore != null) { if (groupingStore != null) {
groupingStore.clearGrouping(); groupingStore.clearGrouping();
} }
@ -276,60 +276,60 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
public void enableGrouping() { public void enableGrouping() {
GroupingStore<FileGridModel> groupingStore = null; GroupingStore<FileGridModel> groupingStore = null;
if (this.getStore() instanceof GroupingStore) { if (this.getStore() instanceof GroupingStore) {
groupingStore = (GroupingStore<FileGridModel>) this.getStore(); groupingStore = this.getStore();
if (groupingStore != null) { if (groupingStore != null) {
groupingStore.groupBy(ConstantsExplorer.SHORTCUTCATEGORY); groupingStore.groupBy(FileGridModel.SHORTCUTCATEGORY);
} }
this.groupingEnabled = true; this.groupingEnabled = true;
} }
} }
/** /**
* Fire event by file model type. * Fire event by file model type.
* *
* @param target the target * @param target the target
*/ */
private void fireEventByFileModelType(FileModel target){ private void fireEventByFileModelType(FileModel target){
if(target.isDirectory()){ if(target.isDirectory()){
AppController.getEventBus().fireEvent(new DoubleClickElementSelectedEvent(target)); AppController.getEventBus().fireEvent(new DoubleClickElementSelectedEvent(target));
return; return;
} }
switch(target.getGXTFolderItemType()){ switch(target.getGXTFolderItemType()){
case EXTERNAL_IMAGE: case EXTERNAL_IMAGE:
case IMAGE_DOCUMENT: case IMAGE_DOCUMENT:
AppController.getEventBus().fireEvent(new ImagePreviewEvent(target,0, 0)); AppController.getEventBus().fireEvent(new ImagePreviewEvent(target,0, 0));
break; break;
case EXTERNAL_FILE: case EXTERNAL_FILE:
case EXTERNAL_PDF_FILE: case EXTERNAL_PDF_FILE:
case PDF_DOCUMENT: case PDF_DOCUMENT:
case DOCUMENT: case DOCUMENT:
case URL_DOCUMENT: case URL_DOCUMENT:
case EXTERNAL_RESOURCE_LINK: case EXTERNAL_RESOURCE_LINK:
AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW)); AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW));
break; break;
case EXTERNAL_URL: case EXTERNAL_URL:
AppController.getEventBus().fireEvent(new OpenUrlEvent(target)); AppController.getEventBus().fireEvent(new OpenUrlEvent(target));
break; break;
case REPORT_TEMPLATE: case REPORT_TEMPLATE:
case REPORT: case REPORT:
AppController.getEventBus().fireEvent(new OpenReportsEvent(target)); AppController.getEventBus().fireEvent(new OpenReportsEvent(target));
break; break;
case QUERY: case QUERY:
case TIME_SERIES: case TIME_SERIES:
case METADATA: case METADATA:
case WORKFLOW_REPORT: case WORKFLOW_REPORT:
case WORKFLOW_TEMPLATE: case WORKFLOW_TEMPLATE:
break; break;
default: default:
} }
} }
/** /**
* Reset store. * Reset store.
@ -337,8 +337,8 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
private void resetStore(){ private void resetStore(){
store.removeAll(); store.removeAll();
} }
/** /**
* Update store. * Update store.
* *
@ -346,7 +346,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
* @return true, if successful * @return true, if successful
*/ */
public boolean updateStore(List<FileGridModel> result){ public boolean updateStore(List<FileGridModel> result){
resetStore(); resetStore();
if(result!= null && result.size()>0){ if(result!= null && result.size()>0){
for(FileGridModel file: result) for(FileGridModel file: result)
@ -356,8 +356,8 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
} }
return false; return false;
} }
/** /**
* Adds the to store. * Adds the to store.
* *
@ -365,7 +365,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
* @return true, if successful * @return true, if successful
*/ */
public boolean addToStore(FileGridModel result){ public boolean addToStore(FileGridModel result){
if(result!= null){ if(result!= null){
result.setIcon(); result.setIcon();
store.add(result); store.add(result);
@ -373,47 +373,47 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
} }
return false; return false;
} }
/** /**
* Gets the selected item. * Gets the selected item.
* *
* @return the selected item * @return the selected item
*/ */
public FileGridModel getSelectedItem(){ public FileGridModel getSelectedItem(){
return currentItemSelected; return currentItemSelected;
} }
/** /**
* Gets the selected items. * Gets the selected items.
* *
* @return the selected items * @return the selected items
*/ */
public List<FileGridModel> getSelectedItems(){ public List<FileGridModel> getSelectedItems(){
return grid.getSelectionModel().getSelection(); return grid.getSelectionModel().getSelection();
} }
/** /**
* Gets the ids selected items. * Gets the ids selected items.
* *
* @return the ids selected items * @return the ids selected items
*/ */
public List<String> getIdsSelectedItems(){ public List<String> getIdsSelectedItems(){
if(grid.getSelectionModel().getSelection()!=null){ if(grid.getSelectionModel().getSelection()!=null){
List<String> ids = new ArrayList<String>(); List<String> ids = new ArrayList<String>();
for (FileModel file : grid.getSelectionModel().getSelection()) { for (FileModel file : grid.getSelectionModel().getSelection()) {
ids.add(file.getIdentifier()); ids.add(file.getIdentifier());
} }
return ids; return ids;
} }
return null; return null;
} }
/** /**
* Delete item. * Delete item.
* *
@ -421,17 +421,17 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
* @return true, if successful * @return true, if successful
*/ */
public boolean deleteItem(String identifier) { public boolean deleteItem(String identifier) {
FileGridModel fileTarget = getFileGridModelByIdentifier(identifier); FileGridModel fileTarget = getFileGridModelByIdentifier(identifier);
if(fileTarget!=null){ if(fileTarget!=null){
Record record = store.getRecord(fileTarget); Record record = store.getRecord(fileTarget);
store.remove((FileGridModel) record.getModel()); store.remove((FileGridModel) record.getModel());
return true; return true;
} }
else else
System.out.println("Delete Error: file target with " + identifier + " identifier not exist in store" ); System.out.println("Delete Error: file target with " + identifier + " identifier not exist in store" );
return false; return false;
} }
@ -444,15 +444,15 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
* @return true, if successful * @return true, if successful
*/ */
private boolean renameItem(FileGridModel fileTarget, String newName, String extension) { private boolean renameItem(FileGridModel fileTarget, String newName, String extension) {
if(fileTarget!=null){ if(fileTarget!=null){
Record record = store.getRecord(fileTarget); Record record = store.getRecord(fileTarget);
if(record!=null){ if(record!=null){
if(extension!= null) if(extension!= null)
record.set(ConstantsExplorer.NAME, newName+extension); record.set(FileGridModel.NAME, newName+extension);
else else
record.set(ConstantsExplorer.NAME, newName); record.set(FileGridModel.NAME, newName);
return true; return true;
} }
else else
@ -460,7 +460,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
} }
else else
System.out.println("Rename Error: file target with is null" ); System.out.println("Rename Error: file target with is null" );
return false; return false;
} }
@ -501,10 +501,10 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
Record record = store.getRecord(fileTarget); Record record = store.getRecord(fileTarget);
if(record!=null){ if(record!=null){
if(extension!= null) if(extension!= null)
record.set(ConstantsExplorer.NAME, newName+extension); record.set(FileGridModel.NAME, newName+extension);
else else
record.set(ConstantsExplorer.NAME, newName); record.set(FileGridModel.NAME, newName);
return true; return true;
} }
} }
@ -513,11 +513,11 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
} }
else else
System.out.println("Rename Error: file target is null" ); System.out.println("Rename Error: file target is null" );
return false; return false;
} }
/** /**
* Gets the file grid model by identifier. * Gets the file grid model by identifier.
* *
@ -525,9 +525,9 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
* @return the file grid model by identifier * @return the file grid model by identifier
*/ */
public FileGridModel getFileGridModelByIdentifier(String id){ public FileGridModel getFileGridModelByIdentifier(String id){
return (FileGridModel) store.findModel(ConstantsExplorer.IDENTIFIER, id); return store.findModel(FileGridModel.IDENTIFIER, id);
} }
/** /**
* Select item by file model id. * Select item by file model id.
* *
@ -535,21 +535,21 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
* @return true, if successful * @return true, if successful
*/ */
public boolean selectItemByFileModelId(String id){ public boolean selectItemByFileModelId(String id){
if(id!=null && !id.isEmpty()){ if(id!=null && !id.isEmpty()){
FileGridModel fileModel = getFileGridModelByIdentifier(id); FileGridModel fileModel = getFileGridModelByIdentifier(id);
if(fileModel!=null){ if(fileModel!=null){
grid.getSelectionModel().select(fileModel, true); grid.getSelectionModel().select(fileModel, true);
return true; return true;
} }
} }
return false; return false;
} }
/** /**
* Gets the store. * Gets the store.
* *
@ -558,70 +558,70 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
public GroupingStore<FileGridModel> getStore(){ public GroupingStore<FileGridModel> getStore(){
return store; return store;
} }
/** /**
* Sets the border as on search. * Sets the border as on search.
* *
* @param bool the new border as on search * @param bool the new border as on search
*/ */
public void setBorderAsOnSearch(boolean bool){ public void setBorderAsOnSearch(boolean bool){
if(this.cp.getElement("body")!=null){ if(this.cp.getElement("body")!=null){
if(bool){ if(bool){
this.cp.getElement("body").getStyle().setBorderColor("#32CD32"); this.cp.getElement("body").getStyle().setBorderColor("#32CD32");
} }
else else
this.cp.getElement("body").getStyle().setBorderColor("#99BBE8"); this.cp.getElement("body").getStyle().setBorderColor("#99BBE8");
} }
} }
/** /**
* Adds the data changed store listener. * Adds the data changed store listener.
*/ */
private void addDataChangedStoreListener(){ private void addDataChangedStoreListener(){
store.addListener(Store.Add, new Listener<StoreEvent<ModelData>>(){ store.addListener(Store.Add, new Listener<StoreEvent<ModelData>>(){
@Override @Override
public void handleEvent(StoreEvent<ModelData> be) { public void handleEvent(StoreEvent<ModelData> be) {
AppController.getEventBus().fireEvent(new StoreGridChangedEvent(storeSize())); AppController.getEventBus().fireEvent(new StoreGridChangedEvent(storeSize()));
} }
}); });
store.addListener(Store.Remove, new Listener<StoreEvent<ModelData>>(){ store.addListener(Store.Remove, new Listener<StoreEvent<ModelData>>(){
@Override @Override
public void handleEvent(StoreEvent<ModelData> be) { public void handleEvent(StoreEvent<ModelData> be) {
AppController.getEventBus().fireEvent(new StoreGridChangedEvent(storeSize())); AppController.getEventBus().fireEvent(new StoreGridChangedEvent(storeSize()));
} }
}); });
store.addListener(Store.Clear, new Listener<StoreEvent<ModelData>>(){ store.addListener(Store.Clear, new Listener<StoreEvent<ModelData>>(){
@Override @Override
public void handleEvent(StoreEvent<ModelData> be) { public void handleEvent(StoreEvent<ModelData> be) {
AppController.getEventBus().fireEvent(new StoreGridChangedEvent(storeSize())); AppController.getEventBus().fireEvent(new StoreGridChangedEvent(storeSize()));
} }
}); });
} }
/** /**
* Store size. * Store size.
* *
* @return -1 if store is null. The size otherwise * @return -1 if store is null. The size otherwise
*/ */
private int storeSize(){ private int storeSize(){
if(store!=null && store.getModels()!=null){ if(store!=null && store.getModels()!=null){
return store.getModels().size(); return store.getModels().size();
} }
return -1; return -1;
} }
@ -632,7 +632,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
* @param height the height * @param height the height
*/ */
public void refreshSize(String width, String height) { public void refreshSize(String width, String height) {
// if(this.isRendered()){ // if(this.isRendered()){
// GWT.log("refresh size grid "+height); // GWT.log("refresh size grid "+height);
// this.setHeight(height); // this.setHeight(height);
@ -642,5 +642,5 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
cp.setSize(width, height); cp.setSize(width, height);
// grid.setSize(width, height); // grid.setSize(width, height);
} }
} }

View File

@ -4,7 +4,6 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import org.gcube.portlets.user.workspace.client.AppController; import org.gcube.portlets.user.workspace.client.AppController;
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
import org.gcube.portlets.user.workspace.client.ConstantsPortlet; import org.gcube.portlets.user.workspace.client.ConstantsPortlet;
import org.gcube.portlets.user.workspace.client.event.GridElementSelectedEvent; import org.gcube.portlets.user.workspace.client.event.GridElementSelectedEvent;
import org.gcube.portlets.user.workspace.client.event.GridElementUnSelectedEvent; import org.gcube.portlets.user.workspace.client.event.GridElementUnSelectedEvent;
@ -31,12 +30,13 @@ import com.extjs.gxt.ui.client.widget.grid.filters.GridFilters;
import com.extjs.gxt.ui.client.widget.grid.filters.StringFilter; import com.extjs.gxt.ui.client.widget.grid.filters.StringFilter;
import com.extjs.gxt.ui.client.widget.layout.FitLayout; import com.extjs.gxt.ui.client.widget.layout.FitLayout;
/**
* This class is not used
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
*
*/
/**
* The Class GxtGridFilterPanel.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Sep 15, 2016
*/
public class GxtGridFilterPanel extends LayoutContainer { public class GxtGridFilterPanel extends LayoutContainer {
private ContentPanel cp = new ContentPanel(); private ContentPanel cp = new ContentPanel();
@ -44,57 +44,60 @@ public class GxtGridFilterPanel extends LayoutContainer {
private FileGridModel currenItemSelected = null; private FileGridModel currenItemSelected = null;
private FileModel currentFolderView = null; private FileModel currentFolderView = null;
/**
* Instantiates a new gxt grid filter panel.
*/
public GxtGridFilterPanel() { public GxtGridFilterPanel() {
setLayout(new FitLayout()); setLayout(new FitLayout());
ColumnConfig name = new ColumnConfig(ConstantsExplorer.NAME, ConstantsExplorer.NAME, 400); ColumnConfig name = new ColumnConfig(FileGridModel.NAME, FileGridModel.NAME, 400);
ColumnConfig type = new ColumnConfig(ConstantsExplorer.TYPE, ConstantsExplorer.TYPE, 100); ColumnConfig type = new ColumnConfig(FileGridModel.TYPE, FileGridModel.TYPE, 100);
ColumnConfig creationDate = new ColumnConfig(ConstantsExplorer.GRIDCOLUMNCREATIONDATE, ConstantsExplorer.GRIDCOLUMNCREATIONDATE, 100); ColumnConfig creationDate = new ColumnConfig(FileGridModel.GRIDCOLUMNCREATIONDATE, FileGridModel.GRIDCOLUMNCREATIONDATE, 100);
ColumnConfig size = new ColumnConfig(ConstantsExplorer.SIZE, ConstantsExplorer.SIZE, 50); ColumnConfig size = new ColumnConfig(FileGridModel.SIZE, FileGridModel.SIZE, 50);
ColumnModel cm = new ColumnModel(Arrays.asList(name, type, creationDate, size)); ColumnModel cm = new ColumnModel(Arrays.asList(name, type, creationDate, size));
cp.setBodyBorder(false); cp.setBodyBorder(false);
cp.setHeading(ConstantsPortlet.RESULT); cp.setHeading(ConstantsPortlet.RESULT);
cp.setHeaderVisible(true); cp.setHeaderVisible(true);
cp.setLayout(new FitLayout()); cp.setLayout(new FitLayout());
GridFilters filters = new GridFilters(); GridFilters filters = new GridFilters();
filters.setLocal(true); filters.setLocal(true);
StringFilter nameFilter = new StringFilter(ConstantsExplorer.NAME); StringFilter nameFilter = new StringFilter(FileGridModel.NAME);
StringFilter authorFilter = new StringFilter(ConstantsExplorer.TYPE); StringFilter authorFilter = new StringFilter(FileGridModel.TYPE);
StringFilter sizeFilter = new StringFilter(ConstantsExplorer.SIZE); StringFilter sizeFilter = new StringFilter(FileGridModel.SIZE);
filters.addFilter(nameFilter); filters.addFilter(nameFilter);
filters.addFilter(authorFilter); filters.addFilter(authorFilter);
filters.addFilter(sizeFilter); filters.addFilter(sizeFilter);
final Grid<FileGridModel> grid = new Grid<FileGridModel>(store, cm); final Grid<FileGridModel> grid = new Grid<FileGridModel>(store, cm);
grid.getView().setAutoFill(true); grid.getView().setAutoFill(true);
setAlphanumericStoreSorter(grid); setAlphanumericStoreSorter(grid);
grid.setAutoExpandColumn(ConstantsExplorer.NAME); grid.setAutoExpandColumn(FileGridModel.NAME);
grid.setBorders(false); grid.setBorders(false);
grid.setStripeRows(true); grid.setStripeRows(true);
grid.setColumnLines(true); grid.setColumnLines(true);
grid.addPlugin(filters); grid.addPlugin(filters);
grid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<FileGridModel>() { grid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<FileGridModel>() {
@Override @Override
public void selectionChanged(SelectionChangedEvent<FileGridModel> se) { public void selectionChanged(SelectionChangedEvent<FileGridModel> se) {
System.out.println(" SelectionChangedListener selection grid change"); System.out.println(" SelectionChangedListener selection grid change");
ModelData target = se.getSelectedItem(); ModelData target = se.getSelectedItem();
if(target!=null){ if(target!=null){
currenItemSelected = (FileGridModel) target; currenItemSelected = (FileGridModel) target;
boolean isMultiselection = false; boolean isMultiselection = false;
if(se.getSelection()!=null && se.getSelection().size()>1) if(se.getSelection()!=null && se.getSelection().size()>1)
isMultiselection = true; isMultiselection = true;
AppController.getEventBus().fireEvent(new GridElementSelectedEvent(target, isMultiselection)); AppController.getEventBus().fireEvent(new GridElementSelectedEvent(target, isMultiselection));
@ -105,29 +108,38 @@ public class GxtGridFilterPanel extends LayoutContainer {
} }
} }
}); });
grid.addListener(Events.RowDoubleClick, new Listener<BaseEvent>() { grid.addListener(Events.RowDoubleClick, new Listener<BaseEvent>() {
@Override @Override
public void handleEvent(BaseEvent be) { public void handleEvent(BaseEvent be) {
// FileGridModel fileModel = (FileGridModel) be.getSource(); // FileGridModel fileModel = (FileGridModel) be.getSource();
// if(fileModel.isDirectory()) // if(fileModel.isDirectory())
} }
}); });
cp.add(grid); cp.add(grid);
add(cp); add(cp);
} }
/**
* Reset store.
*/
private void resetStore(){ private void resetStore(){
store.removeAll(); store.removeAll();
} }
/**
* Update store.
*
* @param result the result
* @return true, if successful
*/
public boolean updateStore(List<FileGridModel> result){ public boolean updateStore(List<FileGridModel> result){
resetStore(); resetStore();
if(result!= null){ if(result!= null){
store.add(result); store.add(result);
@ -135,46 +147,70 @@ public class GxtGridFilterPanel extends LayoutContainer {
} }
return false; return false;
} }
public FileGridModel getSelectedItem(){
return currenItemSelected;
}
/** /**
* * Gets the selected item.
*
* @return the selected item
*/
public FileGridModel getSelectedItem(){
return currenItemSelected;
}
/**
* Delete item.
*
* @param identifier (MANDATORY) * @param identifier (MANDATORY)
* @return * @return true, if successful
*/ */
public boolean deleteItem(String identifier) { public boolean deleteItem(String identifier) {
// FileGridModel fileTarget = (FileGridModel) store.findModel("identifier", identifier); // FileGridModel fileTarget = (FileGridModel) store.findModel("identifier", identifier);
FileGridModel fileTarget = getFileGridModelByIdentifier(identifier); FileGridModel fileTarget = getFileGridModelByIdentifier(identifier);
if(fileTarget!=null){ if(fileTarget!=null){
Record record = store.getRecord(fileTarget); Record record = store.getRecord(fileTarget);
store.remove((FileGridModel) record.getModel()); store.remove((FileGridModel) record.getModel());
return true; return true;
} }
else else
System.out.println("Delete Error: file target with " + identifier + " identifier not exist in store" ); System.out.println("Delete Error: file target with " + identifier + " identifier not exist in store" );
return false; return false;
} }
/**
* Gets the current folder view.
*
* @return the current folder view
*/
public FileModel getCurrentFolderView() { public FileModel getCurrentFolderView() {
return currentFolderView; return currentFolderView;
} }
/**
* Sets the current folder view.
*
* @param currentFolderView the new current folder view
*/
public void setCurrentFolderView(FileModel currentFolderView) { public void setCurrentFolderView(FileModel currentFolderView) {
this.currentFolderView = currentFolderView; this.currentFolderView = currentFolderView;
} }
/**
* Rename item.
*
* @param itemIdentifier the item identifier
* @param newName the new name
* @param extension the extension
* @return true, if successful
*/
public boolean renameItem(String itemIdentifier, String newName, String extension) { public boolean renameItem(String itemIdentifier, String newName, String extension) {
if(itemIdentifier!=null){ if(itemIdentifier!=null){
@ -184,10 +220,10 @@ public class GxtGridFilterPanel extends LayoutContainer {
Record record = store.getRecord(fileTarget); Record record = store.getRecord(fileTarget);
if(record!=null){ if(record!=null){
if(extension!= null) if(extension!= null)
record.set(ConstantsExplorer.NAME, newName+extension); record.set(FileGridModel.NAME, newName+extension);
else else
record.set(ConstantsExplorer.NAME, newName); record.set(FileGridModel.NAME, newName);
return true; return true;
} }
} }
@ -196,13 +232,18 @@ public class GxtGridFilterPanel extends LayoutContainer {
} }
else else
System.out.println("Rename Error: file target with is null" ); System.out.println("Rename Error: file target with is null" );
return false; return false;
} }
/**
* Sets the alphanumeric store sorter.
*
* @param grid the new alphanumeric store sorter
*/
private void setAlphanumericStoreSorter(Grid<FileGridModel> grid){ private void setAlphanumericStoreSorter(Grid<FileGridModel> grid){
// Sorting files // Sorting files
grid.getStore().setStoreSorter(new StoreSorter<FileGridModel>() { grid.getStore().setStoreSorter(new StoreSorter<FileGridModel>() {
@ -221,11 +262,22 @@ public class GxtGridFilterPanel extends LayoutContainer {
} }
}); });
} }
/**
* Gets the file grid model by identifier.
*
* @param id the id
* @return the file grid model by identifier
*/
public FileGridModel getFileGridModelByIdentifier(String id){ public FileGridModel getFileGridModelByIdentifier(String id){
return (FileGridModel) store.findModel(ConstantsExplorer.IDENTIFIER, id); return store.findModel(FileGridModel.IDENTIFIER, id);
} }
/**
* Gets the store.
*
* @return the store
*/
public ListStore<FileGridModel> getStore(){ public ListStore<FileGridModel> getStore(){
return store; return store;
} }

View File

@ -217,7 +217,7 @@ public class GxtToolBarItemFunctionality {
toolBar.add(new SeparatorToolItem()); toolBar.add(new SeparatorToolItem());
btnFolderLink = new Button("Folder Link", Resources.getIconFolderLink()); btnFolderLink = new Button("Folder Link", Resources.getIconFolderPublic());
btnFolderLink.setScale(ButtonScale.SMALL); btnFolderLink.setScale(ButtonScale.SMALL);
btnFolderLink.setIconAlign(IconAlign.TOP); btnFolderLink.setIconAlign(IconAlign.TOP);
btnFolderLink.setArrowAlign(ButtonArrowAlign.BOTTOM); btnFolderLink.setArrowAlign(ButtonArrowAlign.BOTTOM);

View File

@ -5,7 +5,6 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import org.gcube.portlets.user.workspace.client.AppController; import org.gcube.portlets.user.workspace.client.AppController;
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
import org.gcube.portlets.user.workspace.client.event.TrashEvent; import org.gcube.portlets.user.workspace.client.event.TrashEvent;
import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum; import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum;
import org.gcube.portlets.user.workspace.client.model.FileGridModel; import org.gcube.portlets.user.workspace.client.model.FileGridModel;
@ -59,27 +58,27 @@ public class TrashInfoContainer extends LayoutContainer {
private Button buttonRestore; private Button buttonRestore;
private Button buttonRestoreAll; private Button buttonRestoreAll;
private Button buttonEmptyTrash; private Button buttonEmptyTrash;
public TrashInfoContainer() { public TrashInfoContainer() {
initContentPanel(); initContentPanel();
initGrid(); initGrid();
createToolBar(); createToolBar();
// initDropTarget(); // initDropTarget();
activeButtonOnSelection(false); activeButtonOnSelection(false);
} }
/** /**
* *
*/ */
private void initDropTarget() { private void initDropTarget() {
this.gridDropTarget = new GridDropTarget(grid){ this.gridDropTarget = new GridDropTarget(grid){
/* (non-Javadoc) /* (non-Javadoc)
* @see com.extjs.gxt.ui.client.dnd.GridDropTarget#onDragDrop(com.extjs.gxt.ui.client.event.DNDEvent) * @see com.extjs.gxt.ui.client.dnd.GridDropTarget#onDragDrop(com.extjs.gxt.ui.client.event.DNDEvent)
*/ */
@Override @Override
protected void onDragDrop(DNDEvent e) { protected void onDragDrop(DNDEvent e) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
@ -87,67 +86,67 @@ public class TrashInfoContainer extends LayoutContainer {
List<FileModel> listFileModel = getDragSource(e); List<FileModel> listFileModel = getDragSource(e);
List<String> ids = new ArrayList<String>(); List<String> ids = new ArrayList<String>();
for (FileModel fileModel : listFileModel) { for (FileModel fileModel : listFileModel) {
fileModel.setIcon(); fileModel.setIcon();
ids.add(fileModel.getIdentifier()); ids.add(fileModel.getIdentifier());
} }
System.out.println("** Trash Event move handleInsertDrop is completed"); System.out.println("** Trash Event move handleInsertDrop is completed");
super.onDragDrop(e); super.onDragDrop(e);
} }
private List<FileModel> getDragSource(DNDEvent event){ private List<FileModel> getDragSource(DNDEvent event){
List<FileModel> listDraggedFile = new ArrayList<FileModel>(); List<FileModel> listDraggedFile = new ArrayList<FileModel>();
if(event.getData() != null){ if(event.getData() != null){
List<BaseModelData> listItemsSource = event.getData(); List<BaseModelData> listItemsSource = event.getData();
System.out.println("Trash - Number of move " + listItemsSource.size()); System.out.println("Trash - Number of move " + listItemsSource.size());
// FileModel sourceFileModel = null; //for print // FileModel sourceFileModel = null; //for print
for(int i=0; i<listItemsSource.size(); i++){ for(int i=0; i<listItemsSource.size(); i++){
if(listItemsSource.get(i) instanceof TreeStoreModel){ //DRAG FROM TREE if(listItemsSource.get(i) instanceof TreeStoreModel){ //DRAG FROM TREE
// System.out.println("qui 1"); // System.out.println("qui 1");
// //
// TreeStoreModel itemSource = (TreeStoreModel) listItemsSource.get(i); // TreeStoreModel itemSource = (TreeStoreModel) listItemsSource.get(i);
// //
// listDraggedFile.add((FileModel) itemSource.getModel()); // listDraggedFile.add((FileModel) itemSource.getModel());
// sourceFileModel = (FileModel) itemSource.getModel(); // sourceFileModel = (FileModel) itemSource.getModel();
// //
// if(sourceFileModel.getParentFileModel()!=null) // if(sourceFileModel.getParentFileModel()!=null)
// //
// System.out.println("Trash Source Name " + sourceFileModel.getName() + " id " + sourceFileModel.getIdentifier() + " end drag " + " Parent Name: " + sourceFileModel.getParentFileModel().getName() + "id " + sourceFileModel.getParentFileModel().getIdentifier()); // System.out.println("Trash Source Name " + sourceFileModel.getName() + " id " + sourceFileModel.getIdentifier() + " end drag " + " Parent Name: " + sourceFileModel.getParentFileModel().getName() + "id " + sourceFileModel.getParentFileModel().getIdentifier());
// else // else
// System.out.println("Trash Source Name " + sourceFileModel.getName() + " id " + sourceFileModel.getIdentifier() + " end drag "); // System.out.println("Trash Source Name " + sourceFileModel.getName() + " id " + sourceFileModel.getIdentifier() + " end drag ");
}else if(listItemsSource.get(i) instanceof FileGridModel){ //DRAG FROM GRID }else if(listItemsSource.get(i) instanceof FileGridModel){ //DRAG FROM GRID
listDraggedFile.add((FileModel) listItemsSource.get(i)); listDraggedFile.add((FileModel) listItemsSource.get(i));
// FileGridModel fileGrid = listItemsSource.get(i); // FileGridModel fileGrid = listItemsSource.get(i);
// System.out.println("qui 2"); // System.out.println("qui 2");
// System.out.println("class "+listItemsSource.get(i).getClass()); // System.out.println("class "+listItemsSource.get(i).getClass());
} }
// System.out.println("Trash Child count: " + itemSource.getChildCount()); // System.out.println("Trash Child count: " + itemSource.getChildCount());
} }
} }
return listDraggedFile; return listDraggedFile;
} }
}; };
} }
private void initContentPanel() { private void initContentPanel() {
@ -163,15 +162,15 @@ public class TrashInfoContainer extends LayoutContainer {
} }
private boolean checkSelection(){ private boolean checkSelection(){
if(grid.getSelectionModel().getSelectedItems().size()==0){ if(grid.getSelectionModel().getSelectedItems().size()==0){
MessageBox.info("Attention", "You must pick at least one item", null); MessageBox.info("Attention", "You must pick at least one item", null);
return false; return false;
} }
return true; return true;
} }
private void createToolBar() { private void createToolBar() {
ToolBar bar = new ToolBar(); ToolBar bar = new ToolBar();
@ -180,7 +179,7 @@ public class TrashInfoContainer extends LayoutContainer {
buttonRestore.setToolTip(WorkspaceTrashOperation.RESTORE.getOperationDescription()); buttonRestore.setToolTip(WorkspaceTrashOperation.RESTORE.getOperationDescription());
buttonRestore.setScale(ButtonScale.SMALL); buttonRestore.setScale(ButtonScale.SMALL);
buttonRestore.setIconAlign(IconAlign.TOP); buttonRestore.setIconAlign(IconAlign.TOP);
buttonRestore.addSelectionListener(new SelectionListener<ButtonEvent>() { buttonRestore.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override @Override
@ -190,9 +189,9 @@ public class TrashInfoContainer extends LayoutContainer {
AppController.getEventBus().fireEvent(new TrashEvent(WorkspaceTrashOperation.RESTORE, grid.getSelectionModel().getSelectedItems())); AppController.getEventBus().fireEvent(new TrashEvent(WorkspaceTrashOperation.RESTORE, grid.getSelectionModel().getSelectedItems()));
} }
}); });
bar.add(buttonRestore); bar.add(buttonRestore);
buttonDelete = new Button(WorkspaceTrashOperation.DELETE_PERMANENTLY.getLabel(),Resources.getIconDeleteItem()); buttonDelete = new Button(WorkspaceTrashOperation.DELETE_PERMANENTLY.getLabel(),Resources.getIconDeleteItem());
buttonDelete.setToolTip(WorkspaceTrashOperation.DELETE_PERMANENTLY.getOperationDescription()); buttonDelete.setToolTip(WorkspaceTrashOperation.DELETE_PERMANENTLY.getOperationDescription());
@ -202,17 +201,17 @@ public class TrashInfoContainer extends LayoutContainer {
@Override @Override
public void componentSelected(ButtonEvent ce) { public void componentSelected(ButtonEvent ce) {
if(checkSelection()) if(checkSelection())
AppController.getEventBus().fireEvent(new TrashEvent(WorkspaceTrashOperation.DELETE_PERMANENTLY, grid.getSelectionModel().getSelectedItems())); AppController.getEventBus().fireEvent(new TrashEvent(WorkspaceTrashOperation.DELETE_PERMANENTLY, grid.getSelectionModel().getSelectedItems()));
} }
}); });
bar.add(buttonDelete); bar.add(buttonDelete);
bar.add(new SeparatorMenuItem()); bar.add(new SeparatorMenuItem());
buttonRestoreAll = new Button(WorkspaceTrashOperation.RESTORE_ALL.getLabel(),Resources.getIconRecycle()); buttonRestoreAll = new Button(WorkspaceTrashOperation.RESTORE_ALL.getLabel(),Resources.getIconRecycle());
buttonRestoreAll.setToolTip(WorkspaceTrashOperation.RESTORE_ALL.getOperationDescription()); buttonRestoreAll.setToolTip(WorkspaceTrashOperation.RESTORE_ALL.getOperationDescription());
buttonRestoreAll.setScale(ButtonScale.SMALL); buttonRestoreAll.setScale(ButtonScale.SMALL);
@ -227,8 +226,8 @@ public class TrashInfoContainer extends LayoutContainer {
}); });
bar.add(buttonRestoreAll); bar.add(buttonRestoreAll);
buttonEmptyTrash = new Button(WorkspaceTrashOperation.EMPTY_TRASH.getLabel(),Resources.getTrashEmpty()); buttonEmptyTrash = new Button(WorkspaceTrashOperation.EMPTY_TRASH.getLabel(),Resources.getTrashEmpty());
buttonEmptyTrash.setToolTip(WorkspaceTrashOperation.EMPTY_TRASH.getOperationDescription()); buttonEmptyTrash.setToolTip(WorkspaceTrashOperation.EMPTY_TRASH.getOperationDescription());
buttonEmptyTrash.setScale(ButtonScale.SMALL); buttonEmptyTrash.setScale(ButtonScale.SMALL);
@ -243,10 +242,10 @@ public class TrashInfoContainer extends LayoutContainer {
}); });
bar.add(buttonEmptyTrash); bar.add(buttonEmptyTrash);
bar.add(new FillToolItem()); bar.add(new FillToolItem());
Button buttonRefresh = new Button(WorkspaceTrashOperation.REFRESH.getLabel(),Resources.getIconRefresh()); Button buttonRefresh = new Button(WorkspaceTrashOperation.REFRESH.getLabel(),Resources.getIconRefresh());
buttonRefresh.setToolTip(WorkspaceTrashOperation.REFRESH.getOperationDescription()); buttonRefresh.setToolTip(WorkspaceTrashOperation.REFRESH.getOperationDescription());
buttonRefresh.setScale(ButtonScale.SMALL); buttonRefresh.setScale(ButtonScale.SMALL);
@ -261,22 +260,22 @@ public class TrashInfoContainer extends LayoutContainer {
}); });
bar.add(buttonRefresh); bar.add(buttonRefresh);
cp.setTopComponent(bar); cp.setTopComponent(bar);
} }
public void initGrid() { public void initGrid() {
ColumnConfig icon = new ColumnConfig(ConstantsExplorer.ICON, "", 25); ColumnConfig icon = new ColumnConfig(FileGridModel.ICON, "", 25);
ColumnConfig name = createSortableColumnConfig(ConstantsExplorer.NAME, ConstantsExplorer.NAME, 200); ColumnConfig name = createSortableColumnConfig(FileGridModel.NAME, FileGridModel.NAME, 200);
ColumnConfig type = createSortableColumnConfig(ConstantsExplorer.TYPE, ConstantsExplorer.TYPE, 80); ColumnConfig type = createSortableColumnConfig(FileGridModel.TYPE, FileGridModel.TYPE, 80);
ColumnConfig originalPath = createSortableColumnConfig(FileTrashedModel.STOREINFO.ORIGINALPATH.toString(), "Original Path", 200); ColumnConfig originalPath = createSortableColumnConfig(FileTrashedModel.STOREINFO.ORIGINALPATH.toString(), "Original Path", 200);
ColumnConfig deleteDate = createSortableColumnConfig(FileTrashedModel.STOREINFO.DELETEDATE.toString(), "Deleted Date", 90); ColumnConfig deleteDate = createSortableColumnConfig(FileTrashedModel.STOREINFO.DELETEDATE.toString(), "Deleted Date", 90);
deleteDate.setDateTimeFormat(DateTimeFormat.getFormat("dd MMM hh:mm aaa yyyy")); deleteDate.setDateTimeFormat(DateTimeFormat.getFormat("dd MMM hh:mm aaa yyyy"));
ColumnConfig deleteUser = createSortableColumnConfig(FileTrashedModel.STOREINFO.DELETEUSER.toString(), "Deleted By", 150); ColumnConfig deleteUser = createSortableColumnConfig(FileTrashedModel.STOREINFO.DELETEUSER.toString(), "Deleted By", 150);
ColumnModel cm = new ColumnModel(Arrays.asList(icon, name, type, originalPath, deleteDate, deleteUser)); ColumnModel cm = new ColumnModel(Arrays.asList(icon, name, type, originalPath, deleteDate, deleteUser));
final ColumnModel columnModel = cm; final ColumnModel columnModel = cm;
@ -285,17 +284,17 @@ public class TrashInfoContainer extends LayoutContainer {
GroupingView view = new GroupingView(); GroupingView view = new GroupingView();
view.setShowGroupedColumn(false); view.setShowGroupedColumn(false);
this.grid.setView(view); this.grid.setView(view);
this.grid.setContextMenu(null); this.grid.setContextMenu(null);
GridCellRenderer<FileModel> folderRender = new GridCellRenderer<FileModel>() { GridCellRenderer<FileModel> folderRender = new GridCellRenderer<FileModel>() {
@Override @Override
public String render(FileModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<FileModel> store, Grid<FileModel> grid) { public String render(FileModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<FileModel> store, Grid<FileModel> grid) {
String val = model.get(property); String val = model.get(property);
String color = "black"; String color = "black";
if(val != null && val.equals(GXTFolderItemTypeEnum.FOLDER.toString())){ if(val != null && val.equals(GXTFolderItemTypeEnum.FOLDER.toString())){
// color = "#EEC900"; // color = "#EEC900";
return "<span qtitle='" + columnModel.getColumnById(property).getHeader() + "' qtip='" + val + "' style='font-weight: bold;color:" + color + "'>" + val + "</span>"; return "<span qtitle='" + columnModel.getColumnById(property).getHeader() + "' qtip='" + val + "' style='font-weight: bold;color:" + color + "'>" + val + "</span>";
@ -304,35 +303,35 @@ public class TrashInfoContainer extends LayoutContainer {
val = ""; val = "";
return "<span qtitle='" + columnModel.getColumnById(property).getHeader() + "' qtip='" + val + "' style='color:" + color + "'>" + val + "</span>"; return "<span qtitle='" + columnModel.getColumnById(property).getHeader() + "' qtip='" + val + "' style='color:" + color + "'>" + val + "</span>";
} }
} }
}; };
type.setRenderer(folderRender); type.setRenderer(folderRender);
GridFilters filters = new GridFilters(); GridFilters filters = new GridFilters();
filters.setLocal(true); filters.setLocal(true);
StringFilter nameFilter = new StringFilter(ConstantsExplorer.NAME); StringFilter nameFilter = new StringFilter(FileGridModel.NAME);
StringFilter typeFilter = new StringFilter(ConstantsExplorer.TYPE); StringFilter typeFilter = new StringFilter(FileGridModel.TYPE);
DateFilter dateFilter = new DateFilter(FileTrashedModel.STOREINFO.DELETEDATE.toString()); DateFilter dateFilter = new DateFilter(FileTrashedModel.STOREINFO.DELETEDATE.toString());
filters.addFilter(nameFilter); filters.addFilter(nameFilter);
filters.addFilter(typeFilter); filters.addFilter(typeFilter);
filters.addFilter(dateFilter); filters.addFilter(dateFilter);
grid.addPlugin(filters); grid.addPlugin(filters);
grid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<FileTrashedModel>() { grid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<FileTrashedModel>() {
@Override @Override
public void selectionChanged(SelectionChangedEvent<FileTrashedModel> se) { public void selectionChanged(SelectionChangedEvent<FileTrashedModel> se) {
boolean selection = grid.getSelectionModel().getSelectedItems().size()>0; boolean selection = grid.getSelectionModel().getSelectedItems().size()>0;
activeButtonOnSelection(selection); activeButtonOnSelection(selection);
} }
}); });
grid.getView().setAutoFill(true); grid.getView().setAutoFill(true);
grid.setBorders(true); grid.setBorders(true);
grid.setStripeRows(true); grid.setStripeRows(true);
@ -341,10 +340,10 @@ public class TrashInfoContainer extends LayoutContainer {
grid.setColumnReordering(true); grid.setColumnReordering(true);
grid.setStyleAttribute("borderTop", "none"); grid.setStyleAttribute("borderTop", "none");
cp.add(grid); cp.add(grid);
} }
public void setPanelSize(int width, int height) { public void setPanelSize(int width, int height) {
@ -366,16 +365,16 @@ public class TrashInfoContainer extends LayoutContainer {
store.removeAll(); store.removeAll();
typeStoreOperation.removeAll(); typeStoreOperation.removeAll();
for (FileTrashedModel fileTrashedModel : trashFiles) { for (FileTrashedModel fileTrashedModel : trashFiles) {
fileTrashedModel.setIcon(); fileTrashedModel.setIcon();
} }
store.add(trashFiles); store.add(trashFiles);
activeButtonsOnNotEmtpy(store.getModels().size()>0); activeButtonsOnNotEmtpy(store.getModels().size()>0);
} }
/** /**
* @param b * @param b
*/ */
@ -383,7 +382,7 @@ public class TrashInfoContainer extends LayoutContainer {
buttonRestoreAll.setEnabled(isNotEmpty); buttonRestoreAll.setEnabled(isNotEmpty);
buttonEmptyTrash.setEnabled(isNotEmpty); buttonEmptyTrash.setEnabled(isNotEmpty);
} }
/** /**
* @param multi * @param multi
*/ */
@ -415,49 +414,49 @@ public class TrashInfoContainer extends LayoutContainer {
} }
/** /**
* *
* @param identifier * @param identifier
* @return * @return
*/ */
public FileTrashedModel getFileModelByIdentifier(String identifier){ public FileTrashedModel getFileModelByIdentifier(String identifier){
return store.findModel(ConstantsExplorer.IDENTIFIER, identifier); return store.findModel(FileGridModel.IDENTIFIER, identifier);
} }
/** /**
* *
* @param identifier (MANDATORY) * @param identifier (MANDATORY)
* @return * @return
*/ */
public boolean deleteItem(String identifier) { public boolean deleteItem(String identifier) {
FileTrashedModel fileTarget = getFileModelByIdentifier(identifier); FileTrashedModel fileTarget = getFileModelByIdentifier(identifier);
if(fileTarget!=null){ if(fileTarget!=null){
return deleteItem(fileTarget); return deleteItem(fileTarget);
} }
else else
System.out.println("Delete Error: file target with " + identifier + " identifier not exist in store" ); System.out.println("Delete Error: file target with " + identifier + " identifier not exist in store" );
return false; return false;
} }
/** /**
* *
* @param fileTarget (MANDATORY) * @param fileTarget (MANDATORY)
* @return * @return
*/ */
private boolean deleteItem(FileTrashedModel fileTarget) { private boolean deleteItem(FileTrashedModel fileTarget) {
Record record = store.getRecord(fileTarget); Record record = store.getRecord(fileTarget);
if (record != null) { if (record != null) {
FileTrashedModel item = (FileTrashedModel) record.getModel(); FileTrashedModel item = (FileTrashedModel) record.getModel();
store.remove(item); store.remove(item);
return true; return true;
} else } else
System.out.println("Record Error: file target with " System.out.println("Record Error: file target with "
@ -465,13 +464,13 @@ public class TrashInfoContainer extends LayoutContainer {
+ " identifier not exist in store"); + " identifier not exist in store");
activeButtonsOnNotEmtpy(store.getModels().size()>0); activeButtonsOnNotEmtpy(store.getModels().size()>0);
return false; return false;
} }
/** /**
* *
* @return the number of items contained into trash * @return the number of items contained into trash
*/ */
public int trashSize(){ public int trashSize(){