2013-09-16 11:43:07 +02:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
package org.gcube.portlets.user.td.client.ribbon;
|
|
|
|
|
2013-12-02 20:04:19 +01:00
|
|
|
import org.gcube.portlets.user.td.client.resource.TabularDataResources;
|
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.client.event.RibbonEvent;
|
2013-11-26 13:57:08 +01:00
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.client.event.UIStateEvent;
|
2013-12-02 20:04:19 +01:00
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.client.type.RibbonType;
|
2013-11-26 13:57:08 +01:00
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.client.type.UIStateType;
|
2014-03-25 12:53:56 +01:00
|
|
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
|
2013-09-16 11:43:07 +02:00
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
import com.allen_sauer.gwt.log.client.Log;
|
2013-09-16 11:43:07 +02:00
|
|
|
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;
|
2013-10-25 18:01:00 +02:00
|
|
|
import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
|
2013-09-16 11:43:07 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
2013-10-25 17:05:30 +02:00
|
|
|
* @author "Giancarlo Panichi" <a
|
|
|
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
|
|
|
*
|
2013-09-16 11:43:07 +02:00
|
|
|
*/
|
|
|
|
public class FileToolBar {
|
|
|
|
|
|
|
|
protected EventBus eventBus;
|
|
|
|
protected ToolBar toolBar;
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
protected TextButton openButton;
|
2014-03-07 15:45:39 +01:00
|
|
|
protected TextButton cloneButton;
|
2013-09-16 11:43:07 +02:00
|
|
|
protected TextButton closeButton;
|
2014-01-29 19:51:28 +01:00
|
|
|
|
2013-12-20 11:03:07 +01:00
|
|
|
protected TextButton deleteButton;
|
2013-09-16 11:43:07 +02:00
|
|
|
protected TextButton propertiesButton;
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
protected TextButton importCSVButton;
|
|
|
|
protected TextButton importJSONButton;
|
|
|
|
protected TextButton importSDMXButton;
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
protected TextButton exportSDMXButton;
|
|
|
|
protected TextButton exportCSVButton;
|
|
|
|
protected TextButton exportJSONButton;
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2014-01-30 14:52:19 +01:00
|
|
|
//Template
|
2014-03-25 11:16:58 +01:00
|
|
|
protected TextButton templateNewButton;
|
2014-04-15 14:29:28 +02:00
|
|
|
protected TextButton templateOpenButton;
|
|
|
|
protected TextButton templateDeleteButton;
|
2014-01-30 14:52:19 +01:00
|
|
|
|
2014-03-25 11:16:58 +01:00
|
|
|
//Share
|
2014-01-29 19:51:28 +01:00
|
|
|
protected TextButton shareButton;
|
|
|
|
|
|
|
|
protected TextButton timelineButton;
|
|
|
|
|
|
|
|
// History
|
|
|
|
protected TextButton historyButton;
|
|
|
|
protected TextButton discardButton;
|
|
|
|
protected TextButton discardAllButton;
|
|
|
|
|
|
|
|
protected TextButton helpButton;
|
2014-01-30 14:52:19 +01:00
|
|
|
|
2013-12-13 18:42:07 +01:00
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
public FileToolBar(EventBus eventBus) {
|
2013-09-16 11:43:07 +02:00
|
|
|
this.eventBus = eventBus;
|
|
|
|
build();
|
|
|
|
}
|
2013-10-25 17:05:30 +02:00
|
|
|
|
|
|
|
public ToolBar getToolBar() {
|
2013-09-16 11:43:07 +02:00
|
|
|
return toolBar;
|
|
|
|
}
|
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
protected void build() {
|
2013-10-15 19:36:36 +02:00
|
|
|
toolBar = new ToolBar();
|
|
|
|
toolBar.setSpacing(1);
|
2013-10-28 16:29:32 +01:00
|
|
|
toolBar.setEnableOverflow(false);
|
2013-12-13 18:42:07 +01:00
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
// File
|
2013-10-25 14:53:16 +02:00
|
|
|
ButtonGroup fileGroup = new ButtonGroup();
|
|
|
|
fileGroup.setId("File");
|
|
|
|
fileGroup.setStyleName("ribbon");
|
|
|
|
fileGroup.setHeadingText("File");
|
|
|
|
toolBar.add(fileGroup);
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2014-01-29 19:51:28 +01:00
|
|
|
FlexTable fileLayout = new FlexTable();
|
|
|
|
fileLayout.setStyleName("ribbon");
|
|
|
|
fileGroup.add(fileLayout);
|
2013-10-25 17:05:30 +02:00
|
|
|
|
|
|
|
openButton = new TextButton("Open",
|
|
|
|
TabularDataResources.INSTANCE.open32());
|
2013-12-02 20:04:19 +01:00
|
|
|
openButton.setId("openButton");
|
2013-09-16 11:43:07 +02:00
|
|
|
openButton.setScale(ButtonScale.LARGE);
|
|
|
|
openButton.setIconAlign(IconAlign.TOP);
|
|
|
|
openButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
2013-10-15 19:36:36 +02:00
|
|
|
openButton.setToolTip("Open Tabular Resource");
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
openButton.addSelectHandler(new SelectHandler() {
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
public void onSelect(SelectEvent event) {
|
2013-12-13 18:42:07 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.OPEN));
|
2013-09-16 11:43:07 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2014-01-29 19:51:28 +01:00
|
|
|
fileLayout.setWidget(0, 0, openButton);
|
|
|
|
fileLayout.getFlexCellFormatter().setRowSpan(0, 0, 2);
|
2014-03-07 15:45:39 +01:00
|
|
|
|
|
|
|
|
|
|
|
cloneButton = new TextButton("Clone",
|
2014-03-07 15:48:22 +01:00
|
|
|
TabularDataResources.INSTANCE.clone32());
|
2014-03-07 15:45:39 +01:00
|
|
|
cloneButton.disable();
|
|
|
|
cloneButton.setId("cloneButton");
|
|
|
|
cloneButton.setScale(ButtonScale.LARGE);
|
|
|
|
cloneButton.setIconAlign(IconAlign.TOP);
|
|
|
|
cloneButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
|
|
|
cloneButton.setToolTip("Clone Tabular Resource");
|
|
|
|
|
|
|
|
cloneButton.addSelectHandler(new SelectHandler() {
|
|
|
|
|
|
|
|
public void onSelect(SelectEvent event) {
|
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.CLONE));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
fileLayout.setWidget(0, 1, cloneButton);
|
|
|
|
fileLayout.getFlexCellFormatter().setRowSpan(0, 1, 2);
|
2013-12-13 18:42:07 +01:00
|
|
|
|
2014-03-07 15:45:39 +01:00
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
closeButton = new TextButton("Close",
|
2013-12-02 20:04:19 +01:00
|
|
|
TabularDataResources.INSTANCE.close32());
|
2013-12-03 11:05:53 +01:00
|
|
|
closeButton.disable();
|
2013-10-15 19:36:36 +02:00
|
|
|
closeButton.setId("closeButton");
|
2013-12-02 20:04:19 +01:00
|
|
|
closeButton.setScale(ButtonScale.LARGE);
|
|
|
|
closeButton.setIconAlign(IconAlign.TOP);
|
|
|
|
closeButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
|
|
|
closeButton.setToolTip("Close Tabular Resource");
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
closeButton.addSelectHandler(new SelectHandler() {
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
public void onSelect(SelectEvent event) {
|
2013-12-13 18:42:07 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.CLOSE));
|
2013-12-02 20:04:19 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2014-03-07 15:45:39 +01:00
|
|
|
fileLayout.setWidget(0, 2, closeButton);
|
|
|
|
fileLayout.getFlexCellFormatter().setRowSpan(0, 2, 2);
|
2013-12-02 20:04:19 +01:00
|
|
|
|
|
|
|
deleteButton = new TextButton("Delete",
|
2013-12-03 11:05:53 +01:00
|
|
|
TabularDataResources.INSTANCE.delete());
|
2013-12-02 20:04:19 +01:00
|
|
|
deleteButton.disable();
|
|
|
|
deleteButton.setId("closeButton");
|
|
|
|
deleteButton.setToolTip("Delete Tabular Resource");
|
|
|
|
|
2014-03-07 15:45:39 +01:00
|
|
|
fileLayout.setWidget(0, 3, deleteButton);
|
2013-12-02 20:04:19 +01:00
|
|
|
deleteButton.addSelectHandler(new SelectHandler() {
|
|
|
|
|
|
|
|
public void onSelect(SelectEvent event) {
|
2013-12-13 18:42:07 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.DELETE));
|
2013-09-16 11:43:07 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
propertiesButton = new TextButton("Properties",
|
|
|
|
TabularDataResources.INSTANCE.properties());
|
2013-10-25 18:01:00 +02:00
|
|
|
propertiesButton.disable();
|
2013-10-15 19:36:36 +02:00
|
|
|
propertiesButton.setId("propertiesButton");
|
2013-10-08 18:23:12 +02:00
|
|
|
propertiesButton.setToolTip("Show properties");
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2014-03-07 15:45:39 +01:00
|
|
|
fileLayout.setWidget(1, 3, propertiesButton);
|
2013-09-16 11:43:07 +02:00
|
|
|
propertiesButton.addSelectHandler(new SelectHandler() {
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
public void onSelect(SelectEvent event) {
|
2013-12-13 18:42:07 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.PROPERTIES));
|
2013-09-16 11:43:07 +02:00
|
|
|
}
|
|
|
|
});
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2014-01-29 19:51:28 +01:00
|
|
|
cleanCells(fileLayout.getElement());
|
2013-10-25 17:05:30 +02:00
|
|
|
|
|
|
|
// Import
|
2013-09-16 11:43:07 +02:00
|
|
|
ButtonGroup importGroup = new ButtonGroup();
|
2013-10-15 19:36:36 +02:00
|
|
|
importGroup.setId("Import");
|
|
|
|
importGroup.setStyleName("ribbon");
|
2013-09-16 11:43:07 +02:00
|
|
|
importGroup.setHeadingText("Import");
|
|
|
|
toolBar.add(importGroup);
|
|
|
|
|
|
|
|
FlexTable importLayout = new FlexTable();
|
|
|
|
importGroup.add(importLayout);
|
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
importSDMXButton = new TextButton("SDMX",
|
|
|
|
TabularDataResources.INSTANCE.sdmx32());
|
2013-09-16 11:43:07 +02:00
|
|
|
importSDMXButton.setScale(ButtonScale.LARGE);
|
|
|
|
importSDMXButton.setIconAlign(IconAlign.TOP);
|
2013-10-08 18:23:12 +02:00
|
|
|
importSDMXButton.setToolTip("Import table from SDMX source");
|
2013-09-16 11:43:07 +02:00
|
|
|
importSDMXButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
|
|
|
importSDMXButton.addSelectHandler(new SelectHandler() {
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
public void onSelect(SelectEvent event) {
|
2013-12-13 18:42:07 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.IMPORTSDMX));
|
2013-09-16 11:43:07 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
importLayout.setWidget(0, 0, importSDMXButton);
|
|
|
|
importLayout.getFlexCellFormatter().setRowSpan(0, 0, 2);
|
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
importCSVButton = new TextButton("CSV",
|
|
|
|
TabularDataResources.INSTANCE.csv());
|
2013-10-08 18:23:12 +02:00
|
|
|
importCSVButton.setToolTip("Import table from CSV source");
|
2013-09-16 11:43:07 +02:00
|
|
|
importCSVButton.addSelectHandler(new SelectHandler() {
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
public void onSelect(SelectEvent event) {
|
2013-12-13 18:42:07 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.IMPORTCSV));
|
2013-09-16 11:43:07 +02:00
|
|
|
}
|
|
|
|
});
|
2013-09-25 17:44:07 +02:00
|
|
|
importLayout.setWidget(0, 2, importCSVButton);
|
2013-09-16 11:43:07 +02:00
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
importJSONButton = new TextButton("JSON",
|
|
|
|
TabularDataResources.INSTANCE.json());
|
2013-10-25 14:53:16 +02:00
|
|
|
importJSONButton.disable();
|
2013-10-08 18:23:12 +02:00
|
|
|
importJSONButton.setToolTip("Import table from JSON source");
|
2013-09-16 11:43:07 +02:00
|
|
|
importJSONButton.addSelectHandler(new SelectHandler() {
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
public void onSelect(SelectEvent event) {
|
2013-12-13 18:42:07 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.IMPORTJSON));
|
2013-09-16 11:43:07 +02:00
|
|
|
}
|
|
|
|
});
|
2013-09-25 17:44:07 +02:00
|
|
|
importLayout.setWidget(1, 2, importJSONButton);
|
2013-09-16 11:43:07 +02:00
|
|
|
|
|
|
|
cleanCells(importLayout.getElement());
|
2013-10-25 17:05:30 +02:00
|
|
|
|
|
|
|
// Export
|
2013-09-16 11:43:07 +02:00
|
|
|
ButtonGroup exportGroup = new ButtonGroup();
|
2013-10-15 19:36:36 +02:00
|
|
|
exportGroup.setId("Export");
|
|
|
|
exportGroup.setStyleName("ribbon");
|
2013-09-16 11:43:07 +02:00
|
|
|
exportGroup.setHeadingText("Export");
|
2013-12-13 18:42:07 +01:00
|
|
|
// exportGroup.disable();
|
2013-09-16 11:43:07 +02:00
|
|
|
toolBar.add(exportGroup);
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
FlexTable exportLayout = new FlexTable();
|
|
|
|
exportGroup.add(exportLayout);
|
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
exportSDMXButton = new TextButton("SDMX",
|
|
|
|
TabularDataResources.INSTANCE.sdmx32());
|
2013-11-18 16:08:28 +01:00
|
|
|
exportSDMXButton.disable();
|
2013-10-08 18:23:12 +02:00
|
|
|
exportSDMXButton.setToolTip("Export SDMX document");
|
2013-09-16 11:43:07 +02:00
|
|
|
exportSDMXButton.setScale(ButtonScale.LARGE);
|
|
|
|
exportSDMXButton.setIconAlign(IconAlign.TOP);
|
|
|
|
exportSDMXButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
2013-09-25 17:44:07 +02:00
|
|
|
exportSDMXButton.addSelectHandler(new SelectHandler() {
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-25 17:44:07 +02:00
|
|
|
public void onSelect(SelectEvent event) {
|
2013-12-13 18:42:07 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.EXPORTSDMX));
|
2013-09-25 17:44:07 +02:00
|
|
|
}
|
|
|
|
});
|
2013-09-16 11:43:07 +02:00
|
|
|
|
|
|
|
exportLayout.setWidget(0, 0, exportSDMXButton);
|
|
|
|
exportLayout.getFlexCellFormatter().setRowSpan(0, 0, 2);
|
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
exportCSVButton = new TextButton("CSV",
|
|
|
|
TabularDataResources.INSTANCE.csv());
|
2013-11-18 16:08:28 +01:00
|
|
|
exportCSVButton.disable();
|
2013-10-08 18:23:12 +02:00
|
|
|
exportCSVButton.setToolTip("Export CSV document");
|
2013-09-25 17:44:07 +02:00
|
|
|
exportCSVButton.addSelectHandler(new SelectHandler() {
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-25 17:44:07 +02:00
|
|
|
public void onSelect(SelectEvent event) {
|
2013-12-13 18:42:07 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.EXPORTCSV));
|
2013-09-25 17:44:07 +02:00
|
|
|
}
|
|
|
|
});
|
2013-09-16 11:43:07 +02:00
|
|
|
exportLayout.setWidget(0, 2, exportCSVButton);
|
2013-10-25 17:05:30 +02:00
|
|
|
|
|
|
|
exportJSONButton = new TextButton("JSON",
|
|
|
|
TabularDataResources.INSTANCE.json());
|
2013-11-18 16:08:28 +01:00
|
|
|
exportJSONButton.disable();
|
2013-10-08 18:23:12 +02:00
|
|
|
exportJSONButton.setToolTip("Export JSON document");
|
2013-09-25 17:44:07 +02:00
|
|
|
exportJSONButton.addSelectHandler(new SelectHandler() {
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2013-09-25 17:44:07 +02:00
|
|
|
public void onSelect(SelectEvent event) {
|
2013-12-13 18:42:07 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.EXPORTJSON));
|
2013-09-25 17:44:07 +02:00
|
|
|
}
|
|
|
|
});
|
2013-09-16 11:43:07 +02:00
|
|
|
exportLayout.setWidget(1, 2, exportJSONButton);
|
2013-12-16 19:36:41 +01:00
|
|
|
cleanCells(exportLayout.getElement());
|
2013-09-16 11:43:07 +02:00
|
|
|
|
2013-12-13 18:42:07 +01:00
|
|
|
// Template
|
|
|
|
ButtonGroup templateGroup = new ButtonGroup();
|
|
|
|
templateGroup.setId("Template");
|
|
|
|
templateGroup.setStyleName("ribbon");
|
|
|
|
templateGroup.setHeadingText("Template");
|
2014-02-10 19:20:43 +01:00
|
|
|
//templateGroup.disable();
|
2013-12-13 18:42:07 +01:00
|
|
|
toolBar.add(templateGroup);
|
|
|
|
|
|
|
|
FlexTable templateLayout = new FlexTable();
|
|
|
|
templateGroup.add(templateLayout);
|
|
|
|
|
2014-03-10 15:21:30 +01:00
|
|
|
templateNewButton = new TextButton("New",
|
|
|
|
TabularDataResources.INSTANCE.templateEdit32());
|
|
|
|
templateNewButton.enable();
|
|
|
|
templateNewButton.setToolTip("New");
|
|
|
|
templateNewButton.setScale(ButtonScale.LARGE);
|
|
|
|
templateNewButton.setIconAlign(IconAlign.TOP);
|
|
|
|
templateNewButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
|
|
|
templateNewButton.addSelectHandler(new SelectHandler() {
|
|
|
|
|
|
|
|
public void onSelect(SelectEvent event) {
|
|
|
|
eventBus.fireEvent(new RibbonEvent(
|
|
|
|
RibbonType.TEMPLATENEW));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
templateLayout.setWidget(0, 0, templateNewButton);
|
|
|
|
templateLayout.getFlexCellFormatter().setRowSpan(0, 0, 2);
|
|
|
|
|
2014-01-30 14:52:19 +01:00
|
|
|
templateOpenButton = new TextButton("Open",
|
|
|
|
TabularDataResources.INSTANCE.templateAdd32());
|
2014-02-28 11:47:17 +01:00
|
|
|
templateOpenButton.enable();
|
2014-01-30 14:52:19 +01:00
|
|
|
templateOpenButton.setToolTip("Open");
|
|
|
|
templateOpenButton.setScale(ButtonScale.LARGE);
|
|
|
|
templateOpenButton.setIconAlign(IconAlign.TOP);
|
|
|
|
templateOpenButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
|
|
|
templateOpenButton.addSelectHandler(new SelectHandler() {
|
2013-12-13 18:42:07 +01:00
|
|
|
|
|
|
|
public void onSelect(SelectEvent event) {
|
2014-02-11 10:53:28 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(
|
|
|
|
RibbonType.TEMPLATEOPEN));
|
2013-12-13 18:42:07 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2014-04-15 14:29:28 +02:00
|
|
|
templateLayout.setWidget(0, 1, templateOpenButton);
|
|
|
|
templateLayout.getFlexCellFormatter().setRowSpan(0, 1, 2);
|
|
|
|
|
|
|
|
|
|
|
|
templateDeleteButton = new TextButton("Delete",
|
|
|
|
TabularDataResources.INSTANCE.templateDelete32());
|
|
|
|
templateDeleteButton.enable();
|
|
|
|
templateDeleteButton.setToolTip("Delete");
|
|
|
|
templateDeleteButton.setScale(ButtonScale.LARGE);
|
|
|
|
templateDeleteButton.setIconAlign(IconAlign.TOP);
|
|
|
|
templateDeleteButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
|
|
|
templateDeleteButton.addSelectHandler(new SelectHandler() {
|
|
|
|
|
|
|
|
public void onSelect(SelectEvent event) {
|
|
|
|
eventBus.fireEvent(new RibbonEvent(
|
|
|
|
RibbonType.TEMPLATEDELETE));
|
|
|
|
}
|
|
|
|
});
|
2014-01-30 14:52:19 +01:00
|
|
|
|
2014-04-15 14:29:28 +02:00
|
|
|
templateLayout.setWidget(0, 2, templateDeleteButton);
|
|
|
|
templateLayout.getFlexCellFormatter().setRowSpan(0, 2, 2);
|
2014-01-30 14:52:19 +01:00
|
|
|
|
2013-12-16 19:36:41 +01:00
|
|
|
cleanCells(templateLayout.getElement());
|
2013-12-13 18:42:07 +01:00
|
|
|
|
2014-01-29 19:51:28 +01:00
|
|
|
// Share
|
|
|
|
ButtonGroup shareGroup = new ButtonGroup();
|
|
|
|
shareGroup.setId("Share");
|
|
|
|
shareGroup.setStyleName("ribbon");
|
|
|
|
shareGroup.setHeadingText("Share");
|
|
|
|
toolBar.add(shareGroup);
|
|
|
|
|
|
|
|
FlexTable shareLayout = new FlexTable();
|
|
|
|
shareGroup.add(shareLayout);
|
|
|
|
|
|
|
|
shareButton = new TextButton("Share",
|
|
|
|
TabularDataResources.INSTANCE.share32());
|
|
|
|
shareButton.disable();
|
|
|
|
shareButton.setId("shareButton");
|
|
|
|
shareButton.setScale(ButtonScale.LARGE);
|
|
|
|
shareButton.setIconAlign(IconAlign.TOP);
|
|
|
|
shareButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
|
|
|
shareButton.setToolTip("Share Tabular Resource");
|
|
|
|
|
|
|
|
shareButton.addSelectHandler(new SelectHandler() {
|
|
|
|
|
|
|
|
public void onSelect(SelectEvent event) {
|
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.SHARE));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
shareLayout.setWidget(0, 0, shareButton);
|
|
|
|
shareLayout.getFlexCellFormatter().setRowSpan(0, 0, 2);
|
|
|
|
cleanCells(shareLayout.getElement());
|
|
|
|
|
2014-01-30 14:52:19 +01:00
|
|
|
// TimeLine (Tasks)
|
2013-12-16 19:36:41 +01:00
|
|
|
ButtonGroup taskGroup = new ButtonGroup();
|
|
|
|
taskGroup.setId("Template");
|
|
|
|
taskGroup.setStyleName("ribbon");
|
2014-01-29 19:51:28 +01:00
|
|
|
taskGroup.setHeadingText("Timeline");
|
2013-12-16 19:36:41 +01:00
|
|
|
toolBar.add(taskGroup);
|
|
|
|
|
|
|
|
FlexTable taskLayout = new FlexTable();
|
|
|
|
taskGroup.add(taskLayout);
|
|
|
|
|
2014-01-29 19:51:28 +01:00
|
|
|
timelineButton = new TextButton("Timeline",
|
2014-01-30 16:56:21 +01:00
|
|
|
TabularDataResources.INSTANCE.timeline32());
|
2014-01-29 19:51:28 +01:00
|
|
|
timelineButton.disable();
|
|
|
|
timelineButton.setToolTip("Timeline");
|
|
|
|
timelineButton.setScale(ButtonScale.LARGE);
|
|
|
|
timelineButton.setIconAlign(IconAlign.TOP);
|
|
|
|
timelineButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
|
|
|
timelineButton.addSelectHandler(new SelectHandler() {
|
2013-12-16 19:36:41 +01:00
|
|
|
|
|
|
|
public void onSelect(SelectEvent event) {
|
2014-01-29 19:51:28 +01:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.TIMELINE));
|
2013-12-16 19:36:41 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2014-01-29 19:51:28 +01:00
|
|
|
taskLayout.setWidget(0, 0, timelineButton);
|
2013-12-16 19:36:41 +01:00
|
|
|
taskLayout.getFlexCellFormatter().setRowSpan(0, 0, 2);
|
|
|
|
cleanCells(taskLayout.getElement());
|
2013-10-25 17:05:30 +02:00
|
|
|
|
2014-01-29 19:51:28 +01:00
|
|
|
// History Group
|
|
|
|
ButtonGroup historyGroup = new ButtonGroup();
|
|
|
|
historyGroup.setId("History");
|
|
|
|
historyGroup.setStyleName("ribbon");
|
|
|
|
historyGroup.setHeadingText("History");
|
2014-04-15 20:24:27 +02:00
|
|
|
historyGroup.enable();
|
2014-01-29 19:51:28 +01:00
|
|
|
toolBar.add(historyGroup);
|
|
|
|
|
|
|
|
FlexTable historyLayout = new FlexTable();
|
|
|
|
historyGroup.add(historyLayout);
|
|
|
|
|
|
|
|
historyButton = new TextButton("History",
|
|
|
|
TabularDataResources.INSTANCE.history32());
|
2014-04-15 20:24:27 +02:00
|
|
|
historyButton.disable();
|
2014-01-29 19:51:28 +01:00
|
|
|
historyButton.setScale(ButtonScale.LARGE);
|
|
|
|
historyButton.setIconAlign(IconAlign.TOP);
|
|
|
|
historyButton.setToolTip("Show history");
|
|
|
|
historyButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
|
|
|
historyButton.addSelectHandler(new SelectHandler() {
|
|
|
|
|
|
|
|
public void onSelect(SelectEvent event) {
|
2014-04-15 20:24:27 +02:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.HISTORY));
|
2014-01-29 19:51:28 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
historyLayout.setWidget(0, 0, historyButton);
|
|
|
|
historyLayout.getFlexCellFormatter().setRowSpan(0, 0, 2);
|
|
|
|
|
|
|
|
discardButton = new TextButton("Discard",
|
|
|
|
TabularDataResources.INSTANCE.discard());
|
2014-04-15 20:24:27 +02:00
|
|
|
discardButton.disable();
|
2014-01-29 19:51:28 +01:00
|
|
|
discardButton.setToolTip("Discard the last operation");
|
|
|
|
historyLayout.setWidget(0, 1, discardButton);
|
|
|
|
discardButton.addSelectHandler(new SelectHandler() {
|
|
|
|
|
|
|
|
public void onSelect(SelectEvent event) {
|
2014-04-15 20:24:27 +02:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.DISCARD));
|
2014-01-29 19:51:28 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
discardAllButton = new TextButton("Discard All",
|
|
|
|
TabularDataResources.INSTANCE.discardAll());
|
2014-04-15 20:24:27 +02:00
|
|
|
discardAllButton.disable();
|
2014-01-29 19:51:28 +01:00
|
|
|
discardAllButton.setToolTip("Discard all unsaved operations");
|
|
|
|
historyLayout.setWidget(1, 1, discardAllButton);
|
|
|
|
discardAllButton.addSelectHandler(new SelectHandler() {
|
|
|
|
|
|
|
|
public void onSelect(SelectEvent event) {
|
2014-04-15 20:24:27 +02:00
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.DISCARDALL));
|
2014-01-29 19:51:28 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
cleanCells(historyLayout.getElement());
|
|
|
|
|
|
|
|
// Help
|
|
|
|
ButtonGroup helpGroup = new ButtonGroup();
|
|
|
|
helpGroup.setId("Help");
|
|
|
|
helpGroup.setStyleName("ribbon");
|
|
|
|
helpGroup.setHeadingText("Help");
|
|
|
|
toolBar.add(helpGroup);
|
|
|
|
|
|
|
|
FlexTable helpLayout = new FlexTable();
|
|
|
|
helpGroup.add(helpLayout);
|
|
|
|
|
|
|
|
helpButton = new TextButton("Help",
|
2014-01-29 20:01:19 +01:00
|
|
|
TabularDataResources.INSTANCE.help32());
|
2014-01-29 19:51:28 +01:00
|
|
|
helpButton.enable();
|
|
|
|
helpButton.setToolTip("Help");
|
|
|
|
helpButton.setScale(ButtonScale.LARGE);
|
|
|
|
helpButton.setIconAlign(IconAlign.TOP);
|
|
|
|
helpButton.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
|
|
|
helpButton.addSelectHandler(new SelectHandler() {
|
|
|
|
|
|
|
|
public void onSelect(SelectEvent event) {
|
|
|
|
eventBus.fireEvent(new RibbonEvent(RibbonType.HELP));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
helpLayout.setWidget(0, 0, helpButton);
|
|
|
|
helpLayout.getFlexCellFormatter().setRowSpan(0, 0, 2);
|
|
|
|
cleanCells(helpLayout.getElement());
|
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
eventBus.addHandler(UIStateEvent.TYPE,
|
|
|
|
new UIStateEvent.UIStateHandler() {
|
|
|
|
|
|
|
|
public void onUIState(UIStateEvent event) {
|
2013-12-05 16:26:43 +01:00
|
|
|
setUI(event);
|
2013-10-25 17:05:30 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2013-09-16 11:43:07 +02:00
|
|
|
}
|
|
|
|
|
2013-10-15 19:36:36 +02:00
|
|
|
private void cleanCells(Element elem) {
|
2013-10-25 17:05:30 +02:00
|
|
|
NodeList<Element> tds = elem.<XElement> cast().select("td");
|
|
|
|
for (int i = 0; i < tds.getLength(); i++) {
|
|
|
|
Element td = tds.getItem(i);
|
2013-09-16 11:43:07 +02:00
|
|
|
|
2013-10-25 17:05:30 +02:00
|
|
|
if (!td.hasChildNodes() && td.getClassName().equals("")) {
|
|
|
|
td.removeFromParent();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-12-05 16:26:43 +01:00
|
|
|
public void setUI(UIStateEvent event) {
|
2013-12-13 18:42:07 +01:00
|
|
|
UIStateType uiStateType = event.getUIStateType();
|
2013-10-25 17:05:30 +02:00
|
|
|
try {
|
|
|
|
switch (uiStateType) {
|
|
|
|
case START:
|
|
|
|
openButton.enable();
|
2014-03-07 15:45:39 +01:00
|
|
|
cloneButton.disable();
|
2013-10-25 17:05:30 +02:00
|
|
|
closeButton.disable();
|
2013-12-20 11:03:07 +01:00
|
|
|
shareButton.disable();
|
2013-12-02 20:04:19 +01:00
|
|
|
deleteButton.disable();
|
2013-10-25 17:05:30 +02:00
|
|
|
propertiesButton.disable();
|
|
|
|
importCSVButton.enable();
|
|
|
|
importJSONButton.disable();
|
|
|
|
importSDMXButton.enable();
|
|
|
|
exportCSVButton.disable();
|
|
|
|
exportJSONButton.disable();
|
|
|
|
exportSDMXButton.disable();
|
2014-04-15 14:29:28 +02:00
|
|
|
templateOpenButton.enable();
|
2014-02-27 10:12:04 +01:00
|
|
|
templateNewButton.enable();
|
2014-03-25 11:16:58 +01:00
|
|
|
templateDeleteButton.enable();
|
2014-01-29 19:51:28 +01:00
|
|
|
timelineButton.disable();
|
2014-04-15 20:24:27 +02:00
|
|
|
historyButton.disable();
|
|
|
|
discardButton.disable();
|
|
|
|
discardAllButton.disable();
|
2013-10-25 17:05:30 +02:00
|
|
|
break;
|
|
|
|
case TR_CLOSE:
|
|
|
|
openButton.enable();
|
2014-03-07 15:45:39 +01:00
|
|
|
cloneButton.disable();
|
2013-10-25 17:05:30 +02:00
|
|
|
closeButton.disable();
|
2013-12-20 11:03:07 +01:00
|
|
|
shareButton.disable();
|
2013-12-02 20:04:19 +01:00
|
|
|
deleteButton.disable();
|
2013-10-25 17:05:30 +02:00
|
|
|
propertiesButton.disable();
|
|
|
|
importCSVButton.enable();
|
|
|
|
importJSONButton.disable();
|
|
|
|
importSDMXButton.enable();
|
|
|
|
exportCSVButton.disable();
|
|
|
|
exportJSONButton.disable();
|
|
|
|
exportSDMXButton.disable();
|
2014-04-15 14:29:28 +02:00
|
|
|
templateOpenButton.enable();
|
2014-02-27 10:12:04 +01:00
|
|
|
templateNewButton.enable();
|
2014-03-25 11:16:58 +01:00
|
|
|
templateDeleteButton.enable();
|
2014-01-29 19:51:28 +01:00
|
|
|
timelineButton.disable();
|
2014-04-15 20:24:27 +02:00
|
|
|
historyButton.disable();
|
|
|
|
discardButton.disable();
|
|
|
|
discardAllButton.disable();
|
2013-10-25 17:05:30 +02:00
|
|
|
break;
|
|
|
|
case TR_OPEN:
|
|
|
|
openButton.enable();
|
2014-03-07 15:45:39 +01:00
|
|
|
cloneButton.enable();
|
2013-10-25 17:05:30 +02:00
|
|
|
closeButton.enable();
|
2014-03-10 15:21:30 +01:00
|
|
|
shareButton.enable();
|
2013-12-02 20:04:19 +01:00
|
|
|
deleteButton.enable();
|
2013-10-25 17:05:30 +02:00
|
|
|
propertiesButton.enable();
|
|
|
|
importCSVButton.enable();
|
|
|
|
importJSONButton.disable();
|
|
|
|
importSDMXButton.enable();
|
2014-03-25 12:53:56 +01:00
|
|
|
TRId trId=event.getTrId();
|
|
|
|
if (trId!=null&& trId.getTableType()!=null && trId.getTableType().compareTo("Codelist") == 0) {
|
2013-12-05 16:26:43 +01:00
|
|
|
exportSDMXButton.enable();
|
|
|
|
} else {
|
|
|
|
exportSDMXButton.disable();
|
|
|
|
}
|
2013-11-18 16:08:28 +01:00
|
|
|
exportCSVButton.enable();
|
2013-10-25 17:05:30 +02:00
|
|
|
exportJSONButton.disable();
|
2014-04-15 14:29:28 +02:00
|
|
|
templateOpenButton.enable();
|
2014-02-24 14:02:39 +01:00
|
|
|
templateNewButton.enable();
|
2014-03-25 11:16:58 +01:00
|
|
|
templateDeleteButton.enable();
|
2014-01-29 19:51:28 +01:00
|
|
|
timelineButton.enable();
|
2014-04-15 20:24:27 +02:00
|
|
|
historyButton.enable();
|
2014-04-16 19:10:47 +02:00
|
|
|
discardButton.enable();
|
2014-04-15 20:24:27 +02:00
|
|
|
discardAllButton.disable();
|
2013-10-25 17:05:30 +02:00
|
|
|
break;
|
|
|
|
case WIZARD_OPEN:
|
|
|
|
openButton.disable();
|
2014-03-07 15:45:39 +01:00
|
|
|
cloneButton.disable();
|
2013-10-25 17:05:30 +02:00
|
|
|
closeButton.disable();
|
2013-12-20 11:03:07 +01:00
|
|
|
shareButton.disable();
|
2013-12-02 20:04:19 +01:00
|
|
|
deleteButton.disable();
|
2013-10-25 17:05:30 +02:00
|
|
|
propertiesButton.disable();
|
|
|
|
importCSVButton.disable();
|
|
|
|
importJSONButton.disable();
|
|
|
|
importSDMXButton.disable();
|
|
|
|
exportCSVButton.disable();
|
|
|
|
exportJSONButton.disable();
|
|
|
|
exportSDMXButton.disable();
|
2014-04-15 14:29:28 +02:00
|
|
|
templateOpenButton.disable();
|
2014-02-10 19:20:43 +01:00
|
|
|
templateNewButton.disable();
|
2014-03-25 11:16:58 +01:00
|
|
|
templateDeleteButton.disable();
|
2014-01-29 19:51:28 +01:00
|
|
|
timelineButton.disable();
|
2014-04-15 20:24:27 +02:00
|
|
|
historyButton.disable();
|
|
|
|
discardButton.disable();
|
|
|
|
discardAllButton.disable();
|
2013-10-25 17:05:30 +02:00
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
Log.error("setUI Error : " + e.getLocalizedMessage());
|
|
|
|
}
|
|
|
|
}
|
2013-09-16 11:43:07 +02:00
|
|
|
}
|