]> source.dussan.org Git - poi.git/commitdiff
remove code smells
authorAlain Béarez <abearez@apache.org>
Wed, 29 May 2019 01:05:26 +0000 (01:05 +0000)
committerAlain Béarez <abearez@apache.org>
Wed, 29 May 2019 01:05:26 +0000 (01:05 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1860311 13f79535-47bb-0310-9956-ffa450edef68

src/examples/src/org/apache/poi/xssf/usermodel/examples/ExcelChartWithTargetLine.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChart.java

index 0e585ed9f942ecb2a7ad83ccbb7c63e6cf379619..2cdb96b411a390a8e44d63985fcabf807739188b 100644 (file)
@@ -183,48 +183,51 @@ class ExcelChartWithTargetLine {
         barCategories.getOrAddShapeProperties().setLineProperties(categoriesProps);
     }
 
-    public static void main(String[] args) throws Exception {
-
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        XSSFSheet sheet = workbook.createSheet("targetline");
-        final int NUM_OF_COLUMNS = 4;
-
-        // create some data
-        XSSFRow row;
-        XSSFCell cell;
-        String[] headings = new String[] { "Year", "Male", "Female", "Other" };
-        int rowIndex = 0;
-        row = sheet.createRow(rowIndex);
-        for (int colIndex = 0; colIndex < NUM_OF_COLUMNS; colIndex++) {
-            cell = row.createCell(colIndex);
-            cell.setCellValue(headings[colIndex]);
+    private static XSSFClientAnchor createAnchor(XSSFDrawing drawing, int[] chartedCols) {
+        if (chartedCols.length > 1) {
+            return drawing.createAnchor(0, 0, 0, 0, 0, 8, 10, 23);
+        } else {
+            return drawing.createAnchor(0, 0, 0, 0, 0, 8, 5, 23);
         }
-        double[][] values = new double[][] { new double[] { 1980, 56.0, 44.1, 12.2 },
-                new double[] { 1985, 34.5, 41.0, 4 }, new double[] { 1990, 65.0, 68.5, 9.1 },
-                new double[] { 1995, 34.7, 47.6, 4.9 }, new double[] { 2000, 23.0, 64.5, 11.1 },
-                new double[] { 2005, 56.3, 69.8, 9.5 } };
-        for (; rowIndex < NUM_OF_ROWS; rowIndex++) {
-            row = sheet.createRow(rowIndex + 1);
+    }
+
+    public static void main(String[] args) throws Exception {
+        try (XSSFWorkbook workbook = new XSSFWorkbook()) {
+            XSSFSheet sheet = workbook.createSheet("targetline");
+            final int NUM_OF_COLUMNS = 4;
+
+            // create some data
+            XSSFRow row;
+            XSSFCell cell;
+            String[] headings = new String[] { "Year", "Male", "Female", "Other" };
+            int rowIndex = 0;
+            row = sheet.createRow(rowIndex);
             for (int colIndex = 0; colIndex < NUM_OF_COLUMNS; colIndex++) {
                 cell = row.createCell(colIndex);
-                cell.setCellValue(values[rowIndex][colIndex]);
+                cell.setCellValue(headings[colIndex]);
+            }
+            double[][] values = new double[][] { new double[] { 1980, 56.0, 44.1, 12.2 },
+                    new double[] { 1985, 34.5, 41.0, 4 }, new double[] { 1990, 65.0, 68.5, 9.1 },
+                    new double[] { 1995, 34.7, 47.6, 4.9 }, new double[] { 2000, 23.0, 64.5, 11.1 },
+                    new double[] { 2005, 56.3, 69.8, 9.5 } };
+            for (; rowIndex < NUM_OF_ROWS; rowIndex++) {
+                row = sheet.createRow(rowIndex + 1);
+                for (int colIndex = 0; colIndex < NUM_OF_COLUMNS; colIndex++) {
+                    cell = row.createCell(colIndex);
+                    cell.setCellValue(values[rowIndex][colIndex]);
+                }
             }
-        }
 
-        int[] chartedCols = new int[] {  1,  2  , 3  };
+            int[] chartedCols = new int[] {  1,  2  , 3  };
 
-        XSSFDrawing drawing = sheet.createDrawingPatriarch();
-        XSSFClientAnchor anchor = null;
-        if (chartedCols.length > 1) {
-            anchor = drawing.createAnchor(0, 0, 0, 0, 0, 8, 10, 23);
-        } else {
-            anchor = drawing.createAnchor(0, 0, 0, 0, 0, 8, 5, 23);
-        }
-        XSSFChart chart = drawing.createChart(anchor);
-        createChart(chart, sheet, chartedCols, 42.0);
-
-        workbook.write(new FileOutputStream("ExcelChartWithTargetLine.xlsx"));
-        workbook.close();
+            XSSFDrawing drawing = sheet.createDrawingPatriarch();
+            XSSFClientAnchor anchor = createAnchor(drawing, chartedCols);
+            XSSFChart chart = drawing.createChart(anchor);
+            createChart(chart, sheet, chartedCols, 42.0);
 
+            try (FileOutputStream fos = new FileOutputStream("ExcelChartWithTargetLine.xlsx")) {
+                workbook.write(fos);
+            }
+        }
     }
 }
index 0b8e89dc82e3849b18550dcfc9422b070367c62c..3e2434618a1a62d888d5d0483996a42cfaf4b334 100644 (file)
@@ -588,6 +588,7 @@ public abstract class XDDFChart extends POIXMLDocumentPart implements TextContai
             return new XDDFSurfaceChartData(this, plotArea.addNewSurfaceChart(), categories, mapValues);
         case SURFACE3D:
             return new XDDFSurface3DChartData(this, plotArea.addNewSurface3DChart(), categories, mapValues);
+        // TODO repeat above code for missing charts: Bubble, Doughnut, OfPie and Stock
         default:
             return null;
         }