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

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

Changed DataSpace view

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/data-miner-manager@128666 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2016-05-18 15:32:11 +00:00
parent e3061ef913
commit 288a732d93
9 changed files with 145 additions and 274 deletions

View File

@ -65,6 +65,7 @@ public class ComputationValueImagePanel extends SimpleContainer {
v.add(saveImageBtn, new VerticalLayoutData(-1, -1, new Margins(0)));
final Image img = new Image(computationValueImage.getValue());
img.setPixelSize(480, 320);
v.add(img, new VerticalLayoutData(1, -1, new Margins(0)));
}

View File

@ -77,9 +77,10 @@ public class ComputationsExecutedPanel extends FramedPanel {
setBodyBorder(false);
setBorders(false);
setBodyStyle("backgroundColor:white;");
setHeaderVisible(true);
setHeaderVisible(false);
setResize(true);
setHeadingText("List of Computations");
setBodyStyle("backgroundColor:white;");
}
@ -226,7 +227,7 @@ public class ComputationsExecutedPanel extends FramedPanel {
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(
event.getDataMinerWorkArea().getComputations().getFolder()
.getId(), false, showProperties, filterCriteria);
.getId(), false, showProperties, filterCriteria, true);
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
@Override
public void onSelectedItem(Item item) {

View File

@ -3,17 +3,20 @@
*/
package org.gcube.portlets.user.dataminermanager.client.computations;
import java.util.ArrayList;
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider;
import org.gcube.portlets.user.dataminermanager.client.events.ComputationDataEvent;
import org.gcube.portlets.user.dataminermanager.client.events.DataMinerWorkAreaEvent;
import org.gcube.portlets.user.dataminermanager.client.events.RefreshDataMinerWorkAreaEvent;
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
import com.allen_sauer.gwt.log.client.Log;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.FramedPanel;
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer;
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer.BorderLayoutData;
import com.sencha.gxt.widget.core.client.TabItemConfig;
import com.sencha.gxt.widget.core.client.TabPanel;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
/**
*
@ -21,9 +24,11 @@ import com.sencha.gxt.widget.core.client.container.MarginData;
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class ComputationsPanel extends FramedPanel {
public class ComputationsPanel extends SimpleContainer {
private ArrayList<ComputationsViewerPanel> computationsViewers;
private ComputationsExecutedPanel computationsExecutedPanel;
private ComputationsViewerPanel computationsViewerPanel;
private TabPanel computationsTabPanel;
public ComputationsPanel() {
super();
@ -33,11 +38,6 @@ public class ComputationsPanel extends FramedPanel {
}
private void init() {
setBodyStyle("backgroundColor:white;");
setBorders(false);
setBodyBorder(false);
setHeadingText("Computations");
setHeaderVisible(true);
}
@ -48,7 +48,7 @@ public class ComputationsPanel extends FramedPanel {
@Override
public void onComputationData(ComputationDataEvent event) {
Log.debug("Catch ComputationDataEvent: " + event);
expandsComputationsViewer();
addComputationsViewerPanel(event);
}
@ -90,7 +90,7 @@ public class ComputationsPanel extends FramedPanel {
}
switch (event.getDataMinerWorkAreaRegionType()) {
case Computations:
collapseComputationsViewer();
closeAllComputationsViewer();
break;
case DataSets:
break;
@ -103,14 +103,15 @@ public class ComputationsPanel extends FramedPanel {
private void manageRefreshDataMinerWorkAreaEvents(
RefreshDataMinerWorkAreaEvent event) {
Log.debug("ComputationsPanel recieved RefreshDataMinerWorkAreaEvent: " + event);
Log.debug("ComputationsPanel recieved RefreshDataMinerWorkAreaEvent: "
+ event);
if (event == null) {
Log.error("RefreshDataMinerWorkAreaEvent null");
return;
}
switch (event.getDataMinerWorkAreaElementType()) {
case Computations:
collapseComputationsViewer();
closeAllComputationsViewer();
break;
case InputDataSets:
break;
@ -122,46 +123,83 @@ public class ComputationsPanel extends FramedPanel {
}
private void collapseComputationsViewer() {
if (computationsViewerPanel.isExpanded()) {
computationsViewerPanel.collapse();
}
forceLayout();
}
private void expandsComputationsViewer() {
if (computationsViewerPanel.isCollapsed()) {
computationsViewerPanel.expand();
}
forceLayout();
}
private void create() {
computationsViewers = new ArrayList<>();
computationsExecutedPanel = new ComputationsExecutedPanel();
computationsViewerPanel = new ComputationsViewerPanel();
MarginData centerData = new MarginData(0);
computationsTabPanel = new TabPanel();
computationsTabPanel.setTabScroll(true);
computationsTabPanel.setBorders(false);
computationsTabPanel.setBodyBorder(false);
BorderLayoutData southData = new BorderLayoutData(0.5);
southData.setMargins(new Margins(0));
southData.setCollapsible(true);
southData.setSplit(true);
southData.setFloatable(false);
southData.setCollapseMini(false);
southData.setMargins(new Margins(5, 0, 0, 0));
southData.setCollapseHidden(false);
southData.setCollapsed(true);
TabItemConfig computationsExecutedItemConf = new TabItemConfig(
"List of Computations", false);
BorderLayoutContainer borderLayoutContainer = new BorderLayoutContainer();
borderLayoutContainer.setCenterWidget(computationsExecutedPanel,
centerData);
borderLayoutContainer
.setSouthWidget(computationsViewerPanel, southData);
computationsExecutedItemConf.setIcon(DataMinerManager.resources
.folderExplore());
add(borderLayoutContainer, new MarginData(new Margins(0)));
computationsTabPanel.add(computationsExecutedPanel,
computationsExecutedItemConf);
computationsTabPanel.setActiveWidget(computationsExecutedPanel);
add(computationsTabPanel, new MarginData(0));
}
private void addComputationsViewerPanel(ComputationDataEvent event) {
if (event == null || event.getComputationData() == null) {
Log.error("Invalid ComputationDataEvent: " + event);
UtilsGXT3.alert("Error", "Invalid ComputationDataEvent: " + event);
return;
}
if (event.getComputationData().getComputationId() == null) {
Log.error("Invalid ComputationId: "
+ event.getComputationData().getComputationId());
UtilsGXT3.alert("Error", "Invalid ComputationId: "
+ event.getComputationData().getComputationId());
return;
}
if (event.getComputationData().getComputationId().getId() == null
|| event.getComputationData().getComputationId().getId()
.isEmpty()) {
Log.error("Invalid Computation id: "
+ event.getComputationData().getComputationId().getId());
UtilsGXT3.alert("Error", "Invalid Computation id: "
+ event.getComputationData().getComputationId().getId());
return;
}
ComputationsViewerPanel computationsViewerPanel = new ComputationsViewerPanel(
event.getComputationData());
computationsViewers.add(computationsViewerPanel);
TabItemConfig computationsViewerItemConf = new TabItemConfig(event
.getComputationData().getComputationId().getId(), true);
computationsViewerItemConf.setIcon(DataMinerManager.resources
.folderExplore());
computationsTabPanel.add(computationsViewerPanel,
computationsViewerItemConf);
computationsTabPanel.setActiveWidget(computationsViewerPanel);
computationsTabPanel.forceLayout();
forceLayout();
}
private void closeAllComputationsViewer() {
for (ComputationsViewerPanel view : computationsViewers) {
if (computationsTabPanel.getWidgetIndex(view) != -1) {
computationsTabPanel.remove(view);
}
}
computationsViewers.clear();
computationsTabPanel.forceLayout();
forceLayout();
}
}

View File

@ -2,11 +2,6 @@ package org.gcube.portlets.user.dataminermanager.client.computations;
import java.util.LinkedHashMap;
import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider;
import org.gcube.portlets.user.dataminermanager.client.events.ComputationDataEvent;
import org.gcube.portlets.user.dataminermanager.client.events.DataMinerWorkAreaEvent;
import org.gcube.portlets.user.dataminermanager.client.events.RefreshDataMinerWorkAreaEvent;
import org.gcube.portlets.user.dataminermanager.client.events.UIStateEvent;
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
import org.gcube.portlets.user.dataminermanager.shared.data.computations.ComputationData;
import org.gcube.portlets.user.dataminermanager.shared.data.computations.ComputationValue;
@ -39,13 +34,11 @@ public class ComputationsViewerPanel extends FramedPanel {
private VerticalLayoutContainer v;
private ComputationData computationData;
public ComputationsViewerPanel() {
public ComputationsViewerPanel(ComputationData computationData) {
super();
Log.debug("ComputationsPanel");
// msgs = GWT.create(ServiceCategoryMessages.class);
this.computationData=computationData;
init();
bindToEvents();
create();
}
@ -56,10 +49,10 @@ public class ComputationsViewerPanel extends FramedPanel {
setBodyBorder(false);
setBorders(false);
setBodyStyle("backgroundColor:white;");
setHeaderVisible(true);
setHeaderVisible(false);
setResize(true);
setHeadingText("Computations Viewer");
setCollapsible(true);
setBodyStyle("backgroundColor:white;");
}
@ -67,139 +60,11 @@ public class ComputationsViewerPanel extends FramedPanel {
v = new VerticalLayoutContainer();
v.setScrollMode(ScrollMode.AUTO);
add(v);
}
private void bindToEvents() {
EventBusProvider.INSTANCE.addHandler(UIStateEvent.TYPE,
new UIStateEvent.UIStateEventHandler() {
@Override
public void onChange(UIStateEvent event) {
Log.debug("Catch UIStateEvent: " + event);
manageStateEvents(event);
}
});
EventBusProvider.INSTANCE.addHandler(DataMinerWorkAreaEvent.TYPE,
new DataMinerWorkAreaEvent.DataMinerWorkAreaEventHandler() {
@Override
public void onChange(DataMinerWorkAreaEvent event) {
Log.debug("Catch DataMinerWorkAreaEvent: " + event);
manageDataMinerWorkAreaEvents(event);
}
});
EventBusProvider.INSTANCE
.addHandler(
RefreshDataMinerWorkAreaEvent.TYPE,
new RefreshDataMinerWorkAreaEvent.RefreshDataMinerWorkAreaEventHandler() {
@Override
public void onRefresh(
RefreshDataMinerWorkAreaEvent event) {
Log.debug("Catch RefreshDataMinerWorkAreaEvent: "
+ event);
manageRefreshDataMinerWorkAreaEvents(event);
}
});
EventBusProvider.INSTANCE.addHandler(ComputationDataEvent.getType(),
new ComputationDataEvent.ComputationDataEventHandler() {
@Override
public void onComputationData(ComputationDataEvent event) {
Log.debug("Catch ComputationDataEvent: " + event);
showOutput(event);
}
});
}
private void manageStateEvents(UIStateEvent event) {
Log.debug("ComputationsViewerPanel recieved UIStateEvent: " + event);
if (event == null) {
Log.error("UIStateEvent null");
return;
}
switch (event.getUiStateType()) {
case START:
break;
case WAITING:
break;
case UPDATE:
break;
default:
break;
}
}
private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) {
Log.debug("ComputationsViewerPanel recieved DataMinerWorkAreaEvent: " + event);
if (event == null) {
Log.error("DataMinerWorkAreaEvent null");
return;
}
switch (event.getDataMinerWorkAreaEventType()) {
case OPEN:
case UPDATE:
resetPanel();
break;
default:
break;
}
}
private void manageRefreshDataMinerWorkAreaEvents(
RefreshDataMinerWorkAreaEvent event) {
Log.debug("ComputationsViewerPanel recieved RefreshDataMinerWorkAreaEvent: " + event);
if (event == null) {
Log.error("RefreshDataMinerWorkAreaEvent null");
return;
}
switch (event.getDataMinerWorkAreaElementType()) {
case Computations:
resetPanel();
break;
case InputDataSets:
break;
case OutputDataSets:
break;
default:
break;
}
}
public void resetPanel() {
v.clear();
SimpleContainer sectionTitle = new SimpleContainer();
HtmlLayoutContainer title = new HtmlLayoutContainer(
"<br><center>No computation selected.</center>");
sectionTitle.add(title);
v.add(sectionTitle, new VerticalLayoutData(-1, -1, new Margins(20)));
computationData = null;
v.forceLayout();
forceLayout();
}
private void showOutput(ComputationDataEvent event) {
v.clear();
computationData = event.getComputationData();
createView();
v.forceLayout();
forceLayout();
}
private void createView() {
if (computationData == null) {
Log.error("ComputationData is null!");

View File

@ -3,11 +3,11 @@
*/
package org.gcube.portlets.user.dataminermanager.client.dataspace;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.FramedPanel;
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer;
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer.BorderLayoutData;
import com.sencha.gxt.widget.core.client.container.MarginData;
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
import com.sencha.gxt.widget.core.client.TabItemConfig;
import com.sencha.gxt.widget.core.client.TabPanel;
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
/**
*
@ -15,11 +15,11 @@ import com.sencha.gxt.widget.core.client.container.MarginData;
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class DataSpacePanel extends FramedPanel {
private OutputDataSetsPanel computedDataPanel;
private InputDataSetsPanel importedDataPanel;
//private VerticalLayoutContainer v;
public class DataSpacePanel extends SimpleContainer {
private TabPanel dataSpaceTabPanel;
private OutputDataSetsPanel outputDataSetsPanel;
private InputDataSetsPanel inputDataSetsPanel;
public DataSpacePanel() {
super();
@ -28,76 +28,35 @@ public class DataSpacePanel extends FramedPanel {
}
private void init() {
setBodyStyle("backgroundColor:white;");
setBorders(false);
setBodyBorder(false);
setHeadingText("Data Space");
setHeaderVisible(true);
}
private void create() {
outputDataSetsPanel = new OutputDataSetsPanel();
inputDataSetsPanel = new InputDataSetsPanel();
dataSpaceTabPanel=new TabPanel();
dataSpaceTabPanel.setBorders(false);
dataSpaceTabPanel.setBodyBorder(false);
computedDataPanel = new OutputDataSetsPanel();
importedDataPanel = new InputDataSetsPanel();
TabItemConfig outputDataItemConf = new TabItemConfig("Output Data Sets",
false);
outputDataItemConf.setIcon(DataMinerManager.resources
.folderExplore());
dataSpaceTabPanel.add(outputDataSetsPanel, outputDataItemConf);
MarginData centerData = new MarginData(0);
BorderLayoutData southData = new BorderLayoutData(0.5);
southData.setMargins(new Margins(0));
southData.setCollapsible(true);
southData.setSplit(true);
southData.setFloatable(false);
southData.setCollapseMini(false);
southData.setMargins(new Margins(5, 0, 0, 0));
southData.setCollapseHidden(false);
BorderLayoutContainer borderLayoutContainer = new BorderLayoutContainer();
borderLayoutContainer.setCenterWidget(computedDataPanel, centerData);
borderLayoutContainer.setSouthWidget(importedDataPanel, southData);
add(borderLayoutContainer, new MarginData(new Margins(0)));
forceLayout();
TabItemConfig inputDataSetsItemConf = new TabItemConfig(
"Input Data Sets", false);
inputDataSetsItemConf.setIcon(DataMinerManager.resources
.folderExplore());
dataSpaceTabPanel.add(inputDataSetsPanel, inputDataSetsItemConf);
dataSpaceTabPanel.setActiveWidget(outputDataSetsPanel);
add(dataSpaceTabPanel);
}
/*
* v = new VerticalLayoutContainer();
* computedDataPanel = new OutputDataSetsPanel();
* importedDataPanel = new InputDataSetsPanel();
* SplitBar splitBar = new SplitBar(LayoutRegion.NORTH,
* importedDataPanel);
*
*
* importedDataPanel.addCollapseHandler(this);
* importedDataPanel.addExpandHandler(this);
*
* v.add(computedDataPanel, new VerticalLayoutData(1, 1, new
* Margins(0))); v.add(importedDataPanel, new VerticalLayoutData(1, -1,
* new Margins(0))); add(v);
*/
/*
@Override
public void onExpand(ExpandEvent event) {
v.clear();
v.add(computedDataPanel, new VerticalLayoutData(1, 0.5, new Margins(0)));
v.add(importedDataPanel, new VerticalLayoutData(1, 0.5, new Margins(0)));
importedDataPanel.expand();
forceLayout();
}
@Override
public void onCollapse(CollapseEvent event) {
v.clear();
v.add(computedDataPanel, new VerticalLayoutData(1, 1, new Margins(0)));
v.add(importedDataPanel, new VerticalLayoutData(1, -1, new Margins(0)));
importedDataPanel.collapse();
forceLayout();
}
*/
}

View File

@ -31,7 +31,7 @@ import com.sencha.gxt.cell.core.client.ButtonCell.ButtonScale;
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.ContentPanel;
import com.sencha.gxt.widget.core.client.FramedPanel;
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.VerticalLayoutContainer;
@ -46,7 +46,7 @@ import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class InputDataSetsPanel extends ContentPanel {
public class InputDataSetsPanel extends FramedPanel {
private Item selectedItem;
private MultipleDNDUpload dnd;
@ -71,11 +71,12 @@ public class InputDataSetsPanel extends ContentPanel {
forceLayoutOnResize = true;
setBodyBorder(false);
setBorders(false);
setHeaderVisible(true);
setHeaderVisible(false);
setResize(true);
setAnimCollapse(false);
setCollapsible(true);
setHeadingText("Input Data Sets");
setBodyStyle("backgroundColor:white;");
}
private void bindToEvents() {
@ -220,7 +221,7 @@ public class InputDataSetsPanel extends ContentPanel {
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(
event.getDataMinerWorkArea().getInputDataSets().getFolder()
.getId(), false, showProperties, filterCriteria);
.getId(), false, showProperties, filterCriteria, true);
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
@Override
public void onSelectedItem(Item item) {

View File

@ -31,7 +31,7 @@ import com.sencha.gxt.cell.core.client.ButtonCell.ButtonScale;
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.ContentPanel;
import com.sencha.gxt.widget.core.client.FramedPanel;
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.VerticalLayoutContainer;
@ -46,7 +46,7 @@ import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class OutputDataSetsPanel extends ContentPanel {
public class OutputDataSetsPanel extends FramedPanel {
private Item selectedItem;
private MultipleDNDUpload dnd;
@ -71,11 +71,11 @@ public class OutputDataSetsPanel extends ContentPanel {
forceLayoutOnResize = true;
setBodyBorder(false);
setBorders(false);
setHeaderVisible(true);
setHeaderVisible(false);
setResize(true);
setAnimCollapse(false);
setHeadingText("Output Data Sets");
setBodyStyle("backgroundColor:white;");
}
private void bindToEvents() {
@ -220,7 +220,7 @@ public class OutputDataSetsPanel extends ContentPanel {
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(
event.getDataMinerWorkArea().getOutputDataSets()
.getFolder().getId(), false, showProperties,
filterCriteria);
filterCriteria, true);
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
@Override

View File

@ -26,13 +26,21 @@ public class ExperimentPanel extends SimpleContainer implements
*/
public ExperimentPanel() {
super();
init();
create();
}
private void init() {
}
private void create() {
operatorsPanel = new OperatorsPanel(this);
workflowPanel = new WorkflowPanel();
//
BorderLayoutContainer experimentPanelLayout = new BorderLayoutContainer();
//experimentPanelLayout.setId("experimentPanelLayout");
experimentPanelLayout.setBorders(false);
experimentPanelLayout.setResize(true);
experimentPanelLayout.getElement().getStyle()
@ -51,10 +59,8 @@ public class ExperimentPanel extends SimpleContainer implements
westData.setCollapseMini(false);
westData.setMargins(new Margins(0, 5, 0, 0));
westData.setCollapseHidden(false);
experimentPanelLayout.setWestWidget(operatorsPanel, westData);
// filtersPanel.expand();
// filtersPanel.enable();
add(experimentPanelLayout, new MarginData(0));

View File

@ -34,9 +34,9 @@ public class Constants {
public static final int TIME_UPDATE_COMPUTATION_STATUS_PANEL = 10 * 1000;// 7*1000;
public final static String[] ClassificationNames = { "User Perspective" };
public static final String[] ClassificationNames = { "User Perspective" };
// "Computation Perspective"};
public final static String UserClassificationName = ClassificationNames[0];
public static final String UserClassificationName = ClassificationNames[0];
// public final static String computationClassificationName =
// classificationNames[1];