updating on copy/paste

git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace@81289 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2013-09-12 10:07:23 +00:00
parent 443a59fe37
commit 91fc563f4c
5 changed files with 199 additions and 24 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.4.1-SNAPSHOT/WEB-INF/classes" path="src/main/java"> <classpathentry kind="src" output="target/workspace-6.3.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"/>
@ -30,5 +30,5 @@
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="output" path="target/workspace-6.4.1-SNAPSHOT/WEB-INF/classes"/> <classpathentry kind="output" path="target/workspace-6.3.0-SNAPSHOT/WEB-INF/classes"/>
</classpath> </classpath>

View File

@ -50,10 +50,13 @@ import org.gcube.portlets.user.workspace.client.event.OpenContextMenuTreeEvent;
import org.gcube.portlets.user.workspace.client.event.OpenContextMenuTreeEventHandler; import org.gcube.portlets.user.workspace.client.event.OpenContextMenuTreeEventHandler;
import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent; import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent;
import org.gcube.portlets.user.workspace.client.event.OpenReportsEventHandler; import org.gcube.portlets.user.workspace.client.event.OpenReportsEventHandler;
import org.gcube.portlets.user.workspace.client.event.PasteItemEvent;
import org.gcube.portlets.user.workspace.client.event.PasteItemEventHandler;
import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEvent; import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEvent;
import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEventHandler; import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEventHandler;
import org.gcube.portlets.user.workspace.client.event.PreviewMessageEvent; import org.gcube.portlets.user.workspace.client.event.PreviewMessageEvent;
import org.gcube.portlets.user.workspace.client.event.PreviewMessageEventHandler; import org.gcube.portlets.user.workspace.client.event.PreviewMessageEventHandler;
import org.gcube.portlets.user.workspace.client.event.RefreshFolderEvent;
import org.gcube.portlets.user.workspace.client.event.RenameItemEvent; import org.gcube.portlets.user.workspace.client.event.RenameItemEvent;
import org.gcube.portlets.user.workspace.client.event.RenameItemEventHandler; import org.gcube.portlets.user.workspace.client.event.RenameItemEventHandler;
import org.gcube.portlets.user.workspace.client.event.SaveAttachmentsEvent; import org.gcube.portlets.user.workspace.client.event.SaveAttachmentsEvent;
@ -112,7 +115,6 @@ public class AppController implements SubscriberInterface {
private HasWidgets rootPanel; private HasWidgets rootPanel;
public AppController(AppControllerExplorer appControllerExplorer) { public AppController(AppControllerExplorer appControllerExplorer) {
this.appContrExplorer = appControllerExplorer; this.appContrExplorer = appControllerExplorer;
this.appContrExplorer.subscribe(this, new EventsTypeEnum[] { this.appContrExplorer.subscribe(this, new EventsTypeEnum[] {
@ -135,7 +137,8 @@ public class AppController implements SubscriberInterface {
EventsTypeEnum.CREATE_NEW_MESSAGE, EventsTypeEnum.CREATE_NEW_MESSAGE,
EventsTypeEnum.REPLY_FORWARD_MESSAGE, EventsTypeEnum.REPLY_FORWARD_MESSAGE,
EventsTypeEnum.FILE_DOWNLAD_EVENT, EventsTypeEnum.FILE_DOWNLAD_EVENT,
EventsTypeEnum.SESSION_EXPIRED EventsTypeEnum.SESSION_EXPIRED,
EventsTypeEnum.PASTED_EVENT
}); });
bind(); bind();
} }
@ -164,6 +167,16 @@ public class AppController implements SubscriberInterface {
} }
} }
}); });
//PASTE EVENT
eventBus.addHandler(PasteItemEvent.TYPE, new PasteItemEventHandler() {
@Override
public void onCopyAndPaste(PasteItemEvent pasteItemEvent) {
AppControllerExplorer.getEventBus().fireEvent(new PasteItemEvent(pasteItemEvent.getItemId(), pasteItemEvent.getFolderDestinationId()));
}
});
//********EVENTS TO NOTIFY SUBSCRIBERS //********EVENTS TO NOTIFY SUBSCRIBERS
eventBus.addHandler(OpenReportsEvent.TYPE, new OpenReportsEventHandler() { eventBus.addHandler(OpenReportsEvent.TYPE, new OpenReportsEventHandler() {
@ -373,7 +386,8 @@ public class AppController implements SubscriberInterface {
// System.out.println("#############Scopde id " + scope.getId() + " name " + scope.getName()); // System.out.println("#############Scopde id " + scope.getId() + " name " + scope.getName());
if(result!=null && result.size()>0){ if(result!=null && result.size()>0){
wsPortlet.getSearchAndFilterContainer().setListScope(result);
wsPortlet.getSearchAndFilterContainer().selectScopeByIndex(0); //select first scope
} }
else else
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " getting all scope. No scope available. " +ConstantsExplorer.TRY_AGAIN, null); new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " getting all scope. No scope available. " +ConstantsExplorer.TRY_AGAIN, null);
@ -553,7 +567,10 @@ public class AppController implements SubscriberInterface {
if(result!=null && result.size()>0){ if(result!=null && result.size()>0){
String childId = result.get(0).getIdentifier(); //GET FIRST CHILD ID TO LOAD PARENTS BREADCRUMB String childId = result.get(0).getIdentifier(); //GET FIRST CHILD ID TO LOAD PARENTS BREADCRUMB
loadParentBreadcrumbByItemId(childId); loadParentBreadcrumbByItemId(childId, false);
}else{ //FOLDER IS EMPTY AND EXISTS, FOLDER IS LAST PARENT INTO BREADCRUMB
loadParentBreadcrumbByItemId(itemId, true); //RELOAD BREDCRUMB
} }
@ -781,13 +798,13 @@ public class AppController implements SubscriberInterface {
/** /**
* *
* @param item * @param item
* @param isLastParent - if is true, load the item passed in input as last item of the resulted list * @param isLastParent - if is true, load the item passed in input as last item of the list resulted
*/ */
private void loadBreadcrumbByFileModel(final FileModel item, final boolean isLastParent){ private void loadBreadcrumbByFileModel(final FileModel item, final boolean isLastParent){
GWT.log("Reload Breadcrumb: [FileModel name: "+item.getName()+ ", isLastParent: "+isLastParent+"]"); GWT.log("Reload Breadcrumb: [FileModel name: "+item.getName()+ ", isLastParent: "+isLastParent+"]");
AppControllerExplorer.rpcWorkspaceService.getListParentsByItemIdentifier(item.getIdentifier(), new AsyncCallback<List<FileModel>>() { AppControllerExplorer.rpcWorkspaceService.getListParentsByItemIdentifier(item.getIdentifier(), false, new AsyncCallback<List<FileModel>>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
@ -812,13 +829,13 @@ public class AppController implements SubscriberInterface {
/** /**
* *
* @param itemId * @param childItemId
*/ */
protected void loadParentBreadcrumbByItemId(final String itemId){ protected void loadParentBreadcrumbByItemId(final String childItemId, boolean includeItemAsParent){
GWT.log("Reload Parent Breadcrumb: [Item id: "+itemId+"]"); GWT.log("Reload Parent Breadcrumb: [Item id: "+childItemId+"]");
AppControllerExplorer.rpcWorkspaceService.getListParentsByItemIdentifier(itemId, new AsyncCallback<List<FileModel>>() { AppControllerExplorer.rpcWorkspaceService.getListParentsByItemIdentifier(childItemId, includeItemAsParent, new AsyncCallback<List<FileModel>>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
@ -1239,7 +1256,12 @@ public class AppController implements SubscriberInterface {
@Override @Override
public void refreshFolder(FileModel folderTarget) { public void refreshFolder(FileModel folderTarget) {
updateStoreByRpc(folderTarget);
//REFRESH FOLDER ONLY IF IS DISPLAYED YOUR CHILDREN
FileGridModel file = wsPortlet.getGridGroupContainer().getFileGridModelByIdentifier(folderTarget.getIdentifier());
if(file==null)
updateStoreByRpc(folderTarget);
} }
@ -1315,4 +1337,14 @@ public class AppController implements SubscriberInterface {
return errorPanel; return errorPanel;
} }
/* (non-Javadoc)
* @see org.gcube.portlets.user.workspace.client.interfaces.SubscriberInterface#pasteEventIsCompleted()
*/
@Override
public void pasteEventIsCompleted() {
wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().activePasteButton(false);
}
} }

View File

@ -454,6 +454,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
return false; return false;
} }
public GroupingStore<FileGridModel> getStore(){ public GroupingStore<FileGridModel> getStore(){
return store; return store;
} }

View File

@ -1,17 +1,28 @@
package org.gcube.portlets.user.workspace.client.view.panels; package org.gcube.portlets.user.workspace.client.view.panels;
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.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.SaveSmartFolderEvent; import org.gcube.portlets.user.workspace.client.event.SaveSmartFolderEvent;
import org.gcube.portlets.user.workspace.client.event.ScopeChangeEvent;
import org.gcube.portlets.user.workspace.client.event.SearchTextEvent; import org.gcube.portlets.user.workspace.client.event.SearchTextEvent;
import org.gcube.portlets.user.workspace.client.model.ScopeModel;
import org.gcube.portlets.user.workspace.client.view.GxtComboBox;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.Style.VerticalAlignment;
import com.extjs.gxt.ui.client.event.ComponentEvent; import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.event.KeyListener; import com.extjs.gxt.ui.client.event.KeyListener;
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
import com.extjs.gxt.ui.client.widget.HorizontalPanel; import com.extjs.gxt.ui.client.widget.HorizontalPanel;
import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.VerticalPanel; import com.extjs.gxt.ui.client.widget.VerticalPanel;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.DateField; import com.extjs.gxt.ui.client.widget.form.DateField;
import com.extjs.gxt.ui.client.widget.form.SimpleComboBox;
import com.extjs.gxt.ui.client.widget.form.TextField; import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.layout.FitLayout; import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.dom.client.Style.Unit;
@ -31,6 +42,8 @@ import com.google.gwt.user.client.ui.RootPanel;
*/ */
public class GxtSeachAndFilterPanel extends LayoutContainer { public class GxtSeachAndFilterPanel extends LayoutContainer {
private GxtComboBox comboBoxGxt = null;
private ComboBox<ScopeModel> cbViewScope = null;
// private HTML txtViewScope = new HTML("<nobr>"+ConstantsPortlet.VIEWSPACE+":</nobr>"); // private HTML txtViewScope = new HTML("<nobr>"+ConstantsPortlet.VIEWSPACE+":</nobr>");
private final TextField<String> textSearch = new TextField<String>(); private final TextField<String> textSearch = new TextField<String>();
private Button bSearch = new Button(ConstantsPortlet.SEARCH); private Button bSearch = new Button(ConstantsPortlet.SEARCH);
@ -39,11 +52,13 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
private TextField<String> textFull = new TextField<String>(); private TextField<String> textFull = new TextField<String>();
private DateField fromDate = new DateField(); private DateField fromDate = new DateField();
private DateField toDate = new DateField(); private DateField toDate = new DateField();
private SimpleComboBox<String> cbNameFilter = null;
private HorizontalPanel toolbarPathPanel = null; private HorizontalPanel toolbarPathPanel = null;
private boolean isSearchActive = false; private boolean isSearchActive = false;
private VerticalPanel cp = new VerticalPanel(); private VerticalPanel cp = new VerticalPanel();
HorizontalPanel hp = new HorizontalPanel(); HorizontalPanel hp = new HorizontalPanel();
HorizontalPanel hp2 = new HorizontalPanel();
HorizontalPanel hpMain = new HorizontalPanel(); HorizontalPanel hpMain = new HorizontalPanel();
@ -56,6 +71,11 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
setBorders(true); setBorders(true);
setId("SearchAndFilter"); setId("SearchAndFilter");
this.comboBoxGxt = new GxtComboBox();
this.cbViewScope = this.comboBoxGxt.getComboViewScope();
this.cbNameFilter = this.comboBoxGxt.getComboStringFilter();
this.cbViewScope.setWidth(360);
// this.cbViewScope.setAutoWidth(true); // this.cbViewScope.setAutoWidth(true);
this.toolbarPathPanel = toolbarContainer; this.toolbarPathPanel = toolbarContainer;
@ -71,7 +91,6 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
textSearch.setAllowBlank(true); textSearch.setAllowBlank(true);
textSearch.setEmptyText(ConstantsPortlet.SEARCHINWORSPACE); textSearch.setEmptyText(ConstantsPortlet.SEARCHINWORSPACE);
textSearch.setWidth(325); textSearch.setWidth(325);
textSearch.setHeight(22);
textSearch.setRegex("^[a-zA-Z0-9]+[ a-zA-Z0-9_().-]*"); //alphanumeric textSearch.setRegex("^[a-zA-Z0-9]+[ a-zA-Z0-9_().-]*"); //alphanumeric
textSearch.getMessages().setRegexText(ConstantsExplorer.MESSAGE_SEARCH_FORCE_APHANUMERIC); textSearch.getMessages().setRegexText(ConstantsExplorer.MESSAGE_SEARCH_FORCE_APHANUMERIC);
@ -92,11 +111,21 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
bSearch.setWidth("70px"); bSearch.setWidth("70px");
bSave.setWidth("70px"); bSave.setWidth("70px");
hp2.setHorizontalAlign(HorizontalAlignment.RIGHT);
hpMain.setWidth("100%"); hp2.setVerticalAlign(VerticalAlignment.MIDDLE);
hp.setWidth("100%"); //hp2.add(txtViewScope);
hp2.add(cbViewScope);
cbViewScope.setStyleAttribute("margin-left", "132px");
cbViewScope.setStyleAttribute("margin-top", "2px");
hpMain.add(hp); hpMain.add(hp);
//SOLUTION FOR SCOPE INVISIBLE
cbViewScope.setVisible(false);
hpMain.add(hp2);
cp.add(hpMain); cp.add(hpMain);
this.addListeners(); this.addListeners();
@ -123,9 +152,8 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
int rootWidth = Window.getClientWidth() - 2* leftBorder; //- rightScrollBar; int rootWidth = Window.getClientWidth() - 2* leftBorder; //- rightScrollBar;
//SOLUTION FOR SCOPE INVISIBLE //SOLUTION FOR SCOPE INVISIBLE
hp.setWidth(rootWidth);
hpMain.setWidth(rootWidth-10);
hp.setWidth("100%");
// ORIGINAL CODE // ORIGINAL CODE
// hp.setWidth(rootWidth - 500); // hp.setWidth(rootWidth - 500);
} }
@ -160,6 +188,16 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
}; };
textSearch.addKeyListener(keyListener); textSearch.addKeyListener(keyListener);
//
// bCancel.addClickHandler(new ClickHandler() {
// @Override
// public void onClick(ClickEvent event) {
// if(textSearch.getValue()!=null && !textSearch.getValue().isEmpty() && textSearch.isValid()){
// searchCancel();
// AppController.getEventBus().fireEvent(new SearchTextEvent(null));
// }
// }
// });
bSave.addClickHandler(new ClickHandler() { bSave.addClickHandler(new ClickHandler() {
@Override @Override
@ -172,7 +210,18 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
} }
}); });
this.cbViewScope.addSelectionChangedListener(new SelectionChangedListener<ScopeModel>() {
@Override
public void selectionChanged(SelectionChangedEvent<ScopeModel> se) {
ScopeModel scope = se.getSelectedItem();
AppController.getEventBus().fireEvent(new ScopeChangeEvent(scope.getId()));
}
});
} }
public void resetFields(){ public void resetFields(){
@ -180,6 +229,8 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
this.textFull.reset(); this.textFull.reset();
this.fromDate.reset(); this.fromDate.reset();
this.toDate.reset(); this.toDate.reset();
this.cbNameFilter.reset();
} }
public void seVisibleButtonsCancelSave(boolean flag){ public void seVisibleButtonsCancelSave(boolean flag){
@ -198,6 +249,16 @@ public class GxtSeachAndFilterPanel extends LayoutContainer {
return this.isSearchActive; return this.isSearchActive;
} }
public void setListScope(List<ScopeModel> listScope){
this.comboBoxGxt.setListScope(listScope);
}
public void selectScopeByIndex(int index){
this.cbViewScope.setValue(cbViewScope.getStore().getAt(index));
}
public void setSearchActive(boolean isSearchActive) { public void setSearchActive(boolean isSearchActive) {
// System.out.println("#################SET SEARCH ACTIVE in GRID " + isSearchActive); // System.out.println("#################SET SEARCH ACTIVE in GRID " + isSearchActive);
this.isSearchActive = isSearchActive; this.isSearchActive = isSearchActive;

View File

@ -16,6 +16,7 @@ import org.gcube.portlets.user.workspace.client.event.GetShareLinkEvent;
import org.gcube.portlets.user.workspace.client.event.GridRefreshEvent; import org.gcube.portlets.user.workspace.client.event.GridRefreshEvent;
import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent; import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent;
import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent; import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent;
import org.gcube.portlets.user.workspace.client.event.PasteItemEvent;
import org.gcube.portlets.user.workspace.client.event.RenameItemEvent; import org.gcube.portlets.user.workspace.client.event.RenameItemEvent;
import org.gcube.portlets.user.workspace.client.event.WebDavUrlEvent; import org.gcube.portlets.user.workspace.client.event.WebDavUrlEvent;
import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum; import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum;
@ -23,6 +24,7 @@ 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;
import org.gcube.portlets.user.workspace.client.resources.Resources; import org.gcube.portlets.user.workspace.client.resources.Resources;
import org.gcube.portlets.user.workspace.client.view.grids.GxtGridFilterGroupPanel; import org.gcube.portlets.user.workspace.client.view.grids.GxtGridFilterGroupPanel;
import org.gcube.portlets.user.workspace.client.view.tree.CopyAndPaste;
import com.extjs.gxt.ui.client.Style.ButtonArrowAlign; import com.extjs.gxt.ui.client.Style.ButtonArrowAlign;
import com.extjs.gxt.ui.client.Style.ButtonScale; import com.extjs.gxt.ui.client.Style.ButtonScale;
@ -60,6 +62,8 @@ public class GxtToolBarItemFunctionality {
// private Button btnGetInfo; // private Button btnGetInfo;
private Button btnGetSharedLink; private Button btnGetSharedLink;
private Button btnPublicLink; private Button btnPublicLink;
private Button btnCopyItem;
private Button btnPasteItem;
public GxtToolBarItemFunctionality() { public GxtToolBarItemFunctionality() {
initToolBar(); initToolBar();
@ -123,13 +127,36 @@ public class GxtToolBarItemFunctionality {
// toolBar.add(new SeparatorToolItem()); // toolBar.add(new SeparatorToolItem());
// toolBar.add(new SeparatorToolItem()); // toolBar.add(new SeparatorToolItem());
btnRenameItem = new Button(ConstantsPortlet.RENAMEITEM, btnRenameItem = new Button(ConstantsPortlet.RENAMEITEM, Resources.getIconRenameItem());
Resources.getIconRenameItem());
btnRenameItem.setScale(ButtonScale.SMALL); btnRenameItem.setScale(ButtonScale.SMALL);
btnRenameItem.setIconAlign(IconAlign.TOP); btnRenameItem.setIconAlign(IconAlign.TOP);
btnRenameItem.setArrowAlign(ButtonArrowAlign.BOTTOM); btnRenameItem.setArrowAlign(ButtonArrowAlign.BOTTOM);
toolBar.add(btnRenameItem); toolBar.add(btnRenameItem);
//COPY
btnCopyItem = new Button("Copy", Resources.getIconRenameItem());
btnCopyItem.setScale(ButtonScale.SMALL);
btnCopyItem.setIconAlign(IconAlign.TOP);
btnCopyItem.setIcon(Resources.getIconCopy());
toolBar.add(btnCopyItem);
//PASTE
btnPasteItem = new Button("Paste", Resources.getIconRenameItem());
btnPasteItem.setScale(ButtonScale.SMALL);
btnPasteItem.setIconAlign(IconAlign.TOP);
btnPasteItem.setIcon(Resources.getIconPaste());
btnPasteItem.setEnabled(false); //BY DEFAULT IS DISABLED
toolBar.add(btnPasteItem);
btnDownloadFile = new Button(ConstantsPortlet.DOWNLOADITEM,Resources.getIconDownload()); btnDownloadFile = new Button(ConstantsPortlet.DOWNLOADITEM,Resources.getIconDownload());
btnDownloadFile.setScale(ButtonScale.SMALL); btnDownloadFile.setScale(ButtonScale.SMALL);
btnDownloadFile.setIconAlign(IconAlign.TOP); btnDownloadFile.setIconAlign(IconAlign.TOP);
@ -264,6 +291,37 @@ public class GxtToolBarItemFunctionality {
}); });
btnCopyItem.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem();
if(fileGridModel.getIdentifier()!=null){
CopyAndPaste.copy(fileGridModel.getIdentifier());
btnPasteItem.setEnabled(true);
}
}
});
btnPasteItem.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem();
FileModel parentTarget = getDirectoryOrParent(fileGridModel);
if(parentTarget!=null){
AppController.getEventBus().fireEvent(new PasteItemEvent(CopyAndPaste.getCopiedfileModelId(), parentTarget.getIdentifier()));
CopyAndPaste.setCopiedfileModelId(null);
btnPasteItem.setEnabled(false);
}
}
});
btnRefreshFolder.addSelectionListener(new SelectionListener<ButtonEvent>() { btnRefreshFolder.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override @Override
@ -298,7 +356,7 @@ public class GxtToolBarItemFunctionality {
// //
// } // }
// }); // });
btnRenameItem.addSelectionListener(new SelectionListener<ButtonEvent>() { btnRenameItem.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override @Override
@ -446,6 +504,23 @@ public class GxtToolBarItemFunctionality {
// } // }
} }
/**
* The method return input file model if is directory otherwise parent of file model
* @param fileModel
* @return
*/
private FileModel getDirectoryOrParent(FileModel fileModel){
if(fileModel!=null){
if(fileModel.isDirectory())
return fileModel;
else
return fileModel.getParentFileModel();
}
return null;
}
public void activeButtonsOnSelectForOperation(FileModel target, boolean active) { public void activeButtonsOnSelectForOperation(FileModel target, boolean active) {
@ -522,6 +597,7 @@ public class GxtToolBarItemFunctionality {
this.btnRenameItem.disable(); this.btnRenameItem.disable();
this.btnDownloadFile.disable(); this.btnDownloadFile.disable();
this.btnOpen.disable(); this.btnOpen.disable();
this.btnCopyItem.disable();
// this.btnGetInfo.disable(); // this.btnGetInfo.disable();
// this.btnGetSharedLink.disable(); // this.btnGetSharedLink.disable();
} else { } else {
@ -529,6 +605,7 @@ public class GxtToolBarItemFunctionality {
this.btnRenameItem.enable(); this.btnRenameItem.enable();
this.btnDownloadFile.enable(); this.btnDownloadFile.enable();
this.btnOpen.enable(); this.btnOpen.enable();
this.btnCopyItem.enable();
// this.btnGetInfo.enable(); // this.btnGetInfo.enable();
} }
@ -561,5 +638,9 @@ public class GxtToolBarItemFunctionality {
public void activeButtonsOnSearch(boolean b) { public void activeButtonsOnSearch(boolean b) {
btnRefreshFolder.setEnabled(!b); btnRefreshFolder.setEnabled(!b);
} }
public void activePasteButton(boolean b){
btnPasteItem.setEnabled(b);
}
} }