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

177 lines
5.0 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 ChartsToolBar {
protected EventBus eventBus;
protected ToolBar toolBar;
protected TextButton pieButton;
protected TextButton barButton;
protected TextButton curveButton;
protected TextButton bullsButton;
protected TextButton gisButton;
public ChartsToolBar(EventBus eventBus)
{
this.eventBus = eventBus;
toolBar = new ToolBar();
build();
}
public ToolBar getToolBar()
{
return toolBar;
}
protected void build()
{
toolBar.setHeight("94px");
ButtonGroup basicGroup = new ButtonGroup();
basicGroup.setHeight("78px");
basicGroup.setStyleName("margin:2px");
basicGroup.setHeadingText("Basic");
toolBar.add(basicGroup);
FlexTable basicLayout = new FlexTable();
basicGroup.add(basicLayout);
pieButton = new TextButton("Pie", TabularDataResources.INSTANCE.chartPie32());
pieButton.setScale(ButtonScale.LARGE);
pieButton.setIconAlign(IconAlign.TOP);
pieButton.setToolTip("Pie");
pieButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
pieButton.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
//eventBus.fireEvent(new ImportTableEvent(ImportTableType.JSON));
}
});
basicLayout.setWidget(0, 0, pieButton);
basicLayout.getFlexCellFormatter().setRowSpan(0, 0, 2);
barButton = new TextButton("Bar", TabularDataResources.INSTANCE.chartBar32());
barButton.setScale(ButtonScale.LARGE);
barButton.setIconAlign(IconAlign.TOP);
barButton.setToolTip("Bar");
barButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
barButton.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
//eventBus.fireEvent(new ImportTableEvent(ImportTableType.JSON));
}
});
basicLayout.setWidget(0, 1, barButton);
basicLayout.getFlexCellFormatter().setRowSpan(0, 1, 2);
curveButton = new TextButton("Curve", TabularDataResources.INSTANCE.chartCurve32());
curveButton.setScale(ButtonScale.LARGE);
curveButton.setIconAlign(IconAlign.TOP);
curveButton.setToolTip("Curve");
curveButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
curveButton.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
//eventBus.fireEvent(new ImportTableEvent(ImportTableType.JSON));
}
});
basicLayout.setWidget(0, 2, curveButton);
basicLayout.getFlexCellFormatter().setRowSpan(0, 2, 2);
bullsButton = new TextButton("Bulls", TabularDataResources.INSTANCE.chartBulls32());
bullsButton.setScale(ButtonScale.LARGE);
bullsButton.setIconAlign(IconAlign.TOP);
bullsButton.setToolTip("Bulls");
bullsButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
bullsButton.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
//eventBus.fireEvent(new ImportTableEvent(ImportTableType.JSON));
}
});
basicLayout.setWidget(0, 3, bullsButton);
basicLayout.getFlexCellFormatter().setRowSpan(0, 3, 2);
cleanCells(basicLayout.getElement());
//GIS
ButtonGroup gisGroup = new ButtonGroup();
gisGroup.setHeight("78px");
gisGroup.setStyleName("margin:2px");
gisGroup.setHeadingText("GIS");
toolBar.add(gisGroup);
FlexTable gisLayout = new FlexTable();
gisGroup.add(gisLayout);
gisButton = new TextButton("GIS", TabularDataResources.INSTANCE.gis32());
gisButton.setScale(ButtonScale.LARGE);
gisButton.setIconAlign(IconAlign.TOP);
gisButton.setToolTip("GIS");
gisButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
gisButton.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
//eventBus.fireEvent(new ImportTableEvent(ImportTableType.JSON));
}
});
gisLayout.setWidget(0, 0, gisButton);
gisLayout.getFlexCellFormatter().setRowSpan(0, 0, 2);
cleanCells(gisLayout.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();
}
}
}
}