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
22
pom.xml
|
@ -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>
|
||||
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
|
||||
}
|
After Width: | Height: | Size: 855 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 839 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 867 B |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 808 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 742 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 874 B |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 843 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 799 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 761 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 941 B |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 760 B |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 408 B |
After Width: | Height: | Size: 799 B |
After Width: | Height: | Size: 566 B |
After Width: | Height: | Size: 997 B |
After Width: | Height: | Size: 581 B |
After Width: | Height: | Size: 986 B |
|
@ -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;
|
||||
}
|
|
@ -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);
|
||||
|
||||
}
|
|
@ -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());
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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>
|
||||
|
|