Eliminate the usage of IClientObject#set( Object )
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 72205bd..224dcf4 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,12 +13,18 @@
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.ClientObjectFactory.getClientObject;
import static org.eclipse.rap.rwt.internal.protocol.ProtocolUtil.readCallPropertyValueAsString;
+import static org.eclipse.rap.rwt.internal.protocol.ProtocolUtil.readPropertyValueAsStringArray;
+import static org.eclipse.rap.rwt.internal.protocol.ProtocolUtil.wasCallSend;
+import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.getStyles;
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;
+import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.readPropertyValue;
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.WidgetLCAUtil.wasEventSent;
import static org.eclipse.rap.rwt.lifecycle.WidgetUtil.getId;
import java.io.IOException;
@@ -28,10 +34,9 @@
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.json.JsonArray;
import org.eclipse.rap.rwt.internal.protocol.ClientMessageConst;
-import org.eclipse.rap.rwt.internal.protocol.ClientObjectFactory;
import org.eclipse.rap.rwt.internal.protocol.IClientObject;
-import org.eclipse.rap.rwt.internal.protocol.ProtocolUtil;
import org.eclipse.rap.rwt.internal.util.NumberFormatUtil;
import org.eclipse.rap.rwt.lifecycle.AbstractWidgetLCA;
import org.eclipse.rap.rwt.lifecycle.ControlLCAUtil;
@@ -96,10 +101,10 @@
@Override
public void renderInitialization( Widget widget ) throws IOException {
Grid grid = ( Grid )widget;
- IClientObject clientObject = ClientObjectFactory.getClientObject( grid );
+ IClientObject clientObject = getClientObject( grid );
clientObject.create( TYPE );
clientObject.set( "parent", getId( grid.getParent() ) );
- clientObject.set( "style", WidgetLCAUtil.getStyles( grid, ALLOWED_STYLES ) );
+ clientObject.set( "style", getStyles( grid, ALLOWED_STYLES ) );
clientObject.set( "appearance", "tree" );
IGridAdapter adapter = getGridAdapter( grid );
clientObject.set( "indentionWidth", adapter.getIndentationWidth() );
@@ -194,15 +199,14 @@
@Override
public void doRedrawFake( Control control ) {
- Grid grid = ( Grid )control;
- getGridAdapter( grid ).doRedraw();
+ getGridAdapter( ( Grid )control ).doRedraw();
}
////////////////////////////////////////////
// Helping methods to read client-side state
private static void readSelection( Grid grid ) {
- String[] values = ProtocolUtil.readPropertyValueAsStringArray( getId( grid ), "selection" );
+ String[] values = readPropertyValueAsStringArray( getId( grid ), "selection" );
if( values != null ) {
GridItem[] selectedItems = new GridItem[ values.length ];
boolean validItemFound = false;
@@ -220,7 +224,7 @@
}
private static void readScrollLeft( Grid grid ) {
- String left = WidgetLCAUtil.readPropertyValue( grid, "scrollLeft" );
+ String left = readPropertyValue( grid, "scrollLeft" );
if( left != null ) {
int leftOffset = NumberFormatUtil.parseInt( left );
processScrollBarSelection( grid.getHorizontalBar(), leftOffset );
@@ -228,7 +232,7 @@
}
private static void readTopItemIndex( Grid grid ) {
- String topItemIndex = WidgetLCAUtil.readPropertyValue( grid, "topItemIndex" );
+ String topItemIndex = readPropertyValue( grid, "topItemIndex" );
if( topItemIndex != null ) {
int topOffset = NumberFormatUtil.parseInt( topItemIndex );
getGridAdapter( grid ).invalidateTopIndex();
@@ -237,7 +241,7 @@
}
private static void readFocusItem( Grid grid ) {
- String value = WidgetLCAUtil.readPropertyValue( grid, "focusItem" );
+ String value = readPropertyValue( grid, "focusItem" );
if( value != null ) {
GridItem item = getItem( grid, value );
if( item != null ) {
@@ -254,7 +258,7 @@
adapter.setCellToolTipText( null );
ICellToolTipProvider provider = adapter.getCellToolTipProvider();
String methodName = "renderToolTipText";
- if( provider != null && ProtocolUtil.wasCallSend( getId( grid ), methodName ) ) {
+ if( provider != null && wasCallSend( getId( grid ), methodName ) ) {
String itemId = readCallPropertyValueAsString( getId( grid ), methodName, "item" );
String column = readCallPropertyValueAsString( getId( grid ), methodName, "column" );
int columnIndex = NumberFormatUtil.parseInt( column );
@@ -347,7 +351,7 @@
}
private static void processSelectionEvent( Grid grid, String eventName ) {
- if( WidgetLCAUtil.wasEventSent( grid, eventName ) ) {
+ if( wasEventSent( grid, eventName ) ) {
GridItem item = getItem( grid, readEventPropertyValue( grid, eventName, EVENT_PARAM_ITEM ) );
if( item != null ) {
if( eventName.equals( ClientMessageConst.EVENT_SELECTION ) ) {
@@ -381,7 +385,7 @@
// Process expand/collapse events
private static void processTreeEvent( Grid grid, int eventType, String eventName ) {
- if( WidgetLCAUtil.wasEventSent( grid, eventName ) ) {
+ if( wasEventSent( grid, eventName ) ) {
String value = readEventPropertyValue( grid, eventName, ClientMessageConst.EVENT_PARAM_ITEM );
Event event = new Event();
event.item = getItem( grid, value );
@@ -395,22 +399,19 @@
private static void renderItemMetrics( Grid grid ) {
ItemMetrics[] itemMetrics = getItemMetrics( grid );
if( WidgetLCAUtil.hasChanged( grid, PROP_ITEM_METRICS, itemMetrics ) ) {
- int[][] metrics = new int[ itemMetrics.length ][ 9 ];
+ JsonArray metrics = new JsonArray();
for( int i = 0; i < itemMetrics.length; i++ ) {
- metrics[ i ] = new int[] {
- i,
- itemMetrics[ i ].left,
- itemMetrics[ i ].width,
- itemMetrics[ i ].imageLeft,
- itemMetrics[ i ].imageWidth,
- itemMetrics[ i ].textLeft,
- itemMetrics[ i ].textWidth,
- itemMetrics[ i ].checkLeft,
- itemMetrics[ i ].checkWidth
- };
+ metrics.add( new JsonArray().add( i )
+ .add( itemMetrics[ i ].left )
+ .add( itemMetrics[ i ].width )
+ .add( itemMetrics[ i ].imageLeft )
+ .add( itemMetrics[ i ].imageWidth )
+ .add( itemMetrics[ i ].textLeft )
+ .add( itemMetrics[ i ].textWidth )
+ .add( itemMetrics[ i ].checkLeft )
+ .add( itemMetrics[ i ].checkWidth ) );
}
- IClientObject clientObject = ClientObjectFactory.getClientObject( grid );
- clientObject.set( PROP_ITEM_METRICS, metrics );
+ getClientObject( grid ).set( PROP_ITEM_METRICS, metrics );
}
}