ref 8819: Extend The Algorithms Importer to Manage Many Processes as Black Boxes

https://support.d4science.org/issues/8819

Updated support

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/statistical-algorithms-importer@149342 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2017-06-07 17:46:05 +00:00
parent 658dcd6d7f
commit 2e5a551a6a
19 changed files with 409 additions and 292 deletions

View File

@ -1,10 +1,10 @@
package org.gcube.portlets.user.statisticalalgorithmsimporter.client; package org.gcube.portlets.user.statisticalalgorithmsimporter.client;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.maindata.WorkAreaPanel;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.resource.StatAlgoImporterResources; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.resource.StatAlgoImporterResources;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.ribbon.StatAlgoImporterRibbon; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.ribbon.StatAlgoImporterRibbon;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.rpc.StatAlgoImporterService; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.rpc.StatAlgoImporterService;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.rpc.StatAlgoImporterServiceAsync; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.rpc.StatAlgoImporterServiceAsync;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.workarea.WorkAreaPanel;
import com.allen_sauer.gwt.log.client.Log; import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.EntryPoint;

View File

@ -69,6 +69,7 @@ public class StatAlgoImporterController {
callHello(); callHello();
checkSession(); checkSession();
pm = new ProjectManager(eventBus); pm = new ProjectManager(eventBus);
//pm.startProjectManager();
bindToEvents(); bindToEvents();
} }
@ -252,7 +253,7 @@ public class StatAlgoImporterController {
}); });
pm.startProjectManager();
} }

View File

@ -13,6 +13,7 @@ import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
import com.allen_sauer.gwt.log.client.Log; import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.shared.GWT; import com.google.gwt.core.shared.GWT;
import com.google.gwt.user.client.Command; import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.SimplePanel;
/** /**
* *
@ -22,15 +23,13 @@ import com.google.gwt.user.client.Command;
*/ */
public class ProjectFolderSelectionCard extends WizardCard { public class ProjectFolderSelectionCard extends WizardCard {
// private DecoratorPanel decPanel;
private ItemDescription newProjectFolder; private ItemDescription newProjectFolder;
public ProjectFolderSelectionCard() { public ProjectFolderSelectionCard() {
super("Project Setup", "Select the project folder"); super("Setup", "Select the project folder");
try { try {
WorkspaceExplorerSelectPanel wselectPanel = new WorkspaceExplorerSelectPanel("Select Project Folder", true); WorkspaceExplorerSelectPanel wselectPanel = new WorkspaceExplorerSelectPanel("Select Project Folder", true);
WorskpaceExplorerSelectNotificationListener handler = new WorskpaceExplorerSelectNotificationListener() { WorskpaceExplorerSelectNotificationListener handler = new WorskpaceExplorerSelectNotificationListener() {
@Override @Override
@ -40,7 +39,7 @@ public class ProjectFolderSelectionCard extends WizardCard {
createNewProjectFolder(item); createNewProjectFolder(item);
} else { } else {
newProjectFolder=null; newProjectFolder = null;
GWTMessages.alert("Attention", "Select a valid project folder!", getZIndex()); GWTMessages.alert("Attention", "Select a valid project folder!", getZIndex());
} }
@ -59,13 +58,16 @@ public class ProjectFolderSelectionCard extends WizardCard {
@Override @Override
public void onNotValidSelection() { public void onNotValidSelection() {
newProjectFolder=null; newProjectFolder = null;
GWTMessages.alert("Attention", "Select a valid project folder!", getZIndex()); GWTMessages.alert("Attention", "Select a valid project folder!", getZIndex());
} }
}; };
wselectPanel.addWorkspaceExplorerSelectNotificationListener(handler); wselectPanel.addWorkspaceExplorerSelectNotificationListener(handler);
setContent(wselectPanel); SimplePanel mainPanel=new SimplePanel();
mainPanel.setHeight("400px");
mainPanel.setWidget(wselectPanel);
setContent(mainPanel);
} catch (Exception e) { } catch (Exception e) {
GWT.log("Error: " + e.getLocalizedMessage()); GWT.log("Error: " + e.getLocalizedMessage());
e.printStackTrace(); e.printStackTrace();
@ -74,8 +76,8 @@ public class ProjectFolderSelectionCard extends WizardCard {
private void createNewProjectFolder(Item item) { private void createNewProjectFolder(Item item) {
Log.debug("Create Project Item selected: " + item); Log.debug("Create Project Item selected: " + item);
newProjectFolder = new ItemDescription(item.getId(), item.getName(), item.getOwner(), newProjectFolder = new ItemDescription(item.getId(), item.getName(), item.getOwner(), item.getPath(),
item.getPath(), item.getType().name()); item.getType().name());
} }
@Override @Override
@ -108,15 +110,16 @@ public class ProjectFolderSelectionCard extends WizardCard {
setBackButtonVisible(true); setBackButtonVisible(true);
setEnableNextButton(true); setEnableNextButton(true);
setNextButtonVisible(true); setNextButtonVisible(true);
getWizardWindow().center();
} }
private void checkData() { private void checkData() {
if(newProjectFolder!=null){ if (newProjectFolder != null) {
ProjectCreateWizard wiz = (ProjectCreateWizard) getWizardWindow(); ProjectCreateWizard wiz = (ProjectCreateWizard) getWizardWindow();
wiz.getProjectCreateSession().setNewProjectFolder(newProjectFolder); wiz.getProjectCreateSession().setNewProjectFolder(newProjectFolder);
goNext(); goNext();
} else { } else {
GWTMessages.alert("Attention", "Select a valid project folder!", getZIndex()); GWTMessages.alert("Attention", "Select a valid project folder!", getZIndex());
} }

View File

@ -9,6 +9,7 @@ import org.gcube.portlets.widgets.githubconnector.client.util.GWTMessages;
import org.gcube.portlets.widgets.githubconnector.client.util.WaitDialog; import org.gcube.portlets.widgets.githubconnector.client.util.WaitDialog;
import org.gcube.portlets.widgets.githubconnector.client.wizard.WizardCard; import org.gcube.portlets.widgets.githubconnector.client.wizard.WizardCard;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.shared.GWT; import com.google.gwt.core.shared.GWT;
import com.google.gwt.user.client.Command; import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.AsyncCallback;
@ -23,31 +24,28 @@ import com.google.gwt.user.client.ui.SimplePanel;
* *
*/ */
public class ProjectSetupSelectionCard extends WizardCard { public class ProjectSetupSelectionCard extends WizardCard {
private SAIDescriptor saiDescription; private SAIDescriptor saiDescription;
private ListBox projectSetupListBox; private ListBox projectSetupListBox;
// private DecoratorPanel decPanel; // private DecoratorPanel decPanel;
public ProjectSetupSelectionCard() { public ProjectSetupSelectionCard() {
super("Project Setup", "Configure the project"); super("Setup", "Configure the project");
retrieveSaiDescriptor(); create();
} }
private void create() {
private void init(){
try { try {
SimplePanel projectSetupSelectionPanel = new SimplePanel(); SimplePanel projectSetupSelectionPanel = new SimplePanel();
projectSetupListBox = new ListBox(); projectSetupListBox = new ListBox();
projectSetupListBox.setWidth("176px"); projectSetupListBox.setWidth("176px");
projectSetupListBox.ensureDebugId("projectSetupListBox"); projectSetupListBox.ensureDebugId("projectSetupListBox");
projectSetupListBox.setEnabled(false);
for (ProjectSetup projectSetup : saiDescription.getAvailableProjectConfigurations()) {
projectSetupListBox.addItem(projectSetup.getLanguage());
}
// Form // Form
FlexTable layout = new FlexTable(); FlexTable layout = new FlexTable();
layout.setCellSpacing(10); layout.setCellSpacing(10);
@ -61,20 +59,25 @@ public class ProjectSetupSelectionCard extends WizardCard {
projectSetupSelectionPanel.add(loginFlexTable); projectSetupSelectionPanel.add(loginFlexTable);
setContent(projectSetupSelectionPanel); setContent(projectSetupSelectionPanel);
Scheduler.get().scheduleDeferred(new Command() {
public void execute() {
init();
}
});
} catch (Exception e) { } catch (Exception e) {
GWT.log("Error: " + e.getLocalizedMessage()); GWT.log("Error: " + e.getLocalizedMessage());
e.printStackTrace(); e.printStackTrace();
} }
} }
private void retrieveSaiDescriptor() { private void init() {
final WaitDialog waitDialog = new WaitDialog(getZIndex()); final WaitDialog waitDialog = new WaitDialog(getZIndex());
waitDialog.show(); waitDialog.show();
StatAlgoImporterServiceAsync.INSTANCE.getSAIDescripor(new AsyncCallback<SAIDescriptor>() { StatAlgoImporterServiceAsync.INSTANCE.getSAIDescripor(new AsyncCallback<SAIDescriptor>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
waitDialog.hide(); waitDialog.hide();
@ -91,9 +94,14 @@ public class ProjectSetupSelectionCard extends WizardCard {
@Override @Override
public void onSuccess(SAIDescriptor saiDesc) { public void onSuccess(SAIDescriptor saiDesc) {
waitDialog.hide(); waitDialog.hide();
saiDescription=saiDesc; GWT.log("SAI Descriptor: " + saiDesc);
init(); saiDescription = saiDesc;
for (ProjectSetup projectSetup : saiDescription.getAvailableProjectConfigurations()) {
projectSetupListBox.addItem(projectSetup.getLanguage());
}
projectSetupListBox.setEnabled(true);
} }
}); });
@ -129,7 +137,7 @@ public class ProjectSetupSelectionCard extends WizardCard {
setBackButtonVisible(false); setBackButtonVisible(false);
setEnableNextButton(true); setEnableNextButton(true);
setNextButtonVisible(true); setNextButtonVisible(true);
getWizardWindow().center();
} }
@ -140,15 +148,15 @@ public class ProjectSetupSelectionCard extends WizardCard {
if (language == null || language.isEmpty()) { if (language == null || language.isEmpty()) {
GWTMessages.alert("Attention", "Select a type!", getZIndex()); GWTMessages.alert("Attention", "Select a type!", getZIndex());
} else { } else {
ProjectSetup selectedSetup=null; ProjectSetup selectedSetup = null;
ProjectCreateWizard wiz = (ProjectCreateWizard) getWizardWindow(); ProjectCreateWizard wiz = (ProjectCreateWizard) getWizardWindow();
for(ProjectSetup pSetup:saiDescription.getAvailableProjectConfigurations()){ for (ProjectSetup pSetup : saiDescription.getAvailableProjectConfigurations()) {
if(pSetup.getLanguage().compareTo(language)==0){ if (pSetup.getLanguage().compareTo(language) == 0) {
selectedSetup=pSetup; selectedSetup = pSetup;
break; break;
} }
} }
if(selectedSetup!=null){ if (selectedSetup != null) {
wiz.getProjectCreateSession().setProjectSetup(selectedSetup); wiz.getProjectCreateSession().setProjectSetup(selectedSetup);
goNext(); goNext();
} else { } else {

View File

@ -0,0 +1,74 @@
package org.gcube.portlets.user.statisticalalgorithmsimporter.client.event;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.type.WorkAreaEventType;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
import com.google.gwt.event.shared.EventHandler;
import com.google.gwt.event.shared.GwtEvent;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.event.shared.HasHandlers;
/**
* Project Status Event
*
*
* @author Giancarlo Panichi
*
*
*/
public class WorkAreaEvent extends GwtEvent<WorkAreaEvent.WorkAreaEventHandler> {
public static Type<WorkAreaEventHandler> TYPE = new Type<WorkAreaEventHandler>();
private WorkAreaEventType workAreaEventType;
private Project project;
public interface WorkAreaEventHandler extends EventHandler {
void onWorkArea(WorkAreaEvent event);
}
public interface HasWorkAreaEventHandler extends HasHandlers {
public HandlerRegistration addWorkAreaEventHandler(WorkAreaEventHandler handler);
}
public WorkAreaEvent() {
this.workAreaEventType = WorkAreaEventType.WORK_AREA_SETUP;
this.project = null;
}
public WorkAreaEvent(WorkAreaEventType workAreaEventType, Project project) {
this.workAreaEventType = workAreaEventType;
this.project = project;
}
@Override
protected void dispatch(WorkAreaEventHandler handler) {
handler.onWorkArea(this);
}
@Override
public Type<WorkAreaEventHandler> getAssociatedType() {
return TYPE;
}
public static Type<WorkAreaEventHandler> getType() {
return TYPE;
}
public static void fire(HasHandlers source, WorkAreaEvent workAreaEvent) {
source.fireEvent(workAreaEvent);
}
public WorkAreaEventType getWorkAreaEventType() {
return workAreaEventType;
}
public Project getProject() {
return project;
}
@Override
public String toString() {
return "WorkAreaEvent [workAreaEventType=" + workAreaEventType + ", project=" + project + "]";
}
}

View File

@ -23,6 +23,7 @@ public class MainDataPanel extends SimpleContainer {
public MainDataPanel(EventBus eventBus) { public MainDataPanel(EventBus eventBus) {
super(); super();
this.eventBus = eventBus; this.eventBus = eventBus;
Log.debug("MainDataPanel");
init(); init();
create(); create();
bindToEvents(); bindToEvents();
@ -46,11 +47,13 @@ public class MainDataPanel extends SimpleContainer {
@Override @Override
public void onProjectStatus(ProjectStatusEvent event) { public void onProjectStatus(ProjectStatusEvent event) {
Log.debug("Catch ProjectStatusEvent"); Log.debug("Main Data Panel catch ProjectStatusEvent: "+event);
doProjectStatusCommand(event); doProjectStatusCommand(event);
} }
}); });
Log.debug("Main Data Panel bind to event do!");
} }
private void doProjectStatusCommand(ProjectStatusEvent event) { private void doProjectStatusCommand(ProjectStatusEvent event) {

View File

@ -4,19 +4,22 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.create.ProjectCreateWizard;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.NewMainCodeEvent; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.NewMainCodeEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.ProjectStatusEvent; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.ProjectStatusEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.SessionExpiredEvent; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.SessionExpiredEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.WorkAreaEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.monitor.StatAlgoImporterMonitor; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.monitor.StatAlgoImporterMonitor;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.rpc.StatAlgoImporterServiceAsync; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.rpc.StatAlgoImporterServiceAsync;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.type.ProjectStatusEventType; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.type.ProjectStatusEventType;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.type.SessionExpiredType; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.type.SessionExpiredType;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.type.WorkAreaEventType;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.utils.UtilsGXT3; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.utils.UtilsGXT3;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.descriptor.SAIDescriptor; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.descriptor.SAIDescriptor;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterSessionExpiredException; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterSessionExpiredException;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.InputData; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.InputData;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectFolder; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectCreateSession;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
import org.gcube.portlets.widgets.githubconnector.client.GitHubConnectorWizard; import org.gcube.portlets.widgets.githubconnector.client.GitHubConnectorWizard;
import org.gcube.portlets.widgets.githubconnector.client.wizard.event.WizardEvent; import org.gcube.portlets.widgets.githubconnector.client.wizard.event.WizardEvent;
@ -47,85 +50,98 @@ public class ProjectManager {
public ProjectManager(EventBus eventBus) { public ProjectManager(EventBus eventBus) {
this.eventBus = eventBus; this.eventBus = eventBus;
// bind();
} }
public void bind(){
eventBus.addHandler(ProjectStatusEvent.TYPE,
new ProjectStatusEvent.ProjectStatusEventHandler() {
@Override
public void onProjectStatus(ProjectStatusEvent event) {
Log.debug("Catch ProjectStatusEvent");
doProjectStatusManage(event);
}
public void bind() {
}); eventBus.addHandler(ProjectStatusEvent.TYPE, new ProjectStatusEvent.ProjectStatusEventHandler() {
@Override
public void onProjectStatus(ProjectStatusEvent event) {
Log.debug("Project Manager catch ProjectStatusEvent:" + event);
// doProjectStatusManage(event);
}
});
}
private void doProjectStatusManage(ProjectStatusEvent event) {
if(event==null|| event.getProjectStatusEventType()==null){
return;
}
switch(event.getProjectStatusEventType()){
case WORK_AREA_READY:
fireProjectStatusOpenEvent();
break;
default:
break;
}
} }
public void createProject() { public void createProject() {
}
private void selectProjectFolder(){
WorkspaceExplorerSelectDialog wselectDialog = new WorkspaceExplorerSelectDialog("Select Project Folder", true);
WorskpaceExplorerSelectNotificationListener handler = new WorskpaceExplorerSelectNotificationListener() { // Example
WizardEvent.WizardEventHandler handler = new WizardEvent.WizardEventHandler() {
@Override @Override
public void onSelectedItem(Item item) { public void onResponse(WizardEvent event) {
if (event == null || event.getWizardEventType() == null) {
if (item.getType() == ItemType.FOLDER) { GWT.log("ProjectCreateWizard Response: null");
createProjectOnServer(item); return;
} else { } else {
UtilsGXT3.info("Attention", "Select a valid project folder!"); GWT.log("ProjectCreateWizard Response: " + event.getWizardEventType());
switch (event.getWizardEventType()) {
case Completed:
ProjectCreateWizard wizard = (ProjectCreateWizard) event.getSource();
ProjectCreateSession projectCreateSession = wizard.getProjectCreateSession();
createProjectOnServer(projectCreateSession);
break;
case Background:
case Aborted:
case Failed:
break;
default:
break;
}
} }
} }
@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); final ProjectCreateWizard wizard = new ProjectCreateWizard();
wselectDialog.setZIndex(XDOM.getTopZIndex()); wizard.addWizardEventHandler(handler);
wselectDialog.show(); wizard.setZIndex(XDOM.getTopZIndex());
wizard.show();
} }
/*
* private void selectProjectFolder() {
*
* WorkspaceExplorerSelectDialog wselectDialog = new
* WorkspaceExplorerSelectDialog("Select Project Folder", true);
*
* WorskpaceExplorerSelectNotificationListener handler = new
* WorskpaceExplorerSelectNotificationListener() {
*
* @Override public void onSelectedItem(Item item) {
*
* if (item.getType() == ItemType.FOLDER) {
*
* } 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(); }
*/
public void openProject() { public void openProject() {
WorkspaceExplorerSelectDialog wselectDialog = new WorkspaceExplorerSelectDialog("Select Project Folder", true); WorkspaceExplorerSelectDialog wselectDialog = new WorkspaceExplorerSelectDialog("Select Project Folder", true);
@ -297,36 +313,36 @@ public class ProjectManager {
} }
private void createProjectOnServer(Item item) { private void createProjectOnServer(final ProjectCreateSession projectCreateSession) {
final StatAlgoImporterMonitor monitor = new StatAlgoImporterMonitor(); final StatAlgoImporterMonitor monitor = new StatAlgoImporterMonitor();
Log.debug("Create Project Item selected: " + item); Log.debug("Create Project: " + projectCreateSession);
final ItemDescription newProjectFolder = new ItemDescription(item.getId(), item.getName(), item.getOwner(), StatAlgoImporterServiceAsync.INSTANCE.createProjectOnWorkspace(projectCreateSession,
item.getPath(), item.getType().name()); new AsyncCallback<Project>() {
StatAlgoImporterServiceAsync.INSTANCE.createProjectOnWorkspace(newProjectFolder, new AsyncCallback<Void>() {
@Override @Override
public void onSuccess(Void result) { public void onSuccess(Project p) {
monitor.hide(); monitor.hide();
project = new Project(new ProjectFolder(newProjectFolder)); project = p;
fireProjectStatusWorkAreaSetupEvent(); fireWorkAreaSetupEvent();
}
@Override }
public void onFailure(Throwable caught) {
monitor.hide();
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();
} @Override
}); public void onFailure(Throwable caught) {
monitor.hide();
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();
}
});
} }
protected void openProjectOnServer(Item item) { private void openProjectOnServer(Item item) {
final StatAlgoImporterMonitor monitor = new StatAlgoImporterMonitor(); final StatAlgoImporterMonitor monitor = new StatAlgoImporterMonitor();
Log.debug("Open Project Item selected: " + item); Log.debug("Open Project Item selected: " + item);
@ -339,7 +355,7 @@ public class ProjectManager {
Log.debug("Open: " + projectOpened); Log.debug("Open: " + projectOpened);
monitor.hide(); monitor.hide();
project = projectOpened; project = projectOpened;
fireProjectStatusWorkAreaSetupEvent(); fireWorkAreaSetupEvent();
} }
@ -742,7 +758,7 @@ public class ProjectManager {
public void onSuccess(Project p) { public void onSuccess(Project p) {
if (p != null) { if (p != null) {
project = p; project = p;
fireProjectStatusWorkAreaSetupEvent(); fireWorkAreaSetupEvent();
} }
} }
@ -750,93 +766,96 @@ public class ProjectManager {
} }
private void fireProjectStatusWorkAreaSetupEvent() { private void fireWorkAreaSetupEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.WORK_AREA_SETUP, project); WorkAreaEvent workAreaEvent = new WorkAreaEvent(WorkAreaEventType.WORK_AREA_SETUP, project);
eventBus.fireEvent(projectStatusEvent); Log.debug("Project Manager workAreaEvent fire! " + workAreaEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent); eventBus.fireEvent(workAreaEvent);
}
private void fireProjectStatusOpenEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.OPEN, project);
eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")
private void fireProjectStatusSaveProjectEvent() { private void fireProjectStatusSaveProjectEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.SAVE, project); ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.SAVE, project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent); eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
} }
private void fireProjectStatusAddResourceEvent() { private void fireProjectStatusAddResourceEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.ADD_RESOURCE, project); ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.ADD_RESOURCE, project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent); eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
} }
private void fireProjectStatusDeleteEvent() { private void fireProjectStatusDeleteEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.DELETE_RESOURCE, project); ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.DELETE_RESOURCE, project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent); eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
} }
private void fireProjectStatusDeleteMainCodeEvent() { private void fireProjectStatusDeleteMainCodeEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.DELETE_MAIN_CODE, ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.DELETE_MAIN_CODE,
project); project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent); eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")
private void fireProjectStatusUpdateEvent() { private void fireProjectStatusUpdateEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.UPDATE, project); ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.UPDATE, project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent); eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
} }
private void fireProjectStatusExplorerRefreshEvent() { private void fireProjectStatusExplorerRefreshEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.EXPLORER_REFRESH, ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.EXPLORER_REFRESH,
project); project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent); eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
} }
private void fireProjectStatusMainCodeSetEvent() { private void fireProjectStatusMainCodeSetEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.MAIN_CODE_SET, project); ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.MAIN_CODE_SET, project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent); eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
} }
private void fireProjectStatusSoftwareCreatedEvent() { private void fireProjectStatusSoftwareCreatedEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.SOFTWARE_CREATED, ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.SOFTWARE_CREATED,
project); project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent); eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
} }
private void fireProjectStatusSoftwarePublishEvent() { private void fireProjectStatusSoftwarePublishEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.SOFTWARE_PUBLISH, ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.SOFTWARE_PUBLISH,
project); project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent); eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
} }
private void fireProjectStatusSoftwareRepackageEvent() { private void fireProjectStatusSoftwareRepackageEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.SOFTWARE_REPACKAGE, ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.SOFTWARE_REPACKAGE,
project); project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent); eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
} }
private void fireProjectStatusStartEvent() { private void fireProjectStatusStartEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.START, project); ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.START, project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent); eventBus.fireEvent(projectStatusEvent);
Log.debug("ProjectStatusEvent fired! " + projectStatusEvent);
}
private void fireProjectStatusOpenEvent() {
ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.OPEN, project);
Log.debug("Project Manager ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent);
} }
} }

View File

@ -8,6 +8,7 @@ import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.St
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.file.FileUploadMonitor; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.file.FileUploadMonitor;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.InputData; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.InputData;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectCreateSession;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.session.UserInfo; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.session.UserInfo;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
@ -52,7 +53,7 @@ public interface StatAlgoImporterService extends RemoteService {
// Code // Code
public ArrayList<CodeData> getCode() throws StatAlgoImporterServiceException; public ArrayList<CodeData> getCode() throws StatAlgoImporterServiceException;
public void createProjectOnWorkspace(ItemDescription itemDescription) throws StatAlgoImporterServiceException; public Project createProjectOnWorkspace(ProjectCreateSession projectCreateSession) throws StatAlgoImporterServiceException;
// //
public Project setMainCode(ItemDescription itemDescription) throws StatAlgoImporterServiceException; public Project setMainCode(ItemDescription itemDescription) throws StatAlgoImporterServiceException;

View File

@ -10,6 +10,7 @@ import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.descriptor.S
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.file.FileUploadMonitor; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.file.FileUploadMonitor;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.InputData; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.InputData;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectCreateSession;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.session.UserInfo; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.session.UserInfo;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
@ -35,7 +36,7 @@ public interface StatAlgoImporterServiceAsync {
void getCode(AsyncCallback<ArrayList<CodeData>> callback); void getCode(AsyncCallback<ArrayList<CodeData>> callback);
void createProjectOnWorkspace(ItemDescription itemDescription, AsyncCallback<Void> callback); void createProjectOnWorkspace(ProjectCreateSession projectCreateSession, AsyncCallback<Project> callback);
void setMainCode(ItemDescription itemDescription, AsyncCallback<Project> callback); void setMainCode(ItemDescription itemDescription, AsyncCallback<Project> callback);

View File

@ -28,6 +28,7 @@ public class ToolsPanel extends ContentPanel {
public ToolsPanel(EventBus eventBus) { public ToolsPanel(EventBus eventBus) {
super(); super();
this.eventBus = eventBus; this.eventBus = eventBus;
Log.debug("ToolsPanel");
init(); init();
create(); create();
bindToEvents(); bindToEvents();
@ -49,11 +50,12 @@ public class ToolsPanel extends ContentPanel {
@Override @Override
public void onProjectStatus(ProjectStatusEvent event) { public void onProjectStatus(ProjectStatusEvent event) {
Log.debug("Catch ProjectStatusEvent"); Log.debug("Tools Panel Catch ProjectStatusEvent"+event);
doProjectStatusCommand(event); doProjectStatusCommand(event);
} }
}); });
Log.debug("ToolsPanel bind to Event do!");
} }
private void doProjectStatusCommand(ProjectStatusEvent event) { private void doProjectStatusCommand(ProjectStatusEvent event) {

View File

@ -65,13 +65,10 @@ public class ExplorerProjectPanel extends ContentPanel {
} }
public ExplorerProjectPanel(EventBus eventBus, public ExplorerProjectPanel(EventBus eventBus, AccordionLayoutAppearance appearance) {
AccordionLayoutAppearance appearance) {
super(appearance); super(appearance);
Log.debug("ExplorerProjectPanel"); Log.debug("ExplorerProjectPanel");
this.eventBus = eventBus; this.eventBus = eventBus;
// msgs = GWT.create(ServiceCategoryMessages.class);
init(); init();
bindToEvents(); bindToEvents();
@ -86,26 +83,26 @@ public class ExplorerProjectPanel extends ContentPanel {
setResize(true); setResize(true);
setAnimCollapse(false); setAnimCollapse(false);
setHeadingText("Project Explorer"); setHeadingText("Project Explorer");
} }
private void bindToEvents() { private void bindToEvents() {
eventBus.addHandler(ProjectStatusEvent.TYPE, eventBus.addHandler(ProjectStatusEvent.TYPE, new ProjectStatusEvent.ProjectStatusEventHandler() {
new ProjectStatusEvent.ProjectStatusEventHandler() {
@Override @Override
public void onProjectStatus(ProjectStatusEvent event) { public void onProjectStatus(ProjectStatusEvent event) {
manageProjectStatusEvents(event); Log.debug("ExplorerProjectPanel Catch Event ProjectStatus: " + event);
} manageProjectStatusEvents(event);
});
}
});
Log.debug("ExplorerProjectPanel bind to Event do!");
} }
private void manageProjectStatusEvents(ProjectStatusEvent event) { private void manageProjectStatusEvents(ProjectStatusEvent event) {
Log.debug("InputVariablePanel recieved event ProjectStatus: "
+ event.toString());
switch (event.getProjectStatusEventType()) { switch (event.getProjectStatusEventType()) {
case START: case START:
break; break;
@ -113,15 +110,15 @@ public class ExplorerProjectPanel extends ContentPanel {
case UPDATE: case UPDATE:
case ADD_RESOURCE: case ADD_RESOURCE:
case DELETE_RESOURCE: case DELETE_RESOURCE:
case DELETE_MAIN_CODE: case DELETE_MAIN_CODE:
create(event); create(event);
break; break;
case SAVE: case SAVE:
case MAIN_CODE_SET: case MAIN_CODE_SET:
case SOFTWARE_CREATED: case SOFTWARE_CREATED:
case SOFTWARE_PUBLISH: case SOFTWARE_PUBLISH:
case SOFTWARE_REPACKAGE: case SOFTWARE_REPACKAGE:
case EXPLORER_REFRESH: case EXPLORER_REFRESH:
reloadWSResourceExplorerPanel(); reloadWSResourceExplorerPanel();
break; break;
default: default:
@ -133,12 +130,8 @@ public class ExplorerProjectPanel extends ContentPanel {
try { try {
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel( wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(
event.getProject().getProjectFolder().getFolder() event.getProject().getProjectFolder().getFolder().getId(), false);
.getId(), false);
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() { WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
@Override @Override
public void onSelectedItem(Item item) { public void onSelectedItem(Item item) {
@ -164,27 +157,23 @@ public class ExplorerProjectPanel extends ContentPanel {
} }
}; };
wsResourcesExplorerPanel wsResourcesExplorerPanel.addWorkspaceExplorerSelectNotificationListener(wsResourceExplorerListener);
.addWorkspaceExplorerSelectNotificationListener(wsResourceExplorerListener);
wsResourcesExplorerPanel.ensureDebugId("wsResourceExplorerPanel"); wsResourcesExplorerPanel.ensureDebugId("wsResourceExplorerPanel");
VerticalLayoutContainer vResourcesExplorerContainer = new VerticalLayoutContainer(); VerticalLayoutContainer vResourcesExplorerContainer = new VerticalLayoutContainer();
vResourcesExplorerContainer.setScrollMode(ScrollMode.AUTO); vResourcesExplorerContainer.setScrollMode(ScrollMode.AUTO);
vResourcesExplorerContainer.add(wsResourcesExplorerPanel, vResourcesExplorerContainer.add(wsResourcesExplorerPanel, new VerticalLayoutData(1, -1, new Margins(0)));
new VerticalLayoutData(1, -1, new Margins(0)));
// DND // DND
dnd = new MultipleDNDUpload(); dnd = new MultipleDNDUpload();
dnd.setParameters(event.getProject().getProjectFolder() dnd.setParameters(event.getProject().getProjectFolder().getFolder().getId(), UPLOAD_TYPE.File);
.getFolder().getId(), UPLOAD_TYPE.File);
dnd.addUniqueContainer(vResourcesExplorerContainer); dnd.addUniqueContainer(vResourcesExplorerContainer);
WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() { WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() {
@Override @Override
public void onUploadCompleted(String parentId, String itemId) { public void onUploadCompleted(String parentId, String itemId) {
Log.debug("Upload completed: [parentID: " + parentId Log.debug("Upload completed: [parentID: " + parentId + ", itemId: " + itemId + "]");
+ ", itemId: " + itemId + "]");
wsResourcesExplorerPanel.refreshRootFolderView(); wsResourcesExplorerPanel.refreshRootFolderView();
forceLayout(); forceLayout();
@ -192,22 +181,18 @@ public class ExplorerProjectPanel extends ContentPanel {
@Override @Override
public void onUploadAborted(String parentId, String itemId) { public void onUploadAborted(String parentId, String itemId) {
Log.debug("Upload Aborted: [parentID: " + parentId Log.debug("Upload Aborted: [parentID: " + parentId + ", itemId: " + itemId + "]");
+ ", itemId: " + itemId + "]");
} }
@Override @Override
public void onError(String parentId, String itemId, public void onError(String parentId, String itemId, Throwable throwable) {
Throwable throwable) { Log.debug("Upload Error: [parentID: " + parentId + ", itemId: " + itemId + "]");
Log.debug("Upload Error: [parentID: " + parentId
+ ", itemId: " + itemId + "]");
throwable.printStackTrace(); throwable.printStackTrace();
} }
@Override @Override
public void onOverwriteCompleted(String parentId, String itemId) { public void onOverwriteCompleted(String parentId, String itemId) {
Log.debug("Upload Override Completed: [parentID: " Log.debug("Upload Override Completed: [parentID: " + parentId + ", itemId: " + itemId + "]");
+ parentId + ", itemId: " + itemId + "]");
wsResourcesExplorerPanel.refreshRootFolderView(); wsResourcesExplorerPanel.refreshRootFolderView();
forceLayout(); forceLayout();
} }
@ -277,7 +262,7 @@ public class ExplorerProjectPanel extends ContentPanel {
toolBar.add(btnOpen, new BoxLayoutData(new Margins(0))); toolBar.add(btnOpen, new BoxLayoutData(new Margins(0)));
toolBar.add(btnDelete, new BoxLayoutData(new Margins(0))); toolBar.add(btnDelete, new BoxLayoutData(new Margins(0)));
toolBar.add(btnReload, new BoxLayoutData(new Margins(0))); toolBar.add(btnReload, new BoxLayoutData(new Margins(0)));
VerticalLayoutContainer v = new VerticalLayoutContainer(); VerticalLayoutContainer v = new VerticalLayoutContainer();
v.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0))); v.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0)));
@ -300,72 +285,57 @@ public class ExplorerProjectPanel extends ContentPanel {
private void setMainCode(SelectEvent event) { private void setMainCode(SelectEvent event) {
Log.debug("Set Main Code"); Log.debug("Set Main Code");
if (selectedItem != null if (selectedItem != null && selectedItem.getType().compareTo(ItemType.EXTERNAL_FILE) == 0) {
&& selectedItem.getType().compareTo(ItemType.EXTERNAL_FILE) == 0) {
loadData(); loadData();
} else { } else {
UtilsGXT3.info("Attention", UtilsGXT3.info("Attention", "Select a valid file to be used as main!");
"Select a valid file to be used as main!");
} }
} }
private void deleteItem(SelectEvent event) { private void deleteItem(SelectEvent event) {
ItemDescription itemDescription = new ItemDescription( ItemDescription itemDescription = new ItemDescription(selectedItem.getId(), selectedItem.getName(),
selectedItem.getId(), selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(), selectedItem.getType().name());
selectedItem.getOwner(), selectedItem.getPath(), DeleteItemEvent deleteItemEvent = new DeleteItemEvent(itemDescription);
selectedItem.getType().name());
DeleteItemEvent deleteItemEvent = new DeleteItemEvent(
itemDescription);
eventBus.fireEvent(deleteItemEvent); eventBus.fireEvent(deleteItemEvent);
Log.debug("Fired: " + deleteItemEvent); Log.debug("Fired: " + deleteItemEvent);
} }
private void loadData() { private void loadData() {
ItemDescription itemDescription = new ItemDescription( ItemDescription itemDescription = new ItemDescription(selectedItem.getId(), selectedItem.getName(),
selectedItem.getId(), selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(), selectedItem.getType().name());
selectedItem.getOwner(), selectedItem.getPath(), selectedItem MainCodeSetEvent mainCodeSetEvent = new MainCodeSetEvent(itemDescription);
.getType().name());
MainCodeSetEvent mainCodeSetEvent = new MainCodeSetEvent(
itemDescription);
eventBus.fireEvent(mainCodeSetEvent); eventBus.fireEvent(mainCodeSetEvent);
Log.debug("Fired: " + mainCodeSetEvent); Log.debug("Fired: " + mainCodeSetEvent);
} }
private void openFile() { private void openFile() {
if (selectedItem != null if (selectedItem != null && !selectedItem.isFolder()) {
&& !selectedItem.isFolder()) {
final ItemDescription itemDescription = new ItemDescription( final ItemDescription itemDescription = new ItemDescription(selectedItem.getId(), selectedItem.getName(),
selectedItem.getId(), selectedItem.getName(), selectedItem.getOwner(), selectedItem.getPath(), selectedItem.getType().name());
selectedItem.getOwner(), selectedItem.getPath(),
selectedItem.getType().name());
StatAlgoImporterServiceAsync.INSTANCE.getPublicLink(
itemDescription, new AsyncCallback<String>() {
@Override StatAlgoImporterServiceAsync.INSTANCE.getPublicLink(itemDescription, new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
if (caught instanceof StatAlgoImporterSessionExpiredException) {
eventBus.fireEvent(new SessionExpiredEvent(
SessionExpiredType.EXPIREDONSERVER));
} else {
Log.error("Error open file: "
+ caught.getLocalizedMessage());
UtilsGXT3.alert("Error",
caught.getLocalizedMessage());
}
caught.printStackTrace();
} @Override
public void onFailure(Throwable caught) {
if (caught instanceof StatAlgoImporterSessionExpiredException) {
eventBus.fireEvent(new SessionExpiredEvent(SessionExpiredType.EXPIREDONSERVER));
} else {
Log.error("Error open file: " + caught.getLocalizedMessage());
UtilsGXT3.alert("Error", caught.getLocalizedMessage());
}
caught.printStackTrace();
@Override }
public void onSuccess(String link) {
Log.debug("Retrieved link: " + link);
Window.open(link, itemDescription.getName(), "");
}
}); @Override
public void onSuccess(String link) {
Log.debug("Retrieved link: " + link);
Window.open(link, itemDescription.getName(), "");
}
});
} else { } else {
UtilsGXT3.info("Attention", "Select a file!"); UtilsGXT3.info("Attention", "Select a file!");

View File

@ -26,7 +26,7 @@ public class InputVariablePanel extends ContentPanel {
public InputVariablePanel(EventBus eventBus) { public InputVariablePanel(EventBus eventBus) {
super(); super();
Log.debug("Open InputVariablePanel"); Log.debug("InputVariablePanel");
this.eventBus = eventBus; this.eventBus = eventBus;
init(); init();
bindToEvents(); bindToEvents();
@ -91,7 +91,7 @@ public class InputVariablePanel extends ContentPanel {
} }
}); });
Log.debug("InputVariablePanel bind to Event do!");
} }
protected void addNewSelectedRowsVariable( protected void addNewSelectedRowsVariable(

View File

@ -8,8 +8,6 @@ package org.gcube.portlets.user.statisticalalgorithmsimporter.client.type;
*/ */
public enum ProjectStatusEventType { public enum ProjectStatusEventType {
START, START,
WORK_AREA_SETUP,
WORK_AREA_READY,
OPEN, OPEN,
MAIN_CODE_SET, MAIN_CODE_SET,
UPDATE, UPDATE,

View File

@ -0,0 +1,11 @@
package org.gcube.portlets.user.statisticalalgorithmsimporter.client.type;
/**
*
* @author Giancarlo Panichi
*
*
*/
public enum WorkAreaEventType {
WORK_AREA_SETUP
}

View File

@ -1,9 +1,12 @@
package org.gcube.portlets.user.statisticalalgorithmsimporter.client.maindata; package org.gcube.portlets.user.statisticalalgorithmsimporter.client.workarea;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.ProjectStatusEvent; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.ProjectStatusEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.WorkAreaEvent;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.maindata.MainDataPanel;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.tools.ToolsPanel; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.tools.ToolsPanel;
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.type.ProjectStatusEventType; import org.gcube.portlets.user.statisticalalgorithmsimporter.client.type.ProjectStatusEventType;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectSupportBlackBox;
import com.allen_sauer.gwt.log.client.Log; import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.event.shared.EventBus; import com.google.gwt.event.shared.EventBus;
@ -31,49 +34,37 @@ public class WorkAreaPanel extends SimpleContainer {
bindToEvents(); bindToEvents();
} }
protected void init() { private void init() {
forceLayoutOnResize = true; forceLayoutOnResize = true;
setBorders(false); setBorders(false);
} }
protected void create() { private void create() {
} }
private void bindToEvents() { private void bindToEvents() {
eventBus.addHandler(ProjectStatusEvent.TYPE, new ProjectStatusEvent.ProjectStatusEventHandler() { eventBus.addHandler(WorkAreaEvent.TYPE, new WorkAreaEvent.WorkAreaEventHandler() {
@Override @Override
public void onProjectStatus(ProjectStatusEvent event) { public void onWorkArea(WorkAreaEvent event) {
Log.debug("Catch ProjectStatusEvent"); Log.debug("Work Area Panel Catch WorkAreaEvent: " + event);
doProjectStatusCommand(event); doProjectStatusCommand(event);
} }
}); });
Log.debug("Work Area Panel bind to event do!");
} }
private void doProjectStatusCommand(ProjectStatusEvent event) { private void doProjectStatusCommand(WorkAreaEvent event) {
if (event.getProjectStatusEventType() == null) { if (event.getWorkAreaEventType() == null) {
return; return;
} }
switch (event.getProjectStatusEventType()) { switch (event.getWorkAreaEventType()) {
case WORK_AREA_SETUP: case WORK_AREA_SETUP:
setupWorkAreaPanel(event.getProject()); setupWorkAreaPanel(event.getProject());
break; break;
case DELETE_MAIN_CODE:
case MAIN_CODE_SET:
case OPEN:
case WORK_AREA_READY:
case SAVE:
case START:
case UPDATE:
case SOFTWARE_CREATED:
case SOFTWARE_PUBLISH:
case SOFTWARE_REPACKAGE:
case ADD_RESOURCE:
case DELETE_RESOURCE:
case EXPLORER_REFRESH:
break;
default: default:
break; break;
@ -83,17 +74,26 @@ public class WorkAreaPanel extends SimpleContainer {
private void setupWorkAreaPanel(Project project) { private void setupWorkAreaPanel(Project project) {
if (project != null) { if (project != null) {
if (project.getProjectConfig() == null || project.getProjectConfig().getLanguage() == "R") { if (project.getProjectConfig() == null || project.getProjectConfig().getProjectSupport() == null) {
Log.debug("Work Area Panel Set R Area! ");
createRArea(project); createRArea(project);
} else { } else {
createBlackBoxArea(project); if (project.getProjectConfig().getProjectSupport() instanceof ProjectSupportBlackBox) {
Log.debug("Work Area Panel Set BlackBox Area! ");
createBlackBoxArea(project);
} else {
Log.debug("Work Area Panel Set R Area! ");
createRArea(project);
}
} }
forceLayout(); forceLayout();
fireWorkAreaReady(project); fireProjectStatusOpenEvent(project);
} else { } else {
Log.debug("Work Area Panel: project is null! ");
} }
} }
private void createBlackBoxArea(Project project) { private void createBlackBoxArea(Project project) {
@ -130,14 +130,17 @@ public class WorkAreaPanel extends SimpleContainer {
clear(); clear();
add(mainPanelLayout); add(mainPanelLayout);
} }
private void fireWorkAreaReady(Project project) { private void fireProjectStatusOpenEvent(Project project) {
ProjectStatusEvent event = new ProjectStatusEvent(ProjectStatusEventType.WORK_AREA_READY, project); try {
eventBus.fireEvent(event); ProjectStatusEvent projectStatusEvent = new ProjectStatusEvent(ProjectStatusEventType.OPEN, project);
Log.debug("Work Area Panel ProjectStatusEvent fire! " + projectStatusEvent);
eventBus.fireEvent(projectStatusEvent);
} catch (Throwable e) {
Log.error(e.getLocalizedMessage(), e);
}
} }

View File

@ -28,7 +28,11 @@ import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.file.FileUpl
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.InputData; 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.MainCode;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectConfig;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectCreateSession;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectFolder; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectFolder;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectSupportBlackBox;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectSupportREdit;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.session.UserInfo; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.session.UserInfo;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription; import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
import org.json.JSONArray; import org.json.JSONArray;
@ -245,27 +249,45 @@ public class StatAlgoImporterServiceImpl extends RemoteServiceServlet implements
* *
*/ */
@Override @Override
public void createProjectOnWorkspace(ItemDescription newProjectFolder) public Project createProjectOnWorkspace(ProjectCreateSession projectCreateSession)
throws StatAlgoImporterServiceException { throws StatAlgoImporterServiceException {
try { try {
HttpServletRequest httpRequest = this.getThreadLocalRequest(); HttpServletRequest httpRequest = this.getThreadLocalRequest();
ServiceCredentials serviceCredentials = SessionUtil ServiceCredentials serviceCredentials = SessionUtil
.getServiceCredentials(httpRequest); .getServiceCredentials(httpRequest);
logger.debug("createProjectOnWorkspace(): " + newProjectFolder); logger.debug("createProjectOnWorkspace(): " + projectCreateSession);
if (ProjectArchiver.existProjectInFolder(newProjectFolder, Project project;
if (ProjectArchiver.existProjectInFolder(projectCreateSession.getNewProjectFolder(),
serviceCredentials)) { serviceCredentials)) {
throw new StatAlgoImporterServiceException( throw new StatAlgoImporterServiceException(
"Attention a project is present in this folder, use open or another folder!"); "Attention a project is present in this folder, use open or another folder!");
} else { } else {
ProjectFolder projectFolder = new ProjectFolder( ProjectFolder projectFolder = new ProjectFolder(projectCreateSession.getNewProjectFolder());
newProjectFolder); ProjectConfig projectConfig=null;
Project projectSession = new Project(projectFolder); if (projectCreateSession.getProjectSetup() != null
&& projectCreateSession.getProjectSetup().getProjectSupportType() != null) {
switch(projectCreateSession.getProjectSetup().getProjectSupportType()){
case BlackBox:
projectConfig=new ProjectConfig(projectCreateSession.getProjectSetup().getLanguage(),
new ProjectSupportBlackBox());
break;
case REdit:
projectConfig=new ProjectConfig(projectCreateSession.getProjectSetup().getLanguage(),
new ProjectSupportREdit());
break;
default:
break;
}
}
project = new Project(projectFolder,projectConfig);
SessionUtil.setProjectSession(httpRequest, serviceCredentials, SessionUtil.setProjectSession(httpRequest, serviceCredentials,
projectSession); project);
logger.debug("Create Project: " + projectSession);
} }
return; logger.debug("Create Project: " + project);
return project;
} catch (StatAlgoImporterServiceException e) { } catch (StatAlgoImporterServiceException e) {
e.printStackTrace(); e.printStackTrace();
throw e; throw e;

View File

@ -8,7 +8,7 @@ package org.gcube.portlets.user.statisticalalgorithmsimporter.shared;
*/ */
public class Constants { public class Constants {
public static final boolean DEBUG_MODE = false; public static final boolean DEBUG_MODE = true;
public static final boolean TEST_ENABLE = false; public static final boolean TEST_ENABLE = false;
public static final String APPLICATION_ID = "org.gcube.portlets.user.statisticalalgorithmsimporter.server.portlet.StatAlgoImporterPortlet"; public static final String APPLICATION_ID = "org.gcube.portlets.user.statisticalalgorithmsimporter.server.portlet.StatAlgoImporterPortlet";

View File

@ -22,9 +22,10 @@ public class Project implements Serializable {
super(); super();
} }
public Project(ProjectFolder projectFolder) { public Project(ProjectFolder projectFolder, ProjectConfig projectConfig) {
super(); super();
this.projectFolder = projectFolder; this.projectFolder = projectFolder;
this.projectConfig = projectConfig;
} }

View File

@ -56,19 +56,19 @@
name="locale" values="es" /> <set-property name="locale" value="en, it, es" name="locale" values="es" /> <set-property name="locale" value="en, it, es"
/> <set-property-fallback name="locale" value="en" /> --> /> <set-property-fallback name="locale" value="en" /> -->
<!--
<set-property name="log_ConsoleLogger" value="ENABLED" /> <set-property <set-property name="log_ConsoleLogger" value="ENABLED" /> <set-property
name="log_DivLogger" value="ENABLED" /> <set-property name="log_GWTLogger" name="log_DivLogger" value="ENABLED" /> <set-property name="log_GWTLogger"
value="ENABLED" /> <set-property name="log_SystemLogger" value="ENABLED" value="ENABLED" /> <set-property name="log_SystemLogger" value="ENABLED"
/> --> />
<!-- Not in GWT 2.6 <set-property name="log_FirebugLogger" value="ENABLED" <!-- Not in GWT 2.6 <set-property name="log_FirebugLogger" value="ENABLED"
/> --> /> -->
<!--
<set-property name="log_ConsoleLogger" value="DISABLED" /> <set-property name="log_ConsoleLogger" value="DISABLED" />
<set-property name="log_DivLogger" value="DISABLED" /> <set-property name="log_DivLogger" value="DISABLED" />
<set-property name="log_GWTLogger" value="DISABLED" /> <set-property name="log_GWTLogger" value="DISABLED" />
<set-property name="log_SystemLogger" value="DISABLED" /> <set-property name="log_SystemLogger" value="DISABLED" /> -->
<!-- Not in GWT 2.6 <set-property name="log_FirebugLogger" value="DISABLED" <!-- Not in GWT 2.6 <set-property name="log_FirebugLogger" value="DISABLED"
/> --> /> -->