1452: Implement a GUI for StatMan Algorithms Importer
Task-Url: https://support.d4science.org/issues/1452 Added VRE information to Project Info git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/statistical-algorithms-importer@122225 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
f2aed31faa
commit
0e4a66f5a6
10
pom.xml
10
pom.xml
|
@ -80,11 +80,6 @@
|
||||||
<artifactId>slf4j-log4j12</artifactId>
|
<artifactId>slf4j-log4j12</artifactId>
|
||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>log4j</groupId>
|
|
||||||
<artifactId>log4j</artifactId>
|
|
||||||
<scope>runtime</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.common</groupId>
|
<groupId>org.gcube.common</groupId>
|
||||||
<artifactId>home-library</artifactId>
|
<artifactId>home-library</artifactId>
|
||||||
|
@ -295,7 +290,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
<artifactId>slf4j-api</artifactId>
|
<artifactId>slf4j-api</artifactId>
|
||||||
<scope>compile</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -303,11 +298,12 @@
|
||||||
<artifactId>slf4j-log4j12</artifactId>
|
<artifactId>slf4j-log4j12</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!--
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>log4j</groupId>
|
<groupId>log4j</groupId>
|
||||||
<artifactId>log4j</artifactId>
|
<artifactId>log4j</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency> -->
|
||||||
|
|
||||||
<!-- <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId>
|
<!-- <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId>
|
||||||
<version>1.0.1</version> <scope>runtime</scope> </dependency> -->
|
<version>1.0.1</version> <scope>runtime</scope> </dependency> -->
|
||||||
|
|
|
@ -8,6 +8,7 @@ import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.InputR
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.MainCodeSetEvent;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.MainCodeSetEvent;
|
||||||
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.StatAlgoImporterRibbonEvent;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.event.StatAlgoImporterRibbonEvent;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.monitor.StatAlgoImporterMonitor;
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.project.ProjectManager;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.project.ProjectManager;
|
||||||
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.SessionExpiredType;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.type.SessionExpiredType;
|
||||||
|
@ -42,7 +43,7 @@ public class StatAlgoImporterController {
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private BorderLayoutContainer mainPanel;
|
private BorderLayoutContainer mainPanel;
|
||||||
private ProjectManager pm;
|
private ProjectManager pm;
|
||||||
|
private StatAlgoImporterMonitor monitor;
|
||||||
|
|
||||||
private enum InputRequestType {
|
private enum InputRequestType {
|
||||||
Save,
|
Save,
|
||||||
|
@ -256,10 +257,10 @@ public class StatAlgoImporterController {
|
||||||
private void doInputReadyCommand(InputReadyEvent event) {
|
private void doInputReadyCommand(InputReadyEvent event) {
|
||||||
switch(inputRequestType){
|
switch(inputRequestType){
|
||||||
case Save:
|
case Save:
|
||||||
pm.saveProject(event.getInputData());
|
pm.saveProject(event.getInputData(), monitor);
|
||||||
break;
|
break;
|
||||||
case SoftwareCreate:
|
case SoftwareCreate:
|
||||||
pm.createSofware(event.getInputData());
|
pm.createSofware(event.getInputData(), monitor);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -269,6 +270,7 @@ public class StatAlgoImporterController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void projectSaveRequest() {
|
private void projectSaveRequest() {
|
||||||
|
monitor= new StatAlgoImporterMonitor();
|
||||||
inputRequestType=InputRequestType.Save;
|
inputRequestType=InputRequestType.Save;
|
||||||
InputRequestEvent inputRequestEvent = new InputRequestEvent();
|
InputRequestEvent inputRequestEvent = new InputRequestEvent();
|
||||||
eventBus.fireEvent(inputRequestEvent);
|
eventBus.fireEvent(inputRequestEvent);
|
||||||
|
@ -276,6 +278,7 @@ public class StatAlgoImporterController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void softwareCreateRequest() {
|
private void softwareCreateRequest() {
|
||||||
|
monitor= new StatAlgoImporterMonitor();
|
||||||
inputRequestType=InputRequestType.SoftwareCreate;
|
inputRequestType=InputRequestType.SoftwareCreate;
|
||||||
InputRequestEvent inputRequestEvent = new InputRequestEvent();
|
InputRequestEvent inputRequestEvent = new InputRequestEvent();
|
||||||
eventBus.fireEvent(inputRequestEvent);
|
eventBus.fireEvent(inputRequestEvent);
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class StatAlgoImporterMonitor extends AutoProgressMessageBox {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void create() {
|
private void create() {
|
||||||
setProgressText("Updating...");
|
setProgressText("In progress...");
|
||||||
auto();
|
auto();
|
||||||
show();
|
show();
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import java.util.List;
|
||||||
|
|
||||||
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.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;
|
||||||
|
@ -287,7 +288,7 @@ public class ProjectManager {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveProject(InputData inputData) {
|
public void saveProject(InputData inputData, final StatAlgoImporterMonitor monitor) {
|
||||||
Log.debug("Save Project: " + inputData);
|
Log.debug("Save Project: " + inputData);
|
||||||
|
|
||||||
StatAlgoImporterServiceAsync.INSTANCE.saveProject(inputData,
|
StatAlgoImporterServiceAsync.INSTANCE.saveProject(inputData,
|
||||||
|
@ -295,11 +296,13 @@ public class ProjectManager {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Void result) {
|
public void onSuccess(Void result) {
|
||||||
|
monitor.hide();
|
||||||
UtilsGXT3.info("Save", "Project saved!");
|
UtilsGXT3.info("Save", "Project saved!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Throwable caught) {
|
public void onFailure(Throwable caught) {
|
||||||
|
monitor.hide();
|
||||||
if (caught instanceof StatAlgoImporterSessionExpiredException) {
|
if (caught instanceof StatAlgoImporterSessionExpiredException) {
|
||||||
eventBus.fireEvent(new SessionExpiredEvent(
|
eventBus.fireEvent(new SessionExpiredEvent(
|
||||||
SessionExpiredType.EXPIREDONSERVER));
|
SessionExpiredType.EXPIREDONSERVER));
|
||||||
|
@ -315,7 +318,7 @@ public class ProjectManager {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createSofware(InputData inputData) {
|
public void createSofware(InputData inputData, final StatAlgoImporterMonitor monitor) {
|
||||||
Log.debug("Create Software: " + inputData);
|
Log.debug("Create Software: " + inputData);
|
||||||
|
|
||||||
StatAlgoImporterServiceAsync.INSTANCE.createSoftware(inputData,
|
StatAlgoImporterServiceAsync.INSTANCE.createSoftware(inputData,
|
||||||
|
@ -323,6 +326,7 @@ public class ProjectManager {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Void result) {
|
public void onSuccess(Void result) {
|
||||||
|
monitor.hide();
|
||||||
fireProjectStatusSoftwareCreatedEvent();
|
fireProjectStatusSoftwareCreatedEvent();
|
||||||
UtilsGXT3.info("Create Software", "Software Created!");
|
UtilsGXT3.info("Create Software", "Software Created!");
|
||||||
|
|
||||||
|
@ -330,6 +334,7 @@ public class ProjectManager {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Throwable caught) {
|
public void onFailure(Throwable caught) {
|
||||||
|
monitor.hide();
|
||||||
if (caught instanceof StatAlgoImporterSessionExpiredException) {
|
if (caught instanceof StatAlgoImporterSessionExpiredException) {
|
||||||
eventBus.fireEvent(new SessionExpiredEvent(
|
eventBus.fireEvent(new SessionExpiredEvent(
|
||||||
SessionExpiredType.EXPIREDONSERVER));
|
SessionExpiredType.EXPIREDONSERVER));
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package org.gcube.portlets.user.statisticalalgorithmsimporter.client.properties;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.DeployableVRE;
|
||||||
|
|
||||||
|
import com.sencha.gxt.core.client.ValueProvider;
|
||||||
|
import com.sencha.gxt.data.shared.ModelKeyProvider;
|
||||||
|
import com.sencha.gxt.data.shared.PropertyAccess;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author giancarlo email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface DeployableVREProperties extends PropertyAccess<DeployableVRE> {
|
||||||
|
|
||||||
|
ModelKeyProvider<DeployableVRE> id();
|
||||||
|
|
||||||
|
ValueProvider<DeployableVRE, String> name();
|
||||||
|
|
||||||
|
ValueProvider<DeployableVRE, String> description();
|
||||||
|
|
||||||
|
}
|
|
@ -62,12 +62,13 @@ public class EnvironmentVariablesPanel extends ContentPanel {
|
||||||
private EventBus eventBus;
|
private EventBus eventBus;
|
||||||
private ListStore<EnvironmentVariables> storeEnvironmentVariable;
|
private ListStore<EnvironmentVariables> storeEnvironmentVariable;
|
||||||
private Grid<EnvironmentVariables> gridEnvironmentVariable;
|
private Grid<EnvironmentVariables> gridEnvironmentVariable;
|
||||||
private ListStore<DataType> storeComboInputType;
|
|
||||||
private ComboBox<DataType> comboInputType;
|
|
||||||
private GridRowEditing<EnvironmentVariables> gridEnvironmentVariableEditing;
|
private GridRowEditing<EnvironmentVariables> gridEnvironmentVariableEditing;
|
||||||
private TextButton btnAdd;
|
private TextButton btnAdd;
|
||||||
private boolean addStatus;
|
private boolean addStatus;
|
||||||
private int seq = 0;
|
private int seq = 0;
|
||||||
|
private ListStore<DataType> storeComboInputType;
|
||||||
|
private ComboBox<DataType> comboInputType;
|
||||||
|
|
||||||
|
|
||||||
interface InputTypeTemplates extends XTemplates {
|
interface InputTypeTemplates extends XTemplates {
|
||||||
@XTemplate("<span title=\"{value}\">{value}</span>")
|
@XTemplate("<span title=\"{value}\">{value}</span>")
|
||||||
|
@ -355,6 +356,10 @@ public class EnvironmentVariablesPanel extends ContentPanel {
|
||||||
storeEnvironmentVariable.commitChanges();
|
storeEnvironmentVariable.commitChanges();
|
||||||
seq = project.getInputData().getListEnvironmentVariables().size();
|
seq = project.getInputData().getListEnvironmentVariables().size();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
storeEnvironmentVariable.clear();
|
||||||
|
storeEnvironmentVariable.commitChanges();
|
||||||
|
seq=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -153,7 +153,7 @@ public class InterpreterInfoPanel extends ContentPanel {
|
||||||
gridInterpreterPackageInfoEditing.addEditor(versionColumn,
|
gridInterpreterPackageInfoEditing.addEditor(versionColumn,
|
||||||
new TextField());
|
new TextField());
|
||||||
|
|
||||||
btnAdd = new TextButton();
|
btnAdd = new TextButton("Add");
|
||||||
btnAdd.setIcon(StatAlgoImporterResources.INSTANCE.add16());
|
btnAdd.setIcon(StatAlgoImporterResources.INSTANCE.add16());
|
||||||
// btnAdd.setIconAlign(IconAlign.);
|
// btnAdd.setIconAlign(IconAlign.);
|
||||||
btnAdd.setToolTip("Add Package Info");
|
btnAdd.setToolTip("Add Package Info");
|
||||||
|
|
|
@ -1,18 +1,50 @@
|
||||||
package org.gcube.portlets.user.statisticalalgorithmsimporter.client.tools.input;
|
package org.gcube.portlets.user.statisticalalgorithmsimporter.client.tools.input;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.properties.DeployableVREProperties;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.client.resource.StatAlgoImporterResources;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.DeployableVRE;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.ProjectInfo;
|
||||||
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.ProjectInfo;
|
|
||||||
|
|
||||||
import com.allen_sauer.gwt.log.client.Log;
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
|
import com.google.gwt.core.client.GWT;
|
||||||
|
import com.google.gwt.event.dom.client.ChangeEvent;
|
||||||
|
import com.google.gwt.event.dom.client.ChangeHandler;
|
||||||
import com.google.gwt.event.shared.EventBus;
|
import com.google.gwt.event.shared.EventBus;
|
||||||
|
import com.sencha.gxt.cell.core.client.ButtonCell.ButtonScale;
|
||||||
|
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
|
||||||
|
import com.sencha.gxt.core.client.Style.SelectionMode;
|
||||||
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
|
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
|
||||||
import com.sencha.gxt.core.client.util.Margins;
|
import com.sencha.gxt.core.client.util.Margins;
|
||||||
|
import com.sencha.gxt.data.shared.ListStore;
|
||||||
import com.sencha.gxt.widget.core.client.ContentPanel;
|
import com.sencha.gxt.widget.core.client.ContentPanel;
|
||||||
|
import com.sencha.gxt.widget.core.client.button.ButtonBar;
|
||||||
|
import com.sencha.gxt.widget.core.client.button.TextButton;
|
||||||
|
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData;
|
||||||
import com.sencha.gxt.widget.core.client.container.MarginData;
|
import com.sencha.gxt.widget.core.client.container.MarginData;
|
||||||
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
|
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
|
||||||
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
|
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.BeforeStartEditEvent;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.BeforeStartEditEvent.BeforeStartEditHandler;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.CancelEditEvent;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.CancelEditEvent.CancelEditHandler;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.CompleteEditEvent;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.CompleteEditEvent.CompleteEditHandler;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.SelectEvent;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
|
||||||
import com.sencha.gxt.widget.core.client.form.FieldLabel;
|
import com.sencha.gxt.widget.core.client.form.FieldLabel;
|
||||||
import com.sencha.gxt.widget.core.client.form.TextField;
|
import com.sencha.gxt.widget.core.client.form.TextField;
|
||||||
|
import com.sencha.gxt.widget.core.client.form.validator.RegExValidator;
|
||||||
|
import com.sencha.gxt.widget.core.client.grid.ColumnConfig;
|
||||||
|
import com.sencha.gxt.widget.core.client.grid.ColumnModel;
|
||||||
|
import com.sencha.gxt.widget.core.client.grid.Grid;
|
||||||
|
import com.sencha.gxt.widget.core.client.grid.Grid.GridCell;
|
||||||
|
import com.sencha.gxt.widget.core.client.grid.GridSelectionModel;
|
||||||
|
import com.sencha.gxt.widget.core.client.grid.editing.GridRowEditing;
|
||||||
|
import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -24,9 +56,14 @@ public class ProjectInfoPanel extends ContentPanel {
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private EventBus eventBus;
|
private EventBus eventBus;
|
||||||
private TextField projectName;
|
private TextField packageName;
|
||||||
private TextField projectDescription;
|
private TextField packageDescription;
|
||||||
private TextField projectClassName;
|
private ListStore<DeployableVRE> storeDeployableVRE;
|
||||||
|
private Grid<DeployableVRE> gridDeployableVRE;
|
||||||
|
private GridRowEditing<DeployableVRE> gridDeployableVREEditing;
|
||||||
|
private TextButton btnAdd;
|
||||||
|
private boolean addStatus;
|
||||||
|
private int seq = 0;
|
||||||
|
|
||||||
public ProjectInfoPanel(Project project, EventBus eventBus) {
|
public ProjectInfoPanel(Project project, EventBus eventBus) {
|
||||||
super();
|
super();
|
||||||
|
@ -52,90 +89,276 @@ public class ProjectInfoPanel extends ContentPanel {
|
||||||
|
|
||||||
private void create(Project project) {
|
private void create(Project project) {
|
||||||
|
|
||||||
projectName = new TextField();
|
packageName = new TextField();
|
||||||
projectName.setAllowBlank(false);
|
packageName.setAllowBlank(false);
|
||||||
projectName.setEmptyText("Enter name...");
|
packageName.addValidator(new RegExValidator("^[a-zA-Z0-9]*$", "Attention only characters a-z,A-Z,0-9 are allowed"));
|
||||||
FieldLabel projectNameLabel = new FieldLabel(projectName, "Name");
|
packageName.setEmptyText("Enter name...");
|
||||||
|
packageName.addChangeHandler(new ChangeHandler() {
|
||||||
|
|
||||||
projectDescription = new TextField();
|
@Override
|
||||||
projectDescription.setAllowBlank(false);
|
public void onChange(ChangeEvent event) {
|
||||||
projectDescription.setEmptyText("Enter description...");
|
packageName.validate();
|
||||||
FieldLabel projectDescriptionLabel = new FieldLabel(projectDescription,
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
FieldLabel packageNameLabel = new FieldLabel(packageName, "Name");
|
||||||
|
|
||||||
|
packageDescription = new TextField();
|
||||||
|
packageDescription.setAllowBlank(false);
|
||||||
|
packageDescription.setEmptyText("Enter description...");
|
||||||
|
FieldLabel projectDescriptionLabel = new FieldLabel(packageDescription,
|
||||||
"Description");
|
"Description");
|
||||||
|
|
||||||
projectClassName = new TextField();
|
if (project != null && project.getInputData() != null
|
||||||
projectClassName.setAllowBlank(false);
|
&& project.getInputData().getProjectInfo() != null) {
|
||||||
projectClassName.setEmptyText("Enter class name...");
|
|
||||||
FieldLabel projectClassNameLabel = new FieldLabel(projectClassName,
|
|
||||||
"Class Name");
|
|
||||||
|
|
||||||
if (project != null && project.getInputData()!=null && project.getInputData().getProjectInfo() != null) {
|
if (project.getInputData().getProjectInfo().getPackageName() != null) {
|
||||||
|
packageName.setValue(project.getInputData().getProjectInfo()
|
||||||
if (project.getInputData().getProjectInfo().getName() != null) {
|
.getPackageName());
|
||||||
projectName.setValue(project.getInputData().getProjectInfo().getName());
|
|
||||||
}
|
}
|
||||||
if (project.getInputData().getProjectInfo().getDescription() != null) {
|
if (project.getInputData().getProjectInfo().getPackageDescription() != null) {
|
||||||
projectDescription.setValue(project.getInputData().getProjectInfo()
|
packageDescription.setValue(project.getInputData()
|
||||||
.getDescription());
|
.getProjectInfo().getPackageDescription());
|
||||||
}
|
|
||||||
if (project.getInputData().getProjectInfo().getClassName() != null) {
|
|
||||||
projectClassName.setValue(project.getInputData().getProjectInfo()
|
|
||||||
.getClassName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Grid
|
||||||
|
DeployableVREProperties props = GWT
|
||||||
|
.create(DeployableVREProperties.class);
|
||||||
|
|
||||||
|
ColumnConfig<DeployableVRE, String> nameColumn = new ColumnConfig<DeployableVRE, String>(
|
||||||
|
props.name(), 100, "Name");
|
||||||
|
// nameColumn.setMenuDisabled(true);
|
||||||
|
|
||||||
|
ColumnConfig<DeployableVRE, String> descriptionColumn = new ColumnConfig<DeployableVRE, String>(
|
||||||
|
props.description(), 100, "Description");
|
||||||
|
// descriptionColumn.setMenuDisabled(true);
|
||||||
|
|
||||||
|
ArrayList<ColumnConfig<DeployableVRE, ?>> l = new ArrayList<ColumnConfig<DeployableVRE, ?>>();
|
||||||
|
l.add(nameColumn);
|
||||||
|
l.add(descriptionColumn);
|
||||||
|
|
||||||
|
ColumnModel<DeployableVRE> columns = new ColumnModel<DeployableVRE>(l);
|
||||||
|
|
||||||
|
storeDeployableVRE = new ListStore<DeployableVRE>(props.id());
|
||||||
|
|
||||||
|
if (project != null && project.getInputData() != null && project.getInputData().getProjectInfo()!=null
|
||||||
|
&& project.getInputData().getProjectInfo().getListDeployableVRE() != null) {
|
||||||
|
storeDeployableVRE.addAll(project.getInputData().getProjectInfo()
|
||||||
|
.getListDeployableVRE());
|
||||||
|
seq = project.getInputData().getProjectInfo()
|
||||||
|
.getListDeployableVRE().size();
|
||||||
|
}
|
||||||
|
|
||||||
|
final GridSelectionModel<DeployableVRE> sm = new GridSelectionModel<DeployableVRE>();
|
||||||
|
sm.setSelectionMode(SelectionMode.SINGLE);
|
||||||
|
|
||||||
|
gridDeployableVRE = new Grid<DeployableVRE>(storeDeployableVRE, columns);
|
||||||
|
gridDeployableVRE.setSelectionModel(sm);
|
||||||
|
gridDeployableVRE.getView().setStripeRows(true);
|
||||||
|
gridDeployableVRE.getView().setColumnLines(true);
|
||||||
|
gridDeployableVRE.getView().setAutoExpandColumn(nameColumn);
|
||||||
|
gridDeployableVRE.getView().setAutoFill(true);
|
||||||
|
gridDeployableVRE.setBorders(false);
|
||||||
|
gridDeployableVRE.setColumnReordering(false);
|
||||||
|
|
||||||
|
// EDITING //
|
||||||
|
gridDeployableVREEditing = new GridRowEditing<DeployableVRE>(
|
||||||
|
gridDeployableVRE);
|
||||||
|
gridDeployableVREEditing.addEditor(nameColumn, new TextField());
|
||||||
|
gridDeployableVREEditing.addEditor(descriptionColumn, new TextField());
|
||||||
|
|
||||||
|
btnAdd = new TextButton("Add");
|
||||||
|
btnAdd.setIcon(StatAlgoImporterResources.INSTANCE.add16());
|
||||||
|
btnAdd.setScale(ButtonScale.SMALL);
|
||||||
|
btnAdd.setIconAlign(IconAlign.LEFT);
|
||||||
|
btnAdd.setToolTip("Add VRE");
|
||||||
|
btnAdd.addSelectHandler(new SelectHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelect(SelectEvent event) {
|
||||||
|
addDeployableVRE(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
TextButton btnDelete = new TextButton("Delete");
|
||||||
|
btnDelete.addSelectHandler(new SelectEvent.SelectHandler() {
|
||||||
|
public void onSelect(SelectEvent event) {
|
||||||
|
GridCell cell = gridDeployableVREEditing.getActiveCell();
|
||||||
|
int rowIndex = cell.getRow();
|
||||||
|
|
||||||
|
gridDeployableVREEditing.cancelEditing();
|
||||||
|
|
||||||
|
storeDeployableVRE.remove(rowIndex);
|
||||||
|
storeDeployableVRE.commitChanges();
|
||||||
|
|
||||||
|
gridDeployableVREEditing.getCancelButton().setVisible(true);
|
||||||
|
btnAdd.setEnabled(true);
|
||||||
|
if (addStatus) {
|
||||||
|
addStatus = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<DeployableVRE> listSelected = storeDeployableVRE.getAll();
|
||||||
|
List<DeployableVRE> listNewSelected = new ArrayList<DeployableVRE>();
|
||||||
|
for (int i = 0; i < listSelected.size(); i++) {
|
||||||
|
DeployableVRE var = listSelected.get(i);
|
||||||
|
var.setId(i);
|
||||||
|
listNewSelected.add(var);
|
||||||
|
}
|
||||||
|
|
||||||
|
storeDeployableVRE.clear();
|
||||||
|
storeDeployableVRE.addAll(listNewSelected);
|
||||||
|
storeDeployableVRE.commitChanges();
|
||||||
|
|
||||||
|
seq = listNewSelected.size();
|
||||||
|
Log.debug("Current Seq: " + seq);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
ButtonBar buttonBar = gridDeployableVREEditing.getButtonBar();
|
||||||
|
buttonBar.add(btnDelete);
|
||||||
|
|
||||||
|
gridDeployableVREEditing
|
||||||
|
.addBeforeStartEditHandler(new BeforeStartEditHandler<DeployableVRE>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBeforeStartEdit(
|
||||||
|
BeforeStartEditEvent<DeployableVRE> event) {
|
||||||
|
editingBeforeStart(event);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
gridDeployableVREEditing
|
||||||
|
.addCancelEditHandler(new CancelEditHandler<DeployableVRE>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancelEdit(
|
||||||
|
CancelEditEvent<DeployableVRE> event) {
|
||||||
|
storeDeployableVRE.rejectChanges();
|
||||||
|
btnAdd.setEnabled(true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
gridDeployableVREEditing
|
||||||
|
.addCompleteEditHandler(new CompleteEditHandler<DeployableVRE>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCompleteEdit(
|
||||||
|
CompleteEditEvent<DeployableVRE> event) {
|
||||||
|
try {
|
||||||
|
if (addStatus) {
|
||||||
|
addStatus = false;
|
||||||
|
}
|
||||||
|
storeDeployableVRE.commitChanges();
|
||||||
|
|
||||||
|
gridDeployableVREEditing.getCancelButton()
|
||||||
|
.setVisible(true);
|
||||||
|
btnAdd.setEnabled(true);
|
||||||
|
|
||||||
|
} catch (Throwable e) {
|
||||||
|
Log.error("Error: " + e.getLocalizedMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// /
|
||||||
|
FieldLabel deployableVRELabel = new FieldLabel(null, "Deployable VRE");
|
||||||
|
|
||||||
|
ToolBar toolBar = new ToolBar();
|
||||||
|
toolBar.add(btnAdd, new BoxLayoutData(new Margins(0)));
|
||||||
|
|
||||||
VerticalLayoutContainer vlc = new VerticalLayoutContainer();
|
VerticalLayoutContainer vlc = new VerticalLayoutContainer();
|
||||||
vlc.setAdjustForScroll(false);
|
vlc.setAdjustForScroll(false);
|
||||||
vlc.setScrollMode(ScrollMode.NONE);
|
vlc.setScrollMode(ScrollMode.NONE);
|
||||||
|
|
||||||
vlc.add(projectNameLabel, new VerticalLayoutData(1, -1, new Margins(5,
|
vlc.add(packageNameLabel, new VerticalLayoutData(1, -1, new Margins(0)));
|
||||||
0, 5, 0)));
|
|
||||||
vlc.add(projectDescriptionLabel, new VerticalLayoutData(1, -1,
|
vlc.add(projectDescriptionLabel, new VerticalLayoutData(1, -1,
|
||||||
new Margins(5, 0, 5, 0)));
|
new Margins(0)));
|
||||||
vlc.add(projectClassNameLabel, new VerticalLayoutData(1, -1,
|
vlc.add(deployableVRELabel, new VerticalLayoutData(1, -1, new Margins(0)));
|
||||||
new Margins(5, 0, 5, 0)));
|
vlc.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0)));
|
||||||
|
vlc.add(gridDeployableVRE, new VerticalLayoutData(1, 1, new Margins(0)));
|
||||||
|
|
||||||
add(vlc, new MarginData(new Margins(0)));
|
add(vlc, new MarginData(new Margins(0)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update(Project project) {
|
public void update(Project project) {
|
||||||
Log.debug("Update Project Info: " + project);
|
Log.debug("Update Project Info: " + project);
|
||||||
if (project != null && project.getInputData()!=null && project.getInputData().getProjectInfo() != null) {
|
if (project != null && project.getInputData() != null
|
||||||
|
&& project.getInputData().getProjectInfo() != null) {
|
||||||
|
|
||||||
if (project.getInputData().getProjectInfo().getName() != null) {
|
if (project.getInputData().getProjectInfo().getPackageName() != null) {
|
||||||
projectName.setValue(project.getInputData().getProjectInfo().getName());
|
packageName.setValue(project.getInputData().getProjectInfo()
|
||||||
|
.getPackageName());
|
||||||
} else {
|
} else {
|
||||||
projectName.clear();
|
packageName.clear();
|
||||||
}
|
}
|
||||||
if (project.getInputData().getProjectInfo().getDescription() != null) {
|
if (project.getInputData().getProjectInfo().getPackageDescription() != null) {
|
||||||
projectDescription.setValue(project.getInputData().getProjectInfo()
|
packageDescription.setValue(project.getInputData()
|
||||||
.getDescription());
|
.getProjectInfo().getPackageDescription());
|
||||||
} else {
|
} else {
|
||||||
projectDescription.clear();
|
packageDescription.clear();
|
||||||
}
|
}
|
||||||
if (project.getInputData().getProjectInfo().getClassName() != null) {
|
|
||||||
projectClassName.setValue(project.getInputData().getProjectInfo()
|
if (project.getInputData().getProjectInfo().getListDeployableVRE() != null) {
|
||||||
.getClassName());
|
storeDeployableVRE.clear();
|
||||||
|
storeDeployableVRE.addAll(project.getInputData()
|
||||||
|
.getProjectInfo().getListDeployableVRE());
|
||||||
|
storeDeployableVRE.commitChanges();
|
||||||
|
seq = project.getInputData().getProjectInfo()
|
||||||
|
.getListDeployableVRE().size();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
projectClassName.clear();
|
storeDeployableVRE.clear();
|
||||||
|
storeDeployableVRE.commitChanges();
|
||||||
|
seq = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
projectName.clear();
|
packageName.clear();
|
||||||
projectDescription.clear();
|
packageDescription.clear();
|
||||||
projectClassName.clear();
|
storeDeployableVRE.clear();
|
||||||
|
storeDeployableVRE.commitChanges();
|
||||||
|
seq = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProjectInfo getProjectInfo() {
|
private void editingBeforeStart(BeforeStartEditEvent<DeployableVRE> event) {
|
||||||
String name = projectName.getCurrentValue();
|
// TODO Auto-generated method stub
|
||||||
String description = projectDescription.getCurrentValue();
|
|
||||||
String className = projectClassName.getCurrentValue();
|
|
||||||
|
|
||||||
return new ProjectInfo(name, description, className);
|
}
|
||||||
|
|
||||||
|
private void addDeployableVRE(SelectEvent event) {
|
||||||
|
try {
|
||||||
|
seq++;
|
||||||
|
DeployableVRE newEnvironmentVariable = new DeployableVRE(seq, "",
|
||||||
|
"");
|
||||||
|
Log.debug("New DeployableVRE: " + newEnvironmentVariable);
|
||||||
|
gridDeployableVREEditing.cancelEditing();
|
||||||
|
addStatus = true;
|
||||||
|
gridDeployableVREEditing.getCancelButton().setVisible(false);
|
||||||
|
storeDeployableVRE.add(newEnvironmentVariable);
|
||||||
|
int row = storeDeployableVRE.indexOf(newEnvironmentVariable);
|
||||||
|
|
||||||
|
gridDeployableVREEditing.startEditing(new GridCell(row, 0));
|
||||||
|
} catch (Throwable e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProjectInfo getProjectInfo() {
|
||||||
|
String name = packageName.getCurrentValue();
|
||||||
|
String description = packageDescription.getCurrentValue();
|
||||||
|
ArrayList<DeployableVRE> listDeployableVRE = new ArrayList<>(
|
||||||
|
gridDeployableVRE.getStore().getAll());
|
||||||
|
return new ProjectInfo(name, description, listDeployableVRE);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -443,6 +443,10 @@ public class SelectedRowsPanel extends ContentPanel {
|
||||||
storeSelectedRows.commitChanges();
|
storeSelectedRows.commitChanges();
|
||||||
seq = project.getInputData().getListSelectedRows().size();
|
seq = project.getInputData().getListSelectedRows().size();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
storeSelectedRows.clear();
|
||||||
|
storeSelectedRows.commitChanges();
|
||||||
|
seq=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class AlgorithmGenerator {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Path tempFile = Files.createTempFile(project.getInputData()
|
Path tempFile = Files.createTempFile(project.getInputData()
|
||||||
.getProjectInfo().getClassName(), EXTENTION_JAVA);
|
.getProjectInfo().getPackageName(), EXTENTION_JAVA);
|
||||||
|
|
||||||
List<String> lines = createJavaCode();
|
List<String> lines = createJavaCode();
|
||||||
Files.write(tempFile, lines, Charset.defaultCharset(),
|
Files.write(tempFile, lines, Charset.defaultCharset(),
|
||||||
|
@ -80,7 +80,7 @@ public class AlgorithmGenerator {
|
||||||
"import org.gcube.dataanalysis.executor.rscripts.generic.GenericRScript;",
|
"import org.gcube.dataanalysis.executor.rscripts.generic.GenericRScript;",
|
||||||
"", "public class "
|
"", "public class "
|
||||||
+ project.getInputData().getProjectInfo()
|
+ project.getInputData().getProjectInfo()
|
||||||
.getClassName()
|
.getPackageName()
|
||||||
+ " extends GenericRScript {", "",
|
+ " extends GenericRScript {", "",
|
||||||
|
|
||||||
" public static enum operators {",
|
" public static enum operators {",
|
||||||
|
@ -88,7 +88,7 @@ public class AlgorithmGenerator {
|
||||||
" };", "", " @Override",
|
" };", "", " @Override",
|
||||||
" public String getDescription() {", " return \""
|
" public String getDescription() {", " return \""
|
||||||
+ project.getInputData().getProjectInfo()
|
+ project.getInputData().getProjectInfo()
|
||||||
.getDescription() + "\";", " }", "",
|
.getPackageDescription() + "\";", " }", "",
|
||||||
" protected void initVariables(){",
|
" protected void initVariables(){",
|
||||||
" mainScriptName=\"" + mainScriptRelativePath + "\";",
|
" mainScriptName=\"" + mainScriptRelativePath + "\";",
|
||||||
" packageURL=\"" + packageUrl + "\";",
|
" packageURL=\"" + packageUrl + "\";",
|
||||||
|
|
|
@ -0,0 +1,123 @@
|
||||||
|
package org.gcube.portlets.user.statisticalalgorithmsimporter.server.generator;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.StandardOpenOption;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.DeployableVRE;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.InterpreterPackageInfo;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Giancarlo Panichi email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class InfoGenerator {
|
||||||
|
private static final String EXTENTION_TXT = ".txt";
|
||||||
|
public static final Logger logger = LoggerFactory
|
||||||
|
.getLogger(InfoGenerator.class);
|
||||||
|
|
||||||
|
private Project project;
|
||||||
|
|
||||||
|
public InfoGenerator(Project project) {
|
||||||
|
super();
|
||||||
|
this.project = project;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "IntegrationInfoGenerator [project=" + project + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
public Path createIntegrationInfo() throws StatAlgoImporterServiceException {
|
||||||
|
|
||||||
|
try {
|
||||||
|
Path tempFile = Files.createTempFile(project.getInputData()
|
||||||
|
.getProjectInfo().getPackageName(), EXTENTION_TXT);
|
||||||
|
|
||||||
|
List<String> lines = createInfo();
|
||||||
|
Files.write(tempFile, lines, Charset.defaultCharset(),
|
||||||
|
StandardOpenOption.WRITE);
|
||||||
|
logger.debug(tempFile.toString());
|
||||||
|
return tempFile;
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.error(e.getLocalizedMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(),
|
||||||
|
e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> createInfo() {
|
||||||
|
ArrayList<String> infos = new ArrayList<String>();
|
||||||
|
if (project.getInputData() != null) {
|
||||||
|
if (project.getInputData().getProjectInfo() != null) {
|
||||||
|
if (project.getInputData().getProjectInfo().getPackageName() != null) {
|
||||||
|
infos.add("Package Name: "
|
||||||
|
+ project.getInputData().getProjectInfo()
|
||||||
|
.getPackageName());
|
||||||
|
} else {
|
||||||
|
infos.add("Package Name: ");
|
||||||
|
}
|
||||||
|
infos.add("");
|
||||||
|
if (project.getInputData().getProjectInfo().getPackageDescription() != null) {
|
||||||
|
infos.add("Package Description: "
|
||||||
|
+ project.getInputData().getProjectInfo()
|
||||||
|
.getPackageDescription());
|
||||||
|
} else {
|
||||||
|
infos.add("Package Description: ");
|
||||||
|
}
|
||||||
|
infos.add("");
|
||||||
|
|
||||||
|
if (project.getInputData().getProjectInfo()
|
||||||
|
.getListDeployableVRE() != null
|
||||||
|
&& project.getInputData().getProjectInfo()
|
||||||
|
.getListDeployableVRE().size() > 0) {
|
||||||
|
infos.add("Deployable VRE:");
|
||||||
|
for (DeployableVRE deployableVRE : project.getInputData()
|
||||||
|
.getProjectInfo().getListDeployableVRE()) {
|
||||||
|
infos.add("" + deployableVRE.getName() + ", " + deployableVRE.getDescription());
|
||||||
|
}
|
||||||
|
infos.add("");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (project.getInputData().getInterpreterInfo() != null) {
|
||||||
|
if (project.getInputData().getInterpreterInfo().getVersion() != null) {
|
||||||
|
infos.add("Interpreter Version: "
|
||||||
|
+ project.getInputData().getInterpreterInfo()
|
||||||
|
.getVersion());
|
||||||
|
} else {
|
||||||
|
infos.add("Interpreter Version: Any");
|
||||||
|
}
|
||||||
|
infos.add("");
|
||||||
|
if (project.getInputData().getInterpreterInfo()
|
||||||
|
.getInterpreterPackagesInfo() != null
|
||||||
|
&& project.getInputData().getInterpreterInfo()
|
||||||
|
.getInterpreterPackagesInfo().size() > 0) {
|
||||||
|
infos.add("Packages:");
|
||||||
|
for (InterpreterPackageInfo info : project.getInputData()
|
||||||
|
.getInterpreterInfo().getInterpreterPackagesInfo()) {
|
||||||
|
infos.add("" + info.getName() + " " + info.getVersion());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return infos;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,87 +0,0 @@
|
||||||
package org.gcube.portlets.user.statisticalalgorithmsimporter.server.generator;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.charset.Charset;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.nio.file.StandardOpenOption;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
|
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.InterpreterPackageInfo;
|
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.Project;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Giancarlo Panichi email: <a
|
|
||||||
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class IntegrationInfoGenerator {
|
|
||||||
private static final String EXTENTION_JAVA = ".txt";
|
|
||||||
public static final Logger logger = LoggerFactory
|
|
||||||
.getLogger(IntegrationInfoGenerator.class);
|
|
||||||
|
|
||||||
private Project project;
|
|
||||||
|
|
||||||
public IntegrationInfoGenerator(Project project) {
|
|
||||||
super();
|
|
||||||
this.project = project;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "IntegrationInfoGenerator [project=" + project + "]";
|
|
||||||
}
|
|
||||||
|
|
||||||
public Path createIntegrationInfo() throws StatAlgoImporterServiceException {
|
|
||||||
|
|
||||||
try {
|
|
||||||
Path tempFile = Files.createTempFile(project.getInputData()
|
|
||||||
.getProjectInfo().getClassName(), EXTENTION_JAVA);
|
|
||||||
|
|
||||||
List<String> lines = createInfo();
|
|
||||||
Files.write(tempFile, lines, Charset.defaultCharset(),
|
|
||||||
StandardOpenOption.WRITE);
|
|
||||||
logger.debug(tempFile.toString());
|
|
||||||
return tempFile;
|
|
||||||
|
|
||||||
} catch (IOException e) {
|
|
||||||
logger.error(e.getLocalizedMessage());
|
|
||||||
e.printStackTrace();
|
|
||||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(),
|
|
||||||
e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<String> createInfo() {
|
|
||||||
ArrayList<String> infos = new ArrayList<String>();
|
|
||||||
if (project.getInputData().getInterpreterInfo() != null) {
|
|
||||||
if (project.getInputData().getInterpreterInfo().getVersion() != null) {
|
|
||||||
infos.add("Interpreter Version: "
|
|
||||||
+ project.getInputData().getInterpreterInfo()
|
|
||||||
.getVersion());
|
|
||||||
} else {
|
|
||||||
infos.add("Interpreter Version: Any");
|
|
||||||
}
|
|
||||||
infos.add("");
|
|
||||||
if (project.getInputData().getInterpreterInfo()
|
|
||||||
.getInterpreterPackagesInfo() != null
|
|
||||||
&& project.getInputData().getInterpreterInfo()
|
|
||||||
.getInterpreterPackagesInfo().size() > 0) {
|
|
||||||
infos.add("Packages:");
|
|
||||||
for (InterpreterPackageInfo info : project.getInputData()
|
|
||||||
.getInterpreterInfo().getInterpreterPackagesInfo()) {
|
|
||||||
infos.add("" + info.getName() + " " + info.getVersion());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return infos;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -38,10 +38,10 @@ public class ProjectBuilder {
|
||||||
private static final String ALGORITHM_MIMETYPE = "text/plain";
|
private static final String ALGORITHM_MIMETYPE = "text/plain";
|
||||||
private static final String ALGORITHM_DESCRIPTION = "Statistical Algorithm Java Code";
|
private static final String ALGORITHM_DESCRIPTION = "Statistical Algorithm Java Code";
|
||||||
private static final String ALGORITHM_EXTENTION = ".java";
|
private static final String ALGORITHM_EXTENTION = ".java";
|
||||||
private static final String INTEGRATION_INFO_NAME = "IntegrationInfo";
|
private static final String INFO_NAME = "Info";
|
||||||
private static final String INTEGRATION_INFO_MIMETYPE = "text/plain";
|
private static final String INFO_MIMETYPE = "text/plain";
|
||||||
private static final String INTEGRATION_INFO_DESCRIPTION = "Integration Info";
|
private static final String INFO_DESCRIPTION = "Info";
|
||||||
private static final String INTEGRATION_INFO_EXTENTION = ".txt";
|
private static final String INFO_EXTENTION = ".txt";
|
||||||
private static final String PROJECT_PACKAGE_MIMETYPE = "application/zip";
|
private static final String PROJECT_PACKAGE_MIMETYPE = "application/zip";
|
||||||
private static final String PROJECT_PACKAGE_DESCRIPTION = "Statical Algorithm Project Package";
|
private static final String PROJECT_PACKAGE_DESCRIPTION = "Statical Algorithm Project Package";
|
||||||
private static final String PROJECT_PACKAGE_EXTENTION = ".zip";
|
private static final String PROJECT_PACKAGE_EXTENTION = ".zip";
|
||||||
|
@ -94,7 +94,7 @@ public class ProjectBuilder {
|
||||||
"Attention No Project Information Set!");
|
"Attention No Project Information Set!");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (project.getInputData().getProjectInfo().getClassName() == null) {
|
if (project.getInputData().getProjectInfo().getPackageName() == null) {
|
||||||
throw new StatAlgoImporterServiceException(
|
throw new StatAlgoImporterServiceException(
|
||||||
"Attention No Project Class Name Set!");
|
"Attention No Project Class Name Set!");
|
||||||
}
|
}
|
||||||
|
@ -133,7 +133,7 @@ public class ProjectBuilder {
|
||||||
algorithmItem = filesStorage.createItemOnWorkspace(aslSession
|
algorithmItem = filesStorage.createItemOnWorkspace(aslSession
|
||||||
.getUsername(), Files.newInputStream(algorithmJava,
|
.getUsername(), Files.newInputStream(algorithmJava,
|
||||||
StandardOpenOption.READ), project.getInputData()
|
StandardOpenOption.READ), project.getInputData()
|
||||||
.getProjectInfo().getClassName()
|
.getProjectInfo().getPackageName()
|
||||||
+ ALGORITHM_EXTENTION, ALGORITHM_DESCRIPTION,
|
+ ALGORITHM_EXTENTION, ALGORITHM_DESCRIPTION,
|
||||||
ALGORITHM_MIMETYPE, project.getProjectTarget()
|
ALGORITHM_MIMETYPE, project.getProjectTarget()
|
||||||
.getTargetFolder().getId());
|
.getTargetFolder().getId());
|
||||||
|
@ -207,7 +207,7 @@ public class ProjectBuilder {
|
||||||
try {
|
try {
|
||||||
projectPackageItem = filesStorage.createItemOnWorkspace(
|
projectPackageItem = filesStorage.createItemOnWorkspace(
|
||||||
aslSession.getUsername(), inputStream, project
|
aslSession.getUsername(), inputStream, project
|
||||||
.getInputData().getProjectInfo().getClassName()
|
.getInputData().getProjectInfo().getPackageName()
|
||||||
+ PROJECT_PACKAGE_EXTENTION,
|
+ PROJECT_PACKAGE_EXTENTION,
|
||||||
PROJECT_PACKAGE_DESCRIPTION, PROJECT_PACKAGE_MIMETYPE,
|
PROJECT_PACKAGE_DESCRIPTION, PROJECT_PACKAGE_MIMETYPE,
|
||||||
targetFolder.getId());
|
targetFolder.getId());
|
||||||
|
@ -240,7 +240,7 @@ public class ProjectBuilder {
|
||||||
|
|
||||||
private void createIntegrationInfo()
|
private void createIntegrationInfo()
|
||||||
throws StatAlgoImporterServiceException {
|
throws StatAlgoImporterServiceException {
|
||||||
IntegrationInfoGenerator integrationInfoGenerator = new IntegrationInfoGenerator(
|
InfoGenerator integrationInfoGenerator = new InfoGenerator(
|
||||||
project);
|
project);
|
||||||
infoTXT = integrationInfoGenerator.createIntegrationInfo();
|
infoTXT = integrationInfoGenerator.createIntegrationInfo();
|
||||||
|
|
||||||
|
@ -251,8 +251,8 @@ public class ProjectBuilder {
|
||||||
infoItem = filesStorage.createItemOnWorkspace(
|
infoItem = filesStorage.createItemOnWorkspace(
|
||||||
aslSession.getUsername(),
|
aslSession.getUsername(),
|
||||||
Files.newInputStream(infoTXT, StandardOpenOption.READ),
|
Files.newInputStream(infoTXT, StandardOpenOption.READ),
|
||||||
INTEGRATION_INFO_NAME + INTEGRATION_INFO_EXTENTION,
|
INFO_NAME + INFO_EXTENTION,
|
||||||
INTEGRATION_INFO_DESCRIPTION, INTEGRATION_INFO_MIMETYPE,
|
INFO_DESCRIPTION, INFO_MIMETYPE,
|
||||||
project.getProjectTarget().getTargetFolder().getId());
|
project.getProjectTarget().getTargetFolder().getId());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
logger.error(e.getLocalizedMessage());
|
logger.error(e.getLocalizedMessage());
|
||||||
|
@ -297,11 +297,11 @@ public class ProjectBuilder {
|
||||||
storage.downloadInputFile(ECOLOGICAL_ENGINE_SMART_EXECUTOR_JAR_URL,
|
storage.downloadInputFile(ECOLOGICAL_ENGINE_SMART_EXECUTOR_JAR_URL,
|
||||||
ecologicalEngineSmartExecutorJar);
|
ecologicalEngineSmartExecutorJar);
|
||||||
Path algorithmTempFile = new File(tempDirectory.toFile(), project
|
Path algorithmTempFile = new File(tempDirectory.toFile(), project
|
||||||
.getInputData().getProjectInfo().getClassName()
|
.getInputData().getProjectInfo().getPackageName()
|
||||||
+ ALGORITHM_EXTENTION).toPath();
|
+ ALGORITHM_EXTENTION).toPath();
|
||||||
Files.copy(algorithmJava, algorithmTempFile);
|
Files.copy(algorithmJava, algorithmTempFile);
|
||||||
Path infoTempFile = new File(tempDirectory.toFile(),
|
Path infoTempFile = new File(tempDirectory.toFile(),
|
||||||
INTEGRATION_INFO_NAME + INTEGRATION_INFO_EXTENTION)
|
INFO_NAME + INFO_EXTENTION)
|
||||||
.toPath();
|
.toPath();
|
||||||
Files.copy(infoTXT, infoTempFile);
|
Files.copy(infoTXT, infoTempFile);
|
||||||
|
|
||||||
|
@ -322,7 +322,7 @@ public class ProjectBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void copyJarOnWorkspace(Path tempDirectory) throws StatAlgoImporterServiceException {
|
private void copyJarOnWorkspace(Path tempDirectory) throws StatAlgoImporterServiceException {
|
||||||
Path codeJar=Paths.get(tempDirectory.toString(),project.getInputData().getProjectInfo().getClassName()
|
Path codeJar=Paths.get(tempDirectory.toString(),project.getInputData().getProjectInfo().getPackageName()
|
||||||
+ JAR_EXTENTION);
|
+ JAR_EXTENTION);
|
||||||
|
|
||||||
FilesStorage filesStorage = new FilesStorage();
|
FilesStorage filesStorage = new FilesStorage();
|
||||||
|
@ -331,7 +331,7 @@ public class ProjectBuilder {
|
||||||
try {
|
try {
|
||||||
codeJarItem = filesStorage.createItemOnWorkspace(aslSession
|
codeJarItem = filesStorage.createItemOnWorkspace(aslSession
|
||||||
.getUsername(), Files.newInputStream(codeJar,
|
.getUsername(), Files.newInputStream(codeJar,
|
||||||
StandardOpenOption.READ), project.getInputData().getProjectInfo().getClassName()
|
StandardOpenOption.READ), project.getInputData().getProjectInfo().getPackageName()
|
||||||
+ JAR_EXTENTION, CODE_JAR_DESCRIPTION,
|
+ JAR_EXTENTION, CODE_JAR_DESCRIPTION,
|
||||||
CODE_JAR_MIMETYPE, project.getProjectTarget()
|
CODE_JAR_MIMETYPE, project.getProjectTarget()
|
||||||
.getTargetFolder().getId());
|
.getTargetFolder().getId());
|
||||||
|
@ -369,7 +369,7 @@ public class ProjectBuilder {
|
||||||
|
|
||||||
ProcessBuilder pb = new ProcessBuilder("javac", "-cp",
|
ProcessBuilder pb = new ProcessBuilder("javac", "-cp",
|
||||||
tempDirectory.toAbsolutePath().toString() + "/*", project
|
tempDirectory.toAbsolutePath().toString() + "/*", project
|
||||||
.getInputData().getProjectInfo().getClassName()
|
.getInputData().getProjectInfo().getPackageName()
|
||||||
+ ALGORITHM_EXTENTION);
|
+ ALGORITHM_EXTENTION);
|
||||||
pb.directory(tempDirectory.toFile());
|
pb.directory(tempDirectory.toFile());
|
||||||
Path logTXT = new File(tempDirectory.toFile(), LOG_TXT).toPath();
|
Path logTXT = new File(tempDirectory.toFile(), LOG_TXT).toPath();
|
||||||
|
@ -398,7 +398,7 @@ public class ProjectBuilder {
|
||||||
List<String> commands = new ArrayList<>();
|
List<String> commands = new ArrayList<>();
|
||||||
commands.add("jar");
|
commands.add("jar");
|
||||||
commands.add("-cvf");
|
commands.add("-cvf");
|
||||||
commands.add(project.getInputData().getProjectInfo().getClassName()
|
commands.add(project.getInputData().getProjectInfo().getPackageName()
|
||||||
+ JAR_EXTENTION);
|
+ JAR_EXTENTION);
|
||||||
|
|
||||||
DirectoryStream<Path> directoryStream = Files
|
DirectoryStream<Path> directoryStream = Files
|
||||||
|
|
|
@ -8,7 +8,7 @@ package org.gcube.portlets.user.statisticalalgorithmsimporter.shared;
|
||||||
*/
|
*/
|
||||||
public class Constants {
|
public class Constants {
|
||||||
|
|
||||||
public static final String APPLICATION_ID = "org.gcube.portlets.user.statisticalrunner.server.portlet.StatisticalRunnerPortlet";
|
public static final String APPLICATION_ID = "org.gcube.portlets.user.statisticalalgorithmsimporter.server.portlet.StatAlgoImporterPortlet";
|
||||||
public static final String STATRUNNER_ID = "StatRunnerId";
|
public static final String STATRUNNER_ID = "StatRunnerId";
|
||||||
public static final String STATRUNNER_LANG_COOKIE = "StatRunnerLangCookie";
|
public static final String STATRUNNER_LANG_COOKIE = "StatRunnerLangCookie";
|
||||||
public static final String STATRUNNER_LANG = "StatRunnerLang";
|
public static final String STATRUNNER_LANG = "StatRunnerLang";
|
||||||
|
|
|
@ -1,29 +1,37 @@
|
||||||
package org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project;
|
package org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Giancarlo Panichi email: <a
|
* @author giancarlo email: <a
|
||||||
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class ProjectInfo implements Serializable {
|
public class DeployableVRE implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 7304965177776383842L;
|
private static final long serialVersionUID = -7548059008384829524L;
|
||||||
|
private int id;
|
||||||
private String name;
|
private String name;
|
||||||
private String description;
|
private String description;
|
||||||
private String className;
|
|
||||||
|
|
||||||
public ProjectInfo() {
|
public DeployableVRE() {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProjectInfo(String name, String description, String className) {
|
public DeployableVRE(int id, String name, String description) {
|
||||||
super();
|
super();
|
||||||
|
this.id = id;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.className = className;
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
|
@ -42,18 +50,12 @@ public class ProjectInfo implements Serializable {
|
||||||
this.description = description;
|
this.description = description;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getClassName() {
|
|
||||||
return className;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setClassName(String className) {
|
|
||||||
this.className = className;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ProjectInfo [name=" + name + ", description=" + description
|
return "DeployableVRE [id=" + id + ", name=" + name + ", description="
|
||||||
+ ", className=" + className + "]";
|
+ description + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
package org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Giancarlo Panichi email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ProjectInfo implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 7304965177776383842L;
|
||||||
|
private String packageName;
|
||||||
|
private String packageDescription;
|
||||||
|
private ArrayList<DeployableVRE> listDeployableVRE;
|
||||||
|
|
||||||
|
public ProjectInfo() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProjectInfo(String packageName, String pacakgeDescription,
|
||||||
|
ArrayList<DeployableVRE> listDeployableVRE) {
|
||||||
|
super();
|
||||||
|
this.packageName = packageName;
|
||||||
|
this.packageDescription = pacakgeDescription;
|
||||||
|
this.listDeployableVRE = listDeployableVRE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPackageName() {
|
||||||
|
return packageName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPackageName(String packageName) {
|
||||||
|
this.packageName = packageName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPackageDescription() {
|
||||||
|
return packageDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPackageDescription(String packageDescription) {
|
||||||
|
this.packageDescription = packageDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<DeployableVRE> getListDeployableVRE() {
|
||||||
|
return listDeployableVRE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListDeployableVRE(ArrayList<DeployableVRE> listDeployableVRE) {
|
||||||
|
this.listDeployableVRE = listDeployableVRE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "ProjectInfo [packageName=" + packageName
|
||||||
|
+ ", packageDescription=" + packageDescription
|
||||||
|
+ ", listDeployableVRE=" + listDeployableVRE + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ import java.util.ArrayList;
|
||||||
|
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.EnvironmentVariables;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.EnvironmentVariables;
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.InterpreterInfo;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.InterpreterInfo;
|
||||||
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.ProjectInfo;
|
||||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.SelectedRowsVariables;
|
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.input.SelectedRowsVariables;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -51,17 +51,18 @@
|
||||||
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"
|
||||||
/> -->
|
/> -->
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<script src='<%=request.getContextPath()%>/statalgoimporter/statalgoimporter.nocache.js'></script>
|
<script src='<%=request.getContextPath()%>/statalgoimporter/statalgoimporter.nocache.js'></script>
|
||||||
|
|
||||||
|
|
||||||
<div id="StatisticalRunnerPortlet" style="width: 100%; height: 100%">
|
<div id="StatAlgoImporterPortlet" style="width: 100%; height: 100%">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<display>
|
<display>
|
||||||
<category name="gCube Applications">
|
<category name="gCube Applications">
|
||||||
<portlet id="StatisticalRunner" />
|
<portlet id="StatisticalAlgorithmsImporter" />
|
||||||
</category>
|
</category>
|
||||||
</display>
|
</display>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
name=StatisticalRunner
|
name=StatisticalAlgorithmsImporter
|
||||||
module-group-id=liferay
|
module-group-id=liferay
|
||||||
module-incremental-version=1
|
module-incremental-version=1
|
||||||
tags=
|
tags=
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
<liferay-portlet-app>
|
<liferay-portlet-app>
|
||||||
<portlet>
|
<portlet>
|
||||||
<portlet-name>StatisticalRunner</portlet-name>
|
<portlet-name>StatisticalAlgorithmsImporter</portlet-name>
|
||||||
<icon>/icon.png</icon>
|
<icon>/icon.png</icon>
|
||||||
<layout-cacheable>false</layout-cacheable>
|
<layout-cacheable>false</layout-cacheable>
|
||||||
<instanceable>false</instanceable>
|
<instanceable>false</instanceable>
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<portlet-app xmlns='http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd' version='2.0'>
|
<portlet-app xmlns='http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd' version='2.0'>
|
||||||
<portlet>
|
<portlet>
|
||||||
<description>StatisticalRunner</description>
|
<description>StatisticalAlgorithmsImporter</description>
|
||||||
<portlet-name>StatisticalRunner</portlet-name>
|
<portlet-name>StatisticalAlgorithmsImporter</portlet-name>
|
||||||
<display-name>StatisticalRunner</display-name>
|
<display-name>StatisticalAlgorithmsImporter</display-name>
|
||||||
<portlet-class>org.gcube.portlets.user.statisticalrunner.server.portlet.StatisticalRunnerPortlet</portlet-class>
|
<portlet-class>org.gcube.portlets.user.statisticalalgorithmsimporter.server.portlet.StatAlgoImporterPortlet</portlet-class>
|
||||||
<expiration-cache>0</expiration-cache>
|
<expiration-cache>0</expiration-cache>
|
||||||
<supports>
|
<supports>
|
||||||
<mime-type>text/html</mime-type>
|
<mime-type>text/html</mime-type>
|
||||||
<portlet-mode>view</portlet-mode>
|
<portlet-mode>view</portlet-mode>
|
||||||
</supports>
|
</supports>
|
||||||
<portlet-info>
|
<portlet-info>
|
||||||
<title>StatisticalRunner</title>
|
<title>StatisticalAlgorithmsImporter</title>
|
||||||
<short-title>StatisticalRunner</short-title>
|
<short-title>StatisticalAlgorithmsImporter</short-title>
|
||||||
</portlet-info>
|
</portlet-info>
|
||||||
</portlet>
|
</portlet>
|
||||||
</portlet-app>
|
</portlet-app>
|
||||||
|
|
Loading…
Reference in New Issue