168 lines
4.4 KiB
Java
168 lines
4.4 KiB
Java
/**
|
|
*
|
|
*/
|
|
package org.gcube.portlets.user.dataminermanager.client.computations;
|
|
|
|
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 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.container.MarginData;
|
|
|
|
/**
|
|
*
|
|
* @author Giancarlo Panichi email: <a
|
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
|
*
|
|
*/
|
|
public class ComputationsPanel extends FramedPanel {
|
|
private ComputationsExecutedPanel computationsExecutedPanel;
|
|
private ComputationsViewerPanel computationsViewerPanel;
|
|
|
|
public ComputationsPanel() {
|
|
super();
|
|
init();
|
|
create();
|
|
bind();
|
|
}
|
|
|
|
private void init() {
|
|
setBodyStyle("backgroundColor:white;");
|
|
setBorders(false);
|
|
setBodyBorder(false);
|
|
setHeadingText("Computations");
|
|
setHeaderVisible(true);
|
|
|
|
}
|
|
|
|
private void bind() {
|
|
EventBusProvider.INSTANCE.addHandler(ComputationDataEvent.getType(),
|
|
new ComputationDataEvent.ComputationDataEventHandler() {
|
|
|
|
@Override
|
|
public void onComputationData(ComputationDataEvent event) {
|
|
Log.debug("Catch ComputationDataEvent: " + event);
|
|
expandsComputationsViewer();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
EventBusProvider.INSTANCE.addHandler(DataMinerWorkAreaEvent.TYPE,
|
|
new DataMinerWorkAreaEvent.DataMinerWorkAreaEventHandler() {
|
|
|
|
@Override
|
|
public void onChange(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);
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
private void manageDataMinerWorkAreaEvents(DataMinerWorkAreaEvent event) {
|
|
Log.debug("ComputationsPanel recieved DataMinerWorkAreaEvent: " + event);
|
|
if (event == null) {
|
|
Log.error("DataMinerWorkAreaEvent null");
|
|
return;
|
|
}
|
|
switch (event.getDataMinerWorkAreaRegionType()) {
|
|
case Computations:
|
|
collapseComputationsViewer();
|
|
break;
|
|
case DataSets:
|
|
break;
|
|
default:
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private void manageRefreshDataMinerWorkAreaEvents(
|
|
RefreshDataMinerWorkAreaEvent event) {
|
|
Log.debug("ComputationsPanel recieved RefreshDataMinerWorkAreaEvent: " + event);
|
|
if (event == null) {
|
|
Log.error("RefreshDataMinerWorkAreaEvent null");
|
|
return;
|
|
}
|
|
switch (event.getDataMinerWorkAreaElementType()) {
|
|
case Computations:
|
|
collapseComputationsViewer();
|
|
break;
|
|
case InputDataSets:
|
|
break;
|
|
case OutputDataSets:
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
private void collapseComputationsViewer() {
|
|
if (computationsViewerPanel.isExpanded()) {
|
|
computationsViewerPanel.collapse();
|
|
}
|
|
forceLayout();
|
|
}
|
|
|
|
private void expandsComputationsViewer() {
|
|
if (computationsViewerPanel.isCollapsed()) {
|
|
computationsViewerPanel.expand();
|
|
}
|
|
forceLayout();
|
|
}
|
|
|
|
private void create() {
|
|
computationsExecutedPanel = new ComputationsExecutedPanel();
|
|
computationsViewerPanel = new ComputationsViewerPanel();
|
|
|
|
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);
|
|
southData.setCollapsed(true);
|
|
|
|
BorderLayoutContainer borderLayoutContainer = new BorderLayoutContainer();
|
|
borderLayoutContainer.setCenterWidget(computationsExecutedPanel,
|
|
centerData);
|
|
borderLayoutContainer
|
|
.setSouthWidget(computationsViewerPanel, southData);
|
|
|
|
add(borderLayoutContainer, new MarginData(new Margins(0)));
|
|
|
|
forceLayout();
|
|
|
|
}
|
|
|
|
}
|