2521: Explore the possibility to port the StatMan interface onto Dataminer

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

Fixed Layout on ComputationPanel

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/data-miner-manager@126949 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2016-04-08 18:34:05 +00:00
parent cf12db1eb6
commit 98f8c1859d
30 changed files with 704 additions and 641 deletions

View File

@ -11,7 +11,9 @@ import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter
import org.gcube.portlets.user.dataminermanager.shared.StringUtil;
/**
* @author ceras
*
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class Operator implements Serializable {

View File

@ -0,0 +1,59 @@
package org.gcube.portlets.user.dataminermanager.client.events;
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;
/**
* Component Refresh Layout Event
*
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class ComponentRefreshLayoutEvent
extends
GwtEvent<ComponentRefreshLayoutEvent.ComponentRefreshLayoutEventHandler> {
public static Type<ComponentRefreshLayoutEventHandler> TYPE = new Type<ComponentRefreshLayoutEventHandler>();
public interface ComponentRefreshLayoutEventHandler extends EventHandler {
void onRefresh(ComponentRefreshLayoutEvent event);
}
public interface HasComponentRefreshLayoutEventHandler extends HasHandlers {
public HandlerRegistration addComponentRefreshLayoutEventHandler(
ComponentRefreshLayoutEventHandler handler);
}
public ComponentRefreshLayoutEvent() {
}
@Override
protected void dispatch(ComponentRefreshLayoutEventHandler handler) {
handler.onRefresh(this);
}
@Override
public Type<ComponentRefreshLayoutEventHandler> getAssociatedType() {
return TYPE;
}
public static Type<ComponentRefreshLayoutEventHandler> getType() {
return TYPE;
}
public static void fire(HasHandlers source,
ComponentRefreshLayoutEvent event) {
source.fireEvent(event);
}
@Override
public String toString() {
return "ComponentRefreshLayoutEvent []";
}
}

View File

@ -1,58 +0,0 @@
package org.gcube.portlets.user.dataminermanager.client.events;
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;
/**
* Empty ComputationPanal Event
*
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class EmptyComputationPanelEvent extends
GwtEvent<EmptyComputationPanelEvent.EmptyComputationPanelEventHandler> {
public static Type<EmptyComputationPanelEventHandler> TYPE = new Type<EmptyComputationPanelEventHandler>();
public interface EmptyComputationPanelEventHandler extends EventHandler {
void onEmpty(EmptyComputationPanelEvent event);
}
public interface HasEmptyComputationPanelEventHandler extends HasHandlers {
public HandlerRegistration addEmptyComputationPanelEventHandler(
EmptyComputationPanelEventHandler handler);
}
public EmptyComputationPanelEvent() {
}
@Override
protected void dispatch(EmptyComputationPanelEventHandler handler) {
handler.onEmpty(this);
}
@Override
public Type<EmptyComputationPanelEventHandler> getAssociatedType() {
return TYPE;
}
public static Type<EmptyComputationPanelEventHandler> getType() {
return TYPE;
}
public static void fire(HasHandlers source,
EmptyComputationPanelEvent emptyComputationPanelEvent) {
source.fireEvent(emptyComputationPanelEvent);
}
@Override
public String toString() {
return "EmptyComputationPanelEvent []";
}
}

View File

@ -0,0 +1,83 @@
package org.gcube.portlets.user.dataminermanager.client.events;
import org.gcube.portlets.user.dataminermanager.client.bean.Operator;
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;
/**
* Start Computation Event
*
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class StartComputationEvent extends
GwtEvent<StartComputationEvent.StartComputationEventHandler> {
public static Type<StartComputationEventHandler> TYPE = new Type<StartComputationEventHandler>();
private Operator op;
private String computationTitle;
private String computationDescription;
public interface StartComputationEventHandler extends EventHandler {
void onStart(StartComputationEvent event);
}
public interface HasStartComputationEventHandler extends HasHandlers {
public HandlerRegistration addStartComputationEventHandler(
StartComputationEventHandler handler);
}
public StartComputationEvent(Operator op, String computationTitle, String computationDescription) {
this.op=op;
this.computationTitle=computationTitle;
this.computationDescription=computationDescription;
}
@Override
protected void dispatch(StartComputationEventHandler handler) {
handler.onStart(this);
}
@Override
public Type<StartComputationEventHandler> getAssociatedType() {
return TYPE;
}
public static Type<StartComputationEventHandler> getType() {
return TYPE;
}
public static void fire(HasHandlers source,
StartComputationEvent startComputationEvent) {
source.fireEvent(startComputationEvent);
}
public Operator getOp() {
return op;
}
public String getComputationTitle() {
return computationTitle;
}
public String getComputationDescription() {
return computationDescription;
}
@Override
public String toString() {
return "StartComputationEvent [op=" + op + ", computationTitle="
+ computationTitle + ", computationDescription="
+ computationDescription + "]";
}
}

View File

@ -1,9 +1,13 @@
package org.gcube.portlets.user.dataminermanager.client.experimentArea;
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
import org.gcube.portlets.user.dataminermanager.client.events.EmptyComputationPanelEvent;
import org.gcube.portlets.user.dataminermanager.client.events.EmptyComputationPanelEvent.EmptyComputationPanelEventHandler;
import org.gcube.portlets.user.dataminermanager.client.events.EmptyComputationPanelEvent.HasEmptyComputationPanelEventHandler;
import org.gcube.portlets.user.dataminermanager.client.bean.Operator;
import org.gcube.portlets.user.dataminermanager.client.events.ComponentRefreshLayoutEvent;
import org.gcube.portlets.user.dataminermanager.client.events.StartComputationEvent;
import org.gcube.portlets.user.dataminermanager.client.events.ComponentRefreshLayoutEvent.ComponentRefreshLayoutEventHandler;
import org.gcube.portlets.user.dataminermanager.client.events.StartComputationEvent.StartComputationEventHandler;
import org.gcube.portlets.user.dataminermanager.client.events.StartComputationEvent.HasStartComputationEventHandler;
import org.gcube.portlets.user.dataminermanager.client.experimentArea.ComputationParametersPanel.ComputationParametersPanelHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.ui.HTML;
@ -31,13 +35,14 @@ import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
*
*/
public class ComputationPanel extends FramedPanel implements
HasEmptyComputationPanelEventHandler {
HasStartComputationEventHandler {
private static final String DELETE_ALL_BUTTON_TOOLTIP = "Remove All Operators";
private TextButton removeAllButton;
private ToolBar toolBar;
private VerticalLayoutContainer topV;
private VerticalLayoutContainer v;
private ComputationParametersPanel computationParametersPanel;
public ComputationPanel() {
super();
init();
@ -47,10 +52,10 @@ public class ComputationPanel extends FramedPanel implements
private void init() {
setHeaderVisible(false);
setBodyStyle("backgroundColor:white;");
;
}
private void create() {
computationParametersPanel=null;
topV = new VerticalLayoutContainer();
setToolBar();
topV.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0)));
@ -76,8 +81,7 @@ public class ComputationPanel extends FramedPanel implements
@Override
public void onSelect(SelectEvent event) {
emptyPanel();
EmptyComputationPanelEvent emptyEvent = new EmptyComputationPanelEvent();
fireEvent(emptyEvent);
computationParametersPanel = null;
}
});
@ -95,30 +99,49 @@ public class ComputationPanel extends FramedPanel implements
}
/**
*
* @param workflowOperatorPanel
* algorithm
*/
public void addWorkflowOperatorPanel(
WorkflowOperatorPanel workflowOperatorPanel) {
private void addComputationParametersPanel(
ComputationParametersPanel computationParametersPanel) {
v.clear();
HBoxLayoutContainer hBox = new HBoxLayoutContainer();
hBox.setPack(BoxLayoutPack.CENTER);
hBox.add(new Image(DataMinerManager.resources.workflowConnector1()),
new BoxLayoutData(new Margins(0)));
v.add(hBox, new VerticalLayoutData(1, -1, new Margins(10,0,0,0)));
v.add(workflowOperatorPanel, new VerticalLayoutData(-1, -1,
new Margins(0))); // operator
v.add(computationParametersPanel, new VerticalLayoutData(1, -1,
new Margins(0,5,5,5)));
removeAllButton.setEnabled(true);
forceLayout();
}
@Override
public HandlerRegistration addEmptyComputationPanelEventHandler(
EmptyComputationPanelEventHandler handler) {
return addHandler(handler, EmptyComputationPanelEvent.getType());
public HandlerRegistration addStartComputationEventHandler(
StartComputationEventHandler handler) {
return addHandler(handler, StartComputationEvent.getType());
}
public void addOperator(Operator op) {
computationParametersPanel = new ComputationParametersPanel(op);
computationParametersPanel.setHandler(new ComputationParametersPanelHandler() {
@Override
public void startComputation(String computationTitle,
String computationDescription) {
if (computationParametersPanel != null) {
forceLayout();
computationParametersPanel.updateOperatorParametersValues();
Operator op = computationParametersPanel.getOperator();
StartComputationEvent startComputationEvent = new StartComputationEvent(op, computationTitle, computationDescription);
fireEvent(startComputationEvent);
}
}
});
addComputationParametersPanel(computationParametersPanel);
}
}

View File

@ -0,0 +1,295 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.experimentArea;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
import org.gcube.portlets.user.dataminermanager.client.bean.Operator;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ColumnListParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ColumnParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;
import org.gcube.portlets.user.dataminermanager.client.events.ComponentRefreshLayoutEvent;
import org.gcube.portlets.user.dataminermanager.client.events.ComponentRefreshLayoutEvent.ComponentRefreshLayoutEventHandler;
import org.gcube.portlets.user.dataminermanager.client.events.ComponentRefreshLayoutEvent.HasComponentRefreshLayoutEventHandler;
import org.gcube.portlets.user.dataminermanager.client.parametersfield.AbstractFld;
import org.gcube.portlets.user.dataminermanager.client.parametersfield.OperatorFieldWidget;
import org.gcube.portlets.user.dataminermanager.client.parametersfield.TabularFld;
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Image;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.container.HtmlLayoutContainer;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
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.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.FieldSet;
import com.sencha.gxt.widget.core.client.form.FormPanel;
import com.sencha.gxt.widget.core.client.form.TextField;
/**
*
* @author Giancarlo Panichi email: <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class ComputationParametersPanel extends SimpleContainer {
public interface ComputationParametersPanelHandler {
public void startComputation(String computationTitle,
String computationDescription);
}
private static final String START_BUTTON_TOOLTIP = "Start Computation";
private static final ImageResource PRELOAD_IMAGE = DataMinerManager.resources
.loaderBig();
private VerticalLayoutContainer v;
private Operator operator;
private FormPanel parametersPanel;
private FieldSet parametersFieldSet;
private VerticalLayoutContainer vParameters;
private Map<String, OperatorFieldWidget> fieldWidgetsMap;
private ComputationParametersPanelHandler handler = null;
private TextField titleField;
private String defaultComputationTitle;
/*
* public ComputationParametersPanel(DataMinerPortletServiceAsync service,
* Operator operator, ComputationParametersPanelHandler handler) {
* this(operator); this.setHandler(handler); }
*/
public ComputationParametersPanel(Operator operator) {
super();
this.operator = operator;
fieldWidgetsMap = new HashMap<>();
try {
setDefaultComputationTitle();
init();
create();
} catch (Throwable e) {
e.printStackTrace();
}
}
private void init() {
addStyleName("workflow");
}
private void create() {
v = new VerticalLayoutContainer();
add(v);
Image img = new Image(GWT.getModuleBaseURL() + "../images/operators/"
+ (operator.hasImage() ? operator.getId() : "DEFAULT_IMAGE")
+ ".png");
img.setStylePrimaryName("workflow-icon");
v.add(img, new VerticalLayoutData(-1, -1, new Margins(-10,0,0,5)));
HtmlLayoutContainer title = new HtmlLayoutContainer(operator.getName());
title.addStyleName("workflow-title");
v.add(title, new VerticalLayoutData(-1, -1, new Margins(15,0,0,-25)));
String descr = operator.getDescription();
descr = (descr == null || descr.contentEquals("")) ? "no-description"
: operator.getDescription();
HtmlLayoutContainer description = new HtmlLayoutContainer(descr);
description.addStyleName("workflow-description");
v.add(description, new VerticalLayoutData(-1, -1, new Margins(0,0,0,5)));
addTitleField();
parametersPanel = new FormPanel() {
@Override
public boolean isValid(boolean preventMark) {
boolean flag = super.isValid(preventMark);
if (flag) {
for (Map.Entry<String, OperatorFieldWidget> entry : fieldWidgetsMap
.entrySet()) {
OperatorFieldWidget fieldWidget = entry.getValue();
flag = flag && fieldWidget.isValid();
}
}
return flag;
}
};
parametersPanel.setBorders(false);
// parametersPanel.getElement().getStyle().setMargin(20, px);
parametersFieldSet = new FieldSet();
parametersFieldSet.setHeadingText("Parameters");
vParameters = new VerticalLayoutContainer();
parametersFieldSet.add(vParameters, new MarginData(0));
parametersFieldSet.setCollapsible(false);
parametersPanel.add(parametersFieldSet, new MarginData(new Margins(5,5, 5, 5)));
v.add(parametersPanel, new VerticalLayoutData(1, -1, new Margins()));
loadOperatorParameters();
fireEvent(new ComponentRefreshLayoutEvent());
}
/**
*
*/
private void addTitleField() {
titleField = new TextField();
titleField.setWidth(250);
titleField.setValue(defaultComputationTitle);
FieldLabel titleLabel = new FieldLabel(titleField, "Computation Title");
v.add(titleLabel, new VerticalLayoutData(-1, -1,
new Margins(0,0,0,5)));
}
/**
* @param parametersPanel
*/
private void loadOperatorParameters() {
DataMinerManager.getService().getParameters(operator,
new AsyncCallback<List<Parameter>>() {
@Override
public void onSuccess(List<Parameter> result) {
Log.debug("Retrieved Parameters!");
operator.setOperatorParameters(result);
vParameters.clear();
showForm();
}
@Override
public void onFailure(Throwable caught) {
UtilsGXT3.alert("Error ",
"Impossible to retrieve parameters.");
}
});
Image img = new Image(PRELOAD_IMAGE);
img.setStyleName("workflow-parameters-preload");
vParameters.add(img, new VerticalLayoutData(-1, -1, new Margins()));
forceLayout();
}
/**
*
*/
protected void showForm() {
try {
// field widgets creation
for (Parameter p : operator.getOperatorParameters()) {
OperatorFieldWidget fieldWidget = new OperatorFieldWidget(p);
fieldWidgetsMap.put(p.getName(), fieldWidget);
vParameters.add(fieldWidget.getParameterLabel(),
new VerticalLayoutData(1, -1, new Margins()));
}
for (Parameter p : operator.getOperatorParameters()) {
if (p.isColumn() || p.isColumnList()) {
// search for the table parameter which it depends
String tabParamName = (p.isColumn() ? ((ColumnParameter) p)
.getReferredTabularParameterName()
: ((ColumnListParameter) p)
.getReferredTabularParameterName());
try {
// get the column field and the tabular field referred
TabularFld tabularField = (TabularFld) fieldWidgetsMap
.get(tabParamName).getField();
if (tabularField != null) {
AbstractFld field = fieldWidgetsMap
.get(p.getName()).getField();
tabularField.addChangeListener(field);
}
} catch (Exception e) {
e.printStackTrace();
UtilsGXT3
.alert("Error",
"Column parameter \""
+ p.getName()
+ " refers to a tabular parameter that doesn't exists ("
+ tabParamName + ")\"", null);
}
}
}
final TextButton submit = new TextButton("Start Computation");
submit.setToolTip(START_BUTTON_TOOLTIP);
submit.setIcon(DataMinerManager.resources.startComputation());
submit.getElement().getStyle().setMarginLeft(20, Unit.PX);
submit.getElement().getStyle().setMarginBottom(20, Unit.PX);
submit.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
if (handler != null && parametersPanel.isValid()) {
String value = titleField.getValue();
String title = (value == null || value
.contentEquals("")) ? defaultComputationTitle
: value;
handler.startComputation(title, title); // TODO insert
// description
}
}
});
//new VerticalLayoutData(-1, -1, new Margins(0, 0, 20,20))
v.add(submit);
forceLayout();
} catch (Throwable e) {
Log.error("Error in show form:" + e.getLocalizedMessage());
e.printStackTrace();
}
}
public void updateOperatorParametersValues() {
for (Map.Entry<String, OperatorFieldWidget> entry : fieldWidgetsMap
.entrySet()) {
OperatorFieldWidget fieldWidget = entry.getValue();
fieldWidget.updateOperatorParameterValue();
}
}
/**
* @return the operator
*/
public Operator getOperator() {
return operator;
}
public void setHandler(ComputationParametersPanelHandler handler) {
this.handler = handler;
}
public void setDefaultComputationTitle() {
String name = this.operator.getName();
String date = DateTimeFormat
.getFormat(PredefinedFormat.DATE_TIME_SHORT).format(new Date());
defaultComputationTitle = name + "-" + date;
}
}

View File

@ -1,252 +0,0 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.experimentArea;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
import org.gcube.portlets.user.dataminermanager.client.bean.Operator;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ColumnListParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ColumnParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;
import org.gcube.portlets.user.dataminermanager.client.form.AbstractFld;
import org.gcube.portlets.user.dataminermanager.client.form.OperatorFieldWidget;
import org.gcube.portlets.user.dataminermanager.client.form.TabularFld;
import org.gcube.portlets.user.dataminermanager.client.rpc.DataMinerPortletServiceAsync;
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Image;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.container.HorizontalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
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.FieldSet;
import com.sencha.gxt.widget.core.client.form.FormPanel;
import com.sencha.gxt.widget.core.client.form.TextField;
/**
* @author ceras
*
*/
public class WorkflowOperatorPanel extends SimpleContainer {
/**
* @author ceras
*
*/
public interface WorkflowOperatorPanelHandler {
public void startComputation(String computationTitle, String computationDescription);
}
private static final String START_BUTTON_TOOLTIP = "Start Computation";
private static final ImageResource PRELOAD_IMAGE = DataMinerManager.resources.loaderBig();
private VerticalLayoutContainer v;
private Operator operator;
private FormPanel parametersPanel;
private FieldSet parametersFieldSet;
private Map<String, OperatorFieldWidget> fieldWidgetsMap = new HashMap<String, OperatorFieldWidget>();
//private Map<Parameter, String> parameterValues = new HashMap<Parameter, String>();
private WorkflowOperatorPanelHandler handler=null;
private TextField titleField;
private String defaultComputationTitle;
public WorkflowOperatorPanel(DataMinerPortletServiceAsync service, Operator operator, WorkflowOperatorPanelHandler handler) {
this(operator);
this.setHandler(handler);
}
/**
*
*/
public WorkflowOperatorPanel(Operator operator) {
super();
v=new VerticalLayoutContainer();
add(v);
this.operator = operator;
this.defaultComputationTitle = getDefaultComputationTitle();
//lc.setLayout(new FitLayout());
addStyleName("workflow");
Image img = new Image(GWT.getModuleBaseURL()+"../images/operators/"+(operator.hasImage() ? operator.getId() : "DEFAULT_IMAGE")+".png");
img.addStyleName("workflow-icon");
v.add(img);
HTML title = new HTML(operator.getName());
title.addStyleName("workflow-title");
v.add(title);
String descr = operator.getDescription();
descr = (descr==null || descr.contentEquals("")) ? "no-description" : operator.getDescription();
HTML description = new HTML(descr);
description.addStyleName("workflow-description");
v.add(description);
addTitleField();
parametersPanel = new FormPanel(){
@Override
public boolean isValid(boolean preventMark) {
boolean flag = super.isValid(preventMark);
if (flag) {
for (Map.Entry<String, OperatorFieldWidget> entry : fieldWidgetsMap.entrySet()) {
OperatorFieldWidget fieldWidget = entry.getValue();
flag = flag && fieldWidget.isValid();
}
}
return flag;
}
};
parametersPanel.setBorders(false);
//parametersPanel.getElement().getStyle().setMargin(20, px);
parametersFieldSet = new FieldSet();
parametersFieldSet.setHeadingText("Parameters");
parametersPanel.add(parametersFieldSet);
v.add(parametersPanel);
loadOperatorParameters();
}
/**
*
*/
private void addTitleField() {
HorizontalLayoutContainer hp = new HorizontalLayoutContainer();
hp.add(new HTML("<div style='margin-left:30px; margin-right:10px; margin-top:5px'>Computation Title: </div>"));
titleField = new TextField();
titleField.setWidth(250);
titleField.setValue(this.defaultComputationTitle);
FieldLabel titleLabel=new FieldLabel(titleField,"Computation Title");
hp.add(titleLabel);
v.add(hp);
}
/**
* @param parametersPanel
*/
private void loadOperatorParameters() {
DataMinerManager.getService().getParameters(operator, new AsyncCallback<List<Parameter>>() {
@Override
public void onSuccess(List<Parameter> result) {
operator.setOperatorParameters(result);
parametersFieldSet.clear();
showForm();
}
@Override
public void onFailure(Throwable caught) {
UtilsGXT3.alert("Error ", "Impossible to retrieve parameters.");
}
});
Image img = new Image(PRELOAD_IMAGE);
img.setStyleName("workflow-parameters-preload");
parametersFieldSet.add(img);
}
/**
*
*/
protected void showForm() {
// field widgets creation
for (Parameter p : operator.getOperatorParameters()) {
OperatorFieldWidget fieldWidget = new OperatorFieldWidget(p);
fieldWidgetsMap.put(p.getName(), fieldWidget);
parametersFieldSet.add(fieldWidget);
}
for (Parameter p: operator.getOperatorParameters()) {
if (p.isColumn() || p.isColumnList()) {
// search for the table parameter which it depends
String tabParamName = (p.isColumn()
? ((ColumnParameter)p).getReferredTabularParameterName()
: ((ColumnListParameter)p).getReferredTabularParameterName());
try {
// get the column field and the tabular field referred
TabularFld tabularField = (TabularFld)fieldWidgetsMap.get(tabParamName).getField();
AbstractFld field = fieldWidgetsMap.get(p.getName()).getField();
tabularField.addChangeListener(field);
} catch (Exception e) {
e.printStackTrace();
UtilsGXT3.alert("Error", "Column parameter \""+p.getName()+" refers to a tabular parameter that doesn't exists ("+tabParamName+")\"", null);
}
}
}
final TextButton submit = new TextButton("Start Computation");
submit.setToolTip(START_BUTTON_TOOLTIP);
submit.setIcon(DataMinerManager.resources.startComputation());
submit.getElement().getStyle().setMarginLeft(20,Unit.PX);
submit.getElement().getStyle().setMarginBottom(20, Unit.PX);
submit.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
if (handler!=null && parametersPanel.isValid()) {
String value = titleField.getValue();
String title = (value==null || value.contentEquals("")) ? defaultComputationTitle : value;
handler.startComputation(title, title); // TODO insert description
}
}
});
v.add(submit);
forceLayout();
parametersPanel.forceLayout();
}
public void updateOperatorParametersValues() {
for (Map.Entry<String, OperatorFieldWidget> entry : fieldWidgetsMap.entrySet()) {
OperatorFieldWidget fieldWidget = entry.getValue();
fieldWidget.updateOperatorParameterValue();
}
}
/**
* @return the operator
*/
public Operator getOperator() {
return operator;
}
public void setHandler(WorkflowOperatorPanelHandler handler) {
this.handler = handler;
}
public String getDefaultComputationTitle() {
String name = this.operator.getName();
//String date = DateTimeFormat.getShortDateTimeFormat().format(new Date());
String date = DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_SHORT).format(new Date());
return name+"-"+date;
}
}

View File

@ -6,9 +6,8 @@ package org.gcube.portlets.user.dataminermanager.client.experimentArea;
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
import org.gcube.portlets.user.dataminermanager.client.bean.Operator;
import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider;
import org.gcube.portlets.user.dataminermanager.client.events.EmptyComputationPanelEvent;
import org.gcube.portlets.user.dataminermanager.client.events.ResubmitComputationEvent;
import org.gcube.portlets.user.dataminermanager.client.experimentArea.WorkflowOperatorPanel.WorkflowOperatorPanelHandler;
import org.gcube.portlets.user.dataminermanager.client.events.StartComputationEvent;
import com.allen_sauer.gwt.log.client.Log;
import com.sencha.gxt.widget.core.client.TabItemConfig;
@ -24,7 +23,7 @@ public class WorkflowPanel extends TabPanel {
public static final String DEFAULT_OPERATOR = "AQUAMAPS_SUITABLE";
private WorkflowOperatorPanel workflowOperatorPanel;
private ComputationExecutionPanel computationExecutionPanel;
private ComputationPanel computationPanel;
@ -44,7 +43,6 @@ public class WorkflowPanel extends TabPanel {
}
private void create() {
workflowOperatorPanel = null;
TabItemConfig tabWorkFlowLcItemConf = new TabItemConfig(
".: Computation", false);
@ -52,13 +50,14 @@ public class WorkflowPanel extends TabPanel {
.folderExplore());
computationPanel = new ComputationPanel();
computationPanel
.addEmptyComputationPanelEventHandler(new EmptyComputationPanelEvent.EmptyComputationPanelEventHandler() {
.addStartComputationEventHandler(new StartComputationEvent.StartComputationEventHandler() {
@Override
public void onEmpty(EmptyComputationPanelEvent event) {
Log.debug("EmptyComputationPanelEvent Received");
workflowOperatorPanel = null;
public void onStart(StartComputationEvent event) {
Log.debug("StartComputationEvent Received:"+event);
startComputation(event.getOp(), event.getComputationTitle(),
event.getComputationDescription());
}
});
add(computationPanel, tabWorkFlowLcItemConf);
@ -93,35 +92,22 @@ public class WorkflowPanel extends TabPanel {
* @param operator
*
*/
private void startComputation(String computationTitle,
private void startComputation(Operator op, String computationTitle,
String computationDescription) {
if (workflowOperatorPanel != null) {
forceLayout();
workflowOperatorPanel.updateOperatorParametersValues();
Operator op = workflowOperatorPanel.getOperator();
computationExecutionPanel.startNewComputation(op, computationTitle,
computationDescription);
}
setActiveWidget(computationExecutionPanel);
computationExecutionPanel.startNewComputation(op, computationTitle,
computationDescription);
}
public void addOperator(Operator op) {
setActiveWidget(computationPanel);
workflowOperatorPanel = new WorkflowOperatorPanel(op);
workflowOperatorPanel.setHandler(new WorkflowOperatorPanelHandler() {
@Override
public void startComputation(String computationTitle,
String computationDescription) {
WorkflowPanel.this.startComputation(computationTitle,
computationDescription);
setActiveWidget(computationExecutionPanel);
}
});
computationPanel.addWorkflowOperatorPanel(workflowOperatorPanel);
computationPanel.addOperator(op);
}
}

View File

@ -1,55 +0,0 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ObjectParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.widget.core.client.form.TextField;
/**
*
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class StringFld extends AbstractFld {
private TextField textField;
/**
* @param parameter
*/
public StringFld(Parameter parameter) {
super(parameter);
textField = new TextField();
ObjectParameter p = (ObjectParameter) parameter;
textField.setValue(p.getDefaultValue());
if (p.getDefaultValue() == null)
textField.setAllowBlank(false);
if (p.getDescription() != null)
textField.setToolTip(p.getDescription());
}
/**
*
*/
@Override
public String getValue() {
return textField.getValue();
}
/**
*
*/
@Override
public Widget getWidget() {
return textField;
}
}

View File

@ -1,14 +1,16 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;
import com.google.gwt.user.client.ui.Widget;
/**
* @author ceras
*
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public abstract class AbstractFld {

View File

@ -1,7 +1,7 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ObjectParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;

View File

@ -1,7 +1,7 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import java.util.ArrayList;

View File

@ -1,7 +1,7 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,4 +1,4 @@
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ObjectParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;

View File

@ -1,7 +1,7 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.EnumParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;

View File

@ -1,7 +1,7 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import java.util.ArrayList;
import java.util.Arrays;

View File

@ -1,4 +1,4 @@
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ObjectParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;

View File

@ -1,5 +1,5 @@
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ObjectParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;

View File

@ -1,7 +1,7 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,7 +1,7 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,7 +1,7 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
import org.gcube.portlets.user.dataminermanager.shared.data.TableItemSimple;

View File

@ -1,35 +1,27 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ListParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ObjectParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.user.client.ui.HTML;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.container.HorizontalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.HorizontalLayoutContainer.HorizontalLayoutData;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
import com.sencha.gxt.widget.core.client.form.FieldLabel;
/**
* @author ceras
*
* @author Giancarlo Panichi email: <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class OperatorFieldWidget extends SimpleContainer {
public class OperatorFieldWidget {
private Parameter parameter;
private AbstractFld field;
private HorizontalLayoutContainer horiz;
// private Field generalParameterField;
// private SimpleComboBox<String> inputDataParameterField;
// private TextField<String> outputDataParameterField;
private FieldLabel parameterLabel;
/**
*
@ -37,10 +29,8 @@ public class OperatorFieldWidget extends SimpleContainer {
public OperatorFieldWidget(Parameter p) {
super();
this.parameter = p;
horiz = new HorizontalLayoutContainer();
try {
// this.setStyleAttribute("margin", "10px");
if (p.isObject())
field = createObjectField((ObjectParameter) p);
else if (p.isEnum())
@ -58,22 +48,21 @@ public class OperatorFieldWidget extends SimpleContainer {
else if (p.isFile())
field = new FileFld(p);
FieldLabel label = new FieldLabel(field.getWidget(), p.getName());
horiz.add(label, new HorizontalLayoutData(-1, 1, new Margins(0)));
if (p.getDescription() != null) {
HTML descr = new HTML(p.getDescription());
descr.addStyleName("workflow-fieldDescription");
horiz.add(descr);
if (field == null) {
parameterLabel = new FieldLabel(null, p.getName());
parameterLabel.setLabelWidth(200);
parameterLabel.setLabelWordWrap(true);
} else {
parameterLabel = new FieldLabel(field.getWidget(), p.getName());
parameterLabel.setLabelWidth(200);
parameterLabel.setLabelWordWrap(true);
}
} catch (Throwable e) {
Log.error("Error: " + e.getLocalizedMessage());
e.printStackTrace();
horiz.add(new FieldLabel(new HTML("Error in field retrieving!"),p.getName()));
}
add(horiz, new MarginData(0));
}
/**
@ -91,6 +80,10 @@ public class OperatorFieldWidget extends SimpleContainer {
return getFieldValue();
}
public FieldLabel getParameterLabel() {
return parameterLabel;
}
/**
* @param p
* @return

View File

@ -0,0 +1,87 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ObjectParameter;
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.core.client.util.Padding;
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData;
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack;
import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer;
import com.sencha.gxt.widget.core.client.container.HorizontalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.HorizontalLayoutContainer.HorizontalLayoutData;
import com.sencha.gxt.widget.core.client.container.HtmlLayoutContainer;
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
import com.sencha.gxt.widget.core.client.form.TextField;
/**
*
* @author Giancarlo Panichi email: <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class StringFld extends AbstractFld {
private SimpleContainer simpleContainer;
private HorizontalLayoutContainer horiz;
private TextField textField;
/**
* @param parameter
*/
public StringFld(Parameter parameter) {
super(parameter);
simpleContainer=new SimpleContainer();
HBoxLayoutContainer horiz = new HBoxLayoutContainer();
horiz.setPack(BoxLayoutPack.START);
horiz.setEnableOverflow(false);
ObjectParameter p = (ObjectParameter) parameter;
textField = new TextField();
textField.setValue(p.getDefaultValue());
if (p.getDefaultValue() == null)
textField.setAllowBlank(false);
HtmlLayoutContainer descr;
if (p.getDescription() == null) {
descr=new HtmlLayoutContainer("<p style='margin-left:5px;'></p>");
descr.addStyleName("workflow-fieldDescription");
} else {
textField.setToolTip(p.getDescription());
descr=new HtmlLayoutContainer("<p style='margin-left:5px;'>"+p.getDescription()+"</p>");
descr.addStyleName("workflow-fieldDescription");
}
horiz.add(textField,new BoxLayoutData(new Margins()));
horiz.add(descr,new BoxLayoutData(new Margins()));
/*horiz.add(textField, new HorizontalLayoutData(-1,-1,new Margins()));
horiz.add(descr,new HorizontalLayoutData(1,-1,new Margins()));*/
simpleContainer.add(horiz);
}
/**
*
*/
@Override
public String getValue() {
return textField.getValue();
}
/**
*
*/
@Override
public Widget getWidget() {
return simpleContainer;
}
}

View File

@ -1,7 +1,7 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import java.util.ArrayList;
import java.util.Arrays;

View File

@ -1,7 +1,7 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.form;
package org.gcube.portlets.user.dataminermanager.client.parametersfield;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,13 +1,9 @@
package org.gcube.portlets.user.dataminermanager.client.rpc;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.gcube.portlets.user.dataminermanager.client.bean.ComputationStatus;
import org.gcube.portlets.user.dataminermanager.client.bean.CsvMetadata;
import org.gcube.portlets.user.dataminermanager.client.bean.FileMetadata;
import org.gcube.portlets.user.dataminermanager.client.bean.ImportStatus;
import org.gcube.portlets.user.dataminermanager.client.bean.Operator;
import org.gcube.portlets.user.dataminermanager.client.bean.OperatorsClassification;
import org.gcube.portlets.user.dataminermanager.client.bean.ResourceItem;
@ -32,22 +28,7 @@ import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("dataminerman")
public interface DataMinerPortletService extends RemoteService {
public UserInfo hello() throws ServiceException;
// get all operators and categories
public List<OperatorsClassification> getOperatorsClassifications()
throws Exception;
// get parameters for a given operator
public List<Parameter> getParameters(Operator operator) throws Exception;
public ComputationId startComputation(Operator op, String computationTitle,
String computationDescription) throws Exception;
// get a status for a computation
public ComputationStatus getComputationStatus(ComputationId computationId)
throws Exception;
// get tables info belongs to a given templates set (for relative user)
public List<TableItemSimple> getTableItems(List<String> templates)
throws Exception;
@ -59,17 +40,7 @@ public interface DataMinerPortletService extends RemoteService {
public Map<String, String> getParametersMapByComputationId(ComputationId computationId) throws ServiceException;
public String importTable(CsvMetadata csvMetadata) throws Exception;
public CsvMetadata getCsvMetadataFromCsvImporterWizard() throws Exception;
public List<ImportStatus> getImportsStatus(Date todayDate)
throws ServiceException;
// get a status for an import
public ImportStatus getImportStatusById(String id) throws ServiceException;
public Map<String, Resource> getMapFromMapResource(MapResource mapResource)
throws Exception;
@ -86,12 +57,28 @@ public interface DataMinerPortletService extends RemoteService {
public String exportResource(String folderId, String fileName,
ResourceItem resourceItem) throws Exception;
/**
* Dataminer
*
*/
public UserInfo hello() throws ServiceException;
public List<OperatorsClassification> getOperatorsClassifications()
throws Exception;
public List<Parameter> getParameters(Operator operator) throws Exception;
public ComputationId startComputation(Operator op, String computationTitle,
String computationDescription) throws Exception;
public ComputationStatus getComputationStatus(ComputationId computationId)
throws Exception;
public ComputationId resubmit(ComputationId computationId) throws ServiceException;
public FileMetadata getFilePathFromImporterWizard() throws Exception;
public String importFile(FileMetadata fileMetadata) throws Exception;
public TableItemSimple retrieveTableInformation(Item item)
throws ServiceException;

View File

@ -36,21 +36,6 @@ public interface DataMinerPortletServiceAsync {
public static DataMinerPortletServiceAsync INSTANCE = (DataMinerPortletServiceAsync) GWT
.create(DataMinerPortletService.class);
void hello(AsyncCallback<UserInfo> callback);
void getOperatorsClassifications(
AsyncCallback<List<OperatorsClassification>> callback);
void getParameters(Operator operator,
AsyncCallback<List<Parameter>> callback);
void startComputation(Operator op, String computationTitle,
String computationDescription,
AsyncCallback<ComputationId> asyncCallback);
void getComputationStatus(ComputationId computationId,
AsyncCallback<ComputationStatus> asyncCallback);
void getTableItems(List<String> templates,
AsyncCallback<List<TableItemSimple>> callback);
@ -62,13 +47,6 @@ public interface DataMinerPortletServiceAsync {
void getResourceByComputationId(ComputationId computationId,
AsyncCallback<Resource> callback);
void importTable(CsvMetadata csvMetadata, AsyncCallback<String> callback);
void getImportsStatus(Date todayDate,
AsyncCallback<List<ImportStatus>> callback);
void getImportStatusById(String id, AsyncCallback<ImportStatus> callback);
void getMapFromMapResource(MapResource mapResource,
AsyncCallback<Map<String, Resource>> callback);
@ -82,17 +60,31 @@ public interface DataMinerPortletServiceAsync {
void removeImport(String id, AsyncCallback<Void> callback);
void getCsvMetadataFromCsvImporterWizard(AsyncCallback<CsvMetadata> callback);
void exportResource(String folderId, String fileName,
ResourceItem resourceItem, AsyncCallback<String> callback);
/**
* DataMiner
*
*/
void hello(AsyncCallback<UserInfo> callback);
void getOperatorsClassifications(
AsyncCallback<List<OperatorsClassification>> callback);
void getParameters(Operator operator,
AsyncCallback<List<Parameter>> callback);
void startComputation(Operator op, String computationTitle,
String computationDescription,
AsyncCallback<ComputationId> asyncCallback);
void getComputationStatus(ComputationId computationId,
AsyncCallback<ComputationStatus> asyncCallback);
void resubmit(ComputationId computationId, AsyncCallback<ComputationId> callback);
void getFilePathFromImporterWizard(AsyncCallback<FileMetadata> callback);
void importFile(FileMetadata fileMetadata, AsyncCallback<String> callback);
void retrieveTableInformation(Item item, AsyncCallback<TableItemSimple> callback);
void getDataMinerWorkArea(AsyncCallback<DataMinerWorkArea> asyncCallback);

View File

@ -47,19 +47,19 @@
<entry-point
class='org.gcube.portlets.user.dataminermanager.client.DataMinerManager' />
<!--
<set-property name="log_ConsoleLogger" value="ENABLED" /> <set-property
name="log_DivLogger" value="ENABLED" /> <set-property name="log_GWTLogger"
value="ENABLED" /> <set-property name="log_SystemLogger" 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_DivLogger" 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"
/> -->

View File

@ -3,7 +3,6 @@ package org.gcube.portlets.user.dataminermanager.server;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@ -20,10 +19,6 @@ import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
import org.gcube.common.homelibrary.home.workspace.exceptions.ItemAlreadyExistException;
import org.gcube.common.homelibrary.util.WorkspaceUtil;
import org.gcube.portlets.user.dataminermanager.client.bean.ComputationStatus;
import org.gcube.portlets.user.dataminermanager.client.bean.ComputationStatus.Status;
import org.gcube.portlets.user.dataminermanager.client.bean.CsvMetadata;
import org.gcube.portlets.user.dataminermanager.client.bean.FileMetadata;
import org.gcube.portlets.user.dataminermanager.client.bean.ImportStatus;
import org.gcube.portlets.user.dataminermanager.client.bean.Operator;
import org.gcube.portlets.user.dataminermanager.client.bean.OperatorsClassification;
import org.gcube.portlets.user.dataminermanager.client.bean.ResourceItem;
@ -327,106 +322,7 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
}
}
@Override
public String importTable(CsvMetadata csvMetadata) throws Exception {
try {
HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getASLSession(session);
return "1";
} catch (Exception e) {
logger.error(e.getLocalizedMessage(), e);
// e.printStackTrace();
throw (e);
}
}
@Override
public String importFile(FileMetadata fileMetadata) throws Exception {
try {
HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getASLSession(session);
String id = "";
return id;
} catch (Exception e) {
logger.error(e.getLocalizedMessage(), e);
throw (e);
}
}
@Override
public CsvMetadata getCsvMetadataFromCsvImporterWizard() throws Exception {
HttpSession httpSession = this.getThreadLocalRequest().getSession();
//CSVParserConfiguration csvParserConfiguration = (CSVParserConfiguration) httpSession
// .getAttribute("csvParserConfiguration");
//String csvImportFilePath = (String) httpSession
// .getAttribute("csvImportFilePath");
//boolean hasHeader = csvParserConfiguration.isHasHeader();
//String delimiter = "" + csvParserConfiguration.getDelimiter();
//String comment = "" + csvParserConfiguration.getComment();
//return new CsvMetadata(hasHeader, csvImportFilePath, delimiter, comment);
return null;
}
@Override
public FileMetadata getFilePathFromImporterWizard() throws Exception {
FileMetadata result;
// logger.info("getFilePathFromImporterWizard");
HttpSession httpSession = this.getThreadLocalRequest().getSession();
String fileImportFilePath = (String) httpSession
.getAttribute("fileImportPath");
// logger.info("filePaht: " + fileImportFilePath);
String type = (String) httpSession.getAttribute("typeFile");
// logger.info("type: " + type);
if (type == "DARWINCORE") {
String fileTaxaImportFilePath = (String) httpSession
.getAttribute("generatedTaxaFilePath");
// logger.info("fileTaxaImportFilePath: " + fileTaxaImportFilePath);
String fileVernacularImportFilePath = (String) httpSession
.getAttribute("generatedVernacular");
// logger.info("fileVernacularImportFilePath: "
// + fileVernacularImportFilePath);
result = new FileMetadata(fileImportFilePath,
fileTaxaImportFilePath, fileVernacularImportFilePath, type);
} else
result = new FileMetadata(fileImportFilePath, type);
// logger.info("result.filePath: " + result.getFileAbsolutePath());
// logger.info("result.type: " + result.getType());
return result;
}
@Override
public List<ImportStatus> getImportsStatus(Date todayDate)
throws ServiceException {
HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getASLSession(session);
List<ImportStatus> listStatus = new ArrayList<ImportStatus>();
return listStatus;
}
@Override
public ImportStatus getImportStatusById(String importId)
throws ServiceException {
HttpSession session = this.getThreadLocalRequest().getSession();
ASLSession aslSession = SessionUtil.getASLSession(session);
Status status = Status.COMPLETE;
ImportStatus importStatus = new ImportStatus();
importStatus.setStatus(status);
return importStatus;
}
@ -616,5 +512,6 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements
}
}

View File

@ -191,8 +191,7 @@
opacity: 0.6;
}
/* WORKFLOW PANEL */
.workflow, .tableImporter, .uploadMonitor {
.tableImporter, .uploadMonitor {
box-shadow: inset 0 0 28px rgba(0, 0, 0, 0.11), 0 0 0
rgba(255, 255, 255, 1), 0 0 1px rgba(196, 196, 196, 1), inset 0 0 1px
rgba(77, 77, 77, 1);
@ -215,6 +214,33 @@
margin-right: 5px;
}
/* WORKFLOW PANEL */
.workflow {
box-shadow: inset 0 0 28px rgba(0, 0, 0, 0.11), 0 0 0
rgba(255, 255, 255, 1), 0 0 1px rgba(196, 196, 196, 1), inset 0 0 1px
rgba(77, 77, 77, 1);
-moz-box-shadow: inset 0 0 28px rgba(0, 0, 0, 0.11), 0 0 0
rgba(255, 255, 255, 1), 0 0 1px rgba(196, 196, 196, 1), inset 0 0 1px
rgba(77, 77, 77, 1);
-webkit-box-shadow: inset 0 0 28px rgba(0, 0, 0, 0.11), 0 0 0
rgba(255, 255, 255, 1), 0 0 1px rgba(196, 196, 196, 1), inset 0 0 1px
rgba(77, 77, 77, 1);
-o-box-shadow: inset 0 0 28px rgba(0, 0, 0, 0.11), 0 0 0
rgba(255, 255, 255, 1), 0 0 1px rgba(196, 196, 196, 1), inset 0 0 1px
rgba(77, 77, 77, 1);
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-o-border-radius: 5px;
/*padding: 5px;*/
border: 1px solid black;
/*margin-left: 5px;
margin-right: 5px;*/
}
.workflow-icon {
border: 1px solid black;
float: left;
@ -228,22 +254,18 @@
font-size: 16px;
font-weight: bold;
color: #000077;
margin: 5px;
}
.workflow-description {
font-size: 13px;
color: #505050;
margin-left: 65px;
margin-bottom: 20px;
}
.workflow-fieldDescription {
font-size: 12px;
color: #505050;
text-align: right;
margin-left: 20px;
margin-top: 4px;
}
.workflow-templatesList {