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

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

Fixed Data Space visualization

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/data-miner-manager@128195 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2016-04-20 16:14:20 +00:00
parent 01d0bcc05e
commit b0bfb85688
29 changed files with 989915 additions and 245649 deletions

View File

@ -123,6 +123,10 @@ public class DataMinerManager implements EntryPoint {
} }
private void loadMainPanel() { private void loadMainPanel() {
homeMenu = createMenuPanel();
dataSpacePanel = new DataSpacePanel();
experimentPanel = new ExperimentPanel();
// AccountingManagerResources.INSTANCE.accountingManagerCSS().ensureInjected(); // AccountingManagerResources.INSTANCE.accountingManagerCSS().ensureInjected();
// ScriptInjector.fromString(AccountingManagerResources.INSTANCE.jqueryJs().getText()).setWindow(ScriptInjector.TOP_WINDOW).inject(); // ScriptInjector.fromString(AccountingManagerResources.INSTANCE.jqueryJs().getText()).setWindow(ScriptInjector.TOP_WINDOW).inject();
@ -150,7 +154,6 @@ public class DataMinerManager implements EntryPoint {
switchTo(homeMenu); switchTo(homeMenu);
else if (menuItem == MenuItem.EXPERIMENT) else if (menuItem == MenuItem.EXPERIMENT)
switchTo(experimentPanel); switchTo(experimentPanel);
else if (menuItem == MenuItem.DATA_SPACE) else if (menuItem == MenuItem.DATA_SPACE)
switchTo(dataSpacePanel); switchTo(dataSpacePanel);
@ -181,7 +184,8 @@ public class DataMinerManager implements EntryPoint {
* westData); filtersPanel.expand(); filtersPanel.enable(); * westData); filtersPanel.expand(); filtersPanel.enable();
*/ */
homeMenu = createMenuPanel();
centerPanel.add(homeMenu); centerPanel.add(homeMenu);
previousPanel = homeMenu; previousPanel = homeMenu;
@ -308,9 +312,6 @@ public class DataMinerManager implements EntryPoint {
@Override @Override
public void onMouseDown(MouseDownEvent event) { public void onMouseDown(MouseDownEvent event) {
if (experimentPanel == null) {
experimentPanel = new ExperimentPanel();
}
switchTo(dataSpacePanel); switchTo(dataSpacePanel);
header.setMenuSelected(MenuItem.DATA_SPACE); header.setMenuSelected(MenuItem.DATA_SPACE);
@ -325,9 +326,6 @@ public class DataMinerManager implements EntryPoint {
@Override @Override
public void onMouseDown(MouseDownEvent event) { public void onMouseDown(MouseDownEvent event) {
if (experimentPanel == null) {
experimentPanel = new ExperimentPanel();
}
switchTo(experimentPanel); switchTo(experimentPanel);
header.setMenuSelected(MenuItem.EXPERIMENT); header.setMenuSelected(MenuItem.EXPERIMENT);
@ -428,13 +426,6 @@ public class DataMinerManager implements EntryPoint {
return dataMinerService; return dataMinerService;
} }
/**
* @return
*/
/*
* public static TabularData getTabularData() { if (tabularData == null)
* tabularData = new TabularData(Constants.TD_DATASOURCE_FACTORY_ID); return
* tabularData; }
*/
} }

View File

@ -90,6 +90,7 @@ public class DataMinerManagerController {
public void onSuccess(UserInfo result) { public void onSuccess(UserInfo result) {
userInfo = result; userInfo = result;
Log.info("Hello: " + userInfo.getUsername()); Log.info("Hello: " + userInfo.getUsername());
retrieveDataMinerWorkArea();
} }
}); });
@ -130,15 +131,21 @@ public class DataMinerManagerController {
@Override @Override
public void onSuccess(DataMinerWorkArea result) { public void onSuccess(DataMinerWorkArea result) {
Log.debug("DataMinerWorkArea: " + result); Log.debug("DataMinerWorkArea: " + result);
dataMinerWorkArea = result; fireDataMinerWorkAreaEventRetrieved(result);
DataMinerWorkAreaEvent dataMinerWorkAreaEvent = new DataMinerWorkAreaEvent(
DataMinerWorkAreaEventType.UPDATE, result);
eventBus.fireEvent(dataMinerWorkAreaEvent);
} }
}); });
} }
private void fireDataMinerWorkAreaEventRetrieved(DataMinerWorkArea result){
dataMinerWorkArea = result;
DataMinerWorkAreaEvent dataMinerWorkAreaEvent = new DataMinerWorkAreaEvent(
DataMinerWorkAreaEventType.OPEN, result);
eventBus.fireEvent(dataMinerWorkAreaEvent);
}
} }

View File

@ -11,17 +11,17 @@ import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Image;
/** /**
* @author ceras *
* @author Giancarlo Panichi email: <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
* *
*/ */
public abstract class Header extends HorizontalPanel { public abstract class Header extends HorizontalPanel {
public abstract void select(MenuItem menuItem); public abstract void select(MenuItem menuItem);
Image menuGoBack, menuExperiment; // menuInputSpace, menuComputations; private Image menuGoBack, menuExperiment, menuDataSpace; // menuComputations;
MenuItem currentSelection = null; private MenuItem currentSelection = null;
Image currentImageSelection = null;
//private Image menuDataSpace;
/** /**
* *
@ -44,7 +44,6 @@ public abstract class Header extends HorizontalPanel {
} }
}); });
/*
menuDataSpace = new Image( menuDataSpace = new Image(
DataMinerManager.resources.menuItemInputspace()); DataMinerManager.resources.menuItemInputspace());
menuDataSpace.addStyleName("menuItemImage"); menuDataSpace.addStyleName("menuItemImage");
@ -55,7 +54,6 @@ public abstract class Header extends HorizontalPanel {
select(MenuItem.DATA_SPACE); select(MenuItem.DATA_SPACE);
} }
}); });
*/
menuExperiment = new Image( menuExperiment = new Image(
DataMinerManager.resources.menuItemExperiment()); DataMinerManager.resources.menuItemExperiment());
@ -79,20 +77,20 @@ public abstract class Header extends HorizontalPanel {
* select(MenuItem.COMPUTATIONS); } }); * select(MenuItem.COMPUTATIONS); } });
*/ */
this.add(logo); add(logo);
this.add(menuGoBack); add(menuGoBack);
//this.add(menuDataSpace); add(menuDataSpace);
this.add(menuExperiment); add(menuExperiment);
// this.add(menuComputations); // this.add(menuComputations);
this.setCellWidth(logo, "100px"); this.setCellWidth(logo, "100px");
this.setCellWidth(menuGoBack, "100px"); this.setCellWidth(menuGoBack, "100px");
//this.setCellWidth(menuDataSpace, "80px"); this.setCellWidth(menuDataSpace, "80px");
this.setCellWidth(menuExperiment, "80px"); this.setCellWidth(menuExperiment, "80px"); //
// this.setCellWidth(menuComputations, "80px"); // this.setCellWidth(menuComputations, "80px");
menuGoBack.setVisible(false); menuGoBack.setVisible(false);
//menuDataSpace.setVisible(false); menuDataSpace.setVisible(false);
menuExperiment.setVisible(false); menuExperiment.setVisible(false);
// menuComputations.setVisible(false); // menuComputations.setVisible(false);
} }
@ -108,16 +106,15 @@ public abstract class Header extends HorizontalPanel {
if (menuItem == null) { if (menuItem == null) {
menuGoBack.setVisible(false); menuGoBack.setVisible(false);
//menuDataSpace.setVisible(false); menuDataSpace.setVisible(false);
menuExperiment.setVisible(false); menuExperiment.setVisible(false);
// menuComputations.setVisible(false); // menuComputations.setVisible(false);
if (currentSelection == MenuItem.EXPERIMENT) if (currentSelection == MenuItem.EXPERIMENT)
menuExperiment.removeStyleName("menuItemImage-selected"); menuExperiment.removeStyleName("menuItemImage-selected");
/*
else if (currentSelection == MenuItem.DATA_SPACE) else if (currentSelection == MenuItem.DATA_SPACE)
menuDataSpace.removeStyleName("menuItemImage-selected"); menuDataSpace.removeStyleName("menuItemImage-selected");
*/
/* /*
* else if (currentSelection == MenuItem.COMPUTATIONS) * else if (currentSelection == MenuItem.COMPUTATIONS)
* menuComputations.removeStyleName("menuItemImage-selected"); * menuComputations.removeStyleName("menuItemImage-selected");
@ -126,27 +123,28 @@ public abstract class Header extends HorizontalPanel {
if (currentSelection == null) { if (currentSelection == null) {
menuGoBack.setVisible(true); menuGoBack.setVisible(true);
//menuDataSpace.setVisible(true); menuDataSpace.setVisible(true);
menuExperiment.setVisible(true); menuExperiment.setVisible(true);
// menuComputations.setVisible(true); // menuComputations.setVisible(true);
} }
if (currentSelection == MenuItem.EXPERIMENT) if (currentSelection == MenuItem.EXPERIMENT)
menuExperiment.removeStyleName("menuItemImage-selected"); menuExperiment.removeStyleName("menuItemImage-selected");
/*else if (currentSelection == MenuItem.DATA_SPACE) else if (currentSelection == MenuItem.DATA_SPACE)
menuDataSpace.removeStyleName("menuItemImage-selected");*/ menuDataSpace.removeStyleName("menuItemImage-selected");
/* /*
* else if (currentSelection == MenuItem.COMPUTATIONS) * else if (currentSelection == MenuItem.COMPUTATIONS)
* menuComputations.removeStyleName("menuItemImage-selected"); * menuComputations.removeStyleName("menuItemImage-selected");
*/ */
Image imgNew=menuExperiment;
/* /*
* Image imgNew=menuExperiment;
*/
Image imgNew = (menuItem == MenuItem.DATA_SPACE ? menuDataSpace Image imgNew = (menuItem == MenuItem.DATA_SPACE ? menuDataSpace
: menuExperiment); : menuExperiment);
*/
/* /*
* Image imgNew = (menuItem == MenuItem.DATA_SPACE ? menuDataSpace : * Image imgNew = (menuItem == MenuItem.DATA_SPACE ? menuDataSpace :
* (menuItem == MenuItem.EXPERIMENT ? menuExperiment : * (menuItem == MenuItem.EXPERIMENT ? menuExperiment :

View File

@ -6,7 +6,9 @@ package org.gcube.portlets.user.dataminermanager.client.bean.output;
import java.io.Serializable; import java.io.Serializable;
/** /**
* @author ceras *
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
* *
*/ */
public class FileResource extends Resource implements Serializable { public class FileResource extends Resource implements Serializable {

View File

@ -6,7 +6,9 @@ package org.gcube.portlets.user.dataminermanager.client.bean.output;
import java.io.Serializable; import java.io.Serializable;
/** /**
* @author ceras *
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
* *
*/ */
public class ImagesResource extends Resource implements Serializable { public class ImagesResource extends Resource implements Serializable {

View File

@ -7,7 +7,9 @@ import java.io.Serializable;
import java.util.Map; import java.util.Map;
/** /**
* @author ceras *
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
* *
*/ */
public class MapResource extends Resource implements Serializable { public class MapResource extends Resource implements Serializable {

View File

@ -6,7 +6,9 @@ package org.gcube.portlets.user.dataminermanager.client.bean.output;
import java.io.Serializable; import java.io.Serializable;
/** /**
* @author ceras *
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
* *
*/ */
public class ObjectResource extends Resource implements Serializable { public class ObjectResource extends Resource implements Serializable {

View File

@ -6,7 +6,9 @@ package org.gcube.portlets.user.dataminermanager.client.bean.output;
import java.io.Serializable; import java.io.Serializable;
/** /**
* @author ceras *
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
* *
*/ */
public class Resource implements Serializable { public class Resource implements Serializable {

View File

@ -6,7 +6,9 @@ package org.gcube.portlets.user.dataminermanager.client.bean.output;
import com.google.gwt.user.client.rpc.IsSerializable; import com.google.gwt.user.client.rpc.IsSerializable;
/** /**
* @author ceras *
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
* *
*/ */
public class TableResource extends Resource implements IsSerializable { public class TableResource extends Resource implements IsSerializable {

View File

@ -1,19 +0,0 @@
package org.gcube.portlets.user.dataminermanager.client.dataspace;
import com.google.gwt.user.client.ui.HTML;
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
/**
*
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class ComputedDataPanel extends SimpleContainer{
public ComputedDataPanel() {
HTML html=new HTML("Ciao");
add(html);
}
}

View File

@ -8,7 +8,12 @@ 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;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
/**
*
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class DataSpacePanel extends SimpleContainer { public class DataSpacePanel extends SimpleContainer {
/** /**
@ -17,8 +22,8 @@ public class DataSpacePanel extends SimpleContainer {
public DataSpacePanel() { public DataSpacePanel() {
super(); super();
VerticalLayoutContainer v=new VerticalLayoutContainer(); VerticalLayoutContainer v=new VerticalLayoutContainer();
ImportedDataPanel importedDataPanel=new ImportedDataPanel(); InputDataSetsPanel importedDataPanel=new InputDataSetsPanel();
ComputedDataPanel computedDataPanel=new ComputedDataPanel(); OutputDataSetsPanel computedDataPanel=new OutputDataSetsPanel();
v.add(importedDataPanel,new VerticalLayoutData(1, 0.5, new Margins(0))); v.add(importedDataPanel,new VerticalLayoutData(1, 0.5, new Margins(0)));
v.add(computedDataPanel,new VerticalLayoutData(1, 0.5, new Margins(0))); v.add(computedDataPanel,new VerticalLayoutData(1, 0.5, new Margins(0)));
add(v); add(v);

View File

@ -38,8 +38,8 @@ import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
* 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 ImportedDataPanel extends ContentPanel { public class InputDataSetsPanel extends ContentPanel {
private Item selectedItem; private Item selectedItem;
private MultipleDNDUpload dnd; private MultipleDNDUpload dnd;
private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel; private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel;
@ -48,10 +48,10 @@ public class ImportedDataPanel extends ContentPanel {
private TextButton btnReload; private TextButton btnReload;
private VerticalLayoutContainer v; private VerticalLayoutContainer v;
public ImportedDataPanel() { public InputDataSetsPanel() {
super(); super();
Log.debug("ImportedDataPanel"); Log.debug("InputDataSetsPanel");
// msgs = GWT.create(ServiceCategoryMessages.class); // msgs = GWT.create(ServiceCategoryMessages.class);
init(); init();
bindToEvents(); bindToEvents();
@ -59,14 +59,14 @@ public class ImportedDataPanel extends ContentPanel {
} }
private void init() { private void init() {
setId("ImportedDataPanel"); setId("InputDataSetsPanel");
forceLayoutOnResize = true; forceLayoutOnResize = true;
setBodyBorder(true); setBodyBorder(true);
setBorders(true); setBorders(true);
setHeaderVisible(true); setHeaderVisible(true);
setResize(true); setResize(true);
setAnimCollapse(false); setAnimCollapse(false);
setHeadingText("Imported Data"); setHeadingText("Input Data Sets");
} }
@ -96,7 +96,7 @@ public class ImportedDataPanel extends ContentPanel {
} }
private void manageStateEvents(UIStateEvent event) { private void manageStateEvents(UIStateEvent event) {
Log.debug("ImportedDataPanel recieved UIStateEvent: " Log.debug("InputDataSetsPanel recieved UIStateEvent: "
+ event.toString()); + event.toString());
switch (event.getUiStateType()) { switch (event.getUiStateType()) {
case START: case START:
@ -111,9 +111,8 @@ public class ImportedDataPanel extends ContentPanel {
} }
private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) { private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) {
Log.debug("InputDataSetsPanel recieved UIStateEvent: "
Log.debug("ImportedDataPanel recieved UIStateEvent: "
+ event.toString()); + event.toString());
switch (event.getDataMinerWorkAreaEventType()) { switch (event.getDataMinerWorkAreaEventType()) {
case OPEN: case OPEN:
@ -123,29 +122,32 @@ public class ImportedDataPanel extends ContentPanel {
default: default:
break; break;
} }
} }
private void create(DataMinerWorkAreaEvent event) { private void create(DataMinerWorkAreaEvent event) {
try { try {
if(event==null|| event.getDataMinerWorkArea()==null|| if (event == null
event.getDataMinerWorkArea().getImportedData()==null|| || event.getDataMinerWorkArea() == null
event.getDataMinerWorkArea().getImportedData().getFolder()==null|| || event.getDataMinerWorkArea().getInputDataSets() == null
event.getDataMinerWorkArea().getImportedData().getFolder().getId()==null || event.getDataMinerWorkArea().getInputDataSets()
||event.getDataMinerWorkArea().getImportedData().getFolder().getId().isEmpty()){ .getFolder() == null
if(v!=null){ || event.getDataMinerWorkArea().getInputDataSets()
.getFolder().getId() == null
|| event.getDataMinerWorkArea().getInputDataSets()
.getFolder().getId().isEmpty()) {
if (v != null) {
remove(v); remove(v);
forceLayout(); forceLayout();
} }
return; return;
} }
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel( wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(
event.getDataMinerWorkArea().getImportedData().getFolder().getId(), event.getDataMinerWorkArea().getInputDataSets().getFolder()
false); .getId(), false);
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() { WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
@Override @Override
@ -184,7 +186,8 @@ public class ImportedDataPanel extends ContentPanel {
// DND // DND
dnd = new MultipleDNDUpload(); dnd = new MultipleDNDUpload();
dnd.setParameters(event.getDataMinerWorkArea().getImportedData().getFolder().getId(), UPLOAD_TYPE.File); dnd.setParameters(event.getDataMinerWorkArea().getInputDataSets()
.getFolder().getId(), UPLOAD_TYPE.File);
dnd.addUniqueContainer(vResourcesExplorerContainer); dnd.addUniqueContainer(vResourcesExplorerContainer);
WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() { WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() {
@ -282,23 +285,29 @@ public class ImportedDataPanel extends ContentPanel {
e.printStackTrace(); e.printStackTrace();
} }
} }
private void reloadWSResourceExplorerPanel(){ private void reloadWSResourceExplorerPanel() {
if (wsResourcesExplorerPanel != null) { if (wsResourcesExplorerPanel != null) {
wsResourcesExplorerPanel.refreshRootFolderView(); wsResourcesExplorerPanel.refreshRootFolderView();
} }
} }
private void reloadWSResourceExplorerPanel(DataMinerWorkAreaEvent event) { private void reloadWSResourceExplorerPanel(DataMinerWorkAreaEvent event) {
if(v!=null){ try {
remove(v);
create(event); if (v != null) {
} else { remove(v);
create(event); create(event);
} else {
create(event);
}
} catch (Throwable e) {
Log.error("Error in ImputDataSetsPanel: " + e.getLocalizedMessage());
e.printStackTrace();
} }
} }
private void deleteItem(SelectEvent event) { private void deleteItem(SelectEvent event) {
ItemDescription itemDescription = new ItemDescription( ItemDescription itemDescription = new ItemDescription(
selectedItem.getId(), selectedItem.getName(), selectedItem.getId(), selectedItem.getName(),
@ -309,8 +318,6 @@ public class ImportedDataPanel extends ContentPanel {
Log.debug("Fired: " + deleteItemEvent); Log.debug("Fired: " + deleteItemEvent);
} }
private void openFile() { private void openFile() {
if (selectedItem != null && !selectedItem.isFolder()) { if (selectedItem != null && !selectedItem.isFolder()) {
@ -325,7 +332,8 @@ public class ImportedDataPanel extends ContentPanel {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
if (caught instanceof ExpiredSessionServiceException) { if (caught instanceof ExpiredSessionServiceException) {
EventBusProvider.INSTANCE.fireEvent(new SessionExpiredEvent()); EventBusProvider.INSTANCE
.fireEvent(new SessionExpiredEvent());
} else { } else {
Log.error("Error open file: " Log.error("Error open file: "
+ caught.getLocalizedMessage()); + caught.getLocalizedMessage());

View File

@ -0,0 +1,361 @@
package org.gcube.portlets.user.dataminermanager.client.dataspace;
import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider;
import org.gcube.portlets.user.dataminermanager.client.events.DataMinerWorkAreaEvent;
import org.gcube.portlets.user.dataminermanager.client.events.DeleteItemEvent;
import org.gcube.portlets.user.dataminermanager.client.events.SessionExpiredEvent;
import org.gcube.portlets.user.dataminermanager.client.events.UIStateEvent;
import org.gcube.portlets.user.dataminermanager.client.rpc.DataMinerPortletServiceAsync;
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
import org.gcube.portlets.user.dataminermanager.shared.exception.ExpiredSessionServiceException;
import org.gcube.portlets.user.dataminermanager.shared.workspace.ItemDescription;
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;
import org.gcube.portlets.widgets.wsexplorer.client.explore.WorkspaceResourcesExplorerPanel;
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
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.button.TextButton;
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData;
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.toolbar.ToolBar;
/**
*
* @author Giancarlo Panichi email: <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class OutputDataSetsPanel extends ContentPanel {
private Item selectedItem;
private MultipleDNDUpload dnd;
private WorkspaceResourcesExplorerPanel wsResourcesExplorerPanel;
private TextButton btnOpen;
private TextButton btnDelete;
private TextButton btnReload;
private VerticalLayoutContainer v;
public OutputDataSetsPanel() {
super();
Log.debug("OutputDataSetsPanel");
// msgs = GWT.create(ServiceCategoryMessages.class);
init();
bindToEvents();
}
private void init() {
setId("OutputDataSetsPanel");
forceLayoutOnResize = true;
setBodyBorder(true);
setBorders(true);
setHeaderVisible(true);
setResize(true);
setAnimCollapse(false);
setHeadingText("Output Data Sets");
}
private void bindToEvents() {
EventBusProvider.INSTANCE.addHandler(UIStateEvent.TYPE,
new UIStateEvent.UIStateEventHandler() {
@Override
public void onChange(UIStateEvent event) {
manageStateEvents(event);
}
});
EventBusProvider.INSTANCE.addHandler(DataMinerWorkAreaEvent.TYPE,
new DataMinerWorkAreaEvent.DataMinerWorkAreaEventHandler() {
@Override
public void onChange(DataMinerWorkAreaEvent event) {
manageDataMinerWorkAreaEvents(event);
}
});
}
private void manageStateEvents(UIStateEvent event) {
Log.debug("OutputDataSetsPanel recieved UIStateEvent: "
+ event.toString());
switch (event.getUiStateType()) {
case START:
break;
case WAITING:
break;
case UPDATE:
break;
default:
break;
}
}
private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) {
Log.debug("OutputDataSetsPanel recieved UIStateEvent: "
+ event.toString());
switch (event.getDataMinerWorkAreaEventType()) {
case OPEN:
case UPDATE:
reloadWSResourceExplorerPanel(event);
break;
default:
break;
}
}
private void create(DataMinerWorkAreaEvent event) {
try {
if (event == null
|| event.getDataMinerWorkArea() == null
|| event.getDataMinerWorkArea().getOutputDataSets() == null
|| event.getDataMinerWorkArea().getOutputDataSets()
.getFolder() == null
|| event.getDataMinerWorkArea().getOutputDataSets()
.getFolder().getId() == null
|| event.getDataMinerWorkArea().getOutputDataSets()
.getFolder().getId().isEmpty()) {
if (v != null) {
remove(v);
forceLayout();
}
return;
}
wsResourcesExplorerPanel = new WorkspaceResourcesExplorerPanel(
event.getDataMinerWorkArea().getOutputDataSets()
.getFolder().getId(), false);
WorskpaceExplorerSelectNotificationListener wsResourceExplorerListener = new WorskpaceExplorerSelectNotificationListener() {
@Override
public void onSelectedItem(Item item) {
Log.debug("Listener Selected Item " + item);
selectedItem = item;
}
@Override
public void onFailed(Throwable throwable) {
Log.error(throwable.getLocalizedMessage());
throwable.printStackTrace();
}
@Override
public void onAborted() {
}
@Override
public void onNotValidSelection() {
selectedItem = null;
}
};
wsResourcesExplorerPanel
.addWorkspaceExplorerSelectNotificationListener(wsResourceExplorerListener);
wsResourcesExplorerPanel.ensureDebugId("wsResourceExplorerPanel");
VerticalLayoutContainer vResourcesExplorerContainer = new VerticalLayoutContainer();
vResourcesExplorerContainer.setScrollMode(ScrollMode.AUTO);
vResourcesExplorerContainer.add(wsResourcesExplorerPanel,
new VerticalLayoutData(1, -1, new Margins(0)));
// DND
dnd = new MultipleDNDUpload();
dnd.setParameters(event.getDataMinerWorkArea().getOutputDataSets()
.getFolder().getId(), UPLOAD_TYPE.File);
dnd.addUniqueContainer(vResourcesExplorerContainer);
WorskpaceUploadNotificationListener workspaceUploaderListener = new WorskpaceUploadNotificationListener() {
@Override
public void onUploadCompleted(String parentId, String itemId) {
Log.debug("Upload completed: [parentID: " + parentId
+ ", itemId: " + itemId + "]");
wsResourcesExplorerPanel.refreshRootFolderView();
forceLayout();
}
@Override
public void onUploadAborted(String parentId, String itemId) {
Log.debug("Upload Aborted: [parentID: " + parentId
+ ", itemId: " + itemId + "]");
}
@Override
public void onError(String parentId, String itemId,
Throwable throwable) {
Log.debug("Upload Error: [parentID: " + parentId
+ ", itemId: " + itemId + "]");
throwable.printStackTrace();
}
@Override
public void onOverwriteCompleted(String parentId, String itemId) {
Log.debug("Upload Override Completed: [parentID: "
+ parentId + ", itemId: " + itemId + "]");
wsResourcesExplorerPanel.refreshRootFolderView();
forceLayout();
}
};
dnd.addWorkspaceUploadNotificationListener(workspaceUploaderListener);
// ToolBar
btnOpen = new TextButton("Open");
// btnOpen.setIcon(StatAlgoImporterResources.INSTANCE.download16());
btnOpen.setScale(ButtonScale.SMALL);
btnOpen.setIconAlign(IconAlign.LEFT);
btnOpen.setToolTip("Open");
btnOpen.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
openFile();
}
});
btnDelete = new TextButton("Delete");
// btnDelete.setIcon(StatAlgoImporterResources.INSTANCE.delete16());
btnDelete.setScale(ButtonScale.SMALL);
btnDelete.setIconAlign(IconAlign.LEFT);
btnDelete.setToolTip("Delete");
btnDelete.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
deleteItem(event);
}
});
btnReload = new TextButton("Reload");
// btnReload.setIcon(StatAlgoImporterResources.INSTANCE.reload16());
btnReload.setScale(ButtonScale.SMALL);
btnReload.setIconAlign(IconAlign.LEFT);
btnReload.setToolTip("Reload");
btnReload.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
reloadWSResourceExplorerPanel();
}
});
ToolBar toolBar = new ToolBar();
toolBar.add(btnOpen, new BoxLayoutData(new Margins(0)));
toolBar.add(btnDelete, new BoxLayoutData(new Margins(0)));
toolBar.add(btnReload, new BoxLayoutData(new Margins(0)));
v = new VerticalLayoutContainer();
v.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0)));
v.add(dnd, new VerticalLayoutData(1, 1, new Margins(0)));
add(v);
forceLayout();
} catch (Exception e) {
Log.error("Error opening wsResourceExplorerPanel");
e.printStackTrace();
}
}
private void reloadWSResourceExplorerPanel() {
if (wsResourcesExplorerPanel != null) {
wsResourcesExplorerPanel.refreshRootFolderView();
}
}
private void reloadWSResourceExplorerPanel(DataMinerWorkAreaEvent event) {
try {
if (v != null) {
remove(v);
create(event);
} else {
create(event);
}
} catch (Throwable e) {
Log.error("Error in OutputDataSetsPanel: " + e.getLocalizedMessage());
e.printStackTrace();
}
}
private void deleteItem(SelectEvent event) {
ItemDescription itemDescription = new ItemDescription(
selectedItem.getId(), selectedItem.getName(),
selectedItem.getOwner(), selectedItem.getPath(), selectedItem
.getType().name());
DeleteItemEvent deleteItemEvent = new DeleteItemEvent(itemDescription);
EventBusProvider.INSTANCE.fireEvent(deleteItemEvent);
Log.debug("Fired: " + deleteItemEvent);
}
private void openFile() {
if (selectedItem != null && !selectedItem.isFolder()) {
final ItemDescription itemDescription = new ItemDescription(
selectedItem.getId(), selectedItem.getName(),
selectedItem.getOwner(), selectedItem.getPath(),
selectedItem.getType().name());
DataMinerPortletServiceAsync.INSTANCE.getPublicLink(
itemDescription, new AsyncCallback<String>() {
@Override
public void onFailure(Throwable caught) {
if (caught instanceof ExpiredSessionServiceException) {
EventBusProvider.INSTANCE
.fireEvent(new SessionExpiredEvent());
} else {
Log.error("Error open file: "
+ caught.getLocalizedMessage());
UtilsGXT3.alert("Error",
caught.getLocalizedMessage());
}
caught.printStackTrace();
}
@Override
public void onSuccess(String link) {
Log.debug("Retrieved link: " + link);
Window.open(link, itemDescription.getName(), "");
}
});
} else {
UtilsGXT3.info("Attention", "Select a file!");
}
}
}

View File

@ -81,8 +81,7 @@ public class ComputationExecutionPanel extends FramedPanel {
operator); operator);
computationStatusPanels.add(statusPanel); computationStatusPanels.add(statusPanel);
Log.debug("Added status bar"); Log.debug("Added status bar");
v.insert(statusPanel, 0, new VerticalLayoutData(1, -1, v.insert(statusPanel, 0, new VerticalLayoutData(1, -1, new Margins(20)));
new Margins(20)));
removeAllButton.setEnabled(true); removeAllButton.setEnabled(true);
DataMinerManager.getService().startComputation(operator, DataMinerManager.getService().startComputation(operator,
@ -134,8 +133,11 @@ public class ComputationExecutionPanel extends FramedPanel {
final ComputationStatusPanel statusPanel = new ComputationStatusPanel( final ComputationStatusPanel statusPanel = new ComputationStatusPanel(
computationItem.getOperator()); computationItem.getOperator());
computationStatusPanels.add(statusPanel); computationStatusPanels.add(statusPanel);
v.insert(statusPanel, 0, new VerticalLayoutData(1, -1, if(v.getWidgetCount()==0){
new Margins(20))); v.add(statusPanel, new VerticalLayoutData(1, -1, new Margins(20)));
} else {
v.insert(statusPanel, 0, new VerticalLayoutData(1, -1, new Margins(20)));
}
removeAllButton.setEnabled(true); removeAllButton.setEnabled(true);
DataMinerManager.getService().resubmit( DataMinerManager.getService().resubmit(
@ -179,16 +181,13 @@ public class ComputationExecutionPanel extends FramedPanel {
statusPanel.stopTimer(); statusPanel.stopTimer();
removeAllButton.setEnabled(false); removeAllButton.setEnabled(false);
computationStatusPanels.clear();
v.clear(); v.clear();
computationStatusPanels.clear();
forceLayout(); forceLayout();
} }
private void setToolBar() { private void setToolBar() {
toolBar = new ToolBar(); toolBar = new ToolBar();
removeAllButton = new TextButton("Remove All"); removeAllButton = new TextButton("Remove All");
@ -204,7 +203,7 @@ public class ComputationExecutionPanel extends FramedPanel {
removeAllButton.setIcon(DataMinerManager.resources.removeAll()); removeAllButton.setIcon(DataMinerManager.resources.removeAll());
removeAllButton.setToolTip(DELETE_ALL_BUTTON_TOOLTIP); removeAllButton.setToolTip(DELETE_ALL_BUTTON_TOOLTIP);
//removeAllButton.setScale(ButtonScale.MEDIUM); // removeAllButton.setScale(ButtonScale.MEDIUM);
removeAllButton.setEnabled(false); removeAllButton.setEnabled(false);
toolBar.add(new LabelToolItem("Tools:")); toolBar.add(new LabelToolItem("Tools:"));

View File

@ -94,25 +94,26 @@ public class ComputationOutputPanel extends SimpleContainer {
case FILE: case FILE:
FileResource fileResource = (FileResource) resource; FileResource fileResource = (FileResource) resource;
v.add(getHtmlTitle("The algorithm produced a", "File"), new VerticalLayoutData(1, -1, v.add(getHtmlTitle("The algorithm produced a", "File"),
new Margins(0))); new VerticalLayoutData(1, -1, new Margins(0)));
v.add(getFileResourceOutput(fileResource), new VerticalLayoutData(1, -1, v.add(getFileResourceOutput(fileResource),
new Margins(0))); new VerticalLayoutData(1, -1, new Margins(0)));
break; break;
case TABULAR: case TABULAR:
TableResource tabResource = (TableResource) resource; TableResource tabResource = (TableResource) resource;
v.add(getHtmlTitle("The algorithm produced a", "Table"), new VerticalLayoutData(1, -1, v.add(getHtmlTitle("The algorithm produced a", "Table"),
new Margins(0))); new VerticalLayoutData(1, -1, new Margins(0)));
// v.add(getTabResourceOutput(tabResource)); // v.add(getTabResourceOutput(tabResource),
//new VerticalLayoutData(1, -1, new Margins(0)));
break; break;
case IMAGES: case IMAGES:
v.add(getHtmlTitle("The algorithm produced an", "Set of Images"), new VerticalLayoutData(1, -1, v.add(getHtmlTitle("The algorithm produced an", "Set of Images"),
new Margins(0))); new VerticalLayoutData(1, -1, new Margins(0)));
final ImagesResource imagesResource = (ImagesResource) resource; final ImagesResource imagesResource = (ImagesResource) resource;
v.add(getImagesResourceOutput(imagesResource), new VerticalLayoutData(1, -1, v.add(getImagesResourceOutput(imagesResource),
new Margins(0))); new VerticalLayoutData(1, -1, new Margins(0)));
break; break;
case MAP: case MAP:
@ -164,9 +165,7 @@ public class ComputationOutputPanel extends SimpleContainer {
*/ */
private SimpleContainer getImagesResourceOutput( private SimpleContainer getImagesResourceOutput(
ImagesResource imagesResource) { ImagesResource imagesResource) {
SimpleContainer container = new SimpleContainer(); return new ImagesViewer(computationId, imagesResource);
container.add(new ImagesViewer(computationId, imagesResource));
return container;
} }
/** /**
@ -245,11 +244,11 @@ public class ComputationOutputPanel extends SimpleContainer {
vp.add(html, new VerticalLayoutData(-1, -1, new Margins(0))); vp.add(html, new VerticalLayoutData(-1, -1, new Margins(0)));
vp.add((new ResourceViewer(mapValues)).getHtml(), vp.add((new ResourceViewer(mapValues)).getHtml(),
new VerticalLayoutData(-1, -1, new Margins(0))); new VerticalLayoutData(1, -1, new Margins(0)));
html = new HtmlLayoutContainer( html = new HtmlLayoutContainer(
"<div class='computation-output-separator'></div>"); "<div class='computation-output-separator'></div>");
vp.add(html); vp.add(html, new VerticalLayoutData(-1, -1, new Margins(0)));
} }
if (mapFiles.size() > 0) { if (mapFiles.size() > 0) {
@ -260,7 +259,7 @@ public class ComputationOutputPanel extends SimpleContainer {
for (String fileKey : mapFiles.keySet()) { for (String fileKey : mapFiles.keySet()) {
// vp.add(new Html("<i>"+fileKey+"</i>")); // vp.add(new Html("<i>"+fileKey+"</i>"));
vp.add(getFileResourceOutput(mapFiles.get(fileKey)), vp.add(getFileResourceOutput(mapFiles.get(fileKey)),
new VerticalLayoutData(-1, -1, new Margins(0))); new VerticalLayoutData(1, -1, new Margins(0)));
} }
html = new HtmlLayoutContainer( html = new HtmlLayoutContainer(
@ -271,29 +270,31 @@ public class ComputationOutputPanel extends SimpleContainer {
if (mapTabs.size() > 0) { if (mapTabs.size() > 0) {
HtmlLayoutContainer html = new HtmlLayoutContainer("Tables"); HtmlLayoutContainer html = new HtmlLayoutContainer("Tables");
html.setStyleName("computation-output-groupTitle"); html.setStyleName("computation-output-groupTitle");
vp.add(html,new VerticalLayoutData(-1, -1, new Margins(0))); vp.add(html, new VerticalLayoutData(-1, -1, new Margins(0)));
for (String tabKey : mapTabs.keySet()) { for (String tabKey : mapTabs.keySet()) {
// vp.add(new Html("<i>"+tabKey+"</i>")); // vp.add(new Html("<i>"+tabKey+"</i>"));
// vp.add(getTabResourceOutput(mapTabs.get(tabKey))); // vp.add(getTabResourceOutput(mapTabs.get(tabKey)));
} }
html = new HtmlLayoutContainer("<div class='computation-output-separator'></div>"); html = new HtmlLayoutContainer(
vp.add(html,new VerticalLayoutData(-1, -1, new Margins(0))); "<div class='computation-output-separator'></div>");
vp.add(html, new VerticalLayoutData(-1, -1, new Margins(0)));
} }
if (mapImages.size() > 0) { if (mapImages.size() > 0) {
HtmlLayoutContainer html = new HtmlLayoutContainer("Images"); HtmlLayoutContainer html = new HtmlLayoutContainer("Images");
html.setStyleName("computation-output-groupTitle"); html.setStyleName("computation-output-groupTitle");
vp.add(html,new VerticalLayoutData(-1, -1, new Margins(0))); vp.add(html, new VerticalLayoutData(-1, -1, new Margins(0)));
for (String imagesKey : mapImages.keySet()) { for (String imagesKey : mapImages.keySet()) {
// vp.add(new Html("<i>"+imagesKey+"</i>")); vp.add(getImagesResourceOutput(mapImages.get(imagesKey)),
vp.add(getImagesResourceOutput(mapImages.get(imagesKey))); new VerticalLayoutData(1, -1, new Margins(0)));
} }
html = new HtmlLayoutContainer("<div class='computation-output-separator'></div>"); html = new HtmlLayoutContainer(
vp.add(html,new VerticalLayoutData(-1, -1, new Margins(0))); "<div class='computation-output-separator'></div>");
vp.add(html, new VerticalLayoutData(-1, -1, new Margins(0)));
} }
container.add(vp); container.add(vp);

View File

@ -12,8 +12,9 @@ import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutD
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack; 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.HBoxLayoutContainer;
import com.sencha.gxt.widget.core.client.container.HtmlLayoutContainer; 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.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.form.TextField; import com.sencha.gxt.widget.core.client.form.TextField;
/** /**
@ -53,16 +54,27 @@ public class StringFld extends AbstractFld {
descr.addStyleName("workflow-fieldDescription"); descr.addStyleName("workflow-fieldDescription");
} }
fieldContainer=new SimpleContainer(); SimpleContainer vContainer=new SimpleContainer();
VerticalLayoutContainer vField = new VerticalLayoutContainer();
HtmlLayoutContainer typeDescription = new HtmlLayoutContainer(
"String Value");
typeDescription.setStylePrimaryName("workflow-parameters-description");
vField.add(textField, new VerticalLayoutData(1,-1,new Margins(0)));
vField.add(typeDescription, new VerticalLayoutData(-1,-1,new Margins(0)));
vContainer.add(vField);
fieldContainer = new SimpleContainer();
HBoxLayoutContainer horiz = new HBoxLayoutContainer(); HBoxLayoutContainer horiz = new HBoxLayoutContainer();
horiz.setPack(BoxLayoutPack.START); horiz.setPack(BoxLayoutPack.START);
horiz.setEnableOverflow(false); horiz.setEnableOverflow(false);
horiz.add(vContainer, new BoxLayoutData(new Margins()));
horiz.add(descr, new BoxLayoutData(new Margins()));
horiz.add(textField,new BoxLayoutData(new Margins())); fieldContainer.add(horiz);
horiz.add(descr,new BoxLayoutData(new Margins()));
fieldContainer.add(horiz,new MarginData(new Margins()));
fieldContainer.forceLayout(); fieldContainer.forceLayout();
} }
/** /**

View File

@ -6,7 +6,7 @@ package org.gcube.portlets.user.dataminermanager.client.widgets;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import com.google.gwt.user.client.ui.HTML; 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.container.SimpleContainer;
@ -53,7 +53,8 @@ public class HashMapViewer extends SimpleContainer {
html += " </tbody>" + html += " </tbody>" +
"</table>"; "</table>";
add(new HTML(html)); HtmlLayoutContainer htmlContainer=new HtmlLayoutContainer(html);
add(htmlContainer);
forceLayout(); forceLayout();
} }

View File

@ -2,12 +2,8 @@ package org.gcube.portlets.user.dataminermanager.client.widgets;
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager; import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
import org.gcube.portlets.user.dataminermanager.client.bean.output.ImagesResource; import org.gcube.portlets.user.dataminermanager.client.bean.output.ImagesResource;
import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider;
import org.gcube.portlets.user.dataminermanager.client.events.MaskEvent;
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
import org.gcube.portlets.user.dataminermanager.shared.data.ComputationId; import org.gcube.portlets.user.dataminermanager.shared.data.ComputationId;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Image;
import com.sencha.gxt.core.client.util.Margins; import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.button.TextButton; import com.sencha.gxt.widget.core.client.button.TextButton;
@ -30,7 +26,7 @@ public class ImagesViewer extends SimpleContainer {
protected static final String SAVE_FAIL_TITLE = "Error"; protected static final String SAVE_FAIL_TITLE = "Error";
protected static final String SAVE_FAIL_MESSAGE = "Error in saving images."; protected static final String SAVE_FAIL_MESSAGE = "Error in saving images.";
private ImagesResource imagesResource; private ImagesResource imagesResource;
private ComputationId computationId; //private ComputationId computationId;
/** /**
@ -40,7 +36,7 @@ public class ImagesViewer extends SimpleContainer {
ImagesResource imagesResource) { ImagesResource imagesResource) {
super(); super();
this.imagesResource = imagesResource; this.imagesResource = imagesResource;
this.computationId = computationId; //this.computationId = computationId;
init(); init();
} }
@ -54,27 +50,27 @@ public class ImagesViewer extends SimpleContainer {
else { else {
v.add(new HtmlLayoutContainer(imagesResource.getName()),new VerticalLayoutData(-1, -1, new Margins(0))); v.add(new HtmlLayoutContainer(imagesResource.getName()),new VerticalLayoutData(-1, -1, new Margins(0)));
TextButton saveImageBtn = new TextButton( TextButton saveImageBtn = new TextButton(
"Save image on the Workspace"); "Download Image");
saveImageBtn.setIcon(DataMinerManager.resources.save()); saveImageBtn.setIcon(DataMinerManager.resources.save());
saveImageBtn.addSelectHandler(new SelectEvent.SelectHandler() { saveImageBtn.addSelectHandler(new SelectEvent.SelectHandler() {
@Override @Override
public void onSelect(SelectEvent event) { public void onSelect(SelectEvent event) {
saveImages(); com.google.gwt.user.client.Window.open(imagesResource.getLink(), imagesResource.getName(), "");
} }
}); });
v.add(saveImageBtn,new VerticalLayoutData(-1, -1, new Margins(0))); v.add(saveImageBtn,new VerticalLayoutData(-1, -1, new Margins(0)));
final Image img = new Image(imagesResource.getLink()); final Image img = new Image(imagesResource.getLink());
v.add(img,new VerticalLayoutData(-1, -1, new Margins(0))); v.add(img,new VerticalLayoutData(1, -1, new Margins(0)));
} }
forceLayout(); forceLayout();
} }
/*
private void saveImages() { private void saveImages() {
EventBusProvider.INSTANCE.fireEvent(new MaskEvent( EventBusProvider.INSTANCE.fireEvent(new MaskEvent(
"Saving on the workspace...")); "Saving on the workspace..."));
@ -100,4 +96,5 @@ public class ImagesViewer extends SimpleContainer {
} }
}); });
} }
*/
} }

View File

@ -9,10 +9,12 @@ import java.util.Map.Entry;
import org.gcube.portlets.user.dataminermanager.client.bean.output.ObjectResource; import org.gcube.portlets.user.dataminermanager.client.bean.output.ObjectResource;
import org.gcube.portlets.user.dataminermanager.client.bean.output.Resource; import org.gcube.portlets.user.dataminermanager.client.bean.output.Resource;
import com.google.gwt.user.client.ui.HTML; import com.sencha.gxt.widget.core.client.container.HtmlLayoutContainer;
/** /**
* @author ceras *
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
* *
*/ */
public class ResourceViewer { public class ResourceViewer {
@ -31,7 +33,7 @@ public class ResourceViewer {
* @param map * @param map
* @return * @return
*/ */
public HTML getHtml() { public HtmlLayoutContainer getHtml() {
String html = ""; String html = "";
html += "<table class='jobViewer-table'>" + " <colgroup>" html += "<table class='jobViewer-table'>" + " <colgroup>"
+ " <col>" + " <col>" + " <col>" + " <col>"
@ -50,7 +52,7 @@ public class ResourceViewer {
} }
html += " </tbody>" + "</table>"; html += " </tbody>" + "</table>";
return new HTML(html); return new HtmlLayoutContainer(html);
} }
} }

View File

@ -1,129 +0,0 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.widgets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
import org.gcube.portlets.user.dataminermanager.client.bean.ResourceItem;
import org.gcube.portlets.user.dataminermanager.client.util.UtilsGXT3;
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSaveNotification.WorskpaceExplorerSaveNotificationListener;
import org.gcube.portlets.widgets.wsexplorer.client.save.WorkspaceExplorerSaveDialog;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.sencha.gxt.core.client.dom.XDOM;
/**
*
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class ResourcesExporter {
public static void exportResource(final ResourceItem resourceItem) {
final String fName = resourceItem.getName()
+ (resourceItem.isTable() ? ".csv" : "");
//
List<ItemType> selectableTypes = new ArrayList<ItemType>();
selectableTypes.add(ItemType.FOLDER);
List<ItemType> showableTypes = new ArrayList<ItemType>();
showableTypes.addAll(Arrays.asList(ItemType.values()));
final WorkspaceExplorerSaveDialog wsaveDialog = new WorkspaceExplorerSaveDialog(
"Select the location to save the resource", fName,
showableTypes);
WorskpaceExplorerSaveNotificationListener handler = new WorskpaceExplorerSaveNotificationListener() {
@Override
public void onSaving(Item destinationFolder, String fileName) {
Timer timer = new Timer() {
@Override
public void run() {
if (wsaveDialog != null) {
wsaveDialog.hide();
}
}
};
timer.schedule(500);
DataMinerManager.getService().exportResource(
destinationFolder.getId(), fileName, resourceItem,
new AsyncCallback<String>() {
@Override
public void onSuccess(String result) {
// EventBusProvider.getInstance().fireEvent(
// new MaskEvent(null));
UtilsGXT3
.info("File saved",
"The file \""
+ result
+ "\" has been exported in the workspace.");
}
@Override
public void onFailure(Throwable caught) {
// EventBusProvider.getInstance().fireEvent(
// new MaskEvent(null));
UtilsGXT3.alert(
"Error",
"Impossible to export the file into the Workspace<br/>Cause: "
+ caught.getCause()
+ "<br/>Message: "
+ caught.getMessage());
}
});
}
@Override
public void onFailed(Throwable throwable) {
throwable.printStackTrace();
Timer timer = new Timer() {
@Override
public void run() {
if (wsaveDialog != null) {
wsaveDialog.hide();
}
}
};
timer.schedule(500);
UtilsGXT3.alert("Error",
"Impossible select destination into the Workspace<br/>Cause: "
+ throwable.getCause() + "<br/>Message: "
+ throwable.getMessage());
}
@Override
public void onAborted() {
Timer timer = new Timer() {
@Override
public void run() {
if (wsaveDialog != null) {
wsaveDialog.hide();
}
}
};
timer.schedule(500);
}
};
wsaveDialog.addWorkspaceExplorerSaveNotificationListener(handler);
wsaveDialog.setZIndex(XDOM.getTopZIndex());
wsaveDialog.show();
}
}

View File

@ -1,78 +0,0 @@
/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.widgets;
import java.util.Map;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Widget;
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;
/**
*
* @author Giancarlo Panichi
* email: <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class Section extends SimpleContainer {
private VerticalLayoutContainer v;
public Section(String title, ImageResource img) {
super();
v = new VerticalLayoutContainer();
v.addStyleName("jobViewer-section");
createHeader(title, img);
add(v);
}
public Section(String title, ImageResource img, Map<String, String> map) {
super();
v = new VerticalLayoutContainer();
v.addStyleName("jobViewer-section");
createHeader(title, img);
addMap(map);
add(v);
}
/**
*
*/
private void createHeader(String title, ImageResource img) {
HorizontalLayoutContainer hp = new HorizontalLayoutContainer();
hp.addStyleName("jobViewer-section-header");
if (img!=null) {
Image image = new Image(img);
image.addStyleName("jobViewer-section-header-image");
hp.add(image);
}
if (title!=null) {
HTML htmlTitle = new HTML(title);
htmlTitle.addStyleName("jobViewer-section-header-title");
hp.add(htmlTitle);
}
v.add(hp);
}
public void add(Widget widget) {
v.add(widget);
}
public void addMap(Map<String, String> map) {
v.add(new HashMapViewer(map));
}
}

View File

@ -47,19 +47,19 @@
<entry-point <entry-point
class='org.gcube.portlets.user.dataminermanager.client.DataMinerManager' /> class='org.gcube.portlets.user.dataminermanager.client.DataMinerManager' />
<!--
<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"
/> --> /> -->

View File

@ -4,9 +4,9 @@ import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
import org.gcube.portlets.user.dataminermanager.shared.exception.ServiceException; import org.gcube.portlets.user.dataminermanager.shared.exception.ServiceException;
import org.gcube.portlets.user.dataminermanager.shared.workspace.Computations; import org.gcube.portlets.user.dataminermanager.shared.workspace.Computations;
import org.gcube.portlets.user.dataminermanager.shared.workspace.ComputedData; import org.gcube.portlets.user.dataminermanager.shared.workspace.OutputDataSets;
import org.gcube.portlets.user.dataminermanager.shared.workspace.DataMinerWorkArea; import org.gcube.portlets.user.dataminermanager.shared.workspace.DataMinerWorkArea;
import org.gcube.portlets.user.dataminermanager.shared.workspace.ImportedData; import org.gcube.portlets.user.dataminermanager.shared.workspace.InputDataSets;
import org.gcube.portlets.user.dataminermanager.shared.workspace.ItemDescription; import org.gcube.portlets.user.dataminermanager.shared.workspace.ItemDescription;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -19,8 +19,8 @@ import org.slf4j.LoggerFactory;
*/ */
public class DataMinerWorkAreaManager { public class DataMinerWorkAreaManager {
private static final String DATA_MINER_FOLDER = "DataMiner"; private static final String DATA_MINER_FOLDER = "DataMiner";
private static final String IMPORTED_DATA_FOLDER = "Imported Data"; private static final String IMPORTED_DATA_FOLDER = "Input Data Sets";
private static final String COMPUTED_DATA_FOLDER = "Computed Data"; private static final String COMPUTED_DATA_FOLDER = "Output Data Sets";
private static final String COMPUTATIONS_FOLDER = "Computations"; private static final String COMPUTATIONS_FOLDER = "Computations";
public static final Logger logger = LoggerFactory public static final Logger logger = LoggerFactory
@ -62,7 +62,7 @@ public class DataMinerWorkAreaManager {
return dataMinerWorkArea; return dataMinerWorkArea;
} }
ImportedData importedData = null; InputDataSets inputDataSets = null;
try { try {
WorkspaceItem wiImportedDataFolder = StorageUtil WorkspaceItem wiImportedDataFolder = StorageUtil
.getItemInFolderOnWorkspace(aslSession.getUsername(), .getItemInFolderOnWorkspace(aslSession.getUsername(),
@ -77,14 +77,14 @@ public class DataMinerWorkAreaManager {
wiImportedDataFolder.getPath(), wiImportedDataFolder wiImportedDataFolder.getPath(), wiImportedDataFolder
.getType().name()); .getType().name());
importedData = new ImportedData(importedDataFolder); inputDataSets = new InputDataSets(importedDataFolder);
} catch (Throwable e) { } catch (Throwable e) {
logger.debug("ImportedData Folder is set to null"); logger.debug("ImportedData Folder is set to null");
} }
dataMinerWorkArea.setImportedData(importedData); dataMinerWorkArea.setInputDataSets(inputDataSets);
ComputedData computedData = null; OutputDataSets outputDataSets = null;
try { try {
WorkspaceItem wiComputedDataFolder = StorageUtil WorkspaceItem wiComputedDataFolder = StorageUtil
.getItemInFolderOnWorkspace(aslSession.getUsername(), .getItemInFolderOnWorkspace(aslSession.getUsername(),
@ -98,12 +98,12 @@ public class DataMinerWorkAreaManager {
.getOwner().getPortalLogin(), .getOwner().getPortalLogin(),
wiComputedDataFolder.getPath(), wiComputedDataFolder wiComputedDataFolder.getPath(), wiComputedDataFolder
.getType().name()); .getType().name());
computedData = new ComputedData(computedDataFolder); outputDataSets = new OutputDataSets(computedDataFolder);
} catch (Throwable e) { } catch (Throwable e) {
logger.debug("ComputedData Folder is set to null"); logger.debug("ComputedData Folder is set to null");
} }
dataMinerWorkArea.setComputedData(computedData); dataMinerWorkArea.setOutputDataSets(outputDataSets);
Computations computations = null; Computations computations = null;
try { try {

View File

@ -12,8 +12,8 @@ public class DataMinerWorkArea implements Serializable {
private static final long serialVersionUID = -7906477664944910362L; private static final long serialVersionUID = -7906477664944910362L;
private ItemDescription dataMinerWorkAreaFolder; private ItemDescription dataMinerWorkAreaFolder;
private ImportedData importedData; private InputDataSets inputDataSets;
private ComputedData computedData; private OutputDataSets outputDataSets;
private Computations computations; private Computations computations;
public DataMinerWorkArea() { public DataMinerWorkArea() {
@ -33,17 +33,17 @@ public class DataMinerWorkArea implements Serializable {
/** /**
* *
* @param dataMinerWorkAreaFolder * @param dataMinerWorkAreaFolder
* @param importedData * @param inputDataSets
* @param computedData * @param outputDataSets
* @param computations * @param computations
*/ */
public DataMinerWorkArea(ItemDescription dataMinerWorkAreaFolder, public DataMinerWorkArea(ItemDescription dataMinerWorkAreaFolder,
ImportedData importedData, ComputedData computedData, InputDataSets inputDataSets, OutputDataSets outputDataSets,
Computations computations) { Computations computations) {
super(); super();
this.dataMinerWorkAreaFolder = dataMinerWorkAreaFolder; this.dataMinerWorkAreaFolder = dataMinerWorkAreaFolder;
this.importedData = importedData; this.inputDataSets = inputDataSets;
this.computedData = computedData; this.outputDataSets = outputDataSets;
this.computations = computations; this.computations = computations;
} }
@ -51,25 +51,24 @@ public class DataMinerWorkArea implements Serializable {
return dataMinerWorkAreaFolder; return dataMinerWorkAreaFolder;
} }
public void setDataMinerWorkAreaFolder( public void setDataMinerWorkAreaFolder(ItemDescription dataMinerWorkAreaFolder) {
ItemDescription dataMinerWorkAreaFolder) {
this.dataMinerWorkAreaFolder = dataMinerWorkAreaFolder; this.dataMinerWorkAreaFolder = dataMinerWorkAreaFolder;
} }
public ImportedData getImportedData() { public InputDataSets getInputDataSets() {
return importedData; return inputDataSets;
} }
public void setImportedData(ImportedData importedData) { public void setInputDataSets(InputDataSets inputDataSets) {
this.importedData = importedData; this.inputDataSets = inputDataSets;
} }
public ComputedData getComputedData() { public OutputDataSets getOutputDataSets() {
return computedData; return outputDataSets;
} }
public void setComputedData(ComputedData computedData) { public void setOutputDataSets(OutputDataSets outputDataSets) {
this.computedData = computedData; this.outputDataSets = outputDataSets;
} }
public Computations getComputations() { public Computations getComputations() {
@ -83,9 +82,12 @@ public class DataMinerWorkArea implements Serializable {
@Override @Override
public String toString() { public String toString() {
return "DataMinerWorkArea [dataMinerWorkAreaFolder=" return "DataMinerWorkArea [dataMinerWorkAreaFolder="
+ dataMinerWorkAreaFolder + ", importedData=" + importedData + dataMinerWorkAreaFolder + ", inputDataSets=" + inputDataSets
+ ", computedData=" + computedData + ", computations=" + ", outputDataSets=" + outputDataSets + ", computations="
+ computations + "]"; + computations + "]";
} }
} }

View File

@ -8,16 +8,16 @@ import java.io.Serializable;
* 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 ImportedData implements Serializable { public class InputDataSets implements Serializable {
private static final long serialVersionUID = -4408116083736005844L; private static final long serialVersionUID = -4408116083736005844L;
private ItemDescription folder; private ItemDescription folder;
public ImportedData() { public InputDataSets() {
super(); super();
} }
public ImportedData(ItemDescription folder) { public InputDataSets(ItemDescription folder) {
super(); super();
this.folder = folder; this.folder = folder;
} }

View File

@ -8,16 +8,16 @@ import java.io.Serializable;
* 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 ComputedData implements Serializable { public class OutputDataSets implements Serializable {
private static final long serialVersionUID = -8235652292513149983L; private static final long serialVersionUID = -8235652292513149983L;
private ItemDescription folder; private ItemDescription folder;
public ComputedData() { public OutputDataSets() {
super(); super();
} }
public ComputedData(ItemDescription folder) { public OutputDataSets(ItemDescription folder) {
super(); super();
this.folder = folder; this.folder = folder;
} }

View File

@ -51,19 +51,19 @@
<entry-point <entry-point
class='org.gcube.portlets.user.dataminermanager.client.DataMinerManager' /> class='org.gcube.portlets.user.dataminermanager.client.DataMinerManager' />
<!--
<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"
/> --> /> -->

764542
test.log.1

File diff suppressed because one or more lines are too long

470026
test.log.2

File diff suppressed because one or more lines are too long