diff --git a/.gwt/.gwt-log b/.gwt/.gwt-log
index 41719f9..cdf0ed2 100644
--- a/.gwt/.gwt-log
+++ b/.gwt/.gwt-log
@@ -190,3 +190,67 @@ Compiling...
Compilation completed in 0.00 seconds
Removing invalidated units
Finding entry point classes
+Public resources found in...
+Translatable source found in...
+Found 0 cached/archived units. Used 0 / 2719 units from cache.
+Compiling...
+ 30% complete (ETR: 9 seconds)
+ 30% complete (ETR: 9 seconds)
+ 30% complete (ETR: 9 seconds)
+ 30% complete (ETR: 9 seconds)
+ 40% complete (ETR: 8 seconds)
+ 50% complete (ETR: 6 seconds)
+ 60% complete (ETR: 5 seconds)
+ 70% complete (ETR: 3 seconds)
+ 80% complete (ETR: 2 seconds)
+ 90% complete (ETR: 1 seconds)
+ 100% complete (ETR: 0 seconds)
+ Compilation completed in 18.47 seconds
+Removing invalidated units
+Finding entry point classes
+Public resources found in...
+Translatable source found in...
+Found 2719 cached/archived units. Used 2719 / 2719 units from cache.
+Compiling...
+ Compilation completed in 0.00 seconds
+Removing invalidated units
+Finding entry point classes
+Public resources found in...
+Translatable source found in...
+Found 2719 cached/archived units. Used 2719 / 2719 units from cache.
+Compiling...
+ Compilation completed in 0.00 seconds
+Removing invalidated units
+Finding entry point classes
+Public resources found in...
+Translatable source found in...
+Found 0 cached/archived units. Used 0 / 2719 units from cache.
+Compiling...
+ 40% complete (ETR: 7 seconds)
+ 40% complete (ETR: 7 seconds)
+ 40% complete (ETR: 7 seconds)
+ 40% complete (ETR: 7 seconds)
+ 40% complete (ETR: 7 seconds)
+ 50% complete (ETR: 5 seconds)
+ 60% complete (ETR: 4 seconds)
+ 70% complete (ETR: 3 seconds)
+ 80% complete (ETR: 2 seconds)
+ 90% complete (ETR: 1 seconds)
+ 100% complete (ETR: 0 seconds)
+ Compilation completed in 9.42 seconds
+Removing invalidated units
+Finding entry point classes
+Public resources found in...
+Translatable source found in...
+Found 2719 cached/archived units. Used 2719 / 2719 units from cache.
+Compiling...
+ Compilation completed in 0.00 seconds
+Removing invalidated units
+Finding entry point classes
+Public resources found in...
+Translatable source found in...
+Found 2719 cached/archived units. Used 2719 / 2719 units from cache.
+Compiling...
+ Compilation completed in 0.00 seconds
+Removing invalidated units
+Finding entry point classes
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index d83846c..9356b64 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -4,6 +4,9 @@
+
+ uses
+
uses
@@ -16,15 +19,15 @@
uses
+
+ uses
+
uses
uses
-
- uses
-
diff --git a/pom.xml b/pom.xml
index 7a37488..32c6b78 100644
--- a/pom.xml
+++ b/pom.xml
@@ -241,6 +241,13 @@
tabular-data-sdmx-export-widget
[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)
+
+
+
+ org.gcube.portlets.user
+ tabular-data-table-widget
+ [0.0.1-SNAPSHOT,2.0.0-SNAPSHOT)
+
diff --git a/src/main/java/org/gcube/portlets/user/td/client/TabularDataController.java b/src/main/java/org/gcube/portlets/user/td/client/TabularDataController.java
index 9f718e6..f9ffc15 100644
--- a/src/main/java/org/gcube/portlets/user/td/client/TabularDataController.java
+++ b/src/main/java/org/gcube/portlets/user/td/client/TabularDataController.java
@@ -3,6 +3,8 @@
*/
package org.gcube.portlets.user.td.client;
+import java.util.ArrayList;
+
import org.gcube.portlets.user.td.csvexportwidget.client.CSVExportWizardTD;
import org.gcube.portlets.user.td.csvimportwidget.client.CSVImportWizardTD;
import org.gcube.portlets.user.td.expressionwidget.client.ColumnFilterDialog;
@@ -13,6 +15,7 @@ import org.gcube.portlets.user.td.sdmxexportwidget.client.SDMXExportWizardTD;
import org.gcube.portlets.user.td.sdmximportwidget.client.SDMXImportWizardTD;
import org.gcube.portlets.user.td.taskswidget.client.TdTaskController;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.ChangeTableRequestEvent;
+import org.gcube.portlets.user.td.widgetcommonevent.client.event.GridContextMenuItemEvent;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.GridHeaderColumnMenuItemEvent;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.RibbonEvent;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.TasksMonitorEvent;
@@ -23,6 +26,7 @@ import org.gcube.portlets.user.td.widgetcommonevent.client.type.TaskType;
import org.gcube.portlets.user.td.widgetcommonevent.client.type.UIStateType;
import org.gcube.portlets.user.td.widgetcommonevent.client.type.WidgetRequestType;
import org.gcube.portlets.user.td.widgetcommonevent.shared.GridHeaderOperationId;
+import org.gcube.portlets.user.td.widgetcommonevent.shared.GridOperationId;
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
import org.gcube.portlets.user.td.wizardwidget.client.WizardListener;
import org.gcube.portlets.user.tdtemplate.client.TdTemplateController;
@@ -54,7 +58,7 @@ import com.sencha.gxt.widget.core.client.info.Info;
*/
public class TabularDataController {
// implements HasCloseHandlers, HasOpenHandlers {
-
+
protected SimpleEventBus eventBus;
protected TabularDataX tabularData;
protected UIStateType uiState = UIStateType.START;
@@ -74,10 +78,7 @@ public class TabularDataController {
* Grid TableId
*/
protected TableId tableOpening;
-
-
-
-
+
public TabularDataController() {
eventBus = new SimpleEventBus();
callHello();
@@ -110,26 +111,26 @@ public class TabularDataController {
public void setWestData(BorderLayoutData westData) {
this.westData = westData;
}
-
- protected void callHello(){
- TDGWTServiceAsync.INSTANCE.hello(new AsyncCallback(){
+
+ protected void callHello() {
+ TDGWTServiceAsync.INSTANCE.hello(new AsyncCallback() {
@Override
public void onFailure(Throwable caught) {
- Log.info("No valid user found: "+caught.getMessage());
+ Log.info("No valid user found: " + caught.getMessage());
alertMessage("Error", "No user found");
}
@Override
public void onSuccess(String result) {
- Log.info("Hello: "+result);
-
+ Log.info("Hello: " + result);
+
}
-
+
});
-
+
}
-
+
// Bind Controller to events on bus
protected void bindToEvents() {
eventBus.addHandler(
@@ -144,6 +145,17 @@ public class TabularDataController {
}
});
+ eventBus.addHandler(GridContextMenuItemEvent.TYPE,
+ new GridContextMenuItemEvent.GridContextMenuItemEventHandler() {
+
+ public void onGridContextMenuItemEvent(
+ GridContextMenuItemEvent event) {
+ Log.debug("Catch Event ContextMenuItemEvent");
+ doGridContextMenuCommand(event);
+
+ }
+ });
+
eventBus.addHandler(ChangeTableRequestEvent.TYPE,
new ChangeTableRequestEvent.ChangeTableRequestEventHandler() {
@@ -192,8 +204,6 @@ public class TabularDataController {
d.show();
}
-
-
// Resume state of user interface
protected void resumeUIState() {
try {
@@ -748,6 +758,30 @@ public class TabularDataController {
openTable(event.getTrId());
};
+ protected void doGridContextMenuCommand(GridContextMenuItemEvent event) {
+ Log.debug("GridContextMenu Fire Event",
+ "OperationId: " + event.getGridOperationId());
+ GridOperationId gridOperationId = event.getGridOperationId();
+ ArrayList rows = event.getRows();
+
+ if(rows==null || rows.size()==0){
+ alertMessage("No rows selected", "No rows selected");
+ return;
+ }
+
+ switch (gridOperationId) {
+ case ROWADD:
+ break;
+ case ROWEDIT:
+ break;
+ case ROWDELETE:
+ break;
+ default:
+ break;
+ }
+
+ }
+
protected void doGridHeaderColumnMenuCommand(
GridHeaderColumnMenuItemEvent event) {
Log.debug("GridHeaderColumnMenu Fire Event",
diff --git a/src/main/java/org/gcube/portlets/user/td/client/grid/GridContextMenu.java b/src/main/java/org/gcube/portlets/user/td/client/grid/GridContextMenu.java
index 51dec8e..0c6235e 100644
--- a/src/main/java/org/gcube/portlets/user/td/client/grid/GridContextMenu.java
+++ b/src/main/java/org/gcube/portlets/user/td/client/grid/GridContextMenu.java
@@ -1,74 +1,225 @@
package org.gcube.portlets.user.td.client.grid;
+import java.util.ArrayList;
import java.util.List;
import org.gcube.portlets.user.td.client.resource.TabularDataResources;
+import org.gcube.portlets.user.td.widgetcommonevent.client.event.GridContextMenuItemEvent;
import org.gcube.portlets.user.td.widgetcommonevent.shared.GridOperationId;
import org.gcube.portlets.user.tdwx.client.TabularDataXGridPanel;
import org.gcube.portlets.user.tdwx.client.config.Row;
+import org.gcube.portlets.user.tdwx.client.model.grid.DataRowColumnConfig;
+import org.gcube.portlets.user.tdwx.shared.model.ColumnDefinition;
+import org.gcube.portlets.user.tdwx.shared.model.ColumnType;
+import org.gcube.portlets.user.tdwx.shared.model.DataRow;
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.grid.ColumnConfig;
+import com.sencha.gxt.widget.core.client.grid.ColumnModel;
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"
- * g.panichi@isti.cnr.it
- *
- * Defines the context menu of grid
+ * @author "Giancarlo Panichi" g.panichi@isti.cnr.it
+ *
+ * Defines the context menu of grid
*/
public class GridContextMenu {
- protected Menu tableContextMenu;
- protected final TabularDataXGridPanel gridPanel;
- protected EventBus eventBus;
-
- public GridContextMenu(final TabularDataXGridPanel gridPanel,EventBus eventBus){
- this.gridPanel=gridPanel;
- this.eventBus=eventBus;
- tableContextMenu=new Menu();
-
- MenuItem addRowItem = new MenuItem("Add Row");
- addRowItem.setId(GridOperationId.ROWADD.toString());
- addRowItem.setIcon(TabularDataResources.INSTANCE.rowInsert());
- addRowItem.addSelectionHandler(new SelectionHandler- () {
-
- @Override
- public void onSelection(SelectionEvent
- event) {
- Log.debug("gridPanel is: " + gridPanel);
- if (gridPanel != null) {
- List
rows = gridPanel.getSelectedRows();
-
-
+ 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(TabularDataResources.INSTANCE.rowInsert());
+ addRowItem.addSelectionHandler(new SelectionHandler- () {
+
+ @Override
+ public void onSelection(SelectionEvent
- event) {
+ Log.debug("gridPanel is: " + gridPanel);
+ if (gridPanel != null) {
+ ColumnModel columnModel = gridPanel.getGrid()
+ .getColumnModel();
+
+ List> columns = columnModel
+ .getColumns();
+ DataRowColumnConfig> c = null;
+ boolean columnIdRetrieved = false;
+ for (ColumnConfig col : columns) {
+ c = (DataRowColumnConfig>) col;
+ ColumnType ctype = c.getDefinition().getType();
+ if (ctype == ColumnType.COLUMNID) {
+ columnIdRetrieved = true;
+ break;
+ }
}
-
+
+ if (columnIdRetrieved) {
+ ColumnDefinition cd = c.getDefinition();
+ Log.debug("CD - Definition:" + cd.getId()
+ + " ColumnLocalId:" + cd.getColumnLocalId()
+ + " Label:" + cd.getLabel() + " Key:"
+ + cd.getKey());
+ List
rowsSelected = gridPanel.getSelectedRows();
+ Log.debug("Retriving rows selected");
+ String rowS = "";
+ ArrayList rows = new ArrayList();
+ if (rowsSelected != null) {
+ for (Row row : rowsSelected) {
+ rowS = row.getFieldAsText(cd.getLabel());
+ Log.debug("Selected Row:" + rowS);
+ rows.add(rowS);
+ }
+ } else {
+ Log.debug("no selected rows retrived");
+ }
+ GridContextMenuItemEvent eventGridContextMenu = new GridContextMenuItemEvent(
+ GridOperationId.ROWADD, rows);
+ eventBus.fireEvent(eventGridContextMenu);
+ } else {
+ Log.debug("no COLUMNID retrived");
+ }
+
}
- });
-
-
- tableContextMenu.add(addRowItem);
-
- MenuItem editRowItem = new MenuItem("Edit Row");
- editRowItem.setId(GridOperationId.ROWEDIT.toString());
- editRowItem.setIcon(TabularDataResources.INSTANCE.rowEdit());
- tableContextMenu.add(editRowItem);
-
- MenuItem removeRowItem = new MenuItem("Delete Row");
- removeRowItem.setId(GridOperationId.ROWDELETE.toString());
- removeRowItem.setIcon(TabularDataResources.INSTANCE.rowRemove());
- tableContextMenu.add(removeRowItem);
-
- }
+
+ }
+ });
+ tableContextMenu.add(addRowItem);
+
- /**
- *
- * @return context menu for grid
- */
- public Menu getMenu(){
- return tableContextMenu;
- }
+ MenuItem editRowItem = new MenuItem("Edit Row");
+ editRowItem.setId(GridOperationId.ROWEDIT.toString());
+ editRowItem.setIcon(TabularDataResources.INSTANCE.rowEdit());
+ editRowItem.addSelectionHandler(new SelectionHandler- () {
+
+ @Override
+ public void onSelection(SelectionEvent
- event) {
+ Log.debug("gridPanel is: " + gridPanel);
+ if (gridPanel != null) {
+ ColumnModel columnModel = gridPanel.getGrid()
+ .getColumnModel();
+
+ List> columns = columnModel
+ .getColumns();
+ DataRowColumnConfig> c = null;
+ boolean columnIdRetrieved = false;
+ for (ColumnConfig col : columns) {
+ c = (DataRowColumnConfig>) col;
+ ColumnType ctype = c.getDefinition().getType();
+ if (ctype == ColumnType.COLUMNID) {
+ columnIdRetrieved = true;
+ break;
+ }
+ }
+
+ if (columnIdRetrieved) {
+ ColumnDefinition cd = c.getDefinition();
+ Log.debug("CD - Definition:" + cd.getId()
+ + " ColumnLocalId:" + cd.getColumnLocalId()
+ + " Label:" + cd.getLabel() + " Key:"
+ + cd.getKey());
+ List
rowsSelected = gridPanel.getSelectedRows();
+ Log.debug("Retriving rows selected");
+ String rowS = "";
+ ArrayList rows = new ArrayList();
+ if (rowsSelected != null) {
+ for (Row row : rowsSelected) {
+ rowS = row.getFieldAsText(cd.getLabel());
+ Log.debug("Selected Row:" + rowS);
+ rows.add(rowS);
+ }
+ } else {
+ Log.debug("no selected rows retrived");
+ }
+ GridContextMenuItemEvent eventGridContextMenu = new GridContextMenuItemEvent(
+ GridOperationId.ROWEDIT, rows);
+ eventBus.fireEvent(eventGridContextMenu);
+ } else {
+ Log.debug("no COLUMNID retrived");
+ }
+
+ }
+
+ }
+ });
+ tableContextMenu.add(editRowItem);
+
+ MenuItem deleteRowItem = new MenuItem("Delete Row");
+ deleteRowItem.setId(GridOperationId.ROWDELETE.toString());
+ deleteRowItem.setIcon(TabularDataResources.INSTANCE.rowRemove());
+ deleteRowItem.addSelectionHandler(new SelectionHandler- () {
+
+ @Override
+ public void onSelection(SelectionEvent
- event) {
+ Log.debug("gridPanel is: " + gridPanel);
+ if (gridPanel != null) {
+ ColumnModel columnModel = gridPanel.getGrid()
+ .getColumnModel();
+
+ List> columns = columnModel
+ .getColumns();
+ DataRowColumnConfig> c = null;
+ boolean columnIdRetrieved = false;
+ for (ColumnConfig col : columns) {
+ c = (DataRowColumnConfig>) col;
+ ColumnType ctype = c.getDefinition().getType();
+ if (ctype == ColumnType.COLUMNID) {
+ columnIdRetrieved = true;
+ break;
+ }
+ }
+
+ if (columnIdRetrieved) {
+ ColumnDefinition cd = c.getDefinition();
+ Log.debug("CD - Definition:" + cd.getId()
+ + " ColumnLocalId:" + cd.getColumnLocalId()
+ + " Label:" + cd.getLabel() + " Key:"
+ + cd.getKey());
+ List
rowsSelected = gridPanel.getSelectedRows();
+ Log.debug("Retriving rows selected");
+ String rowS = "";
+ ArrayList rows = new ArrayList();
+ if (rowsSelected != null) {
+ for (Row row : rowsSelected) {
+ rowS = row.getFieldAsText(cd.getLabel());
+ Log.debug("Selected Row:" + rowS);
+ rows.add(rowS);
+ }
+ } else {
+ Log.debug("no selected rows retrived");
+ }
+ GridContextMenuItemEvent eventGridContextMenu = new GridContextMenuItemEvent(
+ GridOperationId.ROWDELETE, rows);
+ eventBus.fireEvent(eventGridContextMenu);
+ } else {
+ Log.debug("no COLUMNID retrived");
+ }
+
+ }
+
+ }
+ });
+ tableContextMenu.add(deleteRowItem);
+
+ }
+
+ /**
+ *
+ * @return context menu for grid
+ */
+ public Menu getMenu() {
+ return tableContextMenu;
+ }
}