You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2013/11/05 23:35:54 UTC

svn commit: r1539169 - in /poi/trunk/src: java/org/apache/poi/ss/usermodel/charts/ChartLegend.java ooxml/java/org/apache/poi/xssf/usermodel/charts/XSSFChartLegend.java ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartLegend.java

Author: cedricwalter
Date: Tue Nov  5 22:35:54 2013
New Revision: 1539169

URL: http://svn.apache.org/r1539169
Log:
Bug 54696: Add overlay setting to ChartLegend

Modified:
    poi/trunk/src/java/org/apache/poi/ss/usermodel/charts/ChartLegend.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/charts/XSSFChartLegend.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartLegend.java

Modified: poi/trunk/src/java/org/apache/poi/ss/usermodel/charts/ChartLegend.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/usermodel/charts/ChartLegend.java?rev=1539169&r1=1539168&r2=1539169&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/usermodel/charts/ChartLegend.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/usermodel/charts/ChartLegend.java Tue Nov  5 22:35:54 2013
@@ -23,10 +23,11 @@ import org.apache.poi.util.Beta;
  * High level representation of chart legend.
  *
  * @author Roman Kashitsyn
+ * @author Martin Andersson
  */
 @Beta
 public interface ChartLegend extends ManuallyPositionable {
-	
+
 	/**
 	 * @return legend position
 	 */
@@ -36,4 +37,19 @@ public interface ChartLegend extends Man
 	 * @param position new legend position
 	 */
 	void setPosition(LegendPosition position);
+
+	/**
+	 * @return overlay value.
+	 */
+	boolean isOverlay();
+
+	/**
+	 * If true the legend is positioned over the chart area otherwise
+	 * the legend is displayed next to it.
+	 *
+	 * Default is no overlay.
+	 *
+	 * @param value
+	 */
+	void setOverlay(boolean value);
 }

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/charts/XSSFChartLegend.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/charts/XSSFChartLegend.java?rev=1539169&r1=1539168&r2=1539169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/charts/XSSFChartLegend.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/charts/XSSFChartLegend.java Tue Nov  5 22:35:54 2013
@@ -30,6 +30,7 @@ import org.openxmlformats.schemas.drawin
 /**
  * Represents a SpreadsheetML chart legend
  * @author Roman Kashitsyn
+ * @author Martin Andersson
  */
 @Beta
 public final class XSSFChartLegend implements ChartLegend {
@@ -47,6 +48,18 @@ public final class XSSFChartLegend imple
 		this.legend = (ctChart.isSetLegend()) ?
 			ctChart.getLegend() :
 			ctChart.addNewLegend();
+
+		setDefaults();
+	}
+
+	/**
+	 * Set sensible default styling.
+	 */
+	private void setDefaults() {
+		if (!legend.isSetOverlay()) {
+			legend.addNewOverlay();
+		}
+		legend.getOverlay().setVal(false);
 	}
 
 	/**
@@ -84,6 +97,14 @@ public final class XSSFChartLegend imple
 		return new XSSFManualLayout(legend.getLayout());
 	}
 
+	public boolean isOverlay() {
+		return legend.getOverlay().getVal();
+	}
+
+	public void setOverlay(boolean value) {
+		legend.getOverlay().setVal(value);
+	}
+
 	private STLegendPos.Enum fromLegendPosition(LegendPosition position) {
 		switch (position) {
 			case BOTTOM: return STLegendPos.B;

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartLegend.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartLegend.java?rev=1539169&r1=1539168&r2=1539169&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartLegend.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartLegend.java Tue Nov  5 22:35:54 2013
@@ -24,8 +24,14 @@ import org.apache.poi.ss.usermodel.chart
 import org.apache.poi.ss.usermodel.charts.LegendPosition;
 import org.apache.poi.xssf.usermodel.*;
 
+/**
+ * Tests ChartLegend
+ *
+ * @author Martin Andersson
+ * @author Cedric dot Walter at gmail dot com
+ */
 public final class TestXSSFChartLegend extends TestCase {
- 
+
 	public void testLegendPositionAccessMethods() throws Exception {
 		Workbook wb = new XSSFWorkbook();
 		Sheet sheet = wb.createSheet();
@@ -37,4 +43,35 @@ public final class TestXSSFChartLegend e
 		legend.setPosition(LegendPosition.TOP_RIGHT);
 		assertEquals(LegendPosition.TOP_RIGHT, legend.getPosition());
 	}
+
+    public void test_setOverlay_defaultChartLegend_expectOverlayInitialValueSetToFalse() {
+        // Arrange
+        Workbook wb = new XSSFWorkbook();
+        Sheet sheet = wb.createSheet();
+        Drawing drawing = sheet.createDrawingPatriarch();
+        ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30);
+        Chart chart = drawing.createChart(anchor);
+        ChartLegend legend = chart.getOrCreateLegend();
+
+        // Act
+
+        // Assert
+        assertFalse(legend.isOverlay());
+    }
+
+	public void test_setOverlay_chartLegendSetToTrue_expectOverlayInitialValueSetToTrue() {
+        // Arrange
+        Workbook wb = new XSSFWorkbook();
+		Sheet sheet = wb.createSheet();
+		Drawing drawing = sheet.createDrawingPatriarch();
+		ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30);
+		Chart chart = drawing.createChart(anchor);
+		ChartLegend legend = chart.getOrCreateLegend();
+
+        // Act
+		legend.setOverlay(true);
+
+        // Assert
+        assertTrue(legend.isOverlay());
+	}
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org