Replace "left"/"width" properties of Grid with "move"/"resize" call
diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA.java b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA.java
index 68d1088..7f14837 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA.java
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA.java
@@ -10,10 +10,12 @@
******************************************************************************/
package org.eclipse.nebula.widgets.grid.internal.gridcolumnkit;
+import static org.eclipse.rap.rwt.internal.protocol.ProtocolUtil.readCallPropertyValueAsString;
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.preserveListener;
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.preserveProperty;
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.renderListener;
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.renderProperty;
+import static org.eclipse.rap.rwt.lifecycle.WidgetUtil.getId;
import java.io.IOException;
import java.util.Arrays;
@@ -131,8 +133,9 @@
// Helping methods to read client-side state
private static void readLeft( final GridColumn column ) {
- String value = WidgetLCAUtil.readPropertyValue( column, "left" );
- if( value != null ) {
+ String methodName = "move";
+ if( ProtocolUtil.wasCallSend( getId( column ), methodName ) ) {
+ String value = readCallPropertyValueAsString( getId( column ), methodName, "left" );
final int newLeft = NumberFormatUtil.parseInt( value );
ProcessActionRunner.add( new Runnable() {
public void run() {
@@ -143,8 +146,9 @@
}
private static void readWidth( final GridColumn column ) {
- String value = WidgetLCAUtil.readPropertyValue( column, "width" );
- if( value != null ) {
+ String methodName = "resize";
+ if( ProtocolUtil.wasCallSend( getId( column ), methodName ) ) {
+ String value = readCallPropertyValueAsString( getId( column ), methodName, "width" );
final int newWidth = NumberFormatUtil.parseInt( value );
ProcessActionRunner.add( new Runnable() {
public void run() {
diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridkit/GridLCA.java b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridkit/GridLCA.java
index 463cc32..16187c0 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridkit/GridLCA.java
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridkit/GridLCA.java
@@ -13,6 +13,7 @@
import static org.eclipse.rap.rwt.internal.protocol.ClientMessageConst.EVENT_PARAM_DETAIL;
import static org.eclipse.rap.rwt.internal.protocol.ClientMessageConst.EVENT_PARAM_INDEX;
import static org.eclipse.rap.rwt.internal.protocol.ClientMessageConst.EVENT_PARAM_ITEM;
+import static org.eclipse.rap.rwt.internal.protocol.ProtocolUtil.readCallPropertyValueAsString;
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.preserveListener;
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.preserveProperty;
import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.readEventPropertyValue;
@@ -27,12 +28,10 @@
import org.eclipse.nebula.widgets.grid.GridItem;
import org.eclipse.nebula.widgets.grid.internal.IGridAdapter;
import org.eclipse.rap.rwt.RWT;
-import org.eclipse.rap.rwt.internal.protocol.ClientMessage;
import org.eclipse.rap.rwt.internal.protocol.ClientObjectFactory;
import org.eclipse.rap.rwt.internal.protocol.IClientObject;
import org.eclipse.rap.rwt.internal.protocol.ClientMessageConst;
import org.eclipse.rap.rwt.internal.protocol.ProtocolUtil;
-import org.eclipse.rap.rwt.internal.protocol.ClientMessage.CallOperation;
import org.eclipse.rap.rwt.internal.util.NumberFormatUtil;
import org.eclipse.rap.rwt.lifecycle.AbstractWidgetLCA;
import org.eclipse.rap.rwt.lifecycle.ControlLCAUtil;
@@ -240,18 +239,14 @@
ICellToolTipAdapter adapter = CellToolTipUtil.getAdapter( grid );
adapter.setCellToolTipText( null );
ICellToolTipProvider provider = adapter.getCellToolTipProvider();
- if( provider != null ) {
- ClientMessage message = ProtocolUtil.getClientMessage();
- CallOperation[] operations
- = message.getAllCallOperationsFor( getId( grid ), "renderToolTipText" );
- if( operations.length > 0 ) {
- CallOperation operation = operations[ operations.length - 1 ];
- String itemId = ( String )operation.getProperty( "item" );
- int columnIndex = ( ( Integer )operation.getProperty( "column" ) ).intValue();
- GridItem item = getItem( grid, itemId );
- if( item != null && ( columnIndex == 0 || columnIndex < grid.getColumnCount() ) ) {
- provider.getToolTipText( item, columnIndex );
- }
+ String methodName = "renderToolTipText";
+ if( provider != null && ProtocolUtil.wasCallSend( getId( grid ), methodName ) ) {
+ String itemId = readCallPropertyValueAsString( getId( grid ), methodName, "item" );
+ String column = readCallPropertyValueAsString( getId( grid ), methodName, "column" );
+ int columnIndex = NumberFormatUtil.parseInt( column );
+ GridItem item = getItem( grid, itemId );
+ if( item != null && ( columnIndex == 0 || columnIndex < grid.getColumnCount() ) ) {
+ provider.getToolTipText( item, columnIndex );
}
}
}
diff --git a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA_Test.java b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA_Test.java
index f921929..a1813b8 100644
--- a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA_Test.java
+++ b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA_Test.java
@@ -15,12 +15,15 @@
import static org.eclipse.nebula.widgets.grid.internal.gridkit.GridLCATestUtil.jsonEquals;
import static org.eclipse.rap.rwt.lifecycle.WidgetUtil.getId;
import java.io.IOException;
+import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import org.eclipse.nebula.widgets.grid.Grid;
import org.eclipse.nebula.widgets.grid.GridColumn;
import org.eclipse.nebula.widgets.grid.GridColumnGroup;
+import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.internal.protocol.ClientMessageConst;
import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
import org.eclipse.rap.rwt.testfixture.Fixture;
@@ -155,7 +158,7 @@
}
public void testRenderCustomVariant() throws IOException {
- column.setData( WidgetUtil.CUSTOM_VARIANT, "blue" );
+ column.setData( RWT.CUSTOM_VARIANT, "blue" );
lca.renderChanges( column );
Message message = Fixture.getProtocolMessage();
@@ -166,7 +169,7 @@
Fixture.markInitialized( display );
Fixture.markInitialized( column );
- column.setData( WidgetUtil.CUSTOM_VARIANT, "blue" );
+ column.setData( RWT.CUSTOM_VARIANT, "blue" );
Fixture.preserveWidgets();
lca.renderChanges( column );
@@ -527,7 +530,9 @@
int newWidth = columns[ 0 ].getWidth() + 2;
int newLeft = column.getWidth() + newWidth;
Fixture.fakeNewRequest( display );
- Fixture.fakeSetParameter( getId( columns[ 0 ] ), "width", Integer.valueOf( newWidth ) );
+ Map<String, Object> parameters = new HashMap<String, Object>();
+ parameters.put( "width", Integer.valueOf( newWidth ) );
+ Fixture.fakeCallOperation( getId( columns[ 0 ] ), "resize", parameters );
Fixture.executeLifeCycleFromServerThread();
assertEquals( 2, events.size() );
@@ -556,7 +561,9 @@
// Simulate request that changes column left
int newLeft = 3;
Fixture.fakeNewRequest( display );
- Fixture.fakeSetParameter( getId( columns[ 0 ] ), "left", Integer.valueOf( newLeft ) );
+ Map<String, Object> parameters = new HashMap<String, Object>();
+ parameters.put( "left", Integer.valueOf( newLeft ) );
+ Fixture.fakeCallOperation( getId( columns[ 0 ] ), "move", parameters );
Fixture.executeLifeCycleFromServerThread();
assertEquals( 2, events.size() );