package org.gcube.portlets.user.td.mainboxwidget.client.tdx; import org.gcube.portlets.user.td.mainboxwidget.client.grid.GridContextMenu; import org.gcube.portlets.user.td.mainboxwidget.client.grid.GridHeaderColumnMenu; import org.gcube.portlets.user.td.mainboxwidget.client.utils.Constants; import org.gcube.portlets.user.td.widgetcommonevent.shared.dataview.TabularResourceDataView; import org.gcube.portlets.user.tdwx.client.TabularDataX; import org.gcube.portlets.user.tdwx.client.TabularDataXGridPanel; import org.gcube.portlets.user.tdwx.client.event.FailureEvent; import org.gcube.portlets.user.tdwx.client.event.FailureEventHandler; import org.gcube.portlets.user.tdwx.shared.model.TableId; import com.allen_sauer.gwt.log.client.Log; import com.google.web.bindery.event.shared.EventBus; import com.sencha.gxt.core.client.Style.SelectionMode; import com.sencha.gxt.widget.core.client.FramedPanel; import com.sencha.gxt.widget.core.client.info.Info; public class TDXPanel extends FramedPanel { protected EventBus eventBus; protected TabularResourceDataView tabularResourceDataView; protected TabularDataX tabularData; public TDXPanel(EventBus eventBus) { super(); this.eventBus = eventBus; forceLayoutOnResize = true; setBodyBorder(false); setBorders(false); setHeaderVisible(false); // setWidth(500); // setHeight(500); addGrid(); forceLayout(); } public void addGrid() { try { tabularData = new TabularDataX(Constants.TDX_DATASOURCE_FACTORY_ID); tabularData.addFailureHandler(new FailureEventHandler() { public void onFailure(FailureEvent event) { Throwable e = event.getCaught(); Info.display("Error: " + event.getMessage(), e.getLocalizedMessage()); Log.error("Error: " + e.getLocalizedMessage()); e.printStackTrace(); } }); // Grid Panel TabularDataXGridPanel gridPanel = tabularData.getGridPanel(); gridPanel.setHeaderVisible(false); GridHeaderColumnMenu columnHeaderMenu = new GridHeaderColumnMenu(); gridPanel.addGridHeaderContextMenuItems(columnHeaderMenu.getMenu(), eventBus); GridContextMenu gridContextMenu = new GridContextMenu(gridPanel, eventBus); gridPanel.setGridContextMenu(gridContextMenu.getMenu()); gridPanel.setSelectionModel(SelectionMode.MULTI); this.add(gridPanel); } catch (Throwable e) { e.printStackTrace(); } } public void open(TabularResourceDataView dataView) { tabularResourceDataView = dataView; TableId tableOpening = new TableId(Constants.TDX_DATASOURCE_FACTORY_ID, tabularResourceDataView.getTrId().getTableId()); tabularData.openTable(tableOpening); forceLayout(); } public void update(TabularResourceDataView dataView) { if (isDataViewRequest(dataView)) { tabularResourceDataView = dataView; TableId tableOpening = new TableId( Constants.TDX_DATASOURCE_FACTORY_ID, tabularResourceDataView.getTrId().getTableId()); tabularData.openTable(tableOpening); forceLayout(); } } public TabularResourceDataView getTabularResourceDataView() { return tabularResourceDataView; } public boolean isDataViewRequest(TabularResourceDataView dataViewRequest) { if (dataViewRequest != null && dataViewRequest.getTrId() != null && dataViewRequest.getTrId().getId() == tabularResourceDataView .getTrId().getId()) { return true; } else { return false; } } }