tabular-data-manager/src/main/java/org/gcube/portlets/user/td/client/ribbon/ReviewToolBar.java

160 lines
4.8 KiB
Java

/**
*
*/
package org.gcube.portlets.user.td.client.ribbon;
import org.gcube.portlets.user.td.client.resource.TabularDataResources;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NodeList;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.web.bindery.event.shared.EventBus;
import com.sencha.gxt.cell.core.client.ButtonCell.ButtonArrowAlign;
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.XElement;
import com.sencha.gxt.widget.core.client.button.ButtonGroup;
import com.sencha.gxt.widget.core.client.button.TextButton;
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 "Federico De Faveri defaveri@isti.cnr.it"
*
*/
public class ReviewToolBar {
protected EventBus eventBus;
protected ToolBar toolBar;
protected TextButton btn;
protected TextButton validationButton;
protected TextButton rulesButton;
protected TextButton statisticalButton;
protected TextButton rstudioButton;
public ReviewToolBar(EventBus eventBus) {
this.eventBus = eventBus;
toolBar = new ToolBar();
build();
}
public ToolBar getToolBar() {
return toolBar;
}
protected void build() {
toolBar.setHeight("94px");
// Validation
ButtonGroup validationGroup = new ButtonGroup();
validationGroup.setHeight("78px");
validationGroup.setStyleName("margin:2px");
validationGroup.setHeadingText("Validation");
toolBar.add(validationGroup);
FlexTable validationLayout = new FlexTable();
validationGroup.add(validationLayout);
rulesButton = new TextButton("Rules",
TabularDataResources.INSTANCE.rules32());
rulesButton.setScale(ButtonScale.LARGE);
rulesButton.setIconAlign(IconAlign.TOP);
rulesButton.setToolTip("Rules");
rulesButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
rulesButton.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
// eventBus.fireEvent(new
// ImportTableEvent(ImportTableType.JSON));
}
});
validationLayout.setWidget(0, 1, rulesButton);
validationLayout.getFlexCellFormatter().setRowSpan(0, 1, 2);
validationButton = new TextButton("Validate",
TabularDataResources.INSTANCE.validation32());
validationButton.setScale(ButtonScale.LARGE);
validationButton.setIconAlign(IconAlign.TOP);
validationButton.setToolTip("Validate");
validationButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
validationButton.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
// eventBus.fireEvent(new
// ImportTableEvent(ImportTableType.JSON));
}
});
validationLayout.setWidget(0, 2, validationButton);
validationLayout.getFlexCellFormatter().setRowSpan(0, 2, 2);
cleanCells(validationLayout.getElement());
ButtonGroup externalToolGroup = new ButtonGroup();
externalToolGroup.setHeight("78px");
externalToolGroup.setStyleName("margin:2px");
externalToolGroup.setHeadingText("External Tools");
toolBar.add(externalToolGroup);
FlexTable externalToolLayout = new FlexTable();
externalToolGroup.add(externalToolLayout);
rstudioButton = new TextButton("R Studio",
TabularDataResources.INSTANCE.rstudio32());
rstudioButton.setScale(ButtonScale.LARGE);
rstudioButton.setIconAlign(IconAlign.TOP);
rstudioButton.setToolTip("R Studio");
rstudioButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
rstudioButton.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
// eventBus.fireEvent(new
// ImportTableEvent(ImportTableType.JSON));
}
});
externalToolLayout.setWidget(0, 1, rstudioButton);
externalToolLayout.getFlexCellFormatter().setRowSpan(0, 1, 2);
statisticalButton = new TextButton("Statistical",
TabularDataResources.INSTANCE.statistical32());
statisticalButton.setScale(ButtonScale.LARGE);
statisticalButton.setIconAlign(IconAlign.TOP);
statisticalButton.setToolTip("Statistical");
statisticalButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
statisticalButton.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
// eventBus.fireEvent(new
// ImportTableEvent(ImportTableType.JSON));
}
});
externalToolLayout.setWidget(0, 2, statisticalButton);
externalToolLayout.getFlexCellFormatter().setRowSpan(0, 2, 2);
cleanCells(externalToolLayout.getElement());
}
protected void cleanCells(Element elem) {
NodeList<Element> tds = elem.<XElement> cast().select("td");
for (int i = 0; i < tds.getLength(); i++) {
Element td = tds.getItem(i);
if (!td.hasChildNodes() && td.getClassName().equals("")) {
td.removeFromParent();
}
}
}
}