2015-12-04 18:45:47 +01:00
package org.gcube.portlets.user.statisticalalgorithmsimporter.client.project ;
2015-12-11 18:02:03 +01:00
import java.util.ArrayList ;
import java.util.Arrays ;
import java.util.List ;
2016-01-18 12:59:57 +01:00
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.NewMainCodeEvent ;
2016-01-22 16:08:06 +01:00
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.ProjectStatusEvent ;
2015-12-09 18:15:10 +01:00
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.SessionExpiredEvent ;
2016-01-14 12:31:23 +01:00
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.monitor.StatAlgoImporterMonitor ;
2015-12-09 18:15:10 +01:00
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.rpc.StatAlgoImporterServiceAsync ;
2015-12-04 18:45:47 +01:00
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.type.ProjectStatusEventType ;
2015-12-09 18:15:10 +01:00
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.type.SessionExpiredType ;
2015-12-04 18:45:47 +01:00
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.utils.UtilsGXT3 ;
2015-12-09 18:15:10 +01:00
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterSessionExpiredException ;
2015-12-14 18:44:54 +01:00
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.InputData ;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.MainCode ;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project ;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectFolder ;
2015-12-11 18:02:03 +01:00
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription ;
2015-12-04 18:45:47 +01:00
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener ;
import org.gcube.portlets.widgets.wsexplorer.client.select.WorkspaceExplorerSelectDialog ;
import org.gcube.portlets.widgets.wsexplorer.shared.Item ;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType ;
import com.allen_sauer.gwt.log.client.Log ;
import com.google.gwt.event.shared.EventBus ;
2015-12-09 18:15:10 +01:00
import com.google.gwt.user.client.rpc.AsyncCallback ;
2015-12-04 18:45:47 +01:00
import com.sencha.gxt.core.client.dom.XDOM ;
2015-12-22 17:55:55 +01:00
import com.sencha.gxt.widget.core.client.box.ConfirmMessageBox ;
import com.sencha.gxt.widget.core.client.event.DialogHideEvent ;
import com.sencha.gxt.widget.core.client.event.DialogHideEvent.DialogHideHandler ;
2015-12-04 18:45:47 +01:00
/ * *
*
2015-12-09 18:15:10 +01:00
* @author Giancarlo Panichi email : < a
* href = " mailto:g.panichi@isti.cnr.it " > g . panichi @isti.cnr.it < / a >
2015-12-04 18:45:47 +01:00
*
* /
public class ProjectManager {
private EventBus eventBus ;
2015-12-14 18:44:54 +01:00
private Project project ;
2015-12-22 12:04:49 +01:00
2015-12-09 18:15:10 +01:00
public ProjectManager ( EventBus eventBus ) {
this . eventBus = eventBus ;
2015-12-04 18:45:47 +01:00
}
2015-12-09 18:15:10 +01:00
public void createProject ( ) {
2015-12-04 18:45:47 +01:00
WorkspaceExplorerSelectDialog wselectDialog = new WorkspaceExplorerSelectDialog (
2015-12-09 18:15:10 +01:00
" Select Project Folder " , true ) ;
2015-12-04 18:45:47 +01:00
WorskpaceExplorerSelectNotificationListener handler = new WorskpaceExplorerSelectNotificationListener ( ) {
@Override
public void onSelectedItem ( Item item ) {
if ( item . getType ( ) = = ItemType . FOLDER ) {
2016-01-12 17:21:22 +01:00
createProjectOnServer ( item ) ;
2015-12-14 18:44:54 +01:00
} else {
UtilsGXT3 . info ( " Attention " ,
" Select a valid project folder! " ) ;
}
}
@Override
public void onFailed ( Throwable throwable ) {
Log . error ( " Error in create project: "
+ throwable . getLocalizedMessage ( ) ) ;
UtilsGXT3 . alert ( " Error " , throwable . getLocalizedMessage ( ) ) ;
throwable . printStackTrace ( ) ;
}
@Override
public void onAborted ( ) {
}
@Override
public void onNotValidSelection ( ) {
UtilsGXT3 . info ( " Attention " , " Select a valid project folder! " ) ;
}
} ;
wselectDialog . addWorkspaceExplorerSelectNotificationListener ( handler ) ;
wselectDialog . setZIndex ( XDOM . getTopZIndex ( ) ) ;
wselectDialog . show ( ) ;
}
2015-12-22 12:04:49 +01:00
2015-12-14 18:44:54 +01:00
public void openProject ( ) {
WorkspaceExplorerSelectDialog wselectDialog = new WorkspaceExplorerSelectDialog (
" Select Project Folder " , true ) ;
WorskpaceExplorerSelectNotificationListener handler = new WorskpaceExplorerSelectNotificationListener ( ) {
@Override
public void onSelectedItem ( Item item ) {
if ( item . getType ( ) = = ItemType . FOLDER ) {
openProjectOnServer ( item ) ;
2015-12-04 18:45:47 +01:00
} else {
2015-12-09 18:15:10 +01:00
UtilsGXT3 . info ( " Attention " ,
" Select a valid project folder! " ) ;
2015-12-04 18:45:47 +01:00
}
}
@Override
public void onFailed ( Throwable throwable ) {
2015-12-11 18:02:03 +01:00
Log . error ( " Error in create project: "
+ throwable . getLocalizedMessage ( ) ) ;
UtilsGXT3 . alert ( " Error " , throwable . getLocalizedMessage ( ) ) ;
2015-12-04 18:45:47 +01:00
throwable . printStackTrace ( ) ;
}
@Override
public void onAborted ( ) {
}
@Override
public void onNotValidSelection ( ) {
UtilsGXT3 . info ( " Attention " , " Select a valid project folder! " ) ;
}
} ;
wselectDialog . addWorkspaceExplorerSelectNotificationListener ( handler ) ;
2015-12-09 18:15:10 +01:00
wselectDialog . setZIndex ( XDOM . getTopZIndex ( ) ) ;
2015-12-04 18:45:47 +01:00
wselectDialog . show ( ) ;
2015-12-22 12:04:49 +01:00
2015-12-04 18:45:47 +01:00
}
2015-12-09 18:15:10 +01:00
2015-12-11 18:02:03 +01:00
public void addResource ( ) {
List < ItemType > selectableTypes = new ArrayList < ItemType > ( ) ;
selectableTypes . add ( ItemType . EXTERNAL_FILE ) ;
selectableTypes . add ( ItemType . EXTERNAL_IMAGE ) ;
selectableTypes . add ( ItemType . IMAGE_DOCUMENT ) ;
selectableTypes . add ( ItemType . DOCUMENT ) ;
selectableTypes . add ( ItemType . PDF_DOCUMENT ) ;
List < ItemType > showableTypes = new ArrayList < ItemType > ( ) ;
showableTypes . addAll ( Arrays . asList ( ItemType . values ( ) ) ) ;
WorkspaceExplorerSelectDialog wselectDialog = new WorkspaceExplorerSelectDialog (
" Select a Resource " , selectableTypes , showableTypes ) ;
WorskpaceExplorerSelectNotificationListener handler = new WorskpaceExplorerSelectNotificationListener ( ) {
@Override
public void onSelectedItem ( Item item ) {
if ( item . getType ( ) = = ItemType . EXTERNAL_FILE
| | item . getType ( ) = = ItemType . EXTERNAL_IMAGE
| | item . getType ( ) = = ItemType . IMAGE_DOCUMENT
| | item . getType ( ) = = ItemType . DOCUMENT
| | item . getType ( ) = = ItemType . PDF_DOCUMENT ) {
String filename = item . getName ( ) ;
if ( filename ! = null & & ! filename . isEmpty ( ) ) {
addResourceToProject ( item ) ;
} else {
UtilsGXT3 . info ( " Attention " , " Select a valid resource! " ) ;
}
} else {
UtilsGXT3 . info ( " Attention " , " Select a valid resource! " ) ;
}
}
@Override
public void onFailed ( Throwable throwable ) {
Log . error ( " Error in add resource: "
+ throwable . getLocalizedMessage ( ) ) ;
UtilsGXT3 . alert ( " Error " , throwable . getLocalizedMessage ( ) ) ;
throwable . printStackTrace ( ) ;
}
@Override
public void onAborted ( ) {
}
@Override
public void onNotValidSelection ( ) {
UtilsGXT3 . info ( " Attention " , " Select a valid resource! " ) ;
}
} ;
wselectDialog . addWorkspaceExplorerSelectNotificationListener ( handler ) ;
wselectDialog . setZIndex ( XDOM . getTopZIndex ( ) ) ;
wselectDialog . show ( ) ;
}
protected void addResourceToProject ( Item item ) {
Log . debug ( " Add Resource To Project Item selected: " + item ) ;
ItemDescription itemDescription = new ItemDescription ( item . getId ( ) ,
item . getName ( ) , item . getOwner ( ) , item . getPath ( ) , item . getType ( )
. name ( ) ) ;
StatAlgoImporterServiceAsync . INSTANCE . addResourceToProject (
itemDescription , new AsyncCallback < Void > ( ) {
@Override
public void onSuccess ( Void result ) {
fireProjectStatusAddResourceEvent ( ) ;
}
@Override
public void onFailure ( Throwable caught ) {
if ( caught instanceof StatAlgoImporterSessionExpiredException ) {
eventBus . fireEvent ( new SessionExpiredEvent (
SessionExpiredType . EXPIREDONSERVER ) ) ;
} else {
Log . error ( " Error in add resource to project: "
+ caught . getLocalizedMessage ( ) ) ;
UtilsGXT3 . alert ( " Error " ,
caught . getLocalizedMessage ( ) ) ;
}
caught . printStackTrace ( ) ;
}
} ) ;
}
2015-12-09 18:15:10 +01:00
protected void createProjectOnServer ( Item item ) {
2015-12-11 18:02:03 +01:00
Log . debug ( " Create Project Item selected: " + item ) ;
2015-12-22 12:04:49 +01:00
final ItemDescription newProjectFolder = new ItemDescription (
item . getId ( ) , item . getName ( ) , item . getOwner ( ) , item . getPath ( ) ,
item . getType ( ) . name ( ) ) ;
2015-12-09 18:15:10 +01:00
StatAlgoImporterServiceAsync . INSTANCE . createProjectOnWorkspace (
2015-12-14 18:44:54 +01:00
newProjectFolder , new AsyncCallback < Void > ( ) {
2015-12-09 18:15:10 +01:00
@Override
public void onSuccess ( Void result ) {
2015-12-22 12:04:49 +01:00
project = new Project ( new ProjectFolder (
newProjectFolder ) ) ;
2015-12-09 18:15:10 +01:00
fireProjectStatusOpenEvent ( ) ;
}
@Override
public void onFailure ( Throwable caught ) {
2015-12-11 18:02:03 +01:00
if ( caught instanceof StatAlgoImporterSessionExpiredException ) {
eventBus . fireEvent ( new SessionExpiredEvent (
SessionExpiredType . EXPIREDONSERVER ) ) ;
} else {
Log . error ( " Error in create project: "
+ caught . getLocalizedMessage ( ) ) ;
UtilsGXT3 . alert ( " Error " ,
caught . getLocalizedMessage ( ) ) ;
}
caught . printStackTrace ( ) ;
}
} ) ;
}
2015-12-22 12:04:49 +01:00
2015-12-14 18:44:54 +01:00
protected void openProjectOnServer ( Item item ) {
Log . debug ( " Open Project Item selected: " + item ) ;
2015-12-22 12:04:49 +01:00
final ItemDescription newProjectFolder = new ItemDescription (
item . getId ( ) , item . getName ( ) , item . getOwner ( ) , item . getPath ( ) ,
item . getType ( ) . name ( ) ) ;
2015-12-14 18:44:54 +01:00
StatAlgoImporterServiceAsync . INSTANCE . openProjectOnWorkspace (
newProjectFolder , new AsyncCallback < Project > ( ) {
2015-12-11 18:02:03 +01:00
2015-12-14 18:44:54 +01:00
@Override
public void onSuccess ( Project projectOpened ) {
2015-12-22 12:04:49 +01:00
Log . debug ( " Open: " + projectOpened ) ;
project = projectOpened ;
2015-12-14 18:44:54 +01:00
fireProjectStatusOpenEvent ( ) ;
2015-12-11 18:02:03 +01:00
2015-12-14 18:44:54 +01:00
}
@Override
public void onFailure ( Throwable caught ) {
if ( caught instanceof StatAlgoImporterSessionExpiredException ) {
eventBus . fireEvent ( new SessionExpiredEvent (
SessionExpiredType . EXPIREDONSERVER ) ) ;
} else {
Log . error ( " Error in open project: "
+ caught . getLocalizedMessage ( ) ) ;
UtilsGXT3 . alert ( " Error " ,
caught . getLocalizedMessage ( ) ) ;
}
caught . printStackTrace ( ) ;
}
} ) ;
}
2016-01-18 12:59:57 +01:00
public void saveProject ( InputData inputData ,
final StatAlgoImporterMonitor monitor ) {
2015-12-14 18:44:54 +01:00
Log . debug ( " Save Project: " + inputData ) ;
StatAlgoImporterServiceAsync . INSTANCE . saveProject ( inputData ,
2015-12-11 18:02:03 +01:00
new AsyncCallback < Void > ( ) {
@Override
public void onSuccess ( Void result ) {
2016-01-14 12:31:23 +01:00
monitor . hide ( ) ;
2015-12-22 12:04:49 +01:00
UtilsGXT3 . info ( " Save " , " Project saved! " ) ;
2015-12-11 18:02:03 +01:00
}
@Override
public void onFailure ( Throwable caught ) {
2016-01-14 12:31:23 +01:00
monitor . hide ( ) ;
2015-12-11 18:02:03 +01:00
if ( caught instanceof StatAlgoImporterSessionExpiredException ) {
eventBus . fireEvent ( new SessionExpiredEvent (
SessionExpiredType . EXPIREDONSERVER ) ) ;
} else {
Log . error ( " Error on save project: "
+ caught . getLocalizedMessage ( ) ) ;
UtilsGXT3 . alert ( " Error " ,
caught . getLocalizedMessage ( ) ) ;
}
2015-12-09 18:15:10 +01:00
caught . printStackTrace ( ) ;
2016-01-18 12:59:57 +01:00
2015-12-09 18:15:10 +01:00
}
} ) ;
}
2016-01-22 18:16:33 +01:00
public void createSofware ( final InputData inputData ,
2016-01-18 12:59:57 +01:00
final StatAlgoImporterMonitor monitor ) {
2016-01-12 17:21:22 +01:00
StatAlgoImporterServiceAsync . INSTANCE . createSoftware ( inputData ,
new AsyncCallback < Void > ( ) {
@Override
public void onSuccess ( Void result ) {
2016-01-14 12:31:23 +01:00
monitor . hide ( ) ;
2016-01-12 17:21:22 +01:00
fireProjectStatusSoftwareCreatedEvent ( ) ;
UtilsGXT3 . info ( " Create Software " , " Software Created! " ) ;
2016-01-18 12:59:57 +01:00
2016-01-12 17:21:22 +01:00
}
@Override
public void onFailure ( Throwable caught ) {
2016-01-14 12:31:23 +01:00
monitor . hide ( ) ;
2016-01-12 17:21:22 +01:00
if ( caught instanceof StatAlgoImporterSessionExpiredException ) {
eventBus . fireEvent ( new SessionExpiredEvent (
SessionExpiredType . EXPIREDONSERVER ) ) ;
} else {
Log . error ( " Error in create software: "
+ caught . getLocalizedMessage ( ) ) ;
UtilsGXT3 . alert ( " Error " ,
caught . getLocalizedMessage ( ) ) ;
}
caught . printStackTrace ( ) ;
}
} ) ;
}
2015-12-14 18:44:54 +01:00
public void setMainCode ( final ItemDescription itemDescription ) {
2016-01-12 17:21:22 +01:00
if ( project ! = null ) {
if ( project . getMainCode ( ) ! = null
& & project . getMainCode ( ) . getItemDescription ( ) ! = null ) {
final ConfirmMessageBox mb = new ConfirmMessageBox ( " Attention " ,
" All previous configurations will be lost. Would you like to change main code? " ) ;
mb . addDialogHideHandler ( new DialogHideHandler ( ) {
@Override
public void onDialogHide ( DialogHideEvent event ) {
switch ( event . getHideButton ( ) ) {
case NO :
break ;
case YES :
setMainCodeOnServer ( itemDescription ) ;
break ;
default :
break ;
}
2015-12-22 17:55:55 +01:00
}
2016-01-12 17:21:22 +01:00
} ) ;
mb . setWidth ( 300 ) ;
mb . show ( ) ;
} else {
setMainCodeOnServer ( itemDescription ) ;
}
} else {
2015-12-22 17:55:55 +01:00
}
2016-01-12 17:21:22 +01:00
}
private void setMainCodeOnServer ( final ItemDescription itemDescription ) {
2015-12-11 18:02:03 +01:00
Log . debug ( " Set Main Code: " + itemDescription ) ;
StatAlgoImporterServiceAsync . INSTANCE . setMainCode ( itemDescription ,
new AsyncCallback < Void > ( ) {
2015-12-09 18:15:10 +01:00
@Override
public void onFailure ( Throwable caught ) {
if ( caught instanceof StatAlgoImporterSessionExpiredException ) {
eventBus . fireEvent ( new SessionExpiredEvent (
SessionExpiredType . EXPIREDONSERVER ) ) ;
} else {
Log . error ( " Error setting main code: "
+ caught . getLocalizedMessage ( ) ) ;
UtilsGXT3 . alert ( " Error " ,
caught . getLocalizedMessage ( ) ) ;
}
caught . printStackTrace ( ) ;
}
@Override
public void onSuccess ( Void result ) {
2015-12-14 18:44:54 +01:00
project . setMainCode ( new MainCode ( itemDescription ) ) ;
2015-12-22 17:55:55 +01:00
fireProjectStatusMainCodeSetEvent ( ) ;
2015-12-09 18:15:10 +01:00
}
} ) ;
}
2016-01-18 17:28:55 +01:00
public void setNewMainCode ( NewMainCodeEvent newMainCodeEvent ,
final StatAlgoImporterMonitor monitor ) {
StatAlgoImporterServiceAsync . INSTANCE . setNewMainCode (
newMainCodeEvent . getFile ( ) , newMainCodeEvent . getCode ( ) ,
2016-01-18 12:59:57 +01:00
new AsyncCallback < ItemDescription > ( ) {
@Override
public void onFailure ( Throwable caught ) {
monitor . hide ( ) ;
if ( caught instanceof StatAlgoImporterSessionExpiredException ) {
eventBus . fireEvent ( new SessionExpiredEvent (
SessionExpiredType . EXPIREDONSERVER ) ) ;
} else {
Log . error ( " Error on save new main code: "
+ caught . getLocalizedMessage ( ) ) ;
UtilsGXT3 . alert ( " Error " ,
caught . getLocalizedMessage ( ) ) ;
}
caught . printStackTrace ( ) ;
2015-12-09 18:15:10 +01:00
2016-01-18 12:59:57 +01:00
}
@Override
public void onSuccess ( ItemDescription itemDescription ) {
project . setMainCode ( new MainCode ( itemDescription ) ) ;
fireProjectStatusMainCodeSetEvent ( ) ;
monitor . hide ( ) ;
}
} ) ;
}
2016-01-18 17:28:55 +01:00
2016-01-22 13:07:41 +01:00
public void deleteItem ( final ItemDescription itemDescription ) {
if ( project ! = null
& & project . getMainCode ( ) ! = null
& & project . getMainCode ( ) . getItemDescription ( ) ! = null
& & itemDescription . getId ( ) . compareTo (
project . getMainCode ( ) . getItemDescription ( ) . getId ( ) ) = = 0 ) {
2016-01-22 16:08:06 +01:00
final ConfirmMessageBox mb = new ConfirmMessageBox ( " Delete " ,
2016-01-22 13:07:41 +01:00
" All previous configurations will be lost. Would you like to delete main code? " ) ;
mb . addDialogHideHandler ( new DialogHideHandler ( ) {
@Override
public void onDialogHide ( DialogHideEvent event ) {
switch ( event . getHideButton ( ) ) {
case NO :
break ;
case YES :
2016-01-22 16:08:06 +01:00
deleteItemOnServer ( itemDescription , true ) ;
2016-01-22 13:07:41 +01:00
break ;
default :
break ;
}
}
} ) ;
mb . setWidth ( 300 ) ;
mb . show ( ) ;
2016-01-22 16:08:06 +01:00
2016-01-22 13:07:41 +01:00
} else {
2016-01-22 16:08:06 +01:00
final ConfirmMessageBox mb = new ConfirmMessageBox ( " Delete " ,
" Would you like to delete this resource? " ) ;
mb . addDialogHideHandler ( new DialogHideHandler ( ) {
@Override
public void onDialogHide ( DialogHideEvent event ) {
switch ( event . getHideButton ( ) ) {
case NO :
break ;
case YES :
deleteItemOnServer ( itemDescription , false ) ;
break ;
default :
break ;
}
}
} ) ;
mb . setWidth ( 300 ) ;
mb . show ( ) ;
2016-01-22 13:07:41 +01:00
}
2016-01-22 16:08:06 +01:00
2016-01-22 13:07:41 +01:00
}
2016-01-22 16:08:06 +01:00
private void deleteItemOnServer ( ItemDescription itemDescription ,
final boolean mainCode ) {
final StatAlgoImporterMonitor monitor = new StatAlgoImporterMonitor ( ) ;
2016-01-22 13:07:41 +01:00
2015-12-22 12:04:49 +01:00
StatAlgoImporterServiceAsync . INSTANCE . deleteResourceOnProject (
2016-01-22 13:07:41 +01:00
itemDescription , new AsyncCallback < Project > ( ) {
2015-12-11 18:02:03 +01:00
@Override
public void onFailure ( Throwable caught ) {
2016-01-22 16:08:06 +01:00
monitor . hide ( ) ;
2015-12-11 18:02:03 +01:00
if ( caught instanceof StatAlgoImporterSessionExpiredException ) {
eventBus . fireEvent ( new SessionExpiredEvent (
SessionExpiredType . EXPIREDONSERVER ) ) ;
} else {
Log . error ( " Error deleting resourse: "
+ caught . getLocalizedMessage ( ) ) ;
UtilsGXT3 . alert ( " Error " ,
caught . getLocalizedMessage ( ) ) ;
}
caught . printStackTrace ( ) ;
}
@Override
2016-01-22 13:07:41 +01:00
public void onSuccess ( Project result ) {
2016-01-22 16:08:06 +01:00
monitor . hide ( ) ;
project = result ;
if ( mainCode ) {
2016-01-22 13:07:41 +01:00
fireProjectStatusDeleteMainCodeEvent ( ) ;
} else {
fireProjectStatusDeleteEvent ( ) ;
}
2015-12-11 18:02:03 +01:00
}
} ) ;
2015-12-04 18:45:47 +01:00
}
2015-12-22 12:04:49 +01:00
public void startProjectManager ( ) {
fireProjectStatusStartEvent ( ) ;
}
2015-12-11 18:02:03 +01:00
2015-12-09 18:15:10 +01:00
protected void fireProjectStatusOpenEvent ( ) {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent (
2015-12-14 18:44:54 +01:00
ProjectStatusEventType . OPEN , project ) ;
2015-12-04 18:45:47 +01:00
eventBus . fireEvent ( projectStatusEvent ) ;
2015-12-22 12:04:49 +01:00
Log . debug ( " ProjectStatusEvent fired! " + projectStatusEvent ) ;
2015-12-09 18:15:10 +01:00
2015-12-04 18:45:47 +01:00
}
2015-12-22 12:04:49 +01:00
2015-12-11 18:02:03 +01:00
protected void fireProjectStatusSaveProjectEvent ( ) {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent (
2015-12-14 18:44:54 +01:00
ProjectStatusEventType . SAVE , project ) ;
2015-12-11 18:02:03 +01:00
eventBus . fireEvent ( projectStatusEvent ) ;
2015-12-22 12:04:49 +01:00
Log . debug ( " ProjectStatusEvent fired! " + projectStatusEvent ) ;
2015-12-11 18:02:03 +01:00
}
2015-12-04 18:45:47 +01:00
2015-12-11 18:02:03 +01:00
protected void fireProjectStatusAddResourceEvent ( ) {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent (
2015-12-14 18:44:54 +01:00
ProjectStatusEventType . ADD_RESOURCE , project ) ;
2015-12-11 18:02:03 +01:00
eventBus . fireEvent ( projectStatusEvent ) ;
2015-12-22 12:04:49 +01:00
Log . debug ( " ProjectStatusEvent fired! " + projectStatusEvent ) ;
2015-12-11 18:02:03 +01:00
}
2015-12-22 12:04:49 +01:00
2015-12-11 18:02:03 +01:00
protected void fireProjectStatusDeleteEvent ( ) {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent (
2015-12-14 18:44:54 +01:00
ProjectStatusEventType . DELETE_RESOURCE , project ) ;
2015-12-11 18:02:03 +01:00
eventBus . fireEvent ( projectStatusEvent ) ;
2015-12-22 12:04:49 +01:00
Log . debug ( " ProjectStatusEvent fired! " + projectStatusEvent ) ;
2015-12-11 18:02:03 +01:00
}
2016-01-22 16:08:06 +01:00
2016-01-22 13:07:41 +01:00
protected void fireProjectStatusDeleteMainCodeEvent ( ) {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent (
ProjectStatusEventType . DELETE_MAIN_CODE , project ) ;
eventBus . fireEvent ( projectStatusEvent ) ;
Log . debug ( " ProjectStatusEvent fired! " + projectStatusEvent ) ;
}
2015-12-22 12:04:49 +01:00
2015-12-11 18:02:03 +01:00
protected void fireProjectStatusUpdateEvent ( ) {
2015-12-09 18:15:10 +01:00
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent (
2015-12-14 18:44:54 +01:00
ProjectStatusEventType . UPDATE , project ) ;
2015-12-04 18:45:47 +01:00
eventBus . fireEvent ( projectStatusEvent ) ;
2015-12-22 12:04:49 +01:00
Log . debug ( " ProjectStatusEvent fired! " + projectStatusEvent ) ;
2015-12-04 18:45:47 +01:00
}
2016-01-12 17:21:22 +01:00
2015-12-22 17:55:55 +01:00
protected void fireProjectStatusMainCodeSetEvent ( ) {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent (
ProjectStatusEventType . MAIN_CODE_SET , project ) ;
eventBus . fireEvent ( projectStatusEvent ) ;
Log . debug ( " ProjectStatusEvent fired! " + projectStatusEvent ) ;
}
2016-01-18 12:59:57 +01:00
2016-01-12 17:21:22 +01:00
protected void fireProjectStatusSoftwareCreatedEvent ( ) {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent (
ProjectStatusEventType . SOFTWARE_CREATED , project ) ;
eventBus . fireEvent ( projectStatusEvent ) ;
Log . debug ( " ProjectStatusEvent fired! " + projectStatusEvent ) ;
}
2015-12-09 18:15:10 +01:00
2015-12-22 12:04:49 +01:00
protected void fireProjectStatusStartEvent ( ) {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent (
ProjectStatusEventType . START , project ) ;
eventBus . fireEvent ( projectStatusEvent ) ;
Log . debug ( " ProjectStatusEvent fired! " + projectStatusEvent ) ;
}
2015-12-14 18:44:54 +01:00
2016-01-18 12:59:57 +01:00
public void startProjectManager ( String value ) {
StatAlgoImporterServiceAsync . INSTANCE . restoreUISession ( value ,
new AsyncCallback < Project > ( ) {
public void onFailure ( Throwable caught ) {
if ( caught instanceof StatAlgoImporterSessionExpiredException ) {
eventBus . fireEvent ( new SessionExpiredEvent (
SessionExpiredType . EXPIREDONSERVER ) ) ;
} else {
UtilsGXT3 . alert ( " Error " ,
caught . getLocalizedMessage ( ) ) ;
}
}
public void onSuccess ( Project p ) {
if ( p ! = null ) {
project = p ;
fireProjectStatusOpenEvent ( ) ;
}
}
} ) ;
}
2016-01-18 17:28:55 +01:00
public void softwarePublish ( ) {
if ( project ! = null ) {
final ConfirmMessageBox mb = new ConfirmMessageBox (
" Attention " ,
" The compiled software will be notified to the Infrastructure Administrators and will be published in the suggested VREs. The source code will not be shared. Do you confirm the submission? " ) ;
mb . addDialogHideHandler ( new DialogHideHandler ( ) {
@Override
public void onDialogHide ( DialogHideEvent event ) {
switch ( event . getHideButton ( ) ) {
case NO :
break ;
case YES :
softwarePublishOnServer ( ) ;
break ;
default :
break ;
}
}
} ) ;
mb . setWidth ( 300 ) ;
mb . show ( ) ;
} else {
2016-01-22 13:07:41 +01:00
Log . error ( " Project not open: " + project ) ;
UtilsGXT3 . alert ( " Error " , " Project not open! " ) ;
2016-01-18 17:28:55 +01:00
}
}
private void softwarePublishOnServer ( ) {
final StatAlgoImporterMonitor monitor = new StatAlgoImporterMonitor ( ) ;
StatAlgoImporterServiceAsync . INSTANCE
. publishSoftware ( new AsyncCallback < Void > ( ) {
public void onFailure ( Throwable caught ) {
monitor . hide ( ) ;
if ( caught instanceof StatAlgoImporterSessionExpiredException ) {
eventBus . fireEvent ( new SessionExpiredEvent (
SessionExpiredType . EXPIREDONSERVER ) ) ;
} else {
UtilsGXT3 . alert ( " Error " ,
caught . getLocalizedMessage ( ) ) ;
}
}
public void onSuccess ( Void result ) {
monitor . hide ( ) ;
2016-01-22 13:07:41 +01:00
UtilsGXT3 . info ( " Publish " ,
" The software has been published! " ) ;
2016-01-18 17:28:55 +01:00
}
} ) ;
}
2015-12-04 18:45:47 +01:00
}