Add donut option to PieChart

Make PieCharts more tasty!

Change-Id: Ice9f9f14c980ac3aac393f7a76c5df1f4f3fa559
diff --git a/bundles/org.eclipse.rap.addons.chart/src/org/eclipse/rap/addons/chart/basic/PieChart.java b/bundles/org.eclipse.rap.addons.chart/src/org/eclipse/rap/addons/chart/basic/PieChart.java
index a673373..138140f 100644
--- a/bundles/org.eclipse.rap.addons.chart/src/org/eclipse/rap/addons/chart/basic/PieChart.java
+++ b/bundles/org.eclipse.rap.addons.chart/src/org/eclipse/rap/addons/chart/basic/PieChart.java
@@ -18,6 +18,7 @@
 public class PieChart extends NvChart {
 
   private boolean showLabels = true;
+  private boolean donut;
 
   public PieChart( Composite parent, int style ) {
     super( parent, style, "nv-pie" );
@@ -37,6 +38,17 @@
     return showLabels;
   }
 
+  public void setDonut( boolean donut ) {
+    if( this.donut != donut ) {
+      this.donut = donut;
+      setOption( "donut", donut );
+    }
+  }
+
+  public boolean getDonut() {
+    return donut;
+  }
+
   public void setItems( PieItem... items ) {
     JsonArray values = new JsonArray();
     for( PieItem item : items ) {
diff --git a/examples/org.eclipse.rap.addons.chart.demo/src/org/eclipse/rap/addons/chart/nv/demo/PieChartSnippet.java b/examples/org.eclipse.rap.addons.chart.demo/src/org/eclipse/rap/addons/chart/nv/demo/PieChartSnippet.java
index dabddd9..0463f9d 100644
--- a/examples/org.eclipse.rap.addons.chart.demo/src/org/eclipse/rap/addons/chart/nv/demo/PieChartSnippet.java
+++ b/examples/org.eclipse.rap.addons.chart.demo/src/org/eclipse/rap/addons/chart/nv/demo/PieChartSnippet.java
@@ -41,6 +41,7 @@
     pieChart = new PieChart( parent, SWT.NONE );
     pieChart.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
     pieChart.setShowLabels( true );
+    pieChart.setDonut( true );
     pieChart.addListener( SWT.Selection, new Listener() {
       @Override
       public void handleEvent( Event event ) {
diff --git a/tests/org.eclipse.rap.addons.chart.test/src/org/eclipse/rap/addons/chart/basic/PieChart_Test.java b/tests/org.eclipse.rap.addons.chart.test/src/org/eclipse/rap/addons/chart/basic/PieChart_Test.java
index b667bca..2cbabbe 100644
--- a/tests/org.eclipse.rap.addons.chart.test/src/org/eclipse/rap/addons/chart/basic/PieChart_Test.java
+++ b/tests/org.eclipse.rap.addons.chart.test/src/org/eclipse/rap/addons/chart/basic/PieChart_Test.java
@@ -86,47 +86,26 @@
     verify( remoteObject ).call( "setOptions", new JsonObject().add( "showLabels", false ) );
   }
 
-//  @Test
-//  public void testStartAngle_defaultValue() {
-//    assertEquals( 0, chart.getStartAngle(), 0 );
-//  }
-//
-//  @Test
-//  public void testStartAngle_changeValue() {
-//    chart.setStartAngle( 0.5f );
-//
-//    assertEquals( 0.5, chart.getStartAngle(), 0 );
-//  }
-//
-//  @Test
-//  public void testStartAngle_isRendered() {
-//    reset( remoteObject );
-//
-//    chart.setStartAngle( -0.5f );
-//
-//    verify( remoteObject ).call( "setOptions", new JsonObject().add( "startAngle", -Math.PI ) );
-//  }
-//
-//  @Test
-//  public void testEndAngle_defaultValue() {
-//    assertEquals( 1, chart.getEndAngle(), 0 );
-//  }
-//
-//  @Test
-//  public void testEndAngle_changeValue() {
-//    chart.setEndAngle( 0.5f );
-//
-//    assertEquals( 0.5, chart.getEndAngle(), 0 );
-//  }
-//
-//  @Test
-//  public void testEndAngle_isRendered() {
-//    reset( remoteObject );
-//
-//    chart.setEndAngle( 0.5f );
-//
-//    verify( remoteObject ).call( "setOptions", new JsonObject().add( "endAngle", Math.PI ) );
-//  }
+  @Test
+  public void testDonut_defaultValue() {
+    assertFalse( chart.getDonut() );
+  }
+
+  @Test
+  public void testDonut_changeValue() {
+    chart.setDonut( true );
+
+    assertTrue( chart.getDonut() );
+  }
+
+  @Test
+  public void testDonut_isRendered() {
+    reset( remoteObject );
+
+    chart.setDonut( true );
+
+    verify( remoteObject ).call( "setOptions", new JsonObject().add( "donut", true ) );
+  }
 
   @Test
   public void testSetItems() {