177 lines
5.0 KiB
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();
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|