Read Grid cellChecked property as boolean array
diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/.project b/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/.project
index d9edb8b..8f15b71 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/.project
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/.project
@@ -1,28 +1,33 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.rap.nebula.widgets.grid.snippets</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.rap.nebula.widgets.grid.snippets</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.jdt.core.javabuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.ManifestBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.SchemaBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.ds.core.builder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.pde.PluginNature</nature>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+	</natures>

+</projectDescription>

diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/.settings/GridSnippets.launch b/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/.settings/GridSnippets.launch
index 355fb7e..7b5ee5a 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/.settings/GridSnippets.launch
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/.settings/GridSnippets.launch
@@ -37,7 +37,7 @@
 <booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="true"/>

 <booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>

 <stringAttribute key="pde.version" value="3.3"/>

-<booleanAttribute key="show_selected_only" value="false"/>

+<booleanAttribute key="show_selected_only" value="true"/>

 <stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.servlet@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true"/>

 <booleanAttribute key="tracing" value="false"/>

 <booleanAttribute key="useCustomFeatures" value="false"/>

diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/OSGI-INF/contribution.xml b/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/OSGI-INF/contribution.xml
index 0e43a2d..43c39dd 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/OSGI-INF/contribution.xml
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid.snippets/OSGI-INF/contribution.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.rap.examples">
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.rap.nebula.examples">
    <implementation class="org.eclipse.rap.nebula.widgets.grid.snippets.internal.GridSnippetsApplication"/>
    <service>
-      <provide interface="org.eclipse.rwt.application.ApplicationConfiguration"/>
+      <provide interface="org.eclipse.rap.rwt.application.ApplicationConfiguration"/>
    </service>
 </scr:component>
diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA.java b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA.java
index bef25f4..6264c10 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA.java
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA.java
@@ -12,6 +12,7 @@
 
 import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.preserveProperty;
 import static org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil.renderProperty;
+import static org.eclipse.rap.rwt.lifecycle.WidgetUtil.getId;
 
 import java.io.IOException;
 
@@ -22,6 +23,7 @@
 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.lifecycle.AbstractWidgetLCA;
 import org.eclipse.rap.rwt.lifecycle.ProcessActionRunner;
 import org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil;
@@ -135,11 +137,10 @@
   // Helping methods to read client-side state
 
   private static void readChecked( GridItem item ) {
-    String value = WidgetLCAUtil.readPropertyValue( item, "cellChecked" );
+    boolean[] value = ProtocolUtil.readPropertyValueAsBooleanArray( getId( item ), "cellChecked" );
     if( value != null ) {
-      boolean[] cellChecked = parseJSonBooleanArray( value.trim() );
-      for( int i = 0; i < cellChecked.length; i++ ) {
-        item.setChecked( i, cellChecked[ i ] );
+      for( int i = 0; i < value.length; i++ ) {
+        item.setChecked( i, value[ i ] );
       }
     }
   }
@@ -255,14 +256,4 @@
   private static IGridItemAdapter getGridItemAdapter( GridItem item ) {
     return item.getAdapter( IGridItemAdapter.class );
   }
-
-  private static boolean[] parseJSonBooleanArray( String json ) {
-    String value = json.substring( 1, json.length() - 1 );
-    String[] valueParts = value.split( "," );
-    boolean[] result = new boolean[ valueParts.length ];
-    for( int i = 0; i < result.length; i++ ) {
-      result[ i ] = Boolean.valueOf( valueParts[ i ].trim() ).booleanValue();
-    }
-    return result;
-  }
 }
diff --git a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA_Test.java b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA_Test.java
index 4fc00f9..084df96 100644
--- a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA_Test.java
+++ b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA_Test.java
@@ -23,6 +23,7 @@
 
 import org.eclipse.nebula.widgets.grid.Grid;
 import org.eclipse.nebula.widgets.grid.GridItem;
+import org.eclipse.rap.rwt.RWT;
 import org.eclipse.rap.rwt.graphics.Graphics;
 import org.eclipse.rap.rwt.internal.protocol.ClientMessageConst;
 import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
@@ -146,7 +147,7 @@
   }
 
   public void testRenderCustomVariant() throws IOException {
-    item.setData( WidgetUtil.CUSTOM_VARIANT, "blue" );
+    item.setData( RWT.CUSTOM_VARIANT, "blue" );
     lca.renderChanges( item );
 
     Message message = Fixture.getProtocolMessage();
@@ -157,7 +158,7 @@
     Fixture.markInitialized( display );
     Fixture.markInitialized( item );
 
-    item.setData( WidgetUtil.CUSTOM_VARIANT, "blue" );
+    item.setData( RWT.CUSTOM_VARIANT, "blue" );
     Fixture.preserveWidgets();
     lca.renderChanges( item );
 
@@ -610,7 +611,7 @@
     createGridColumns( grid, 3, SWT.NONE );
     item = new GridItem( grid, SWT.NONE );
 
-    Fixture.fakeSetParameter( getId( item ), "cellChecked", "[ true, false, true ]" );
+    Fixture.fakeSetParameter( getId( item ), "cellChecked", new boolean[] { true, false, true } );
     Fixture.readDataAndProcessAction( item );
 
     assertTrue( item.getChecked( 0 ) );