Updated MainBox

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-mainbox-widget@100588 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2014-10-09 16:50:41 +00:00 committed by Giancarlo Panichi
parent f78c4b5648
commit 6eb8eb7eb8
40 changed files with 600 additions and 47 deletions

22
pom.xml
View File

@ -106,6 +106,25 @@
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!-- Portal -->
<dependency>
<groupId>org.gcube.core</groupId>
<artifactId>common-scope-maps</artifactId>
</dependency>
<dependency>
<groupId>org.gcube.portal</groupId>
<artifactId>custom-portal-handler</artifactId>
</dependency>
<dependency>
<groupId>org.gcube.applicationsupportlayer</groupId>
<artifactId>aslcore</artifactId>
</dependency>
<!-- tabular-data-gwt-service -->
<dependency>
@ -124,12 +143,11 @@
</dependency>
<!-- TDX Source -->
<!-- TDX Source -->
<dependency>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>tabular-data-widgetx-tdx-source</artifactId>
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
<scope>provided</scope>
</dependency>

View File

@ -3,10 +3,13 @@ package org.gcube.portlets.user.td.mainboxwidget.client;
import java.util.ArrayList;
import org.gcube.portlets.user.td.mainboxwidget.client.tdx.TDXPanel;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.DataViewActiveEvent;
import org.gcube.portlets.user.td.widgetcommonevent.shared.dataview.DataView;
import org.gcube.portlets.user.td.widgetcommonevent.shared.dataview.TabularResourceDataView;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.event.shared.EventBus;
import com.sencha.gxt.widget.core.client.TabItemConfig;
@ -29,9 +32,15 @@ public class MainBox extends TabPanel {
public MainBox(String name, EventBus eventBus, MainBoxPanel mainBoxPanel) {
super();
Log.debug("Create MainBox");
setId(name);
this.eventBus = eventBus;
this.mainBoxPanel = mainBoxPanel;
setId(name);
init();
}
protected void init(){
setBodyBorder(false);
setBorders(false);
setAnimScroll(true);
@ -40,7 +49,21 @@ public class MainBox extends TabPanel {
tdxPanelList = new ArrayList<TDXPanel>();
// setResizeTabs(true);
addSelectionHandler(new SelectionHandler<Widget>() {
@Override
public void onSelection(SelectionEvent<Widget> event) {
Widget widget=event.getSelectedItem();
if(widget instanceof TDXPanel){
TDXPanel tdxPanel=(TDXPanel) widget;
TabularResourceDataView tabularResourceDataView=tdxPanel.getTabularResourceDataView();
DataViewActiveEvent dataViewActiveEvent=new DataViewActiveEvent(tabularResourceDataView);
eventBus.fireEvent(dataViewActiveEvent);
} else {
}
}
});
}
public void startTabs() {
@ -118,11 +141,11 @@ public class MainBox extends TabPanel {
TabItemConfig tdxPanelItemConf = new TabItemConfig(
tabularResourceDataView.getTrId().getId(), true);
final TDXPanel tdxPanel = new TDXPanel(tabularResourceDataView,
eventBus);
final TDXPanel tdxPanel = new TDXPanel(eventBus);
tdxPanel.open(tabularResourceDataView);
tdxPanelList.add(tdxPanel);
add(tdxPanel, tdxPanelItemConf);
addBeforeCloseHandler(new BeforeCloseHandler<Widget>() {
public void onBeforeClose(BeforeCloseEvent<Widget> event) {

View File

@ -1,11 +1,13 @@
package org.gcube.portlets.user.td.mainboxwidget.client;
import org.gcube.portlets.user.td.mainboxwidget.client.rpc.TabularDataServiceAsync;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.UIStateEvent;
import org.gcube.portlets.user.td.widgetcommonevent.client.type.UIStateType;
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.web.bindery.event.shared.EventBus;
import com.google.web.bindery.event.shared.SimpleEventBus;
@ -13,6 +15,25 @@ import com.google.web.bindery.event.shared.SimpleEventBus;
public class MainBoxEntry implements EntryPoint {
public void onModuleLoad() {
TabularDataServiceAsync.INSTANCE.hello(new AsyncCallback<String>() {
@Override
public void onSuccess(String result) {
loadDataView();
}
@Override
public void onFailure(Throwable caught) {
caught.printStackTrace();
}
});
}
protected void loadDataView() {
// For example Tabular Resource 7 and table 402
TRId trId = new TRId("220", "3555");
@ -33,4 +54,5 @@ public class MainBoxEntry implements EntryPoint {
e.printStackTrace();
}
}
}

View File

@ -2,10 +2,10 @@ package org.gcube.portlets.user.td.mainboxwidget.client;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.DataViewRequestEvent;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.UIStateEvent;
import org.gcube.portlets.user.td.widgetcommonevent.client.type.DataViewRequestType;
import org.gcube.portlets.user.td.widgetcommonevent.client.type.UIStateType;
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
import org.gcube.portlets.user.td.widgetcommonevent.shared.dataview.DataView;
import org.gcube.portlets.user.td.widgetcommonevent.shared.dataview.DataViewType;
import org.gcube.portlets.user.td.widgetcommonevent.shared.dataview.TabularResourceDataView;
import com.allen_sauer.gwt.log.client.Log;
@ -18,7 +18,7 @@ public class MainBoxPanel extends ContentPanel {
protected MainBox mainBox;
protected MainBoxPanelState state;
protected UIStateType uiStateType;
protected DataViewRequestType dataViewRequestType;
protected DataView dataView;
public MainBoxPanel(String name, EventBus eventBus) {
super();
@ -99,14 +99,19 @@ public class MainBoxPanel extends ContentPanel {
protected void manageDataViewRequestEvents(DataViewRequestEvent event) {
Log.debug("MainBox recieved event: "
+ event.getDataViewRequestType().toString());
dataViewRequestType = event.getDataViewRequestType();
switch (event.getDataViewRequestType()) {
case RESOURCE:
break;
+ event.getDataView().toString());
dataView = event.getDataView();
if(dataView==null|| dataView.getDataViewType()==null){
return;
}
DataViewType dataViewType=dataView.getDataViewType();
switch (dataViewType) {
case TABULARRESOURCE:
doTabularResourceTab(event);
break;
case TABLE:
break;
default:
break;

View File

@ -0,0 +1,129 @@
package org.gcube.portlets.user.td.mainboxwidget.client.grid;
import java.util.ArrayList;
import org.gcube.portlets.user.td.mainboxwidget.client.resource.MainboxResources;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.GridContextMenuItemEvent;
import org.gcube.portlets.user.td.widgetcommonevent.shared.CellData;
import org.gcube.portlets.user.td.widgetcommonevent.shared.GridOperationId;
import org.gcube.portlets.user.td.widgetcommonevent.shared.grid.model.RowRaw;
import org.gcube.portlets.user.tdwx.client.TabularDataXGridPanel;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.web.bindery.event.shared.EventBus;
import com.sencha.gxt.widget.core.client.menu.Item;
import com.sencha.gxt.widget.core.client.menu.Menu;
import com.sencha.gxt.widget.core.client.menu.MenuItem;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
* Defines the context menu of grid
*/
public class GridContextMenu {
protected Menu tableContextMenu;
protected final TabularDataXGridPanel gridPanel;
protected EventBus eventBus;
public GridContextMenu(final TabularDataXGridPanel gridPanel,
final EventBus eventBus) {
this.gridPanel = gridPanel;
this.eventBus = eventBus;
tableContextMenu = new Menu();
MenuItem addRowItem = new MenuItem("Add Row");
addRowItem.setId(GridOperationId.ROWADD.toString());
addRowItem.setIcon(MainboxResources.INSTANCE.rowInsert());
addRowItem.addSelectionHandler(new SelectionHandler<Item>() {
@Override
public void onSelection(SelectionEvent<Item> event) {
Log.debug("gridPanel is: " + gridPanel);
if (gridPanel != null) {
GridContextMenuItemEvent eventGridContextMenu = new GridContextMenuItemEvent(
GridOperationId.ROWADD);
eventBus.fireEvent(eventGridContextMenu);
}
}
});
tableContextMenu.add(addRowItem);
MenuItem editRowItem = new MenuItem("Edit Row");
editRowItem.setId(GridOperationId.ROWEDIT.toString());
editRowItem.setIcon(MainboxResources.INSTANCE.rowEdit());
editRowItem.addSelectionHandler(new SelectionHandler<Item>() {
@Override
public void onSelection(SelectionEvent<Item> event) {
Log.debug("gridPanel is: " + gridPanel);
if (gridPanel != null) {
RowRaw row = gridPanel.getSelectedRowAsRaw();
if (row != null) {
GridContextMenuItemEvent eventGridContextMenu = new GridContextMenuItemEvent(
GridOperationId.ROWEDIT, row);
eventBus.fireEvent(eventGridContextMenu);
}
}
}
});
tableContextMenu.add(editRowItem);
MenuItem deleteRowItem = new MenuItem("Delete Row");
deleteRowItem.setId(GridOperationId.ROWDELETE.toString());
deleteRowItem.setIcon(MainboxResources.INSTANCE.rowRemove());
deleteRowItem.addSelectionHandler(new SelectionHandler<Item>() {
@Override
public void onSelection(SelectionEvent<Item> event) {
Log.debug("gridPanel is: " + gridPanel);
if (gridPanel != null) {
ArrayList<String> rows = gridPanel.getSelectedRowsId();
GridContextMenuItemEvent eventGridContextMenu = new GridContextMenuItemEvent(
GridOperationId.ROWDELETE, rows);
eventBus.fireEvent(eventGridContextMenu);
}
}
});
tableContextMenu.add(deleteRowItem);
MenuItem replaceRowsItem = new MenuItem("Replace Value");
replaceRowsItem.setId(GridOperationId.REPLACE.toString());
replaceRowsItem.setIcon(MainboxResources.INSTANCE.columnReplace());
replaceRowsItem.addSelectionHandler(new SelectionHandler<Item>() {
@Override
public void onSelection(SelectionEvent<Item> event) {
Log.debug("gridPanel is: " + gridPanel);
if (gridPanel != null) {
CellData cellData = gridPanel.getSelectedCell();
if (cellData != null) {
GridContextMenuItemEvent eventGridContextMenu = new GridContextMenuItemEvent(
GridOperationId.REPLACE, cellData);
eventBus.fireEvent(eventGridContextMenu);
} else {
}
}
}
});
tableContextMenu.add(replaceRowsItem);
}
/**
*
* @return context menu for grid
*/
public Menu getMenu() {
return tableContextMenu;
}
}

View File

@ -0,0 +1,99 @@
package org.gcube.portlets.user.td.mainboxwidget.client.grid;
import java.util.ArrayList;
import java.util.List;
import org.gcube.portlets.user.td.mainboxwidget.client.resource.MainboxResources;
import org.gcube.portlets.user.td.widgetcommonevent.shared.GridHeaderOperationId;
import com.sencha.gxt.widget.core.client.menu.MenuItem;
/**
* Defines the menu for column on the grid
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class GridHeaderColumnMenu {
protected final ArrayList<MenuItem> menuItems;
public GridHeaderColumnMenu() {
menuItems = new ArrayList<MenuItem>();
MenuItem changeLabelItem = new MenuItem("Labels");
changeLabelItem.setId(GridHeaderOperationId.COLUMNLABEL
.toString());
changeLabelItem.setIcon(MainboxResources.INSTANCE.columnLabel());
menuItems.add(changeLabelItem);
MenuItem addColumnItem = new MenuItem("Add Column");
addColumnItem.setId(GridHeaderOperationId.COLUMNADD.toString());
addColumnItem.setIcon(MainboxResources.INSTANCE.columnAdd());
menuItems.add(addColumnItem);
MenuItem deleteColumnItem = new MenuItem("Delete Column");
deleteColumnItem.setId(GridHeaderOperationId.COLUMNDELETE.toString());
deleteColumnItem.setIcon(MainboxResources.INSTANCE.columnDelete());
menuItems.add(deleteColumnItem);
MenuItem splitColumnItem = new MenuItem("Split Column");
splitColumnItem.setId(GridHeaderOperationId.COLUMNSPLIT.toString());
splitColumnItem.setIcon(MainboxResources.INSTANCE.columnSplit());
menuItems.add(splitColumnItem);
MenuItem mergeColumnItem = new MenuItem("Merge Column");
mergeColumnItem.setId(GridHeaderOperationId.COLUMNMERGE.toString());
mergeColumnItem.setIcon(MainboxResources.INSTANCE.columnMerge());
menuItems.add(mergeColumnItem);
MenuItem changeToTypeItem = new MenuItem("Change Type");
changeToTypeItem.setId(GridHeaderOperationId.COLUMNTYPE.toString());
changeToTypeItem.setIcon(MainboxResources.INSTANCE.columnType());
menuItems.add(changeToTypeItem);
MenuItem filterItem = new MenuItem("Filter");
filterItem.setId(GridHeaderOperationId.COLUMNFILTER.toString());
filterItem.setIcon(MainboxResources.INSTANCE.columnFilter());
menuItems.add(filterItem);
MenuItem replaceValueBatchItem = new MenuItem("Replace Batch");
replaceValueBatchItem.setId(GridHeaderOperationId.COLUMNBATCHREPLACE.toString());
replaceValueBatchItem.setIcon(MainboxResources.INSTANCE.columnReplaceBatch());
menuItems.add(replaceValueBatchItem);
MenuItem replaceValueOnConditionItem = new MenuItem("Replace By Expression");
replaceValueOnConditionItem.setId(GridHeaderOperationId.COLUMNREPLACEBYEXPRESSION.toString());
replaceValueOnConditionItem.setIcon(MainboxResources.INSTANCE.columnReplaceByExpression());
menuItems.add(replaceValueOnConditionItem);
/*MenuItem newAnnotationColumnItem = new MenuItem("Annotation");
newAnnotationColumnItem.setId(GridHeaderOperationId.ANNOTATIONADD.toString());
newAnnotationColumnItem.setIcon(TabularDataResources.INSTANCE.annotationAdd());
menuItems.add(newAnnotationColumnItem);*/
/*MenuItem columnDuplicateValidationItem = new MenuItem("Duplicate Detection");
columnDuplicateValidationItem.setId(GridHeaderOperationId.DUPLICATEDETECTION.toString());
columnDuplicateValidationItem.setIcon(TabularDataResources.INSTANCE.tableDuplicateRows());
menuItems.add(columnDuplicateValidationItem);*/
}
/**
*
* @return the list of menu items to be added
*/
public List<MenuItem> getMenu() {
return menuItems;
}
}

View File

@ -0,0 +1,106 @@
/**
*
*/
package org.gcube.portlets.user.td.mainboxwidget.client.resource;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.ImageResource;
/**
*
* @author "Giancarlo Panichi" <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public interface MainboxResources extends ClientBundle {
public static final MainboxResources INSTANCE = GWT
.create(MainboxResources.class);
@Source("column-type_32.png")
ImageResource columnType32();
@Source("column-type.png")
ImageResource columnType();
@Source("column-label_32.png")
ImageResource columnLabel32();
@Source("column-label.png")
ImageResource columnLabel();
@Source("column-filter_32.png")
ImageResource columnFilter32();
@Source("column-filter.png")
ImageResource columnFilter();
@Source("column-edit_32.png")
ImageResource columnEdit32();
@Source("column-edit.png")
ImageResource columnEdit();
@Source("column-delete_32.png")
ImageResource columnDelete32();
@Source("column-delete.png")
ImageResource columnDelete();
@Source("column-add_32.png")
ImageResource columnAdd32();
@Source("column-add.png")
ImageResource columnAdd();
@Source("column-replace.png")
ImageResource columnReplace();
@Source("column-replace_32.png")
ImageResource columnReplace32();
@Source("column-replace-batch.png")
ImageResource columnReplaceBatch();
@Source("column-replace-batch_32.png")
ImageResource columnReplaceBatch32();
@Source("pencil_32.png")
ImageResource rowEdit32();
@Source("pencil.png")
ImageResource rowEdit();
@Source("table-row-insert_32.png")
ImageResource rowInsert32();
@Source("table-row-insert.png")
ImageResource rowInsert();
@Source("table-row-delete_32.png")
ImageResource rowRemove32();
@Source("table-row-delete.png")
ImageResource rowRemove();
@Source("column-split_32.png")
ImageResource columnSplit32();
@Source("column-split.png")
ImageResource columnSplit();
@Source("column-merge_32.png")
ImageResource columnMerge32();
@Source("column-merge.png")
ImageResource columnMerge();
@Source("column-replace-by-expression_32.png")
ImageResource columnReplaceByExpression32();
@Source("column-replace-by-expression.png")
ImageResource columnReplaceByExpression();
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 867 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 874 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 843 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 997 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 986 B

View File

@ -0,0 +1,15 @@
package org.gcube.portlets.user.td.mainboxwidget.client.rpc;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
@RemoteServiceRelativePath("tds")
public interface TabularDataService extends RemoteService {
String hello() throws IllegalArgumentException;
}

View File

@ -0,0 +1,25 @@
/**
*
*/
package org.gcube.portlets.user.td.mainboxwidget.client.rpc;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
/**
*
* @author "Giancarlo Panichi"
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public interface TabularDataServiceAsync {
public static TabularDataServiceAsync INSTANCE = (TabularDataServiceAsync) GWT
.create(TabularDataService.class);
void hello(AsyncCallback<String> callback);
}

View File

@ -1,7 +1,8 @@
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.DataView;
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;
@ -9,7 +10,9 @@ 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;
@ -19,19 +22,17 @@ public class TDXPanel extends FramedPanel {
protected TabularResourceDataView tabularResourceDataView;
protected TabularDataX tabularData;
public TDXPanel(TabularResourceDataView tabularResourceDataView,
EventBus eventBus) {
public TDXPanel(EventBus eventBus) {
super();
this.tabularResourceDataView = tabularResourceDataView;
this.eventBus = eventBus;
forceLayoutOnResize = true;
setBodyBorder(false);
setBorders(false);
setHeaderVisible(false);
setWidth(500);
setHeight(500);
// setWidth(500);
// setHeight(500);
addGrid();
forceLayout();
}
public void addGrid() {
@ -40,43 +41,47 @@ public class TDXPanel extends FramedPanel {
tabularData.addFailureHandler(new FailureEventHandler() {
public void onFailure(FailureEvent event) {
Throwable e=event.getCaught();
Info.display("Error: " + event.getMessage(), e.getLocalizedMessage());
Throwable e = event.getCaught();
Info.display("Error: " + event.getMessage(),
e.getLocalizedMessage());
Log.error("Error: " + e.getLocalizedMessage());
e.printStackTrace();
}
});
// Grid Panel
final TabularDataXGridPanel gridPanel = tabularData.getGridPanel();
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);
GridHeaderColumnMenu columnHeaderMenu = new GridHeaderColumnMenu();
gridPanel.addGridHeaderContextMenuItems(columnHeaderMenu.getMenu(),
eventBus);
TableId tableOpening = new TableId(
Constants.TDX_DATASOURCE_FACTORY_ID,
tabularResourceDataView.getTrId().getTableId());
tabularData.openTable(tableOpening);
GridContextMenu gridContextMenu = new GridContextMenu(gridPanel,
eventBus);
gridPanel.setGridContextMenu(gridContextMenu.getMenu());
gridPanel.setSelectionModel(SelectionMode.MULTI);
this.add(gridPanel);
} catch (Throwable e) {
e.printStackTrace();
}
}
public void update(TabularResourceDataView tabularResourceDataViewTemp) {
if (isDataViewRequest(tabularResourceDataViewTemp)) {
tabularResourceDataView = tabularResourceDataViewTemp;
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());

View File

@ -0,0 +1,91 @@
package org.gcube.portlets.user.td.mainboxwidget.server;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.application.framework.core.session.SessionManager;
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
import org.gcube.portlets.user.td.gwtservice.shared.Constants;
import org.gcube.portlets.user.td.mainboxwidget.client.rpc.TabularDataService;
import org.gcube.portlets.user.tdwx.datasource.td.TDXDataSourceFactory;
import org.gcube.portlets.user.tdwx.server.datasource.DataSourceXFactoryRegistry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
/**
* The server side implementation of the RPC service.
*/
@SuppressWarnings("serial")
public class TabularDataServiceImpl extends RemoteServiceServlet implements TabularDataService {
protected static Logger logger = LoggerFactory.getLogger(TabularDataServiceImpl.class);
/**
* {@inheritDoc}
*/
@Override
public void init() throws ServletException {
super.init();
/*System.out.println("initializing the TabularDataImportManager");
TabularDataImporterManager importerManager = new TabularDataImporterManager();
//importerManager.scanAvailableImporters();
importerManager.add(new CSVTDImporter());
importerManager.setupImporters();
*/
//register the demo csv target
//CSVTargetRegistry.getInstance().add(new DemoCSVTarget());
//System.out.println("Registered DemoCSVTarget");
//ScopeProvider.instance.get();
System.out.println("Fix JAXP: jdk.xml.entityExpansionLimit=0");
System.setProperty("jdk.xml.entityExpansionLimit", "0");
System.out.println("initializing TDXDataSourceFactory");
DataSourceXFactoryRegistry.getInstance().add(new TDXDataSourceFactory());
}
protected static ASLSession getAslSession(HttpSession httpSession)
{
String username = (String) httpSession
.getAttribute(ScopeHelper.USERNAME_ATTRIBUTE);
ASLSession session;
if (username == null) {
logger.warn("no user found in session, using test one");
/*throw new Exception("Session Expired!");*/
// Remove comment for Test
username = Constants.DEFAULT_USER;
String scope = Constants.DEFAULT_SCOPE;
httpSession.setAttribute(ScopeHelper.USERNAME_ATTRIBUTE, username);
session = SessionManager.getInstance().getASLSession(
httpSession.getId(), username);
session.setScope(scope);
} else {
session = SessionManager.getInstance().getASLSession(
httpSession.getId(), username);
}
logger.info("SessionUtil: aslSession " + session.getUsername() + " "
+ session.getScope());
return session;
}
/**
* {@inheritDoc}
*/
public String hello() throws IllegalArgumentException {
ASLSession aslSession=getAslSession(this.getThreadLocalRequest().getSession());
return "Hello "+aslSession.getUsername();
}
}

View File

@ -5,13 +5,21 @@
<web-app>
<!-- Servlets -->
<!-- Servlets -->
<servlet>
<servlet-name>jUnitHostImpl</servlet-name>
<servlet-class>com.google.gwt.junit.server.JUnitHostImpl</servlet-class>
</servlet>
<!-- Base Service -->
<servlet>
<servlet-name>tdservlet</servlet-name>
<servlet-class>org.gcube.portlets.user.td.mainboxwidget.server.TabularDataServiceImpl</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- TDWidget -->
<servlet>
<servlet-name>tdwxService</servlet-name>
@ -24,13 +32,20 @@
</servlet>
<!-- Servlets Mapping -->
<!-- JUnit -->
<servlet-mapping>
<servlet-name>jUnitHostImpl</servlet-name>
<url-pattern>TDMainBoxManagerWidgets/junithost/*</url-pattern>
</servlet-mapping>
<!-- Base Service -->
<servlet-mapping>
<servlet-name>tdservlet</servlet-name>
<url-pattern>/MainBox/tds</url-pattern>
</servlet-mapping>
<!-- TDWidget -->
<servlet-mapping>
<servlet-name>tdwxService</servlet-name>
<url-pattern>/MainBox/tdwx</url-pattern>