enhancements on trash
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace@95654 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
0851b6a2ac
commit
69d798737f
|
@ -6,8 +6,6 @@ import java.util.List;
|
|||
|
||||
import org.gcube.portlets.user.workspace.client.AppController;
|
||||
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
|
||||
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.TrashEvent;
|
||||
import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum;
|
||||
import org.gcube.portlets.user.workspace.client.model.FileGridModel;
|
||||
|
@ -20,7 +18,6 @@ import com.extjs.gxt.ui.client.Style.ButtonScale;
|
|||
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
||||
import com.extjs.gxt.ui.client.Style.IconAlign;
|
||||
import com.extjs.gxt.ui.client.data.BaseModelData;
|
||||
import com.extjs.gxt.ui.client.data.ModelData;
|
||||
import com.extjs.gxt.ui.client.dnd.GridDropTarget;
|
||||
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
||||
import com.extjs.gxt.ui.client.event.DNDEvent;
|
||||
|
@ -41,6 +38,7 @@ import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
|||
import com.extjs.gxt.ui.client.widget.grid.Grid;
|
||||
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
|
||||
import com.extjs.gxt.ui.client.widget.grid.GroupingView;
|
||||
import com.extjs.gxt.ui.client.widget.grid.filters.DateFilter;
|
||||
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.layout.FitLayout;
|
||||
|
@ -50,19 +48,15 @@ import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
|||
|
||||
public class TrashInfoContainer extends LayoutContainer {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
private Grid<FileTrashedModel> grid;
|
||||
private ContentPanel cp;
|
||||
private GroupingStore<FileTrashedModel> store = new GroupingStore<FileTrashedModel>();
|
||||
private boolean groupingEnabled;
|
||||
private ListStore<FileTrashedModel> typeStoreOperation = new ListStore<FileTrashedModel>();
|
||||
private GridDropTarget gridDropTarget;
|
||||
private Button buttonDelete;
|
||||
private Button buttonRestore;
|
||||
private Button buttonRestoreAll;
|
||||
private Button buttonEmptyTrash;
|
||||
|
||||
public TrashInfoContainer() {
|
||||
initContentPanel();
|
||||
|
@ -73,8 +67,6 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
activeButtonOnSelection(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@ -176,6 +168,7 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void createToolBar() {
|
||||
|
||||
ToolBar bar = new ToolBar();
|
||||
|
@ -217,7 +210,7 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
|
||||
bar.add(new SeparatorMenuItem());
|
||||
|
||||
Button 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.setScale(ButtonScale.SMALL);
|
||||
buttonRestoreAll.setIconAlign(IconAlign.TOP);
|
||||
|
@ -233,7 +226,7 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
bar.add(buttonRestoreAll);
|
||||
|
||||
|
||||
Button 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.setScale(ButtonScale.SMALL);
|
||||
buttonEmptyTrash.setIconAlign(IconAlign.TOP);
|
||||
|
@ -275,9 +268,9 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
|
||||
ColumnConfig icon = new ColumnConfig(ConstantsExplorer.ICON, "", 25);
|
||||
ColumnConfig name = createSortableColumnConfig(ConstantsExplorer.NAME, ConstantsExplorer.NAME, 200);
|
||||
ColumnConfig type = createSortableColumnConfig(ConstantsExplorer.TYPE, ConstantsExplorer.TYPE, 50);
|
||||
ColumnConfig type = createSortableColumnConfig(ConstantsExplorer.TYPE, ConstantsExplorer.TYPE, 80);
|
||||
ColumnConfig originalPath = createSortableColumnConfig(FileTrashedModel.STOREINFO.ORIGINALPATH.toString(), "Original Path", 200);
|
||||
ColumnConfig deleteDate = createSortableColumnConfig(FileTrashedModel.STOREINFO.DELETEDATE.toString(), "Deleted Date", 50);
|
||||
ColumnConfig deleteDate = createSortableColumnConfig(FileTrashedModel.STOREINFO.DELETEDATE.toString(), "Deleted Date", 80);
|
||||
ColumnConfig deleteUser = createSortableColumnConfig(FileTrashedModel.STOREINFO.DELETEUSER.toString(), "Deleted By", 150);
|
||||
|
||||
ColumnModel cm = new ColumnModel(Arrays.asList(icon, name, type, originalPath, deleteDate, deleteUser));
|
||||
|
@ -287,7 +280,8 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
grid = new Grid<FileTrashedModel>(this.store, cm);
|
||||
|
||||
GroupingView view = new GroupingView();
|
||||
view.setShowGroupedColumn(true);
|
||||
view.setShowGroupedColumn(false);
|
||||
|
||||
this.grid.setView(view);
|
||||
|
||||
// view.setGroupRenderer(new GridGroupRenderer() {
|
||||
|
@ -315,7 +309,7 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
return "<span qtitle='" + columnModel.getColumnById(property).getHeader() + "' qtip='" + val + "' style='color:" + color + "'>" + val + "</span>";
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
type.setRenderer(folderRender);
|
||||
|
||||
|
@ -324,33 +318,29 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
|
||||
|
||||
StringFilter nameFilter = new StringFilter(ConstantsExplorer.NAME);
|
||||
StringFilter authorFilter = new StringFilter(ConstantsExplorer.TYPE);
|
||||
StringFilter typeFilter = new StringFilter(ConstantsExplorer.TYPE);
|
||||
DateFilter dateFilter = new DateFilter(FileTrashedModel.STOREINFO.DELETEDATE.toString());
|
||||
|
||||
filters.addFilter(nameFilter);
|
||||
filters.addFilter(authorFilter);
|
||||
filters.addFilter(typeFilter);
|
||||
filters.addFilter(dateFilter);
|
||||
|
||||
grid.addPlugin(filters);
|
||||
|
||||
|
||||
grid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<FileTrashedModel>() {
|
||||
|
||||
@Override
|
||||
public void selectionChanged(SelectionChangedEvent<FileTrashedModel> se) {
|
||||
|
||||
boolean selection = grid.getSelectionModel().getSelectedItems().size()>0;
|
||||
|
||||
if(selection){
|
||||
activeButtonOnSelection(selection);
|
||||
}
|
||||
|
||||
|
||||
|
||||
activeButtonOnSelection(selection);
|
||||
}
|
||||
});
|
||||
|
||||
grid.getView().setAutoFill(true);
|
||||
grid.setBorders(true);
|
||||
grid.setStripeRows(true);
|
||||
grid.getView().setAutoFill(true);
|
||||
grid.getView().setShowDirtyCells(false);
|
||||
grid.setColumnLines(true);
|
||||
grid.setColumnReordering(true);
|
||||
grid.setStyleAttribute("borderTop", "none");
|
||||
|
@ -359,13 +349,7 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param multi
|
||||
*/
|
||||
protected void activeButtonOnSelection(boolean bool) {
|
||||
buttonDelete.setEnabled(bool);
|
||||
buttonRestore.setEnabled(bool);
|
||||
}
|
||||
|
||||
|
||||
public void setPanelSize(int width, int height) {
|
||||
|
||||
|
@ -382,28 +366,6 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
updateTrash(trashFiles);
|
||||
}
|
||||
|
||||
public void disableGrouping() {
|
||||
GroupingStore<FileTrashedModel> groupingStore = null;
|
||||
if (store instanceof GroupingStore) {
|
||||
groupingStore = (GroupingStore<FileTrashedModel>) store;
|
||||
if (groupingStore != null) {
|
||||
groupingStore.clearGrouping();
|
||||
}
|
||||
this.groupingEnabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void enableGrouping() {
|
||||
GroupingStore<FileTrashedModel> groupingStore = null;
|
||||
if (store instanceof GroupingStore) {
|
||||
groupingStore = (GroupingStore<FileTrashedModel>) store;
|
||||
if (groupingStore != null) {
|
||||
groupingStore.groupBy(ConstantsExplorer.SHORTCUTCATEGORY);
|
||||
}
|
||||
this.groupingEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void updateTrash(List<FileTrashedModel> trashFiles) {
|
||||
|
||||
store.removeAll();
|
||||
|
@ -414,8 +376,25 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
}
|
||||
|
||||
store.add(trashFiles);
|
||||
|
||||
activeButtonsOnNotEmtpy(store.getModels().size()>0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param b
|
||||
*/
|
||||
private void activeButtonsOnNotEmtpy(boolean isNotEmpty) {
|
||||
buttonRestoreAll.setEnabled(isNotEmpty);
|
||||
buttonEmptyTrash.setEnabled(isNotEmpty);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param multi
|
||||
*/
|
||||
protected void activeButtonOnSelection(boolean bool) {
|
||||
buttonDelete.setEnabled(bool);
|
||||
buttonRestore.setEnabled(bool);
|
||||
}
|
||||
private void updateStore(ListStore<FileTrashedModel> store) {
|
||||
|
||||
resetStore();
|
||||
|
@ -439,15 +418,6 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
// cp.layout();
|
||||
}
|
||||
|
||||
private boolean isGroupingEnabled() {
|
||||
return groupingEnabled;
|
||||
}
|
||||
|
||||
private void setGroupingEnabled(boolean groupingEnabled) {
|
||||
this.groupingEnabled = groupingEnabled;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param identifier
|
||||
|
@ -498,6 +468,8 @@ public class TrashInfoContainer extends LayoutContainer {
|
|||
+ fileTarget.getIdentifier()
|
||||
+ " identifier not exist in store");
|
||||
|
||||
activeButtonsOnNotEmtpy(store.getModels().size()>0);
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
|
|
@ -28,7 +28,6 @@ public class WindowTrash extends Window {
|
|||
initAccounting();
|
||||
setIcon(Resources.getTrashFull()); //TODO
|
||||
setHeading("Trash");
|
||||
// addResizeListner();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -42,34 +41,11 @@ public class WindowTrash extends Window {
|
|||
return INSTANCE;
|
||||
}
|
||||
|
||||
// public void addResizeListner(){
|
||||
//
|
||||
// this.addListener(Events.Resize, new Listener<WindowEvent>() {
|
||||
//
|
||||
// @Override
|
||||
// public void handleEvent(WindowEvent we )
|
||||
// {
|
||||
//
|
||||
// if(trashContainers!=null){
|
||||
//// System.out.println("Size in event: " + we.getWidth() + "x" + we.getHeight() );
|
||||
//// accountingsContainers.setPanelSize(we.getWidth()-14, we.getHeight()-30);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// });
|
||||
// }
|
||||
|
||||
// public WindowTrash(List<FileModel> trashFiles) {
|
||||
// updateTrashContainer(trashFiles);
|
||||
// }
|
||||
|
||||
private void initAccounting() {
|
||||
// setModal(true);
|
||||
setLayout(new FitLayout());
|
||||
setSize(700, 350);
|
||||
setSize(750, 400);
|
||||
setResizable(true);
|
||||
setMaximizable(true);
|
||||
// setCollapsible(true);
|
||||
this.trashContainers = new TrashInfoContainer();
|
||||
add(trashContainers);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue