2013-02-06 15:40:17 +01:00
package org.gcube.portlets.user.workspace.client ;
import java.util.ArrayList ;
import java.util.Collections ;
import java.util.HashMap ;
2013-02-13 18:39:33 +01:00
import java.util.List ;
2013-02-06 15:40:17 +01:00
2015-10-06 12:16:22 +02:00
import org.gcube.portlets.user.workspace.client.ConstantsExplorer.WS_UPLOAD_TYPE ;
2013-06-14 15:04:43 +02:00
import org.gcube.portlets.user.workspace.client.ConstantsExplorer.WsPortletInitOperation ;
2013-05-23 19:03:43 +02:00
import org.gcube.portlets.user.workspace.client.event.AccountingHistoryEvent ;
import org.gcube.portlets.user.workspace.client.event.AccountingHistoryEventHandler ;
import org.gcube.portlets.user.workspace.client.event.AccountingReadersEvent ;
import org.gcube.portlets.user.workspace.client.event.AccountingReadersEventHandler ;
2014-07-08 18:41:53 +02:00
import org.gcube.portlets.user.workspace.client.event.AddAdministratorEvent ;
import org.gcube.portlets.user.workspace.client.event.AddAdministratorEventHandler ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.event.AddFolderEvent ;
import org.gcube.portlets.user.workspace.client.event.AddFolderEventHandler ;
import org.gcube.portlets.user.workspace.client.event.AddSmartFolderEvent ;
import org.gcube.portlets.user.workspace.client.event.AddSmartFolderEventHandler ;
import org.gcube.portlets.user.workspace.client.event.BulkCreatorEvent ;
import org.gcube.portlets.user.workspace.client.event.BulkCreatorEventHandler ;
import org.gcube.portlets.user.workspace.client.event.CompletedFileUploadEvent ;
import org.gcube.portlets.user.workspace.client.event.CompletedFileUploadEventHandler ;
2013-09-13 16:14:07 +02:00
import org.gcube.portlets.user.workspace.client.event.CopytemEvent ;
import org.gcube.portlets.user.workspace.client.event.CopytemEventHandler ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.event.CreateSharedFolderEvent ;
import org.gcube.portlets.user.workspace.client.event.CreateSharedFolderEventHandler ;
import org.gcube.portlets.user.workspace.client.event.CreateUrlEvent ;
import org.gcube.portlets.user.workspace.client.event.CreateUrlEventHandler ;
import org.gcube.portlets.user.workspace.client.event.DeleteItemEvent ;
import org.gcube.portlets.user.workspace.client.event.DeleteItemEventHandler ;
import org.gcube.portlets.user.workspace.client.event.DeleteSmartFolderEvent ;
import org.gcube.portlets.user.workspace.client.event.DeleteSmartFolderEventHandler ;
2015-01-28 12:42:48 +01:00
import org.gcube.portlets.user.workspace.client.event.EditUserPermissionEvent ;
import org.gcube.portlets.user.workspace.client.event.EditUserPermissionEventHandler ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.event.ExpandFolderEvent ;
import org.gcube.portlets.user.workspace.client.event.ExpandFolderEventHandler ;
import org.gcube.portlets.user.workspace.client.event.FileDownloadEvent ;
import org.gcube.portlets.user.workspace.client.event.FileDownloadEvent.DownloadType ;
import org.gcube.portlets.user.workspace.client.event.FileDownloadEventHandler ;
import org.gcube.portlets.user.workspace.client.event.FileUploadEvent ;
import org.gcube.portlets.user.workspace.client.event.FileUploadEventHandler ;
import org.gcube.portlets.user.workspace.client.event.FilterScopeEvent ;
import org.gcube.portlets.user.workspace.client.event.FilterScopeEventHandler ;
2013-03-25 12:35:05 +01:00
import org.gcube.portlets.user.workspace.client.event.GetInfoEvent ;
import org.gcube.portlets.user.workspace.client.event.GetInfoEventHandler ;
2013-07-09 14:48:34 +02:00
import org.gcube.portlets.user.workspace.client.event.GetPublicLinkEvent ;
import org.gcube.portlets.user.workspace.client.event.GetPublicLinkEventHandler ;
2013-06-07 14:07:37 +02:00
import org.gcube.portlets.user.workspace.client.event.GetShareLinkEvent ;
2013-06-07 14:47:28 +02:00
import org.gcube.portlets.user.workspace.client.event.GetSharedLinkEventHandler ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent ;
import org.gcube.portlets.user.workspace.client.event.ImagePreviewEventHandler ;
import org.gcube.portlets.user.workspace.client.event.MoveItemEvent ;
import org.gcube.portlets.user.workspace.client.event.MoveItemEventHandler ;
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.OpenReportsEvent ;
import org.gcube.portlets.user.workspace.client.event.OpenReportsEventHandler ;
import org.gcube.portlets.user.workspace.client.event.OpenUrlEvent ;
import org.gcube.portlets.user.workspace.client.event.OpenUrlEventHandler ;
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.RefreshFolderEvent ;
import org.gcube.portlets.user.workspace.client.event.RefreshItemEventHandler ;
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.RenderForm ;
import org.gcube.portlets.user.workspace.client.event.RenderFormEventHandler ;
import org.gcube.portlets.user.workspace.client.event.SelectedItemEvent ;
import org.gcube.portlets.user.workspace.client.event.SelectedItemEventHandler ;
import org.gcube.portlets.user.workspace.client.event.SendMessageEvent ;
2015-11-17 17:23:53 +01:00
import org.gcube.portlets.user.workspace.client.event.SendMessageEventHandler ;
2013-09-04 15:30:17 +02:00
import org.gcube.portlets.user.workspace.client.event.SessionExpiredEvent ;
import org.gcube.portlets.user.workspace.client.event.SessionExpiredEventHandler ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.event.SmartFolderSelectedEvent ;
import org.gcube.portlets.user.workspace.client.event.SmartFolderSelectedEventHandler ;
import org.gcube.portlets.user.workspace.client.event.SubTreeLoadedEvent ;
import org.gcube.portlets.user.workspace.client.event.SubTreeLoadedEventHandler ;
import org.gcube.portlets.user.workspace.client.event.SwitchViewEvent ;
import org.gcube.portlets.user.workspace.client.event.SwitchViewEventHandler ;
2014-01-13 17:11:09 +01:00
import org.gcube.portlets.user.workspace.client.event.TrashEvent ;
import org.gcube.portlets.user.workspace.client.event.TrashEventHandler ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.event.UnShareFolderEvent ;
import org.gcube.portlets.user.workspace.client.event.UnShareFolderEventHandler ;
2014-10-30 18:11:56 +01:00
import org.gcube.portlets.user.workspace.client.event.UpdateWorkspaceSizeEvent ;
import org.gcube.portlets.user.workspace.client.event.UpdateWorkspaceSizeEventHandler ;
2014-03-18 12:50:53 +01:00
import org.gcube.portlets.user.workspace.client.event.UpdatedVREPermissionEvent ;
import org.gcube.portlets.user.workspace.client.event.UpdatedVREPermissionEventHandler ;
import org.gcube.portlets.user.workspace.client.event.VRESettingPermissionEvent ;
import org.gcube.portlets.user.workspace.client.event.VRESettingPermissionEventHandler ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.event.WebDavUrlEvent ;
import org.gcube.portlets.user.workspace.client.event.WebDavUrlEventHandler ;
import org.gcube.portlets.user.workspace.client.interfaces.EventsTypeEnum ;
import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum ;
import org.gcube.portlets.user.workspace.client.interfaces.GuiEventInterface ;
import org.gcube.portlets.user.workspace.client.interfaces.SubscriberInterface ;
import org.gcube.portlets.user.workspace.client.interfaces.TreeAppControllerInterface ;
import org.gcube.portlets.user.workspace.client.model.FileModel ;
import org.gcube.portlets.user.workspace.client.model.FolderModel ;
2014-07-08 18:41:53 +02:00
import org.gcube.portlets.user.workspace.client.model.InfoContactModel ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.model.SmartFolderModel ;
import org.gcube.portlets.user.workspace.client.model.SubTree ;
import org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService ;
import org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceServiceAsync ;
2013-06-25 15:33:03 +02:00
import org.gcube.portlets.user.workspace.client.util.RequestBuilderWorkspaceValidateItem ;
import org.gcube.portlets.user.workspace.client.util.WindowOpenParameter ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.view.ExplorerPanel ;
import org.gcube.portlets.user.workspace.client.view.sharing.DialogShareFolder ;
2014-03-17 14:43:06 +01:00
import org.gcube.portlets.user.workspace.client.view.sharing.permissions.DialogPermission ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.view.tree.AsyncTreePanel ;
import org.gcube.portlets.user.workspace.client.view.windows.BulkCreatorWindow ;
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddFolderAndSmart ;
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddFolderAndSmart.AddType ;
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddUrl ;
2013-03-25 12:35:05 +01:00
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetInfo ;
2013-07-09 14:48:34 +02:00
import org.gcube.portlets.user.workspace.client.view.windows.DialogPublicLink ;
2013-06-07 14:07:37 +02:00
import org.gcube.portlets.user.workspace.client.view.windows.DialogShareLink ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.view.windows.DialogText ;
import org.gcube.portlets.user.workspace.client.view.windows.DialogWebDavUrl ;
2013-06-25 15:33:03 +02:00
import org.gcube.portlets.user.workspace.client.view.windows.InfoDisplayMessage ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxAlert ;
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxConfirm ;
2015-09-21 13:00:26 +02:00
import org.gcube.portlets.user.workspace.client.view.windows.NewBrowserWindow ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.view.windows.WindowImagePreview ;
2013-06-07 14:07:37 +02:00
import org.gcube.portlets.user.workspace.client.view.windows.accounting.WindowAccountingInfo ;
2013-02-06 15:40:17 +01:00
import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem ;
import org.gcube.portlets.user.workspace.client.workspace.folder.item.GWTExternalImage ;
import org.gcube.portlets.user.workspace.client.workspace.folder.item.GWTExternalUrl ;
import org.gcube.portlets.user.workspace.client.workspace.folder.item.gcube.GWTImageDocument ;
import org.gcube.portlets.user.workspace.client.workspace.folder.item.gcube.GWTUrlDocument ;
2015-03-06 16:12:21 +01:00
import org.gcube.portlets.user.workspace.shared.ReportAssignmentACL ;
2014-01-14 14:41:03 +01:00
import org.gcube.portlets.user.workspace.shared.SessionExpiredException ;
2014-10-28 17:12:40 +01:00
import org.gcube.portlets.user.workspace.shared.UserBean ;
2013-05-23 19:03:43 +02:00
import org.gcube.portlets.user.workspace.shared.accounting.GxtAccountingField ;
2015-01-28 18:27:23 +01:00
import org.gcube.portlets.widgets.workspacesharingwidget.client.ConstantsSharing.LOAD_CONTACTS_AS ;
import org.gcube.portlets.widgets.workspacesharingwidget.client.MultiDragConstants ;
2015-02-16 14:46:38 +01:00
import org.gcube.portlets.widgets.workspacesharingwidget.client.MultiDragContactsEditPermissions ;
2014-09-23 16:15:36 +02:00
import org.gcube.portlets.widgets.workspacesharingwidget.client.SimpleMultiDragWorkspaceContact ;
2015-01-28 12:42:48 +01:00
import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.multisuggest.DialogMultiDragContact ;
2015-10-05 18:33:14 +02:00
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener ;
2015-10-06 10:46:17 +02:00
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE ;
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload ;
2013-02-06 15:40:17 +01:00
import com.extjs.gxt.ui.client.Registry ;
import com.extjs.gxt.ui.client.event.BaseEvent ;
import com.extjs.gxt.ui.client.event.Events ;
import com.extjs.gxt.ui.client.event.Listener ;
import com.extjs.gxt.ui.client.event.MessageBoxEvent ;
import com.extjs.gxt.ui.client.widget.Dialog ;
2013-02-12 17:17:15 +01:00
import com.extjs.gxt.ui.client.widget.Info ;
2014-07-08 18:41:53 +02:00
import com.extjs.gxt.ui.client.widget.MessageBox ;
2013-02-06 15:40:17 +01:00
import com.google.gwt.core.client.GWT ;
import com.google.gwt.event.shared.EventHandler ;
import com.google.gwt.event.shared.HandlerManager ;
2013-06-25 15:33:03 +02:00
import com.google.gwt.http.client.RequestBuilder ;
2013-03-25 11:14:26 +01:00
import com.google.gwt.user.client.Timer ;
2013-02-06 15:40:17 +01:00
import com.google.gwt.user.client.rpc.AsyncCallback ;
import com.google.gwt.user.client.ui.HasWidgets ;
/ * *
2015-09-18 16:51:38 +02:00
* The Class AppControllerExplorer .
2013-02-06 15:40:17 +01:00
*
2015-09-18 16:51:38 +02:00
* @author Francesco Mangiacrapa francesco . mangiacrapa @isti.cnr.it
2013-02-06 15:40:17 +01:00
* /
public class AppControllerExplorer implements EventHandler , TreeAppControllerInterface {
2013-05-27 12:21:16 +02:00
2013-02-06 15:40:17 +01:00
public static final GWTWorkspaceServiceAsync rpcWorkspaceService = ( GWTWorkspaceServiceAsync ) GWT . create ( GWTWorkspaceService . class ) ;
private ExplorerPanel explorerPanel ;
2016-02-19 15:59:23 +01:00
2013-02-06 15:40:17 +01:00
private final static HandlerManager eventBus = new HandlerManager ( null ) ;
2014-01-21 14:55:19 +01:00
private HashMap < EventsTypeEnum , ArrayList < SubscriberInterface > > subscribers = null ;
2016-02-19 15:59:23 +01:00
2013-02-06 15:40:17 +01:00
private boolean selectRootItem ;
2015-10-05 18:33:14 +02:00
// private FileUploader fileUploader;
2014-02-12 12:49:07 +01:00
public static String myLogin ;
2014-10-28 17:12:40 +01:00
public static String myLoginFirstName ;
2016-02-19 15:59:23 +01:00
2014-09-03 15:52:14 +02:00
private static AppControllerExplorer singleton ;
2014-01-21 14:55:19 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Instantiates a new app controller explorer .
* /
2013-02-06 15:40:17 +01:00
public AppControllerExplorer ( ) {
Registry . register ( ConstantsExplorer . RPC_WORKSPACE_SERVICE , rpcWorkspaceService ) ;
2016-02-19 15:59:23 +01:00
subscribers = new HashMap < EventsTypeEnum , ArrayList < SubscriberInterface > > ( ) ;
2013-02-06 15:40:17 +01:00
bind ( ) ;
2014-09-03 15:52:14 +02:00
singleton = this ;
2013-02-06 15:40:17 +01:00
}
2016-02-19 15:59:23 +01:00
2013-02-06 15:40:17 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Gets the single instance of AppControllerExplorer .
*
* @return single instance of AppControllerExplorer
* /
2014-09-03 15:52:14 +02:00
public static AppControllerExplorer getInstance ( ) {
return singleton ;
2013-02-06 15:40:17 +01:00
}
2015-09-18 16:51:38 +02:00
/ * *
* Gets the event bus .
*
* @return the event bus
* /
2013-02-06 15:40:17 +01:00
public static HandlerManager getEventBus ( ) {
return eventBus ;
}
2014-01-21 14:55:19 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Gets the rpc workspace service .
*
* @return the rpc workspace service
* /
2013-02-06 15:40:17 +01:00
public GWTWorkspaceServiceAsync getRpcWorkspaceService ( ) {
2013-12-20 11:38:09 +01:00
2013-02-06 15:40:17 +01:00
return rpcWorkspaceService ;
}
2015-09-18 16:51:38 +02:00
/ * *
* Bind .
* /
2013-02-06 15:40:17 +01:00
private void bind ( ) {
2015-01-28 12:42:48 +01:00
2014-10-30 18:11:56 +01:00
eventBus . addHandler ( UpdateWorkspaceSizeEvent . TYPE , new UpdateWorkspaceSizeEventHandler ( ) {
2016-02-19 15:59:23 +01:00
2014-10-30 18:11:56 +01:00
@Override
public void onUpdateWorkspaceSize ( UpdateWorkspaceSizeEvent updateWorkspaceSizeEvent ) {
doUpdateWorkspaceSize ( updateWorkspaceSizeEvent ) ;
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( RenderForm . TYPE , new RenderFormEventHandler ( ) {
@Override
public void onRenderForm ( RenderForm event ) {
2016-02-19 15:59:23 +01:00
2013-02-06 15:40:17 +01:00
}
2016-02-19 15:59:23 +01:00
} ) ;
2014-01-21 14:55:19 +01:00
2015-11-17 17:23:53 +01:00
eventBus . addHandler ( SendMessageEvent . TYPE , new SendMessageEventHandler ( ) {
@Override
public void onSendMessage ( SendMessageEvent sendMessageEvent ) {
notifySubscriber ( sendMessageEvent ) ;
}
} ) ;
2016-02-19 15:59:23 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( UnShareFolderEvent . TYPE , new UnShareFolderEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onUnShareFolder ( UnShareFolderEvent unShareFolderEvent ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
final FileModel source = unShareFolderEvent . getTargetFileModel ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
String folderId = null ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( source ! = null )
folderId = source . getIdentifier ( ) ;
2014-01-21 14:55:19 +01:00
2013-12-20 17:05:40 +01:00
if ( folderId ! = null ) {
2014-01-21 14:55:19 +01:00
String msg = " Unsharing the folder, the files will be removed from your workspace. Continue? " ;
MessageBoxConfirm mbc = new MessageBoxConfirm ( " Confirm Unshare? " , msg ) ;
final String folderIdentification = folderId ;
mbc . getMessageBoxConfirm ( ) . addCallback ( new Listener < MessageBoxEvent > ( ) {
2013-12-20 17:05:40 +01:00
public void handleEvent ( MessageBoxEvent be ) {
2014-01-21 14:55:19 +01:00
2013-12-20 17:05:40 +01:00
//IF NOT CANCELLED
String clickedButton = be . getButtonClicked ( ) . getItemId ( ) ;
if ( clickedButton . equals ( Dialog . YES ) ) {
2014-01-21 14:55:19 +01:00
2013-12-20 17:05:40 +01:00
rpcWorkspaceService . unSharedFolderByFolderSharedId ( folderIdentification , new AsyncCallback < Boolean > ( ) {
2014-01-21 14:55:19 +01:00
2013-12-20 17:05:40 +01:00
@Override
public void onFailure ( Throwable caught ) {
2014-01-21 14:55:19 +01:00
2014-01-14 14:41:03 +01:00
if ( caught instanceof SessionExpiredException ) {
GWT . log ( " Session expired " ) ;
eventBus . fireEvent ( new SessionExpiredEvent ( ) ) ;
return ;
}
2014-01-21 14:55:19 +01:00
2013-12-20 17:05:40 +01:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
}
2014-01-21 14:55:19 +01:00
2013-12-20 17:05:40 +01:00
@Override
public void onSuccess ( Boolean result ) {
if ( result ) //REFRESH PARENT FOLDER
2014-01-15 12:49:40 +01:00
eventBus . fireEvent ( new RefreshFolderEvent ( source . getParentFileModel ( ) , true , false , false ) ) ;
2014-01-21 14:55:19 +01:00
2013-12-20 17:05:40 +01:00
}
} ) ;
}
2013-02-06 15:40:17 +01:00
}
2016-02-19 15:59:23 +01:00
} ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2014-01-13 17:11:09 +01:00
eventBus . addHandler ( TrashEvent . TYPE , new TrashEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2014-01-13 17:11:09 +01:00
@Override
public void onTrashEvent ( TrashEvent trashEvent ) {
2014-01-21 14:55:19 +01:00
2014-01-13 17:11:09 +01:00
notifySubscriber ( trashEvent ) ;
}
} ) ;
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
eventBus . addHandler ( AddAdministratorEvent . TYPE , new AddAdministratorEventHandler ( ) {
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
@Override
public void onAddAdministrator ( AddAdministratorEvent addAdministratorEvent ) {
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
final FileModel file = addAdministratorEvent . getSelectedFolder ( ) ;
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
if ( file = = null | | file . getIdentifier ( ) = = null )
return ;
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
rpcWorkspaceService . getOwnerByItemId ( file . getIdentifier ( ) , new AsyncCallback < InfoContactModel > ( ) {
@Override
public void onFailure ( Throwable caught ) {
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
if ( caught instanceof SessionExpiredException ) {
GWT . log ( " Session expired " ) ;
eventBus . fireEvent ( new SessionExpiredEvent ( ) ) ;
return ;
}
new MessageBoxAlert ( " Error " , " Sorry, an error occurred on recovering the contacts, try again later " , null ) ;
explorerPanel . unmask ( ) ;
}
@Override
public void onSuccess ( InfoContactModel infoContactModel ) {
//IF IS OWNER
if ( AppControllerExplorer . myLogin . compareToIgnoreCase ( infoContactModel . getLogin ( ) ) = = 0 )
showAddAdministratorsDialog ( file ) ;
else
2014-09-23 16:15:36 +02:00
new MessageBoxAlert ( " Permission denied " , " You have no permissions to manage administrators. You are not manager of \" " + file . getName ( ) + " \" " , null ) ;
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
}
} ) ;
}
} ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
eventBus . addHandler ( EditUserPermissionEvent . TYPE , new EditUserPermissionEventHandler ( ) {
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
@Override
public void onEditUserPermission ( EditUserPermissionEvent editUserPermissionEvent ) {
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
final FileModel file = editUserPermissionEvent . getSourceFolder ( ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
if ( file = = null | | file . getIdentifier ( ) = = null )
return ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
rpcWorkspaceService . getOwnerByItemId ( file . getIdentifier ( ) , new AsyncCallback < InfoContactModel > ( ) {
@Override
public void onFailure ( Throwable caught ) {
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
if ( caught instanceof SessionExpiredException ) {
GWT . log ( " Session expired " ) ;
eventBus . fireEvent ( new SessionExpiredEvent ( ) ) ;
return ;
}
new MessageBoxAlert ( " Error " , " Sorry, an error occurred on recovering the contacts, try again later " , null ) ;
explorerPanel . unmask ( ) ;
}
@Override
public void onSuccess ( InfoContactModel infoContactModel ) {
2015-01-29 11:55:28 +01:00
GWT . log ( " Comparing owner login " + infoContactModel + " with " + AppControllerExplorer . myLogin ) ;
2015-01-28 12:42:48 +01:00
//IF IS OWNER
if ( AppControllerExplorer . myLogin . compareToIgnoreCase ( infoContactModel . getLogin ( ) ) = = 0 )
ediPermissions ( file ) ;
else
new MessageBoxAlert ( " Permission denied " , " You have no authority to manage user permissions. You are not manager of \" " + file . getName ( ) + " \" " , null ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
}
} ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
}
} ) ;
2016-02-19 15:59:23 +01:00
2013-03-25 12:35:05 +01:00
eventBus . addHandler ( GetInfoEvent . TYPE , new GetInfoEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-03-25 12:35:05 +01:00
@Override
public void onGetInfo ( GetInfoEvent getInfoEvent ) {
new DialogGetInfo ( getInfoEvent . getSourceFile ( ) ) ;
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( CreateSharedFolderEvent . TYPE , new CreateSharedFolderEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onCreateSharedFolder ( CreateSharedFolderEvent createSharedFolderEvent ) {
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
final FileModel sourceFileModel = createSharedFolderEvent . getFileSourceModel ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
//IF ITEM IS SHAREABLE
if ( sourceFileModel . isShareable ( ) ) {
2014-01-21 14:55:19 +01:00
2013-02-12 17:17:15 +01:00
//DEBUG
2013-02-12 16:02:00 +01:00
System . out . println ( " create shared folderEvent - sourceFileModel id " + sourceFileModel . getIdentifier ( ) ) ;
2014-01-21 14:55:19 +01:00
2016-02-19 15:59:23 +01:00
final FileModel parentFileModel = createSharedFolderEvent . getParentFileModel ( ) ;
2013-02-12 16:02:00 +01:00
final boolean isNewFolder = createSharedFolderEvent . isNewFolder ( ) ;
DialogShareFolder dialogSharedFolder = null ;
String parentDirectoryName = null ;
FileModel parent = null ;
2014-01-21 14:55:19 +01:00
2014-02-26 17:35:20 +01:00
//COMMENTED 26/02/2014
// if(parentFileModel==null){ //PARENT IS ROOT
// parent = explorerPanel.getAsycTreePanel().getRootItem();
// sourceFileModel.setParentFileModel(parent);
// }
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
if ( sourceFileModel . isDirectory ( ) ) {
2014-01-21 14:55:19 +01:00
// explorerPanel.getAsycTreePanel().setExpandTreeLevel(sourceFileModel.getIdentifier(), true);
2013-02-12 16:02:00 +01:00
parentDirectoryName = sourceFileModel . getName ( ) ;
parent = sourceFileModel ;
}
else {
parentDirectoryName = parentFileModel . getName ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
if ( isNewFolder )
dialogSharedFolder = new DialogShareFolder ( parentDirectoryName , eventBus ) ;
else
dialogSharedFolder = new DialogShareFolder ( parentDirectoryName , sourceFileModel , eventBus ) ;
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
final DialogShareFolder finalDialog = dialogSharedFolder ;
final FileModel parentModel = parent ;
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
finalDialog . getButtonById ( Dialog . OK ) . addListener ( Events . Select , new Listener < BaseEvent > ( ) {
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
@Override
public void handleEvent ( BaseEvent be ) {
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
if ( finalDialog . isValidForm ( true ) ) {
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
FileModel fileModel = null ;
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
if ( isNewFolder ) {
//create a lowest object to send to server
fileModel = new FileModel ( " tempId " , finalDialog . getName ( ) , parentModel , true , false ) ; //create new shared folder
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
2013-02-12 16:02:00 +01:00
else {
2016-02-19 15:59:23 +01:00
fileModel = finalDialog . getParentFolder ( ) ; //add user for share
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
//create a lowest object to send to server
fileModel = new FileModel ( fileModel . getIdentifier ( ) , fileModel . getName ( ) , fileModel . getParentFileModel ( ) , fileModel . isDirectory ( ) , fileModel . isShared ( ) ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-27 19:17:22 +01:00
fileModel . setDescription ( finalDialog . getDescription ( ) ) ;
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
//DEBUG
2014-02-11 16:41:56 +01:00
/ *
System . out . println ( " FileModel id " + fileModel . getIdentifier ( ) + " name: " + fileModel . getName ( ) + " parent " + fileModel . getParentFileModel ( ) ) ;
for ( InfoContactModel contact : finalDialog . getSharedListUsers ( ) ) {
System . out . println ( " Share with Contact " + contact ) ;
2016-02-19 15:59:23 +01:00
2014-02-11 16:41:56 +01:00
} * /
System . out . println ( " ACL is " + finalDialog . getSelectedACL ( ) ) ;
2016-02-19 15:59:23 +01:00
2013-02-12 17:17:15 +01:00
Info . display ( " Info " , " An operation of sharing was submitted " ) ;
2014-02-25 17:24:31 +01:00
explorerPanel . mask ( " Setting permissions " , ConstantsExplorer . LOADINGSTYLE ) ;
2016-02-19 15:59:23 +01:00
2014-02-11 16:41:56 +01:00
rpcWorkspaceService . shareFolder ( fileModel , finalDialog . getSharedListUsers ( ) , isNewFolder , finalDialog . getSelectedACL ( ) , new AsyncCallback < Boolean > ( ) {
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
@Override
public void onFailure ( Throwable caught ) {
2014-01-21 14:55:19 +01:00
2014-01-14 14:41:03 +01:00
if ( caught instanceof SessionExpiredException ) {
GWT . log ( " Session expired " ) ;
eventBus . fireEvent ( new SessionExpiredEvent ( ) ) ;
return ;
}
2014-01-21 14:55:19 +01:00
2013-02-20 14:51:36 +01:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
2013-02-12 17:17:15 +01:00
explorerPanel . unmask ( ) ;
2014-02-26 17:35:20 +01:00
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
2013-02-12 16:02:00 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
@Override
public void onSuccess ( Boolean result ) {
2013-03-25 11:14:26 +01:00
if ( result ) {
FileModel parentToRefresh = null ;
2014-01-21 14:55:19 +01:00
2013-03-25 11:14:26 +01:00
if ( isNewFolder )
parentToRefresh = parentModel ;
else
parentToRefresh = parentFileModel ;
2014-01-21 14:55:19 +01:00
2014-09-18 15:29:39 +02:00
GWT . log ( " share completed throwing refresh folder : " + parentToRefresh . getName ( ) + " get id: " + parentToRefresh . getIdentifier ( ) ) ;
2016-02-19 15:59:23 +01:00
2014-09-18 15:29:39 +02:00
// eventBus.fireEvent(new RefreshFolderEvent(parentToRefresh, true, false, false));
2016-02-19 15:59:23 +01:00
2014-09-18 15:29:39 +02:00
//TODO UPDATED ID
RefreshFolderEvent refEvent = new RefreshFolderEvent ( parentToRefresh , true , true , false ) ;
refEvent . setForceReloadBreadCrumb ( true ) ;
eventBus . fireEvent ( refEvent ) ;
2013-03-25 11:14:26 +01:00
}
2013-02-12 17:17:15 +01:00
explorerPanel . unmask ( ) ;
2013-02-12 16:02:00 +01:00
}
} ) ;
}
2014-01-21 14:55:19 +01:00
}
2016-02-19 15:59:23 +01:00
} ) ;
2014-01-21 14:55:19 +01:00
}
2013-02-13 18:39:33 +01:00
else { //ITEM IS NOT SHAREABLE
2013-06-25 15:33:03 +02:00
new InfoDisplayMessage ( " Info " , " The selected item is not shareable because an ancestor item is already shared " ) ;
2014-01-21 14:55:19 +01:00
2013-02-12 16:02:00 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
} ) ;
//********EVENTS TO NOTIFY SUBSCRIBERS
eventBus . addHandler ( SubTreeLoadedEvent . TYPE , new SubTreeLoadedEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onSubTreeLoaded ( SubTreeLoadedEvent event ) {
doSubTreeLoaded ( event ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
private void doSubTreeLoaded ( SubTreeLoadedEvent event ) {
notifySubscriber ( event ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-09-04 15:30:17 +02:00
//********EVENTS TO NOTIFY SUBSCRIBERS
eventBus . addHandler ( SessionExpiredEvent . TYPE , new SessionExpiredEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-09-04 15:30:17 +02:00
@Override
public void onSessionExpired ( SessionExpiredEvent sessionExpiredEvent ) {
notifySubscriber ( sessionExpiredEvent ) ;
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( WebDavUrlEvent . TYPE , new WebDavUrlEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onClickWebDavUrl ( WebDavUrlEvent webDavUrlEvent ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
String itemIdentifier = webDavUrlEvent . getItemIdentifier ( ) ;
if ( itemIdentifier = = null )
itemIdentifier = explorerPanel . getAsycTreePanel ( ) . getRootItem ( ) . getIdentifier ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
rpcWorkspaceService . getUrlWebDav ( itemIdentifier , new AsyncCallback < String > ( ) {
@Override
public void onFailure ( Throwable caught ) {
new MessageBoxAlert ( " Error " , ConstantsExplorer . SERVER_ERROR + " viewing WebDAV url " + ConstantsExplorer . TRY_AGAIN , null ) ;
}
@Override
public void onSuccess ( String url ) {
2014-01-21 14:55:19 +01:00
// new MessageBoxInfo(ConstantsExplorer.URL_WEBDAV, url);
2013-02-06 15:40:17 +01:00
DialogWebDavUrl diag = new DialogWebDavUrl ( ConstantsExplorer . URL_WEBDAV + " : " + ConstantsExplorer . TITLEACCESSWEBDAV , " " , url ) ;
diag . selectTxt ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
} ) ;
2014-01-21 14:55:19 +01:00
}
2013-02-06 15:40:17 +01:00
} ) ;
2014-01-21 14:55:19 +01:00
2013-06-07 14:47:28 +02:00
eventBus . addHandler ( GetShareLinkEvent . TYPE , new GetSharedLinkEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-06-07 14:07:37 +02:00
@Override
public void onGetLink ( GetShareLinkEvent getLinkEvent ) {
2014-01-21 14:55:19 +01:00
2013-06-07 14:07:37 +02:00
if ( getLinkEvent . getSourceFile ( ) ! = null ) {
String currentUrl = portalURL ( ) ;
int lastChar = currentUrl . lastIndexOf ( " ? " ) ;
currentUrl = lastChar > - 1 ? currentUrl . substring ( 0 , lastChar ) : currentUrl ; //IF EXISTS - REMOVE STRING AFTER ? (? INLCUSE)
2014-01-21 14:55:19 +01:00
2014-09-18 15:29:39 +02:00
//int last = currentUrl.lastIndexOf("/");
//String shareLinkUrl = currentUrl.substring(0,last+1) + "?" +ConstantsExplorer.GET_ITEMID_PARAMETER+"="+getLinkEvent.getSourceFile().getIdentifier();
2013-06-07 14:07:37 +02:00
String shareLinkUrl = currentUrl + " ? " + ConstantsExplorer . GET_ITEMID_PARAMETER + " = " + getLinkEvent . getSourceFile ( ) . getIdentifier ( ) ;
2015-05-20 18:39:49 +02:00
shareLinkUrl + = " & " + ConstantsExplorer . GET_OPERATION_PARAMETER + " = " + WsPortletInitOperation . gotofolder ;
2014-01-21 14:55:19 +01:00
2013-06-07 14:07:37 +02:00
DialogShareLink dialog = new DialogShareLink ( " Copy to clipboard Share Link: Ctrl+C " , shareLinkUrl ) ;
dialog . show ( ) ;
}
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-07-09 14:48:34 +02:00
eventBus . addHandler ( GetPublicLinkEvent . TYPE , new GetPublicLinkEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-07-09 14:48:34 +02:00
@Override
public void onGetPublicLink ( GetPublicLinkEvent getPublicLinkEvent ) {
// TODO Auto-generated method stub
if ( getPublicLinkEvent . getSourceFile ( ) ! = null ) {
DialogPublicLink dialog = new DialogPublicLink ( " Copy to clipboard Public Link: Ctrl+C " , getPublicLinkEvent . getSourceFile ( ) . getIdentifier ( ) ) ;
dialog . show ( ) ;
}
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( RefreshFolderEvent . TYPE , new RefreshItemEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
2013-09-12 15:54:06 +02:00
public void onRefreshItem ( RefreshFolderEvent refreshItemEvent ) {
2016-02-19 15:59:23 +01:00
2014-01-23 17:20:38 +01:00
GWT . log ( " RefreshFolderEvent: " + refreshItemEvent ) ;
2014-01-21 14:55:19 +01:00
2013-09-12 15:54:06 +02:00
if ( refreshItemEvent . getFolderTarget ( ) ! = null ) {
2014-01-21 14:55:19 +01:00
2014-01-23 17:20:38 +01:00
if ( ! refreshItemEvent . isIfExists ( ) ) { //Called Tree side
2014-01-15 12:49:40 +01:00
explorerPanel . getAsycTreePanel ( ) . reloadTreeLevelAndExpandFolder ( refreshItemEvent . getFolderTarget ( ) . getIdentifier ( ) , refreshItemEvent . isExpandFolder ( ) ) ;
notifySubscriber ( refreshItemEvent ) ;
}
2014-09-18 15:29:39 +02:00
else { //Validating folder existence - called portlet side
2014-01-15 12:49:40 +01:00
FileModel target = explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( refreshItemEvent . getFolderTarget ( ) . getIdentifier ( ) ) ;
if ( target ! = null )
explorerPanel . getAsycTreePanel ( ) . reloadTreeLevelAndExpandFolder ( refreshItemEvent . getFolderTarget ( ) . getIdentifier ( ) , refreshItemEvent . isExpandFolder ( ) ) ;
}
2013-03-25 11:14:26 +01:00
}
else
GWT . log ( " warn: escape refresh because item is null " ) ;
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-03-26 17:31:13 +01:00
//Called from context menu on grid
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( OpenContextMenuTreeEvent . TYPE , new OpenContextMenuTreeEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onOpenContextMenuTree ( OpenContextMenuTreeEvent openContextMenuTreeEvent ) {
2014-01-21 14:55:19 +01:00
explorerPanel . getAsycTreePanel ( ) . getContextMenuTree ( ) . openContextMenuOnItem ( openContextMenuTreeEvent . getTargetFileModel ( ) , openContextMenuTreeEvent . getClientX ( ) , openContextMenuTreeEvent . getClientY ( ) ) ;
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( BulkCreatorEvent . TYPE , new BulkCreatorEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onBulkCreator ( BulkCreatorEvent bulkCreatorEvent ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
boolean isLoading = BulkCreatorWindow . getInstance ( ) . addProgressBar ( bulkCreatorEvent . getListBulks ( ) ) ;
explorerPanel . setLoadingBulk ( isLoading ) ;
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-09-12 14:53:21 +02:00
eventBus . addHandler ( CopytemEvent . TYPE , new CopytemEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-09-12 14:53:21 +02:00
@Override
public void onCopyItem ( CopytemEvent copytemEvent ) {
notifySubscriber ( copytemEvent ) ;
}
} ) ;
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( PasteItemEvent . TYPE , new PasteItemEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
2014-01-24 16:01:15 +01:00
public void onCutCopyAndPaste ( PasteItemEvent pasteItemEvent ) {
2014-01-21 14:55:19 +01:00
2014-01-23 17:20:38 +01:00
GWT . log ( " PasteItemEvent is fired on : " + pasteItemEvent . getIds ( ) . size ( ) + " items, DestinationId: " + pasteItemEvent . getFolderDestinationId ( ) ) ;
2014-01-24 16:01:15 +01:00
doCutCopyAndPaste ( pasteItemEvent ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-24 16:01:15 +01:00
private void doCutCopyAndPaste ( final PasteItemEvent pasteItemEvent ) {
2014-01-21 14:55:19 +01:00
2014-01-24 16:01:15 +01:00
if ( pasteItemEvent . getIds ( ) = = null )
return ;
2016-02-19 15:59:23 +01:00
2014-01-23 17:20:38 +01:00
Info . display ( " Info " , " Paste working... " ) ;
2014-01-24 16:01:15 +01:00
switch ( pasteItemEvent . getOperationType ( ) ) {
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
case CUT :
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
//TODO remove this comments
// if(pasteItemEvent.getFolderSourceId()==null || pasteItemEvent.getFolderSourceId().isEmpty())
// return;
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
rpcWorkspaceService . moveItems ( pasteItemEvent . getIds ( ) , pasteItemEvent . getFolderDestinationId ( ) , new AsyncCallback < Boolean > ( ) {
public void onFailure ( Throwable caught ) {
if ( caught instanceof SessionExpiredException ) {
GWT . log ( " Session expired " ) ;
eventBus . fireEvent ( new SessionExpiredEvent ( ) ) ;
return ;
}
2013-02-06 15:40:17 +01:00
2014-01-24 16:01:15 +01:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) + " . " , null ) ;
2014-02-26 17:35:20 +01:00
// System.out.println(caught.getMessage());
2014-01-24 16:01:15 +01:00
explorerPanel . getAsycTreePanel ( ) . reloadTreeLevelAndExpandFolder ( pasteItemEvent . getFolderDestinationId ( ) , false ) ;
explorerPanel . getAsycTreePanel ( ) . reloadTreeLevelAndExpandFolder ( pasteItemEvent . getFolderSourceId ( ) , true ) ;
}
2014-01-21 14:55:19 +01:00
2014-01-24 16:01:15 +01:00
@Override
public void onSuccess ( Boolean result ) {
2016-02-19 15:59:23 +01:00
2014-03-07 16:40:10 +01:00
FileModel fileInTree = explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( pasteItemEvent . getFolderDestinationId ( ) ) ;
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
if ( result ) {
2016-02-19 15:59:23 +01:00
eventBus . fireEvent ( new RefreshFolderEvent ( fileInTree , false , false , false ) ) ;
2014-09-18 15:29:39 +02:00
//explorerPanel.getAsycTreePanel().setExpandTreeLevel(event.getTargetParentFileModel(), true); //Expand level drop
2014-01-24 16:01:15 +01:00
}
2016-02-19 15:59:23 +01:00
2014-03-07 16:40:10 +01:00
if ( fileInTree ! = null )
pasteItemEvent . setTreeRefreshable ( true ) ;
else
pasteItemEvent . setTreeRefreshable ( false ) ;
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
notifySubscriber ( pasteItemEvent ) ;
2014-01-14 14:41:03 +01:00
}
2014-01-24 16:01:15 +01:00
} ) ;
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
break ;
2016-02-19 15:59:23 +01:00
case COPY :
2014-01-24 16:01:15 +01:00
rpcWorkspaceService . copyItems ( pasteItemEvent . getIds ( ) , pasteItemEvent . getFolderDestinationId ( ) , new AsyncCallback < Boolean > ( ) {
2014-01-21 14:55:19 +01:00
2014-01-24 16:01:15 +01:00
@Override
public void onFailure ( Throwable caught ) {
2013-02-06 15:40:17 +01:00
2014-01-24 16:01:15 +01:00
if ( caught instanceof SessionExpiredException ) {
GWT . log ( " Session expired " ) ;
eventBus . fireEvent ( new SessionExpiredEvent ( ) ) ;
return ;
}
2014-01-21 14:55:19 +01:00
2014-01-24 16:01:15 +01:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
eventBus . fireEvent ( new RefreshFolderEvent ( explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( pasteItemEvent . getFolderDestinationId ( ) ) , false , true , false ) ) ;
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
notifySubscriber ( pasteItemEvent ) ;
}
2014-01-21 14:55:19 +01:00
2014-01-24 16:01:15 +01:00
@Override
public void onSuccess ( Boolean result ) {
2014-03-07 16:40:10 +01:00
FileModel fileInTree = explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( pasteItemEvent . getFolderDestinationId ( ) ) ;
2014-01-24 16:01:15 +01:00
if ( result )
2014-03-07 16:40:10 +01:00
eventBus . fireEvent ( new RefreshFolderEvent ( fileInTree , false , false , false ) ) ;
2014-01-24 16:01:15 +01:00
2014-03-07 16:40:10 +01:00
if ( fileInTree ! = null )
pasteItemEvent . setTreeRefreshable ( true ) ;
else
pasteItemEvent . setTreeRefreshable ( false ) ;
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
notifySubscriber ( pasteItemEvent ) ;
}
} ) ;
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
break ;
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
default :
2016-02-19 15:59:23 +01:00
2014-01-24 16:01:15 +01:00
}
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( SwitchViewEvent . TYPE , new SwitchViewEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onSwitchView ( SwitchViewEvent switchViewEvent ) {
notifySubscriber ( switchViewEvent ) ;
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( FilterScopeEvent . TYPE , new FilterScopeEventHandler ( ) {
@Override
public void onClickScopeFilter ( FilterScopeEvent filterScopeEvent ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . setSearch ( false ) ; //SET IS SEARCH FALSE
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
doChangeScope ( filterScopeEvent . getScopeId ( ) ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
private void doChangeScope ( String scopeId ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . loadRootItem ( scopeId , selectRootItem ) ; // RELOAD ROOT BY SCOPE
explorerPanel . getSmartFolderPanel ( ) . reloadPanelSmartFolder ( ) ; //RELOAD SMART FOLDER
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-05-23 19:03:43 +02:00
eventBus . addHandler ( AccountingHistoryEvent . TYPE , new AccountingHistoryEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-05-23 19:03:43 +02:00
@Override
public void onAccountingHistoryShow ( AccountingHistoryEvent accountingHistoryEvent ) {
2014-01-21 14:55:19 +01:00
2013-05-24 18:18:14 +02:00
FileModel fileItem = accountingHistoryEvent . getTargetFileModel ( ) ;
2014-01-21 14:55:19 +01:00
2013-05-24 18:18:14 +02:00
if ( fileItem ! = null ) {
2014-01-21 14:55:19 +01:00
2013-05-27 12:21:16 +02:00
String title = ConstantsExplorer . ACCOUNTING_HISTORY_OF + fileItem . getName ( ) ;
2014-01-21 14:55:19 +01:00
2013-05-24 18:18:14 +02:00
final WindowAccountingInfo winInfo = new WindowAccountingInfo ( fileItem , title ) ;
winInfo . show ( ) ;
winInfo . maskAccountingInfo ( true ) ;
rpcWorkspaceService . getAccountingHistory ( fileItem . getIdentifier ( ) , new AsyncCallback < List < GxtAccountingField > > ( ) {
2013-05-23 19:03:43 +02:00
@Override
public void onFailure ( Throwable caught ) {
2013-05-24 18:18:14 +02:00
winInfo . maskAccountingInfo ( false ) ;
2013-05-23 19:03:43 +02:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
2014-01-21 14:55:19 +01:00
2013-05-23 19:03:43 +02:00
}
@Override
public void onSuccess ( List < GxtAccountingField > result ) {
2014-01-21 14:55:19 +01:00
2013-05-24 18:18:14 +02:00
winInfo . updateInfoContainer ( result ) ;
winInfo . maskAccountingInfo ( false ) ;
2013-05-23 19:03:43 +02:00
}
} ) ;
}
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-05-23 19:03:43 +02:00
eventBus . addHandler ( AccountingReadersEvent . TYPE , new AccountingReadersEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-05-23 19:03:43 +02:00
@Override
public void onAccountingReadersShow ( AccountingReadersEvent accountingReadersEvent ) {
2013-05-24 18:18:14 +02:00
FileModel fileItem = accountingReadersEvent . getTargetFileModel ( ) ;
2014-01-21 14:55:19 +01:00
2013-05-24 18:18:14 +02:00
if ( fileItem ! = null ) {
2014-01-21 14:55:19 +01:00
2013-05-27 12:21:16 +02:00
String title = ConstantsExplorer . ACCOUNTING_READERS_OF + fileItem . getName ( ) ;
2014-01-21 14:55:19 +01:00
2013-05-24 18:18:14 +02:00
final WindowAccountingInfo winInfo = new WindowAccountingInfo ( fileItem , title ) ;
winInfo . show ( ) ;
winInfo . maskAccountingInfo ( true ) ;
2014-01-21 14:55:19 +01:00
2013-05-24 18:18:14 +02:00
rpcWorkspaceService . getAccountingReaders ( fileItem . getIdentifier ( ) , new AsyncCallback < List < GxtAccountingField > > ( ) {
2013-05-23 19:03:43 +02:00
@Override
public void onFailure ( Throwable caught ) {
2013-05-24 18:18:14 +02:00
winInfo . maskAccountingInfo ( false ) ;
2013-05-23 19:03:43 +02:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
2014-01-21 14:55:19 +01:00
2013-05-23 19:03:43 +02:00
}
@Override
public void onSuccess ( List < GxtAccountingField > result ) {
2014-01-21 14:55:19 +01:00
2013-05-24 18:18:14 +02:00
winInfo . updateInfoContainer ( result ) ;
winInfo . maskAccountingInfo ( false ) ;
2013-05-23 19:03:43 +02:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-05-23 19:03:43 +02:00
}
}
} ) ;
2013-02-06 15:40:17 +01:00
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( FileDownloadEvent . TYPE , new FileDownloadEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onFileDownloadEvent ( FileDownloadEvent fileDownloadEvent ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( fileDownloadEvent . getItemIdentifier ( ) ! = null ) {
2014-01-21 14:55:19 +01:00
// if(fileDownloadEvent.getDownloadType().equals(DownloadType.SHOW)){
// if(fileDownloadEvent.getItemName()!= null)
// com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+"?id="+fileDownloadEvent.getItemIdentifier()+"&viewContent=true", fileDownloadEvent.getItemName(), "");
// }
// else
// com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+"?id="+fileDownloadEvent.getItemIdentifier(), "_self", "");
2016-02-19 15:59:23 +01:00
//
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( fileDownloadEvent . getDownloadType ( ) . equals ( DownloadType . SHOW ) ) {
2013-06-25 15:33:03 +02:00
if ( fileDownloadEvent . getItemName ( ) ! = null ) {
try {
2013-06-25 18:26:25 +02:00
new RequestBuilderWorkspaceValidateItem ( RequestBuilder . GET , ConstantsExplorer . DOWNLOAD_WORKSPACE_SERVICE , " id= " + fileDownloadEvent . getItemIdentifier ( ) + " &viewContent=true " , " _blank " , downloadHandlerCallback ) ;
2014-01-21 14:55:19 +01:00
2013-06-25 15:33:03 +02:00
} catch ( Exception e ) {
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
new MessageBoxAlert ( " Error " , e . getMessage ( ) , null ) ;
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
}
2014-01-21 14:55:19 +01:00
2013-06-25 15:33:03 +02:00
}
2014-01-21 14:55:19 +01:00
// com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+"?id="+fileDownloadEvent.getItemIdentifier()+"&viewContent=true", fileDownloadEvent.getItemName(), "");
2013-06-25 15:33:03 +02:00
} else {
2014-01-21 14:55:19 +01:00
2013-06-25 15:33:03 +02:00
try {
new RequestBuilderWorkspaceValidateItem ( RequestBuilder . GET , ConstantsExplorer . DOWNLOAD_WORKSPACE_SERVICE , " id= " + fileDownloadEvent . getItemIdentifier ( ) , " _self " , downloadHandlerCallback ) ;
} catch ( Exception e ) {
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
new MessageBoxAlert ( " Error " , e . getMessage ( ) , null ) ;
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
}
2013-02-06 15:40:17 +01:00
}
2013-05-24 18:18:14 +02:00
notifySubscriber ( fileDownloadEvent ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( FileUploadEvent . TYPE , new FileUploadEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onFileUploadEvent ( FileUploadEvent fileUploadEvent ) {
doFileUploadEvent ( fileUploadEvent ) ;
}
2015-10-06 12:16:22 +02:00
private void doFileUploadEvent ( final FileUploadEvent fileUploadEvent ) {
2015-10-05 18:33:14 +02:00
GWT . log ( " FileUploadEvent... " ) ;
2013-03-25 19:01:50 +01:00
FileModel folder = fileUploadEvent . getTargetFolderModel ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( folder = = null )
2013-03-25 15:31:28 +01:00
folder = explorerPanel . getAsycTreePanel ( ) . getRootItem ( ) ;
2015-10-05 18:33:14 +02:00
String caption = " Upload " ;
UPLOAD_TYPE upType = UPLOAD_TYPE . File ;
2015-10-06 12:16:22 +02:00
if ( fileUploadEvent . getUploadType ( ) . compareTo ( WS_UPLOAD_TYPE . Archive ) = = 0 ) {
2015-10-05 18:33:14 +02:00
caption + = " a zip Archive " ;
upType = UPLOAD_TYPE . Archive ;
2015-10-06 12:16:22 +02:00
} else if ( fileUploadEvent . getUploadType ( ) . compareTo ( WS_UPLOAD_TYPE . File ) = = 0 ) {
2015-10-13 11:36:03 +02:00
caption + = " File/s " ;
2015-10-05 18:33:14 +02:00
upType = UPLOAD_TYPE . File ;
}
2016-02-19 15:59:23 +01:00
2015-10-05 18:33:14 +02:00
caption + = " in: " + folder . getName ( ) ;
2016-02-19 15:59:23 +01:00
2015-10-06 10:46:17 +02:00
MultipleDilaogUpload uploadStream = new MultipleDilaogUpload ( caption , folder . getIdentifier ( ) , upType ) ;
2015-10-05 18:33:14 +02:00
WorskpaceUploadNotificationListener listener = new WorskpaceUploadNotificationListener ( ) {
2016-02-19 15:59:23 +01:00
2015-10-05 18:33:14 +02:00
@Override
public void onUploadCompleted ( String parentId , String itemId ) {
2015-10-06 12:16:22 +02:00
GWT . log ( " Upload completed: [parentID: " + parentId + " , itemId: " + itemId + " , uploadType: " + fileUploadEvent . getUploadType ( ) + " ] " ) ;
2015-10-16 14:27:45 +02:00
eventBus . fireEvent ( new CompletedFileUploadEvent ( parentId , itemId , fileUploadEvent . getUploadType ( ) , false ) ) ;
2015-10-05 18:33:14 +02:00
}
2016-02-19 15:59:23 +01:00
2015-10-05 18:33:14 +02:00
@Override
public void onUploadAborted ( String parentId , String itemId ) {
GWT . log ( " Upload Aborted: [parentID: " + parentId + " , itemId: " + itemId + " ] " ) ;
}
2016-02-19 15:59:23 +01:00
2015-10-05 18:33:14 +02:00
@Override
public void onError ( String parentId , String itemId , Throwable throwable ) {
2016-02-19 15:59:23 +01:00
GWT . log ( " Upload Error: [parentID: " + parentId + " , itemId: " + itemId + " ] " ) ;
2015-10-05 18:33:14 +02:00
}
2015-10-16 11:52:03 +02:00
@Override
public void onOverwriteCompleted ( String parentId , String itemId ) {
GWT . log ( " Upload Override Completed: [parentID: " + parentId + " , itemId: " + itemId + " ] " ) ;
2015-10-16 14:27:45 +02:00
eventBus . fireEvent ( new CompletedFileUploadEvent ( parentId , itemId , fileUploadEvent . getUploadType ( ) , true ) ) ;
2015-10-16 11:52:03 +02:00
}
2015-10-05 18:33:14 +02:00
} ;
2016-02-19 15:59:23 +01:00
2015-10-05 18:33:14 +02:00
uploadStream . addWorkspaceUploadNotificationListener ( listener ) ;
uploadStream . center ( ) ;
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( CompletedFileUploadEvent . TYPE , new CompletedFileUploadEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onCompletedFileUploadEvent ( CompletedFileUploadEvent completedFileUploadEvent ) {
2016-02-19 15:59:23 +01:00
doCompletedFileUploadEvent ( completedFileUploadEvent ) ;
2013-02-06 15:40:17 +01:00
}
private void doCompletedFileUploadEvent ( CompletedFileUploadEvent completedFileUploadEvent ) {
2015-10-06 12:07:37 +02:00
2015-10-05 18:33:14 +02:00
boolean isLevelExpanded = treeLevelIsExpanded ( completedFileUploadEvent . getParentId ( ) ) ;
2013-03-25 19:01:50 +01:00
//REFRESH TREE ONLY IF FOLDER PARENT EXISTS IN TREE
2015-10-05 18:33:14 +02:00
FileModel parent = explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( completedFileUploadEvent . getParentId ( ) ) ;
2015-10-06 12:07:37 +02:00
GWT . log ( " doCompletedFileUploadEvent... " + parent ) ;
2015-10-05 18:33:14 +02:00
if ( parent ! = null & & completedFileUploadEvent . getItemIdentifier ( ) ! = null ) {
explorerPanel . getAsycTreePanel ( ) . reloadTreeLevelAndExpandFolder ( completedFileUploadEvent . getParentId ( ) , isLevelExpanded ) ;
// explorerPanel.getAsycTreePanel().addItemIdAndExpandFolder(parent, completedFileUploadEvent.getItemIdentifier(), isLevelExpanded);
2013-03-25 19:01:50 +01:00
}
2014-10-30 18:11:56 +01:00
doUpdateWorkspaceSize ( new UpdateWorkspaceSizeEvent ( ) ) ;
2013-02-06 15:40:17 +01:00
notifySubscriber ( completedFileUploadEvent ) ;
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( DeleteSmartFolderEvent . TYPE , new DeleteSmartFolderEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onDeleteItem ( DeleteSmartFolderEvent deleteSmartFolderEvent ) {
doDeleteSmartFolder ( deleteSmartFolderEvent ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
private void doDeleteSmartFolder ( DeleteSmartFolderEvent deleteSmartFolderEvent ) {
final String smartIdentifier = deleteSmartFolderEvent . getSmartIdentifier ( ) ;
final String smartName = deleteSmartFolderEvent . getSmartName ( ) ;
2014-01-21 14:55:19 +01:00
MessageBoxConfirm mbc = new MessageBoxConfirm ( ConstantsExplorer . MESSAGE_DELETE , ConstantsExplorer . MESSAGE_CONFIRM_DELETE_SMART_FOLDER + " " + smartName + " ? " ) ;
2013-02-06 15:40:17 +01:00
mbc . getMessageBoxConfirm ( ) . addCallback ( new Listener < MessageBoxEvent > ( ) {
2014-01-21 14:55:19 +01:00
public void handleEvent ( MessageBoxEvent be ) {
// eventBus.fireEvent(new DeleteItemEvent(sel));
//IF NOT CANCELLED
String clickedButton = be . getButtonClicked ( ) . getItemId ( ) ;
if ( clickedButton . equals ( Dialog . YES ) ) {
rpcWorkspaceService . removeSmartFolder ( smartIdentifier , smartName , new AsyncCallback < Boolean > ( ) {
2013-02-06 15:40:17 +01:00
@Override
public void onSuccess ( Boolean result ) {
if ( result )
2016-02-19 15:59:23 +01:00
explorerPanel . getSmartFolderPanel ( ) . removeSmartFolder ( smartIdentifier ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onFailure ( Throwable caught ) {
2014-01-21 14:55:19 +01:00
// explorerPanel.getAsycTreePanel().unmask();
2013-02-27 19:17:22 +01:00
new MessageBoxAlert ( " Error " , ConstantsExplorer . SERVER_ERROR + " deleting smart folder. " , null ) ;
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
}
}
2016-02-19 15:59:23 +01:00
} ) ;
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( AddSmartFolderEvent . TYPE , new AddSmartFolderEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onSaveSmartFolder ( AddSmartFolderEvent saveSmartFolderEvent ) {
doSaveSmartFolder ( saveSmartFolderEvent ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
private void doSaveSmartFolder ( final AddSmartFolderEvent saveSmartFolderEvent ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
final String query = saveSmartFolderEvent . getSearchText ( ) ;
2015-10-12 15:30:59 +02:00
final String parentId = saveSmartFolderEvent . getParentId ( ) ;
2016-02-19 15:59:23 +01:00
2013-02-06 15:40:17 +01:00
final DialogAddFolderAndSmart dialogAddSmartFolder = new DialogAddFolderAndSmart ( " " , AddType . SMARTFOLDER ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
dialogAddSmartFolder . getButtonById ( Dialog . OK ) . addListener ( Events . Select , new Listener < BaseEvent > ( ) {
@Override
public void handleEvent ( BaseEvent be ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( dialogAddSmartFolder . isValidForm ( ) )
2014-01-21 14:55:19 +01:00
2015-10-12 15:30:59 +02:00
rpcWorkspaceService . createSmartFolder ( dialogAddSmartFolder . getName ( ) , dialogAddSmartFolder . getDescription ( ) , query , parentId , new AsyncCallback < SmartFolderModel > ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onFailure ( Throwable caught ) {
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
2013-02-27 19:17:22 +01:00
new MessageBoxAlert ( " Error " , ConstantsExplorer . SERVER_ERROR + " saving smart folder. " , null ) ;
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
@Override
public void onSuccess ( SmartFolderModel smart ) {
explorerPanel . getShortuctsPanel ( ) . loadSmartFolder ( smart ) ;
}
} ) ;
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
} ) ;
2016-02-19 15:59:23 +01:00
}
2013-02-06 15:40:17 +01:00
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( SmartFolderSelectedEvent . TYPE , new SmartFolderSelectedEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onSmartFolderSelected ( SmartFolderSelectedEvent smartFolderSelectedEvent ) {
searching ( true ) ;
2014-02-26 17:35:20 +01:00
// System.out.println("Click smart folder : " + smartFolderSelectedEvent.getSmartFolderName());
2013-02-06 15:40:17 +01:00
doSmartFolderSelected ( smartFolderSelectedEvent ) ;
}
private void doSmartFolderSelected ( SmartFolderSelectedEvent smartFolderSelectedEvent ) {
notifySubscriber ( smartFolderSelectedEvent ) ;
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( RenameItemEvent . TYPE , new RenameItemEventHandler ( ) {
@Override
public void onRenameItem ( RenameItemEvent event ) {
doRenameItem ( event ) ;
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
private void doRenameItem ( final RenameItemEvent event ) {
final FileModel target = event . getFileTarget ( ) ;
2016-02-19 15:59:23 +01:00
final DialogText dgt = new DialogText ( ConstantsExplorer . MESSAGE_RENAME , ConstantsExplorer . MESSAGE_ITEM_NAME , event . getFileTarget ( ) . getName ( ) ) ;
2014-01-21 14:55:19 +01:00
dgt . getButtonById ( Dialog . OK ) . addListener ( Events . Select , new Listener < BaseEvent > ( ) {
2013-02-06 15:40:17 +01:00
@Override
public void handleEvent ( BaseEvent be ) {
final String newName = dgt . getTxtValue ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( dgt . isValidForm ( ) ) {
2015-07-31 11:23:46 +02:00
dgt . mask ( " Renaming... " ) ;
2013-03-25 11:14:26 +01:00
rpcWorkspaceService . renameItem ( target . getIdentifier ( ) , newName , target . getName ( ) , new AsyncCallback < Boolean > ( ) {
2013-02-06 15:40:17 +01:00
@Override
public void onFailure ( Throwable caught ) {
2015-07-31 11:23:46 +02:00
dgt . unmask ( ) ;
dgt . hide ( ) ;
2014-01-14 14:41:03 +01:00
if ( caught instanceof SessionExpiredException ) {
GWT . log ( " Session expired " ) ;
eventBus . fireEvent ( new SessionExpiredEvent ( ) ) ;
return ;
}
2014-01-21 14:55:19 +01:00
2013-03-26 17:31:13 +01:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
@Override
public void onSuccess ( Boolean result ) {
2015-07-31 11:23:46 +02:00
dgt . unmask ( ) ;
dgt . hide ( ) ;
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . renameItem ( target . getIdentifier ( ) , newName , null ) ;
event . setNewName ( newName ) ;
notifySubscriber ( event ) ;
}
} ) ;
}
}
} ) ;
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( DeleteItemEvent . TYPE , new DeleteItemEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onDeleteItem ( DeleteItemEvent event ) {
doDeleteItem ( event ) ;
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
private void doDeleteItem ( final DeleteItemEvent event ) {
2013-03-25 11:14:26 +01:00
String title = " " ;
String msg = " " ;
2014-01-21 14:55:19 +01:00
if ( event . getFileTarget ( ) . isShared ( ) ) {
title = ConstantsExplorer . MESSAGE_DELETE ;
msg = " This item is shared. Deleting this item will affect other users. Continue? " ;
}
else {
title = ConstantsExplorer . MESSAGE_DELETE ;
msg = ConstantsExplorer . MESSAGE_CONFIRM_DELETE_ITEM + " " + event . getFileTarget ( ) . getName ( ) + " ? " ;
}
MessageBoxConfirm mbc = new MessageBoxConfirm ( title , msg ) ;
mbc . getMessageBoxConfirm ( ) . addCallback ( new Listener < MessageBoxEvent > ( ) {
public void handleEvent ( MessageBoxEvent be ) {
2016-02-19 15:59:23 +01:00
2014-01-21 14:55:19 +01:00
//IF NOT CANCELLED
String clickedButton = be . getButtonClicked ( ) . getItemId ( ) ;
if ( clickedButton . equals ( Dialog . YES ) ) {
2016-02-19 15:59:23 +01:00
2014-02-25 17:24:31 +01:00
explorerPanel . getAsycTreePanel ( ) . mask ( " Deleting " , ConstantsExplorer . LOADINGSTYLE ) ;
2014-01-21 14:55:19 +01:00
rpcWorkspaceService . removeItem ( event . getFileTarget ( ) . getIdentifier ( ) , new AsyncCallback < Boolean > ( ) {
2013-02-06 15:40:17 +01:00
@Override
public void onFailure ( Throwable caught ) {
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
2013-06-25 15:33:03 +02:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
@Override
public void onSuccess ( Boolean result ) {
2014-02-19 17:13:49 +01:00
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
2013-03-28 10:40:56 +01:00
//Timer is used as work around to chrome and safari browser
2013-03-25 11:14:26 +01:00
Timer t = new Timer ( ) {
2014-01-21 14:55:19 +01:00
public void run ( ) {
FileModel fileModel = event . getFileTarget ( ) ;
if ( explorerPanel . getAsycTreePanel ( ) . deleteItem ( fileModel . getIdentifier ( ) ) ) {
explorerPanel . getAsycTreePanel ( ) . selectItem ( fileModel . getParentFileModel ( ) . getIdentifier ( ) ) ; //Select parent of item deleted
}
notifySubscriber ( event ) ;
2014-10-31 12:32:11 +01:00
// doUpdateWorkspaceSize(new UpdateWorkspaceSizeEvent());
2014-10-30 18:11:56 +01:00
// eventBus.fireEvent(new UpdateWorkspaceSizeEvent());
2014-01-21 14:55:19 +01:00
}
} ;
// Schedule the timer to run after 250 ms.
2013-03-25 11:14:26 +01:00
t . schedule ( 250 ) ;
2014-01-21 14:55:19 +01:00
}
} ) ;
}
}
2016-02-19 15:59:23 +01:00
} ) ;
2014-01-21 14:55:19 +01:00
}
2013-02-06 15:40:17 +01:00
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( SelectedItemEvent . TYPE , new SelectedItemEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onSelectedItem ( SelectedItemEvent selectedItemEvent ) {
doSelectedItem ( selectedItemEvent ) ;
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
private void doSelectedItem ( SelectedItemEvent event ) {
2014-01-21 14:55:19 +01:00
2016-02-19 15:59:23 +01:00
notifySubscriber ( event ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( ExpandFolderEvent . TYPE , new ExpandFolderEventHandler ( ) {
@Override
public void onExpandFolder ( ExpandFolderEvent expandFolderEvent ) {
doExpandFolder ( expandFolderEvent ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
private void doExpandFolder ( ExpandFolderEvent expandFolderEvent ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
notifySubscriber ( expandFolderEvent ) ;
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( AddFolderEvent . TYPE , new AddFolderEventHandler ( ) {
@Override
public void onAddItem ( AddFolderEvent event ) {
2016-02-19 15:59:23 +01:00
doAddItem ( event ) ;
2013-02-06 15:40:17 +01:00
}
private void doAddItem ( final AddFolderEvent event ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
final FileModel sourceFileModel = event . getFileSourceModel ( ) ;
2016-02-19 15:59:23 +01:00
final FileModel parentFileModel = event . getParentFileModel ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
String directory = null ;
if ( sourceFileModel . isDirectory ( ) ) {
explorerPanel . getAsycTreePanel ( ) . setExpandTreeLevel ( sourceFileModel . getIdentifier ( ) , true ) ;
directory = sourceFileModel . getName ( ) ;
}
else
directory = parentFileModel . getName ( ) ;
final DialogAddFolderAndSmart dialogAddFolder = new DialogAddFolderAndSmart ( directory , AddType . FOLDER ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
dialogAddFolder . getButtonById ( Dialog . OK ) . addListener ( Events . Select , new Listener < BaseEvent > ( ) {
@Override
public void handleEvent ( BaseEvent be ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( dialogAddFolder . isValidForm ( ) ) {
if ( sourceFileModel . isDirectory ( ) ) {
2016-02-19 15:59:23 +01:00
//
2014-01-21 14:55:19 +01:00
2013-06-04 14:38:21 +02:00
//TODO REMOVE
2014-01-21 14:55:19 +01:00
// System.out.println("description folder: "+dialogAddFolder.getDescription());
2013-02-06 15:40:17 +01:00
rpcWorkspaceService . createFolder ( dialogAddFolder . getName ( ) , dialogAddFolder . getDescription ( ) , sourceFileModel , new AsyncCallback < FolderModel > ( ) {
@Override
public void onFailure ( Throwable caught ) {
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
2014-02-13 18:40:59 +01:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
2013-02-06 15:40:17 +01:00
}
@Override
public void onSuccess ( FolderModel child ) {
2014-01-21 14:55:19 +01:00
2016-02-19 15:59:23 +01:00
explorerPanel . getAsycTreePanel ( ) . addItem ( sourceFileModel . getIdentifier ( ) , child , false ) ;
2014-01-21 14:55:19 +01:00
event . setNewFolder ( child ) ;
notifySubscriber ( event ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
} ) ;
} else {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
rpcWorkspaceService . createFolder ( dialogAddFolder . getName ( ) , dialogAddFolder . getDescription ( ) , parentFileModel , new AsyncCallback < FolderModel > ( ) {
@Override
public void onFailure ( Throwable caught ) {
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
2014-02-13 18:40:59 +01:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
@Override
public void onSuccess ( FolderModel child ) {
2014-01-21 14:55:19 +01:00
2016-02-19 15:59:23 +01:00
explorerPanel . getAsycTreePanel ( ) . addItem ( parentFileModel . getIdentifier ( ) , child , false ) ;
2014-01-21 14:55:19 +01:00
event . setNewFolder ( child ) ;
notifySubscriber ( event ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
} ) ;
}
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
2016-02-19 15:59:23 +01:00
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( MoveItemEvent . TYPE , new MoveItemEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onMoveItem ( final MoveItemEvent event ) {
2014-01-21 14:55:19 +01:00
2015-05-29 12:44:48 +02:00
explorerPanel . getAsycTreePanel ( ) . mask ( ConstantsExplorer . MOVING , ConstantsExplorer . LOADINGSTYLE ) ;
2013-02-06 15:40:17 +01:00
rpcWorkspaceService . moveItem ( event . getFileSourceModel ( ) . getIdentifier ( ) , event . getTargetParentFileModel ( ) . getIdentifier ( ) , new AsyncCallback < Boolean > ( ) {
@Override
public void onFailure ( Throwable caught ) {
2015-05-29 12:44:48 +02:00
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
2014-01-14 14:41:03 +01:00
if ( caught instanceof SessionExpiredException ) {
GWT . log ( " Session expired " ) ;
eventBus . fireEvent ( new SessionExpiredEvent ( ) ) ;
return ;
}
2014-01-21 14:55:19 +01:00
2013-02-27 19:17:22 +01:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) + " . " , null ) ;
2014-02-26 17:35:20 +01:00
// System.out.println(caught.getMessage());
2013-06-10 16:34:52 +02:00
explorerPanel . getAsycTreePanel ( ) . reloadTreeLevelAndExpandFolder ( event . getTargetParentFileModel ( ) . getIdentifier ( ) , false ) ;
explorerPanel . getAsycTreePanel ( ) . reloadTreeLevelAndExpandFolder ( event . getFileSourceModel ( ) . getParentFileModel ( ) . getIdentifier ( ) , true ) ;
2013-02-06 15:40:17 +01:00
}
@Override
public void onSuccess ( Boolean result ) {
2015-05-29 12:44:48 +02:00
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
2013-02-06 15:40:17 +01:00
if ( result ) {
2013-06-10 16:34:52 +02:00
explorerPanel . getAsycTreePanel ( ) . reloadTreeLevelAndExpandFolder ( event . getTargetParentFileModel ( ) . getIdentifier ( ) , true ) ;
2013-02-06 15:40:17 +01:00
notifySubscriber ( event ) ;
}
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( ImagePreviewEvent . TYPE , new ImagePreviewEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onClickPreview ( ImagePreviewEvent imagePreviewEvent ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( imagePreviewEvent . getClientX ( ) > 0 & & imagePreviewEvent . getClientY ( ) > 0 )
doClickPreview ( imagePreviewEvent , imagePreviewEvent . getClientX ( ) , imagePreviewEvent . getClientY ( ) ) ;
else
doClickPreview ( imagePreviewEvent , 50 , 50 ) ;
2014-01-21 14:55:19 +01:00
2013-07-24 16:44:26 +02:00
//ADDED 24/07/2013
if ( imagePreviewEvent . getSourceFileModel ( ) ! = null ) { //FILE CAN NOT LOADED IN TREE
2014-01-21 14:55:19 +01:00
2013-07-24 16:44:26 +02:00
notifySubscriber ( new FileDownloadEvent ( imagePreviewEvent . getSourceFileModel ( ) . getIdentifier ( ) , imagePreviewEvent . getSourceFileModel ( ) . getName ( ) , FileDownloadEvent . DownloadType . SHOW ) ) ;
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
private void doClickPreview ( ImagePreviewEvent imagePreviewEvent , final int positionX , final int positionY ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
final FileModel fileModel = imagePreviewEvent . getSourceFileModel ( ) ;
boolean fullDetails = false ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
rpcWorkspaceService . getImageById ( fileModel . getIdentifier ( ) , fileModel . getGXTFolderItemType ( ) . equals ( GXTFolderItemTypeEnum . IMAGE_DOCUMENT ) , fullDetails , new AsyncCallback < GWTWorkspaceItem > ( ) {
@Override
public void onFailure ( Throwable caught ) {
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
2013-02-27 19:17:22 +01:00
new MessageBoxAlert ( " Error " , ConstantsExplorer . SERVER_ERROR + " imaging preview. " , null ) ;
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
@Override
public void onSuccess ( GWTWorkspaceItem item ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( fileModel . getGXTFolderItemType ( ) . equals ( GXTFolderItemTypeEnum . IMAGE_DOCUMENT ) )
new WindowImagePreview ( fileModel . getName ( ) , ( GWTImageDocument ) item , positionX , positionY ) ;
else
new WindowImagePreview ( fileModel . getName ( ) , ( GWTExternalImage ) item , positionX , positionY ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
} ) ;
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( OpenUrlEvent . TYPE , new OpenUrlEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onClickUrl ( OpenUrlEvent openUrlEvent ) {
doClickUrl ( openUrlEvent ) ;
2014-01-21 14:55:19 +01:00
2016-02-19 15:59:23 +01:00
}
2013-02-06 15:40:17 +01:00
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( CreateUrlEvent . TYPE , new CreateUrlEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onClickCreateUrl ( CreateUrlEvent createUrlEvent ) {
doClickCreateUrl ( createUrlEvent ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
private void doClickCreateUrl ( final CreateUrlEvent createUrlEvent ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
final FileModel parent = createUrlEvent . getParentFileModel ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
final DialogAddUrl dgu = new DialogAddUrl ( parent . getName ( ) ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
dgu . getButtonById ( Dialog . OK ) . addListener ( Events . Select , new Listener < BaseEvent > ( ) {
@Override
public void handleEvent ( BaseEvent be ) {
if ( dgu . isValidForm ( ) ) {
explorerPanel . getAsycTreePanel ( ) . mask ( ConstantsExplorer . VALIDATINGOPERATION , ConstantsExplorer . LOADINGSTYLE ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
rpcWorkspaceService . createExternalUrl ( parent , dgu . getName ( ) , dgu . getDescription ( ) , dgu . getUrl ( ) , new AsyncCallback < FileModel > ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onFailure ( Throwable caught ) {
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
2013-02-27 19:17:22 +01:00
new MessageBoxAlert ( " Error " , ConstantsExplorer . SERVER_ERROR + " creating url. " , null ) ;
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onSuccess ( FileModel child ) {
2014-01-21 14:55:19 +01:00
2016-02-19 15:59:23 +01:00
explorerPanel . getAsycTreePanel ( ) . addItem ( parent . getIdentifier ( ) , child , false ) ;
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
notifySubscriber ( createUrlEvent ) ;
}
} ) ;
}
}
} ) ;
}
} ) ;
2016-02-19 15:59:23 +01:00
2014-03-17 16:16:01 +01:00
eventBus . addHandler ( VRESettingPermissionEvent . TYPE , new VRESettingPermissionEventHandler ( ) {
2016-02-19 15:59:23 +01:00
2014-03-17 14:43:06 +01:00
@Override
2014-03-17 16:16:01 +01:00
public void onPermissionSetting ( VRESettingPermissionEvent settingPermissionEvent ) {
2016-02-19 15:59:23 +01:00
2014-03-17 14:43:06 +01:00
if ( settingPermissionEvent . getSourceFile ( ) ! = null ) {
DialogPermission dialog = new DialogPermission ( settingPermissionEvent . getSourceFile ( ) ) ;
dialog . show ( ) ;
} else
Info . display ( " Attention " , " Select a VRE Folder to change permissions! " ) ;
}
} ) ;
2016-02-19 15:59:23 +01:00
2014-03-18 12:50:53 +01:00
eventBus . addHandler ( UpdatedVREPermissionEvent . TYPE , new UpdatedVREPermissionEventHandler ( ) {
2016-02-19 15:59:23 +01:00
2014-03-18 12:50:53 +01:00
@Override
public void onUpdateVREPermissions ( UpdatedVREPermissionEvent updatedVREPermissionEvent ) {
notifySubscriber ( updatedVREPermissionEvent ) ;
2016-02-19 15:59:23 +01:00
2014-03-18 12:50:53 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
eventBus . addHandler ( OpenReportsEvent . TYPE , new OpenReportsEventHandler ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
@Override
public void onClickOpenReports ( OpenReportsEvent openReportsEvent ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( openReportsEvent . getSourceFileModel ( ) . getGXTFolderItemType ( ) . equals ( GXTFolderItemTypeEnum . REPORT_TEMPLATE ) )
doClickOpenReportTemplate ( openReportsEvent ) ;
else
doClickOpenReport ( openReportsEvent ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
public void doClickOpenReport ( OpenReportsEvent openReportsEvent ) {
2016-02-19 15:59:23 +01:00
2015-09-21 13:00:26 +02:00
final NewBrowserWindow newBrowserWindow = NewBrowserWindow . open ( " " , " _self " , " " ) ;
2016-02-19 15:59:23 +01:00
2013-02-20 14:28:25 +01:00
rpcWorkspaceService . getURLFromApplicationProfile ( openReportsEvent . getSourceFileModel ( ) . getIdentifier ( ) , new AsyncCallback < String > ( ) {
2013-02-06 15:40:17 +01:00
@Override
public void onFailure ( Throwable caught ) {
2013-02-15 12:51:01 +01:00
new MessageBoxAlert ( " Error " , ConstantsExplorer . SERVER_ERROR + " getting application profile - attribute idreport " , null ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
@Override
2013-02-15 12:51:01 +01:00
public void onSuccess ( String url ) {
2014-01-21 14:55:19 +01:00
2013-03-25 11:14:26 +01:00
if ( url = = null | | url . isEmpty ( ) ) {
String currentUrl = portalURL ( ) ;
int last = currentUrl . lastIndexOf ( " / " ) ;
String reportUrl = currentUrl . substring ( 0 , last + 1 ) + ConstantsExplorer . REPORTGENERATION ;
2015-09-21 13:00:26 +02:00
// new WindowOpenUrl(reportUrl, "_self", "");
newBrowserWindow . setUrl ( reportUrl ) ;
2013-03-25 11:14:26 +01:00
}
else {
String reportUrl = url ;
2015-09-21 13:00:26 +02:00
// new WindowOpenUrl(reportUrl, "_self", "");
newBrowserWindow . setUrl ( reportUrl ) ;
2013-03-25 11:14:26 +01:00
}
2013-02-06 15:40:17 +01:00
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
private void doClickOpenReportTemplate ( OpenReportsEvent openReportTemplateEvent ) {
2014-01-21 14:55:19 +01:00
2015-09-21 13:00:26 +02:00
final NewBrowserWindow newBrowserWindow = NewBrowserWindow . open ( " " , " _self " , " " ) ;
2016-02-19 15:59:23 +01:00
2013-02-20 14:28:25 +01:00
rpcWorkspaceService . getURLFromApplicationProfile ( openReportTemplateEvent . getSourceFileModel ( ) . getIdentifier ( ) , new AsyncCallback < String > ( ) {
2013-02-06 15:40:17 +01:00
@Override
public void onFailure ( Throwable caught ) {
2013-02-15 12:51:01 +01:00
new MessageBoxAlert ( " Error " , ConstantsExplorer . SERVER_ERROR + " getting application profile - attribute idreport " , null ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
@Override
2013-02-15 12:51:01 +01:00
public void onSuccess ( String url ) {
2014-01-21 14:55:19 +01:00
2013-03-25 11:14:26 +01:00
if ( url = = null | | url . isEmpty ( ) ) {
String currentUrl = portalURL ( ) ;
int last = currentUrl . lastIndexOf ( " / " ) ;
String templateUrl = currentUrl . substring ( 0 , last + 1 ) + ConstantsExplorer . TEMPLATECREATION ;
2014-01-21 14:55:19 +01:00
// Log.trace("Url: "+templateUrl);
2015-09-21 13:00:26 +02:00
GWT . log ( " currentUrl " + currentUrl ) ;
GWT . log ( " reportUrl " + templateUrl ) ;
newBrowserWindow . setUrl ( templateUrl ) ;
// new WindowOpenUrl(templateUrl, "_self", "");
2013-03-25 11:14:26 +01:00
} else {
2014-01-21 14:55:19 +01:00
2013-03-25 11:14:26 +01:00
String templateUrl = url ;
2015-09-21 13:00:26 +02:00
newBrowserWindow . setUrl ( templateUrl ) ;
// new WindowOpenUrl(templateUrl, "_self", "");
2013-03-25 11:14:26 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
} ) ;
}
} ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2014-10-30 18:11:56 +01:00
/ * *
2015-09-18 16:51:38 +02:00
* Do update workspace size .
*
* @param updateWorkspaceSizeEvent the update workspace size event
2014-10-30 18:11:56 +01:00
* /
protected void doUpdateWorkspaceSize ( UpdateWorkspaceSizeEvent updateWorkspaceSizeEvent ) {
notifySubscriber ( updateWorkspaceSizeEvent ) ;
}
2015-09-18 16:51:38 +02:00
/ * *
* Portal url .
*
* @return the string
* /
2013-02-06 15:40:17 +01:00
public static native String portalURL ( ) / * - {
return $wnd . location . href ;
} - * / ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
//********END EVENTS TO NOTIFY SUBSCRIBERS
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
//Method Notify Subscriber
2015-09-18 16:51:38 +02:00
/ * *
* Notify subscriber .
*
* @param event the event
* /
2014-01-21 14:55:19 +01:00
public void notifySubscriber ( GuiEventInterface event )
{
if ( subscribers . containsKey ( event . getKey ( ) ) )
for ( SubscriberInterface sub : subscribers . get ( event . getKey ( ) ) ) {
if ( event instanceof RenameItemEvent ) {
RenameItemEvent renameEvent = ( RenameItemEvent ) event ;
sub . renameItem ( renameEvent . getFileTarget ( ) . getIdentifier ( ) , renameEvent . getNewName ( ) , renameEvent . getExtension ( ) ) ;
} else if ( event instanceof DeleteItemEvent ) {
DeleteItemEvent deleteEvent = ( DeleteItemEvent ) event ;
2015-10-29 18:00:06 +01:00
List < String > ids = new ArrayList < String > ( 1 ) ;
ids . add ( deleteEvent . getFileTarget ( ) . getIdentifier ( ) ) ;
sub . deleteItems ( ids ) ;
2014-01-21 14:55:19 +01:00
} else if ( event instanceof SelectedItemEvent ) {
SelectedItemEvent selectedEvent = ( SelectedItemEvent ) event ;
List < FileModel > listFileModel = new ArrayList < FileModel > ( ) ;
FileModel item = explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( selectedEvent . getFileTarget ( ) . getIdentifier ( ) ) ;
listFileModel = getListParents ( listFileModel , item ) ; //used for update path bar
sub . selectedItem ( selectedEvent . getFileTarget ( ) , listFileModel ) ;
} else if ( event instanceof ExpandFolderEvent ) {
ExpandFolderEvent expandEvent = ( ExpandFolderEvent ) event ;
sub . expandFolderItem ( expandEvent . getFolderTarget ( ) ) ;
} else if ( event instanceof AddFolderEvent ) {
AddFolderEvent addItemEvent = ( AddFolderEvent ) event ;
if ( addItemEvent . getFileSourceModel ( ) . isDirectory ( ) )
sub . addedFolder ( addItemEvent . getNewFolder ( ) . getIdentifier ( ) , addItemEvent . getFileSourceModel ( ) ) ;
else
2016-02-19 15:59:23 +01:00
sub . addedFolder ( addItemEvent . getNewFolder ( ) . getIdentifier ( ) , addItemEvent . getParentFileModel ( ) ) ;
2014-01-21 14:55:19 +01:00
} else if ( event instanceof SubTreeLoadedEvent ) {
2015-12-14 15:12:22 +01:00
GWT . log ( " SubTreeLoadedEvent... " ) ;
2014-01-21 14:55:19 +01:00
SubTreeLoadedEvent subTreeEvent = ( SubTreeLoadedEvent ) event ;
sub . setParentItemSelected ( subTreeEvent . getPathParentsList ( ) ) ;
// if(openTreeMenuEvent && isShowTreeMenu==false)
// eventBus.fireEvent(new O)
} else if ( event instanceof SmartFolderSelectedEvent ) {
SmartFolderSelectedEvent smartEvent = ( SmartFolderSelectedEvent ) event ;
sub . smartFolderSelected ( smartEvent . getIdSmartFolder ( ) , smartEvent . getCategory ( ) ) ;
} else if ( event instanceof FileUploadEvent ) {
2016-02-19 15:59:23 +01:00
// FileUploadEvent fileUpEvent = (FileUploadEvent) event;
2014-01-21 14:55:19 +01:00
// sub.addedFile(fileUpEvent.getParentFileModel(), "");
} else if ( event instanceof CompletedFileUploadEvent ) {
CompletedFileUploadEvent fileUpEvent = ( CompletedFileUploadEvent ) event ;
2015-10-16 14:27:45 +02:00
sub . addedFile ( fileUpEvent . getItemIdentifier ( ) , fileUpEvent . getParentId ( ) , fileUpEvent . getUploadType ( ) , fileUpEvent . isOverwrite ( ) ) ;
2014-01-21 14:55:19 +01:00
} else if ( event instanceof CreateUrlEvent ) {
CreateUrlEvent createUrlEvent = ( CreateUrlEvent ) event ;
2015-10-16 14:27:45 +02:00
sub . addedFile ( createUrlEvent . getItemIdentifier ( ) , createUrlEvent . getParentFileModel ( ) . getIdentifier ( ) , WS_UPLOAD_TYPE . File , false ) ;
2014-01-21 14:55:19 +01:00
} else if ( event instanceof MoveItemEvent ) {
MoveItemEvent moveItemEvent = ( MoveItemEvent ) event ;
sub . movedItems ( moveItemEvent . getFileSourceModel ( ) . getIdentifier ( ) , moveItemEvent . getTargetParentFileModel ( ) ) ;
} else if ( event instanceof SwitchViewEvent ) {
SwitchViewEvent switchView = ( SwitchViewEvent ) event ;
sub . switchView ( switchView . getType ( ) ) ;
} else if ( event instanceof RefreshFolderEvent ) {
RefreshFolderEvent refresh = ( RefreshFolderEvent ) event ;
2014-09-18 15:29:39 +02:00
sub . refreshFolder ( refresh . getFolderTarget ( ) , refresh . isForceRefresh ( ) , refresh . isForceReloadBreadCrumb ( ) ) ;
2014-01-21 14:55:19 +01:00
} else if ( event instanceof SendMessageEvent ) {
SendMessageEvent messageEvent = ( SendMessageEvent ) event ;
HashMap < String , String > hashFiles = new HashMap < String , String > ( ) ;
if ( messageEvent . getListFileModelSelected ( ) ! = null ) {
for ( FileModel fileModel : messageEvent . getListFileModelSelected ( ) ) {
hashFiles . put ( fileModel . getIdentifier ( ) , fileModel . getName ( ) ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
}
2016-02-19 15:59:23 +01:00
sub . createNewMessage ( hashFiles ) ;
2014-01-21 14:55:19 +01:00
} else if ( event instanceof FileDownloadEvent ) {
FileDownloadEvent messageEvent = ( FileDownloadEvent ) event ;
sub . fileDownloaded ( messageEvent . getItemIdentifier ( ) ) ;
} else if ( event instanceof SessionExpiredEvent ) {
sub . viewSessionExpiredPanel ( ) ;
} else if ( event instanceof PasteItemEvent ) {
2016-02-19 15:59:23 +01:00
PasteItemEvent pasteEvent = ( PasteItemEvent ) event ;
2014-03-07 16:40:10 +01:00
sub . pasteEventIsCompleted ( pasteEvent . isTreeRefreshable ( ) , pasteEvent . getFolderDestinationId ( ) ) ;
2014-01-21 14:55:19 +01:00
} else if ( event instanceof CopytemEvent ) {
sub . copyEventIsCompleted ( ) ;
} else if ( event instanceof TrashEvent ) {
TrashEvent trashEvent = ( TrashEvent ) event ;
2014-05-13 11:26:57 +02:00
sub . trashEvent ( trashEvent . getTrashOperation ( ) , trashEvent . getTargetFileModels ( ) ) ;
2016-02-19 15:59:23 +01:00
2014-03-18 12:50:53 +01:00
} else if ( event instanceof UpdatedVREPermissionEvent ) {
UpdatedVREPermissionEvent vreEvent = ( UpdatedVREPermissionEvent ) event ;
sub . updatedVREPermissions ( vreEvent . getVreFolderId ( ) ) ;
2016-02-19 15:59:23 +01:00
2014-10-30 18:11:56 +01:00
} else if ( event instanceof UpdateWorkspaceSizeEvent ) {
sub . updateWorksapaceSize ( true ) ;
2014-01-21 14:55:19 +01:00
}
}
}
2013-06-10 16:34:52 +02:00
/ * *
2015-09-18 16:51:38 +02:00
* Tree level is expanded .
*
* @param folderId the folder id
* @return true , if successful
2013-06-10 16:34:52 +02:00
* /
public boolean treeLevelIsExpanded ( String folderId ) {
return explorerPanel . getAsycTreePanel ( ) . isExpanded ( folderId ) ;
}
2014-01-21 14:55:19 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Gets the list parents .
*
* @param listParentModel the list parent model
* @param item the item
* @return the list parents
* /
2013-02-13 18:39:33 +01:00
private List < FileModel > getListParents ( List < FileModel > listParentModel , FileModel item ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
getParents ( listParentModel , item ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
Collections . reverse ( listParentModel ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
return listParentModel ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
}
2015-09-18 16:51:38 +02:00
/ * *
* Gets the parents .
*
* @param listParents the list parents
* @param item the item
* @return the parents
* /
2014-01-21 14:55:19 +01:00
private void getParents ( List < FileModel > listParents , FileModel item ) {
if ( item = = null | | item . getParentFileModel ( ) = = null ) {
return ;
}
2014-02-26 17:35:20 +01:00
if ( item . getParentFileModel ( ) . isRoot ( ) ) {
listParents . add ( item . getParentFileModel ( ) ) ;
return ;
}
2016-02-19 15:59:23 +01:00
2014-01-21 14:55:19 +01:00
listParents . add ( item . getParentFileModel ( ) ) ;
getParents ( listParents , item . getParentFileModel ( ) ) ;
}
2013-02-06 15:40:17 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Subscribe .
*
* @param subscriber the subscriber
* @param keys the keys
* /
2013-02-06 15:40:17 +01:00
public void subscribe ( SubscriberInterface subscriber , EventsTypeEnum [ ] keys )
2014-01-21 14:55:19 +01:00
{
for ( EventsTypeEnum m : keys )
subscribe ( subscriber , m ) ;
}
2015-09-18 16:51:38 +02:00
/ * *
* Subscribe .
*
* @param subscriber the subscriber
* @param key the key
* /
2014-01-21 14:55:19 +01:00
public void subscribe ( SubscriberInterface subscriber , EventsTypeEnum key )
{
if ( subscribers . containsKey ( key ) )
subscribers . get ( key ) . add ( subscriber ) ;
else
{
ArrayList < SubscriberInterface > subs = new ArrayList < SubscriberInterface > ( ) ;
subs . add ( subscriber ) ;
subscribers . put ( key , subs ) ;
}
}
2015-09-18 16:51:38 +02:00
/ * *
* Unsubscribe .
*
* @param subscriber the subscriber
* @param key the key
* /
2014-01-21 14:55:19 +01:00
public void unsubscribe ( SubscriberInterface subscriber , EventsTypeEnum key )
{
if ( subscribers . containsKey ( key ) )
subscribers . get ( key ) . remove ( subscriber ) ;
}
2013-02-06 15:40:17 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Go .
*
* @param rootPanel the root panel
* @param onlyTree the only tree
* @param instancingSmartFolder the instancing smart folder
* @param instancingMessages the instancing messages
* @param selectRootItem the select root item
* /
2013-02-06 15:40:17 +01:00
public void go ( final HasWidgets rootPanel , boolean onlyTree , boolean instancingSmartFolder , boolean instancingMessages , boolean selectRootItem ) {
if ( onlyTree ) {
this . selectRootItem = selectRootItem ;
this . explorerPanel = new ExplorerPanel ( true , this . selectRootItem ) ;
this . selectRootItem = false ; //set false select root item; only first time is used
this . explorerPanel . setSize ( 400 , 600 ) ;
this . explorerPanel . getAsycTreePanel ( ) . setSizeTreePanel ( 350 , 550 ) ;
2014-01-21 14:55:19 +01:00
2016-02-19 15:59:23 +01:00
// rootPanel.add(new BasicDNDExample()); //it's example of drag&drop
2013-02-06 15:40:17 +01:00
} else
this . explorerPanel = new ExplorerPanel ( instancingSmartFolder , instancingMessages ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
rootPanel . add ( explorerPanel ) ;
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
/ * *
2015-09-18 16:51:38 +02:00
* Use method getPanel .
*
2013-02-06 15:40:17 +01:00
* @return ExplorerPanel
2016-02-19 15:59:23 +01:00
* @deprecated
2013-02-06 15:40:17 +01:00
* /
public ExplorerPanel getTreePanel ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
this . explorerPanel = getPanel ( ) ;
return this . explorerPanel ;
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
/ * *
* Instance only Async Tree with specific width - height - select by default the root item .
2015-09-18 16:51:38 +02:00
*
* @param width the width
* @param height the height
2013-02-06 15:40:17 +01:00
* @return AsyncTreePanel
* /
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
public AsyncTreePanel getTree ( int width , int height ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
this . explorerPanel = getPanel ( ) ;
this . explorerPanel . getAsycTreePanel ( ) . setSizeTreePanel ( width , height ) ;
2016-02-19 15:59:23 +01:00
this . explorerPanel . getAsycTreePanel ( ) . setHeaderTreeVisible ( false ) ;
2013-02-13 18:39:33 +01:00
2013-02-06 15:40:17 +01:00
return explorerPanel . getAsycTreePanel ( ) ;
}
2014-01-21 14:55:19 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Hide sharing facilities .
* /
2013-03-25 11:14:26 +01:00
public void hideSharingFacilities ( ) {
explorerPanel . getAsycTreePanel ( ) . getContextMenuTree ( ) . setHideSharing ( ) ;
2016-02-19 15:59:23 +01:00
}
2014-01-21 14:55:19 +01:00
2014-01-15 12:49:40 +01:00
/ * *
2015-09-18 16:51:38 +02:00
* Refresh root .
*
* @param selectRootItem the select root item
2014-01-15 12:49:40 +01:00
* /
public void refreshRoot ( boolean selectRootItem ) {
2013-02-06 15:40:17 +01:00
if ( explorerPanel . getAsycTreePanel ( ) ! = null )
2014-01-15 12:49:40 +01:00
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( selectRootItem ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
/ * *
2016-02-19 15:59:23 +01:00
* Instance only Async Tree . Select by default root items of tree .
2013-02-06 15:40:17 +01:00
* @return ExplorerPanel
* /
public ExplorerPanel getPanel ( ) {
this . explorerPanel = new ExplorerPanel ( true , true ) ;
2014-02-12 12:49:07 +01:00
loadMyLogin ( ) ;
2013-02-06 15:40:17 +01:00
return this . explorerPanel ;
}
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
/ * *
2015-09-18 16:51:38 +02:00
* Instance by default asyncronus Tree while Smart Folders and Messages was instanced as input value .
*
* @param instancingSmartFolder the instancing smart folder
* @param instancingMessages the instancing messages
* @param selectRootItem the select root item
2013-02-06 15:40:17 +01:00
* @return ExplorerPanel
* /
public ExplorerPanel getPanel ( boolean instancingSmartFolder , boolean instancingMessages , boolean selectRootItem ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
this . explorerPanel = new ExplorerPanel ( instancingSmartFolder , instancingMessages , selectRootItem ) ;
this . selectRootItem = selectRootItem ;
2014-02-12 12:49:07 +01:00
loadMyLogin ( ) ;
2013-02-06 15:40:17 +01:00
return this . explorerPanel ;
}
2016-02-19 15:59:23 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Edi permissions .
*
* @param file the file
* /
2015-01-28 12:42:48 +01:00
private void ediPermissions ( final FileModel file ) {
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
GWT . log ( " Edit Permissions on " + file ) ;
2015-01-28 18:27:23 +01:00
MultiDragConstants . HEADING_DIALOG = " Edit User/s permissions to: " + file . getName ( ) ;
MultiDragConstants . ALL_CONTACTS_LEFT_LIST = " Shared User/s " ;
MultiDragConstants . SHARE_WITH_RIGHT_LIST = " Set permissions for User/s " ;
2016-02-19 15:59:23 +01:00
2015-01-28 18:27:23 +01:00
final MultiDragContactsEditPermissions multiDragContact = new MultiDragContactsEditPermissions ( LOAD_CONTACTS_AS . SHARED_USER , file . getIdentifier ( ) , true ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
final DialogMultiDragContact multidrag = multiDragContact . getDialog ( ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
multidrag . setTxtHelp ( " Sets the permission for the user(s) dragged in the right list " ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
multidrag . getButtonById ( Dialog . OK ) . addListener ( Events . Select , new Listener < BaseEvent > ( ) {
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
@Override
public void handleEvent ( BaseEvent be ) {
final List < org . gcube . portlets . widgets . workspacesharingwidget . shared . InfoContactModel > targets = multiDragContact . getTargetContacts ( ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
if ( targets . size ( ) = = 0 ) {
MessageBoxConfirm info = new MessageBoxConfirm ( " Any User/s? " , " You have not selected any Users, confirm exit? " ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
info . getMessageBoxConfirm ( ) . addCallback ( new Listener < MessageBoxEvent > ( ) {
public void handleEvent ( MessageBoxEvent be ) {
//IF NOT CANCELLED
String clickedButton = be . getButtonClicked ( ) . getItemId ( ) ;
if ( clickedButton . equals ( Dialog . YES ) ) {
multidrag . hide ( ) ;
}
}
} ) ;
}
// GWT.log(targets.toString());
2016-02-19 15:59:23 +01:00
2015-01-28 15:02:18 +01:00
if ( targets . size ( ) > = 1 & & multiDragContact . getSelectedAcl ( ) ! = null ) {
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
final List < String > logins = new ArrayList < String > ( targets . size ( ) ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
for ( org . gcube . portlets . widgets . workspacesharingwidget . shared . InfoContactModel infoContactModel : targets ) {
GWT . log ( infoContactModel . toString ( ) ) ;
logins . add ( infoContactModel . getLogin ( ) ) ;
}
2015-03-06 16:12:21 +01:00
rpcWorkspaceService . validateACLToUser ( file . getIdentifier ( ) , logins , multiDragContact . getSelectedAclID ( ) , new AsyncCallback < ReportAssignmentACL > ( ) {
2015-01-28 12:42:48 +01:00
2015-03-06 16:12:21 +01:00
@Override
public void onFailure ( Throwable caught ) {
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
2016-02-19 15:59:23 +01:00
2015-03-06 16:12:21 +01:00
}
@Override
public void onSuccess ( ReportAssignmentACL result ) {
2016-02-19 15:59:23 +01:00
2015-03-06 16:12:21 +01:00
String msg = " " ;
2016-02-19 15:59:23 +01:00
2015-03-06 16:12:21 +01:00
if ( result . getErrors ( ) . size ( ) > 0 ) {
for ( String error : result . getErrors ( ) ) {
msg + = " <li> " + error + " ;</li><br/> " ;
2016-02-19 15:59:23 +01:00
2015-03-06 16:12:21 +01:00
}
2016-02-19 15:59:23 +01:00
2015-03-06 16:12:21 +01:00
new MessageBoxAlert ( " Warning!! " , msg , null ) ;
return ;
2015-01-28 12:42:48 +01:00
}
2016-02-19 15:59:23 +01:00
2015-03-06 16:12:21 +01:00
String names = " " ;
for ( String name : result . getValidLogins ( ) ) {
// String name = infoContactModel.getName()!=null? infoContactModel.getName():infoContactModel.getLogin();
names + = " <li><i> " + name + " ;</i></li> " ;
}
msg + = " Setting permission ' " + multiDragContact . getSelectedAcl ( ) . getLabel ( ) + " ' for: <ul> " + names + " </ul> confirm? " ;
MessageBoxConfirm confirm = new MessageBoxConfirm ( " Setting new permissions to " + file . getName ( ) + " ? " , msg ) ;
confirm . getMessageBoxConfirm ( ) . addCallback ( new Listener < MessageBoxEvent > ( ) {
public void handleEvent ( MessageBoxEvent be ) {
//IF NOT CANCELLED
String clickedButton = be . getButtonClicked ( ) . getItemId ( ) ;
if ( clickedButton . equals ( Dialog . YES ) ) {
// doAddAdministratorToFolderId(file, logins);
setACLToFolderId ( file . getIdentifier ( ) , logins , multiDragContact . getSelectedAclID ( ) ) ;
multidrag . hide ( ) ;
} else if ( clickedButton . equals ( Dialog . CANCEL ) ) {
multidrag . hide ( ) ;
}
2016-02-19 15:59:23 +01:00
2015-03-06 16:12:21 +01:00
}
} ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
}
} ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
}
}
} ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
multidrag . show ( ) ;
}
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
/ * *
2015-09-18 16:51:38 +02:00
* Show add administrators dialog .
*
* @param file the file
2014-07-08 18:41:53 +02:00
* /
private void showAddAdministratorsDialog ( final FileModel file ) {
2015-01-28 18:27:23 +01:00
MultiDragConstants . HEADING_DIALOG = " Edit Administrator/s to: " + file . getName ( ) ;
MultiDragConstants . ALL_CONTACTS_LEFT_LIST = " All Contacts " ;
MultiDragConstants . SHARE_WITH_RIGHT_LIST = " New Administrator/s " ;
2016-02-19 15:59:23 +01:00
2014-09-23 16:15:36 +02:00
final SimpleMultiDragWorkspaceContact multiDragContact = new SimpleMultiDragWorkspaceContact ( LOAD_CONTACTS_AS . ADMINISTRATOR , file . getIdentifier ( ) , true , false , true ) ;
2015-01-28 12:42:48 +01:00
final Dialog multidrag = multiDragContact . getDialogMultiDragContact ( ) ;
2016-02-19 15:59:23 +01:00
2014-09-23 16:15:36 +02:00
multidrag . getButtonById ( Dialog . OK ) . addListener ( Events . Select , new Listener < BaseEvent > ( ) {
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
@Override
2014-09-23 16:15:36 +02:00
public void handleEvent ( BaseEvent be ) {
2014-09-30 12:51:51 +02:00
final List < org . gcube . portlets . widgets . workspacesharingwidget . shared . InfoContactModel > targets = multiDragContact . getTargetContactsWithMyLogin ( ) ;
2016-02-19 15:59:23 +01:00
2014-09-23 16:15:36 +02:00
if ( targets . size ( ) = = 1 ) {
2014-09-30 14:49:33 +02:00
MessageBoxConfirm info = new MessageBoxConfirm ( " Any Administrator/s? " , " You have not selected any Administrator, confirm only you as Administrator and exit? " ) ;
2016-02-19 15:59:23 +01:00
2014-09-30 14:49:33 +02:00
info . getMessageBoxConfirm ( ) . addCallback ( new Listener < MessageBoxEvent > ( ) {
2014-07-11 15:56:35 +02:00
2014-09-23 16:15:36 +02:00
public void handleEvent ( MessageBoxEvent be ) {
//IF NOT CANCELLED
String clickedButton = be . getButtonClicked ( ) . getItemId ( ) ;
2014-09-30 15:01:18 +02:00
if ( clickedButton . equals ( Dialog . YES ) ) {
2014-09-30 12:53:53 +02:00
List < String > logins = new ArrayList < String > ( 1 ) ;
logins . add ( targets . get ( 0 ) . getLogin ( ) ) ;
doAddAdministratorToFolderId ( file , logins ) ;
2014-09-23 16:15:36 +02:00
multidrag . hide ( ) ;
}
}
} ) ;
2014-07-11 15:56:35 +02:00
}
2016-02-19 15:59:23 +01:00
2014-09-23 16:15:36 +02:00
if ( targets . size ( ) > 1 ) {
2016-02-19 15:59:23 +01:00
2014-09-23 16:15:36 +02:00
final List < String > logins = new ArrayList < String > ( targets . size ( ) ) ;
String names = " <ul> " ;
for ( org . gcube . portlets . widgets . workspacesharingwidget . shared . InfoContactModel infoContactModel : targets ) {
logins . add ( infoContactModel . getLogin ( ) ) ;
names + = " <li><i> " + infoContactModel . getName ( ) + " ;</i></li> " ;
}
2016-02-19 15:59:23 +01:00
2014-09-23 16:15:36 +02:00
String tail = " </ul>as new " ;
tail + = logins . size ( ) > 1 ? " administrators " : " administrator " ;
tail + = " , confirm? " ;
MessageBoxConfirm confirm = new MessageBoxConfirm ( " Setting new Administrator/s? " , " You have selected: <br/> " + names + tail ) ;
2016-02-19 15:59:23 +01:00
2014-09-23 16:15:36 +02:00
confirm . getMessageBoxConfirm ( ) . addCallback ( new Listener < MessageBoxEvent > ( ) {
public void handleEvent ( MessageBoxEvent be ) {
//IF NOT CANCELLED
String clickedButton = be . getButtonClicked ( ) . getItemId ( ) ;
if ( clickedButton . equals ( Dialog . YES ) ) {
2014-07-11 15:56:35 +02:00
doAddAdministratorToFolderId ( file , logins ) ;
2014-09-23 16:15:36 +02:00
multidrag . hide ( ) ;
2014-07-11 15:56:35 +02:00
}
2014-09-23 16:15:36 +02:00
if ( clickedButton . equals ( Dialog . CANCEL ) ) {
multidrag . hide ( ) ;
}
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
}
2014-09-23 16:15:36 +02:00
} ) ;
}
2014-07-08 18:41:53 +02:00
}
} ) ;
2016-02-19 15:59:23 +01:00
2014-09-23 16:15:36 +02:00
multidrag . show ( ) ;
2014-07-08 18:41:53 +02:00
}
2016-02-19 15:59:23 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Do add administrator to folder id .
*
* @param file the file
* @param logins the logins
* /
2014-07-08 18:41:53 +02:00
private void doAddAdministratorToFolderId ( final FileModel file , final List < String > logins ) {
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
rpcWorkspaceService . addAdministratorsByFolderId ( file . getIdentifier ( ) , logins , new AsyncCallback < Boolean > ( ) {
@Override
public void onFailure ( Throwable arg0 ) {
new MessageBoxAlert ( " Error " , arg0 . getMessage ( ) , null ) ;
}
@Override
public void onSuccess ( Boolean arg0 ) {
2014-09-30 15:10:32 +02:00
String msg = " Updating administrator/s completed successfully " ;
2014-07-14 15:59:32 +02:00
MessageBox . info ( " Operation completed " , msg , null ) ;
2016-02-19 15:59:23 +01:00
2014-07-08 18:41:53 +02:00
}
} ) ;
}
2016-02-19 15:59:23 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Sets the acl to folder id .
*
* @param folderId the folder id
* @param logins the logins
* @param aclTypeID the acl type id
* /
2015-01-28 12:42:48 +01:00
private void setACLToFolderId ( final String folderId , final List < String > logins , String aclTypeID ) {
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
rpcWorkspaceService . setACLs ( folderId , logins , aclTypeID , new AsyncCallback < Void > ( ) {
@Override
public void onFailure ( Throwable caught ) {
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
2016-02-19 15:59:23 +01:00
2015-01-28 12:42:48 +01:00
}
@Override
public void onSuccess ( Void result ) {
String msg = " Updating permissions completed successfully " ;
MessageBox . info ( " Operation completed " , msg , null ) ;
}
} ) ;
}
2016-02-19 15:59:23 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Load my login .
* /
2014-02-12 12:49:07 +01:00
private void loadMyLogin ( ) {
2016-02-19 15:59:23 +01:00
2014-10-28 17:12:40 +01:00
rpcWorkspaceService . getMyLogin ( new AsyncCallback < UserBean > ( ) {
2014-02-12 12:49:07 +01:00
@Override
public void onFailure ( Throwable caught ) {
GWT . log ( " Error on loading my login is empty " ) ;
myLogin = " " ;
2016-02-19 15:59:23 +01:00
2014-02-12 12:49:07 +01:00
}
@Override
2014-10-28 17:12:40 +01:00
public void onSuccess ( UserBean user ) {
GWT . log ( " My login is: " + user . getUsername ( ) ) ;
2016-02-19 15:59:23 +01:00
myLogin = user . getUsername ( ) ;
2014-10-28 17:12:40 +01:00
myLoginFirstName = user . getFirstName ( ) ;
2014-02-12 12:49:07 +01:00
}
} ) ;
}
2014-01-21 14:55:19 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Load item from workspace .
*
* @param itemIdentifier the item identifier
* /
2013-02-06 15:40:17 +01:00
private void loadItemFromWorkspace ( final String itemIdentifier ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . mask ( ConstantsExplorer . LOADING , ConstantsExplorer . LOADINGSTYLE ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
rpcWorkspaceService . getChildrenSubTreeToRootByIdentifier ( itemIdentifier , new AsyncCallback < ArrayList < SubTree > > ( ) {
2014-01-21 14:55:19 +01:00
@Override
public void onFailure ( Throwable caught ) {
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
new MessageBoxAlert ( " Error " , " Sorry - getChildrenSubTreeToRootByIdentifier " , null ) ;
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
}
2013-02-06 15:40:17 +01:00
2014-01-21 14:55:19 +01:00
@Override
public void onSuccess ( ArrayList < SubTree > result ) {
boolean foundAncestor = false ;
// int index = 0;
int i = 0 ;
try {
while ( ! foundAncestor ) {
if ( i < result . size ( ) ) {
SubTree subTree = result . get ( i ) ; // get SubTree
String folderModelId = subTree . getParentId ( ) ; // get folder id
FolderModel folderInTree = ( FolderModel ) explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( folderModelId ) ;
if ( folderInTree ! = null & & explorerPanel . getAsycTreePanel ( ) . getChildrenNumber ( folderInTree . getIdentifier ( ) ) = = 0 )
foundAncestor = true ;
i + + ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
else
break ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
explorerPanel . getAsycTreePanel ( ) . setSubTreeLoaded ( true ) ;
if ( foundAncestor ) {
for ( int j = i - 1 ; j < result . size ( ) ; j + + ) {
SubTree subTree = result . get ( j ) ; // get SubTree
String folderModelId = subTree . getParentId ( ) ; // get folder id
FolderModel folderInTree = ( FolderModel ) explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( folderModelId ) ; // get folder in tree
if ( folderInTree . getParentFileModel ( ) ! = null )
subTree . getParent ( ) . setParentFileModel ( folderInTree . getParentFileModel ( ) ) ; // set parent
explorerPanel . getAsycTreePanel ( ) . addChildrenToFolder ( subTree . getParent ( ) . getIdentifier ( ) , subTree . getChildren ( ) ) ; // Add level
explorerPanel . getAsycTreePanel ( ) . setExpandTreeLevel ( subTree . getParent ( ) . getIdentifier ( ) , true ) ; // Expand level
}
ArrayList < FileModel > pathParentsList = ( ArrayList < FileModel > ) getListParentsByIdentifierFromTree ( itemIdentifier ) ;
2016-02-19 15:59:23 +01:00
2014-01-21 14:55:19 +01:00
selectItemInTree ( itemIdentifier ) ;
explorerPanel . getAsycTreePanel ( ) . setSubTreeLoaded ( false ) ;
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
eventBus . fireEvent ( new SubTreeLoadedEvent ( pathParentsList ) ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2015-09-18 16:51:38 +02:00
} catch ( Exception e ) {
2014-01-21 14:55:19 +01:00
new MessageBoxAlert ( " Error " , " Sorry, e " + e . getMessage ( ) , null ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
}
2013-02-06 15:40:17 +01:00
2014-01-21 14:55:19 +01:00
} ) ;
2013-02-06 15:40:17 +01:00
}
2014-01-21 14:55:19 +01:00
2015-12-14 15:12:22 +01:00
2015-09-18 16:51:38 +02:00
/ * *
2015-12-14 15:12:22 +01:00
* Deselect current selection .
2015-09-18 16:51:38 +02:00
* /
2015-12-14 15:12:22 +01:00
private void deselectCurrentSelection ( ) {
2013-02-06 15:40:17 +01:00
FileModel fileModelSelected = explorerPanel . getAsycTreePanel ( ) . getSelectedFileModelItem ( ) ;
if ( fileModelSelected ! = null )
explorerPanel . getAsycTreePanel ( ) . deselectItem ( fileModelSelected ) ;
}
//********METHODS TO NOTIFY TREE
2015-09-18 16:51:38 +02:00
/ * ( non - Javadoc )
* @see org . gcube . portlets . user . workspace . client . interfaces . TreeAppControllerInterface # getListParentsByIdentifierFromTree ( java . lang . String )
* /
2013-02-06 15:40:17 +01:00
@Override
2014-01-21 14:55:19 +01:00
public List < FileModel > getListParentsByIdentifierFromTree ( String itemIdentifier ) {
2013-02-13 18:39:33 +01:00
List < FileModel > listParentModel = new ArrayList < FileModel > ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
FileModel item = this . explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( itemIdentifier ) ;
2014-01-21 14:55:19 +01:00
2016-02-19 15:59:23 +01:00
if ( item = = null ) {
2013-02-06 15:40:17 +01:00
return null ;
}
else {
return getListParents ( listParentModel , item ) ;
}
}
2014-01-21 14:55:19 +01:00
2015-09-18 16:51:38 +02:00
/ * ( non - Javadoc )
* @see org . gcube . portlets . user . workspace . client . interfaces . TreeAppControllerInterface # renameItem ( java . lang . String , java . lang . String , java . lang . String )
* /
2013-02-06 15:40:17 +01:00
@Override
public boolean renameItem ( String itemIdentifier , String newName , String extension ) {
return this . explorerPanel . getAsycTreePanel ( ) . renameItem ( itemIdentifier , newName , extension ) ;
}
2015-09-18 16:51:38 +02:00
/ * ( non - Javadoc )
* @see org . gcube . portlets . user . workspace . client . interfaces . TreeAppControllerInterface # deleteItem ( java . lang . String )
* /
2013-02-06 15:40:17 +01:00
@Override
public boolean deleteItem ( String itemIdentifier ) {
return this . explorerPanel . getAsycTreePanel ( ) . deleteItem ( itemIdentifier ) ;
}
/ * *
2015-09-18 16:51:38 +02:00
* method not used .
*
* @param itemIdentifier the item identifier
* @param name the name
* @param parentIdentifier the parent identifier
* @return true , if successful
2013-02-06 15:40:17 +01:00
* /
@Override
public boolean addFolder ( String itemIdentifier , String name , String parentIdentifier ) {
return false ; //not used
}
/ * *
2015-09-18 16:51:38 +02:00
* method not used .
*
* @param itemIdentifier the item identifier
* @param name the name
* @param parentIdentifier the parent identifier
* @return true , if successful
2013-02-06 15:40:17 +01:00
* /
@Override
public boolean addFile ( String itemIdentifier , String name , String parentIdentifier ) {
2016-02-19 15:59:23 +01:00
return false ;
2013-02-06 15:40:17 +01:00
}
/ * *
2015-09-18 16:51:38 +02:00
* method not used .
*
* @param itemIdentifier the item identifier
* @return true , if successful
2013-02-06 15:40:17 +01:00
* /
@Override
public boolean reloadFolderChildren ( String itemIdentifier ) {
return false ;
}
/ * *
2015-09-18 16:51:38 +02:00
* method not used .
*
* @param type the new visualization type
2013-02-06 15:40:17 +01:00
* /
@Override
public void setVisualizationType ( VisualizationType type ) {
}
2014-01-21 14:55:19 +01:00
2015-09-18 16:51:38 +02:00
/ * ( non - Javadoc )
* @see org . gcube . portlets . user . workspace . client . interfaces . TreeAppControllerInterface # selectRootItem ( )
* /
2013-02-06 15:40:17 +01:00
@Override
public void selectRootItem ( ) {
this . explorerPanel . getAsycTreePanel ( ) . selectRootItem ( ) ;
}
/ * *
2015-09-18 16:51:38 +02:00
* Gets the selected folder in tree .
*
2013-02-06 15:40:17 +01:00
* @return FileModel parent selected or root item if no directory is selected
* /
@Override
public FileModel getSelectedFolderInTree ( ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
FileModel fileModel = this . explorerPanel . getAsycTreePanel ( ) . getSelectedFileModelItem ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( fileModel . isDirectory ( ) )
return fileModel ;
else
2016-02-19 15:59:23 +01:00
return fileModel . getParentFileModel ( ) ;
2013-02-06 15:40:17 +01:00
}
2015-09-18 16:51:38 +02:00
/ * ( non - Javadoc )
* @see org . gcube . portlets . user . workspace . client . interfaces . TreeAppControllerInterface # findItemAndSelectItemInTree ( java . lang . String )
* /
2013-02-06 15:40:17 +01:00
@Override
public void findItemAndSelectItemInTree ( String itemIdentifier ) {
FileModel fileModel = this . explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( itemIdentifier ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( fileModel = = null ) { //Loading item by RPC
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
loadItemFromWorkspace ( itemIdentifier ) ;
}
else {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
selectItemInTree ( itemIdentifier ) ;
}
}
2014-01-21 14:55:19 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Select item in tree .
*
* @param itemIdentifier the item identifier
* /
2013-02-06 15:40:17 +01:00
private void selectItemInTree ( String itemIdentifier ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
FileModel fileModel = this . explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( itemIdentifier ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( fileModel ! = null ) {
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( explorerPanel . getAsycTreePanel ( ) . isSearch ( ) )
2015-12-14 15:12:22 +01:00
deselectCurrentSelection ( ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
if ( fileModel . isDirectory ( ) ) {
if ( fileModel . getParentFileModel ( ) ! = null )
this . explorerPanel . getAsycTreePanel ( ) . setExpandTreeLevel ( fileModel . getParentFileModel ( ) . getIdentifier ( ) , true ) ; //expand parent folder
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
this . explorerPanel . getAsycTreePanel ( ) . selectItem ( itemIdentifier ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
} else
this . explorerPanel . getAsycTreePanel ( ) . selectItem ( itemIdentifier ) ; //select item
}
}
2014-01-21 14:55:19 +01:00
2013-06-25 15:33:03 +02:00
public AsyncCallback < WindowOpenParameter > downloadHandlerCallback = new AsyncCallback < WindowOpenParameter > ( ) {
@Override
public void onFailure ( Throwable caught ) {
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
new MessageBoxAlert ( " Error " , caught . getMessage ( ) , null ) ;
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
}
@Override
public void onSuccess ( WindowOpenParameter windowOpenParam ) {
2013-08-30 14:57:54 +02:00
String params = " ? " + windowOpenParam . getParameters ( ) ;
2014-01-21 14:55:19 +01:00
2013-08-30 14:57:54 +02:00
if ( params . length ( ) > 1 )
params + = " & " ;
2014-01-21 14:55:19 +01:00
2013-08-30 14:57:54 +02:00
params + = ConstantsExplorer . REDIRECTONERROR + " = " + windowOpenParam . isRedirectOnError ( ) ;
2014-01-21 14:55:19 +01:00
2013-09-04 11:26:10 +02:00
windowOpenParam . getBrowserWindow ( ) . setUrl ( ConstantsExplorer . DOWNLOAD_WORKSPACE_SERVICE + params ) ;
2014-01-21 14:55:19 +01:00
2016-02-19 15:59:23 +01:00
// com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+params, windowOpenParam.getOption(), "");
2013-06-25 15:33:03 +02:00
}
} ;
2013-02-06 15:40:17 +01:00
2015-09-18 16:51:38 +02:00
/ * ( non - Javadoc )
* @see org . gcube . portlets . user . workspace . client . interfaces . TreeAppControllerInterface # expandFolder ( java . lang . String )
* /
2013-02-06 15:40:17 +01:00
@Override
/ * *
* Called when path item is clicked
* /
public void expandFolder ( final String itemIdentifier ) {
searching ( false ) ;
2014-01-21 14:55:19 +01:00
2013-02-06 15:40:17 +01:00
FileModel fileModel = this . explorerPanel . getAsycTreePanel ( ) . getFileModelByIdentifier ( itemIdentifier ) ;
if ( fileModel = = null ) { //Loading by RPC
loadItemFromWorkspace ( itemIdentifier ) ;
}
else {
2015-12-14 15:12:22 +01:00
deselectCurrentSelection ( ) ;
2013-02-06 15:40:17 +01:00
this . explorerPanel . getAsycTreePanel ( ) . selectItem ( itemIdentifier ) ; //select item
}
}
2014-01-21 14:55:19 +01:00
2015-09-18 16:51:38 +02:00
/ * ( non - Javadoc )
* @see org . gcube . portlets . user . workspace . client . interfaces . TreeAppControllerInterface # searching ( boolean )
* /
2013-02-06 15:40:17 +01:00
@Override
public void searching ( boolean isSearch ) {
2014-01-21 14:55:19 +01:00
// deselecteCurrentSelection();
2013-02-06 15:40:17 +01:00
explorerPanel . getAsycTreePanel ( ) . setSearch ( isSearch ) ;
}
2014-01-21 14:55:19 +01:00
2015-09-18 16:51:38 +02:00
/ * *
* Do click url .
*
* @param openUrlEvent the open url event
* /
2014-09-03 15:52:14 +02:00
public void doClickUrl ( OpenUrlEvent openUrlEvent ) {
final FileModel fileModel = openUrlEvent . getSourceFileModel ( ) ;
if ( fileModel = = null )
return ;
2016-02-19 15:59:23 +01:00
2015-09-21 13:00:26 +02:00
GWT . log ( " do click url " ) ;
final NewBrowserWindow newBrowserWindow = NewBrowserWindow . open ( " " , " _blank " , " " ) ;
2016-02-19 15:59:23 +01:00
2014-09-03 15:52:14 +02:00
rpcWorkspaceService . getUrlById ( fileModel . getIdentifier ( ) , fileModel . getGXTFolderItemType ( ) . equals ( GXTFolderItemTypeEnum . URL_DOCUMENT ) , false , new AsyncCallback < GWTWorkspaceItem > ( ) {
@Override
public void onFailure ( Throwable caught ) {
explorerPanel . getAsycTreePanel ( ) . unmask ( ) ;
new MessageBoxAlert ( " Error " , ConstantsExplorer . SERVER_ERROR + " clicking url. " , null ) ;
explorerPanel . getAsycTreePanel ( ) . removeAllAndRecoveryRoot ( ) ;
}
@Override
public void onSuccess ( GWTWorkspaceItem result ) {
if ( fileModel . getGXTFolderItemType ( ) . equals ( GXTFolderItemTypeEnum . URL_DOCUMENT ) ) {
2015-09-21 13:00:26 +02:00
newBrowserWindow . setUrl ( ( ( GWTUrlDocument ) result ) . getUrl ( ) ) ;
// new WindowOpenUrl(((GWTUrlDocument) result).getUrl(), "_blank", "");
2014-09-03 15:52:14 +02:00
GWT . log ( " URL_DOCUMENT Open " + ( ( GWTUrlDocument ) result ) . getUrl ( ) ) ;
}
else {
2015-09-21 13:00:26 +02:00
// new WindowOpenUrl(((GWTExternalUrl) result).getUrl(), "_blank", "");
newBrowserWindow . setUrl ( ( ( GWTExternalUrl ) result ) . getUrl ( ) ) ;
2014-09-03 15:52:14 +02:00
GWT . log ( " ExternalUrl Open " + ( ( GWTExternalUrl ) result ) . getUrl ( ) ) ;
}
}
} ) ;
// com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+"?id="+fileModel.getIdentifier()+"&viewContent=true", fileModel.getName(), "");
}
2013-02-06 15:40:17 +01:00
}