Read GridItem height sent by the client

Change-Id: I47bc993da87a755c20b0c88c4d1e6d7e87518532
Signed-off-by: Ivan Furnadjiev <ivan@eclipsesource.com>
diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemOperationHandler.java b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemOperationHandler.java
index 0409741..464ff6f 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemOperationHandler.java
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemOperationHandler.java
@@ -25,6 +25,7 @@
 
   private static final String PROP_CELL_CHECKED = "cellChecked";
   private static final String PROP_EXPANDED = "expanded";
+  private static final String PROP_HEIGHT = "height";
 
   public GridItemOperationHandler( GridItem item ) {
     super( item );
@@ -34,6 +35,7 @@
   public void handleSet( GridItem item, JsonObject properties ) {
     handleSetChecked( item, properties );
     handleSetExpanded( item, properties );
+    handleSetHeight( item, properties );
   }
 
   /*
@@ -68,4 +70,16 @@
     }
   }
 
+  /*
+   * PROTOCOL SET height
+   *
+   * @param height (int) the actual item height measured by the client
+   */
+  public void handleSetHeight( GridItem item, JsonObject properties ) {
+    JsonValue value = properties.get( PROP_HEIGHT );
+    if( value != null ) {
+      item.setHeight( value.asInt() );
+    }
+  }
+
 }
diff --git a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemOperationHandler_Test.java b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemOperationHandler_Test.java
index 1c5c150..5241165 100644
--- a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemOperationHandler_Test.java
+++ b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemOperationHandler_Test.java
@@ -11,6 +11,7 @@
 package org.eclipse.nebula.widgets.grid.internal.griditemkit;
 
 import static org.eclipse.nebula.widgets.grid.GridTestUtil.createGridColumns;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
@@ -88,4 +89,11 @@
     assertFalse( item.isExpanded() );
   }
 
+  @Test
+  public void testHandleSetHeight() {
+    handler.handleSet( new JsonObject().add( "height", 123 ) );
+
+    assertEquals( 123, item.getHeight() );
+  }
+
 }