160 lines
4.8 KiB
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();
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|