1452: Implement a GUI for StatMan Algorithms Importer
Task-Url: https://support.d4science.org/issues/1452 Fixed Project Folder Move git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/statistical-algorithms-importer@122478 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
42cf40b1de
commit
6bf37916c9
|
@ -34,7 +34,10 @@ import com.google.gwt.user.client.Cookies;
|
||||||
import com.google.gwt.user.client.Timer;
|
import com.google.gwt.user.client.Timer;
|
||||||
import com.google.gwt.user.client.Window;
|
import com.google.gwt.user.client.Window;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
|
import com.sencha.gxt.widget.core.client.box.ConfirmMessageBox;
|
||||||
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer;
|
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.DialogHideEvent;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.DialogHideEvent.DialogHideHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -335,11 +338,34 @@ public class StatAlgoImporterController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void softwareCreateRequest() {
|
private void softwareCreateRequest() {
|
||||||
monitor = new StatAlgoImporterMonitor();
|
|
||||||
inputRequestType = InputRequestType.SoftwareCreate;
|
final ConfirmMessageBox mb = new ConfirmMessageBox(
|
||||||
InputRequestEvent inputRequestEvent = new InputRequestEvent();
|
"Warning",
|
||||||
eventBus.fireEvent(inputRequestEvent);
|
"The creation of new software will overwrite the possible"
|
||||||
Log.debug("SoftwareCreateRequest: " + inputRequestEvent);
|
+ " previous version and will require publication again."
|
||||||
|
+ " Do you want to proceed anyway?");
|
||||||
|
mb.addDialogHideHandler(new DialogHideHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDialogHide(DialogHideEvent event) {
|
||||||
|
switch (event.getHideButton()) {
|
||||||
|
case NO:
|
||||||
|
break;
|
||||||
|
case YES:
|
||||||
|
monitor = new StatAlgoImporterMonitor();
|
||||||
|
inputRequestType = InputRequestType.SoftwareCreate;
|
||||||
|
InputRequestEvent inputRequestEvent = new InputRequestEvent();
|
||||||
|
eventBus.fireEvent(inputRequestEvent);
|
||||||
|
Log.debug("SoftwareCreateRequest: " + inputRequestEvent);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mb.setWidth(300);
|
||||||
|
mb.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void softwarePublish() {
|
private void softwarePublish() {
|
||||||
|
|
|
@ -320,9 +320,8 @@ public class ProjectManager {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createSofware(InputData inputData,
|
public void createSofware(final InputData inputData,
|
||||||
final StatAlgoImporterMonitor monitor) {
|
final StatAlgoImporterMonitor monitor) {
|
||||||
Log.debug("Create Software: " + inputData);
|
|
||||||
|
|
||||||
StatAlgoImporterServiceAsync.INSTANCE.createSoftware(inputData,
|
StatAlgoImporterServiceAsync.INSTANCE.createSoftware(inputData,
|
||||||
new AsyncCallback<Void>() {
|
new AsyncCallback<Void>() {
|
||||||
|
|
|
@ -10,13 +10,13 @@ import org.gcube.application.framework.core.session.ASLSession;
|
||||||
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
|
||||||
|
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.ProjectFolder;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.ProjectFolder;
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Giancarlo Panichi email: <a
|
* @author Giancarlo Panichi email: <a
|
||||||
|
@ -46,14 +46,15 @@ public class ProjectArchiver {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean existProjectInFolder(ItemDescription newProjectFolder,
|
public static boolean existProjectInFolder(
|
||||||
ASLSession aslSession) throws StatAlgoImporterServiceException {
|
ItemDescription newProjectFolder, ASLSession aslSession)
|
||||||
|
throws StatAlgoImporterServiceException {
|
||||||
FilesStorage filesStorage = new FilesStorage();
|
FilesStorage filesStorage = new FilesStorage();
|
||||||
return filesStorage.existProjectItemOnWorkspace(aslSession.getUsername(), newProjectFolder.getId());
|
return filesStorage.existProjectItemOnWorkspace(
|
||||||
|
aslSession.getUsername(), newProjectFolder.getId());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Project readProject(ItemDescription newProjectFolder,
|
public static Project readProject(ItemDescription newProjectFolder,
|
||||||
ASLSession aslSession) throws StatAlgoImporterServiceException {
|
ASLSession aslSession) throws StatAlgoImporterServiceException {
|
||||||
FilesStorage filesStorage = new FilesStorage();
|
FilesStorage filesStorage = new FilesStorage();
|
||||||
|
@ -64,11 +65,14 @@ public class ProjectArchiver {
|
||||||
Project project = (Project) xmlDecoder.readObject();
|
Project project = (Project) xmlDecoder.readObject();
|
||||||
xmlDecoder.close();
|
xmlDecoder.close();
|
||||||
|
|
||||||
WorkspaceItem projectFolderItem=filesStorage.retrieveItemInfoOnWorkspace(aslSession.getUsername(), newProjectFolder.getId());
|
WorkspaceItem projectFolderItem = filesStorage
|
||||||
|
.retrieveItemInfoOnWorkspace(aslSession.getUsername(),
|
||||||
|
newProjectFolder.getId());
|
||||||
try {
|
try {
|
||||||
newProjectFolder.setId(projectFolderItem.getId());
|
newProjectFolder.setId(projectFolderItem.getId());
|
||||||
newProjectFolder.setName(projectFolderItem.getName());
|
newProjectFolder.setName(projectFolderItem.getName());
|
||||||
newProjectFolder.setOwner(projectFolderItem.getOwner().getPortalLogin());
|
newProjectFolder.setOwner(projectFolderItem.getOwner()
|
||||||
|
.getPortalLogin());
|
||||||
newProjectFolder.setPath(projectFolderItem.getPath());
|
newProjectFolder.setPath(projectFolderItem.getPath());
|
||||||
newProjectFolder.setType(projectFolderItem.getType().name());
|
newProjectFolder.setType(projectFolderItem.getType().name());
|
||||||
} catch (InternalErrorException e) {
|
} catch (InternalErrorException e) {
|
||||||
|
@ -78,15 +82,47 @@ public class ProjectArchiver {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(project!=null && project.getProjectFolder()!=null &&
|
if (project != null
|
||||||
newProjectFolder.compareInfo(project.getProjectFolder().getItemDescription())){
|
&& project.getProjectFolder() != null
|
||||||
|
&& newProjectFolder.compareInfo(project.getProjectFolder()
|
||||||
|
.getItemDescription())) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
project.setProjectFolder(new ProjectFolder(newProjectFolder));
|
project.setProjectFolder(new ProjectFolder(newProjectFolder));
|
||||||
archive(project, aslSession);
|
archive(project, aslSession);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (project != null && project.getMainCode() != null
|
||||||
|
&& project.getMainCode().getItemDescription() != null) {
|
||||||
|
WorkspaceItem mainCodeItem = filesStorage
|
||||||
|
.retrieveItemInfoOnWorkspace(aslSession.getUsername(),
|
||||||
|
project.getMainCode().getItemDescription().getId());
|
||||||
|
ItemDescription newMainCodeItemDescription;
|
||||||
|
try {
|
||||||
|
newMainCodeItemDescription = new ItemDescription(
|
||||||
|
mainCodeItem.getId(), mainCodeItem.getName(),
|
||||||
|
mainCodeItem.getOwner().getPortalLogin(),
|
||||||
|
mainCodeItem.getPath(), mainCodeItem.getType().name());
|
||||||
|
} catch (InternalErrorException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new StatAlgoImporterServiceException(
|
||||||
|
e.getLocalizedMessage());
|
||||||
|
|
||||||
|
}
|
||||||
|
if (newMainCodeItemDescription.compareInfo(project.getMainCode()
|
||||||
|
.getItemDescription())) {
|
||||||
|
} else {
|
||||||
|
project.setMainCode(new MainCode(newMainCodeItemDescription));
|
||||||
|
archive(project, aslSession);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
project.setProjectFolder(new ProjectFolder(newProjectFolder));
|
||||||
|
archive(project, aslSession);
|
||||||
|
}
|
||||||
|
|
||||||
return project;
|
return project;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue