xref: /trunk/test/testuno/source/fvt/uno/sc/rowcolumn/CreateShowHideEditDeleteComments.java (revision a7b613a6af1cb6c17f72fb50272cb23f0021e01b)
1 package fvt.uno.sc.rowcolumn;
2 
3 import static org.junit.Assert.*;
4 
5 import org.junit.After;
6 import org.junit.AfterClass;
7 import org.junit.Before;
8 import org.junit.BeforeClass;
9 import org.junit.Test;
10 
11 import org.openoffice.test.uno.UnoApp;
12 
13 import testlib.uno.SCUtil;
14 import testlib.uno.TestUtil;
15 
16 import com.sun.star.lang.XComponent;
17 import com.sun.star.sheet.XSpreadsheet;
18 import com.sun.star.sheet.XSpreadsheetDocument;
19 import com.sun.star.table.CellAddress;
20 import com.sun.star.table.XCell;
21 import com.sun.star.uno.UnoRuntime;
22 import com.sun.star.sheet.XCellAddressable;
23 import com.sun.star.sheet.XSheetAnnotations;
24 import com.sun.star.sheet.XSheetAnnotationsSupplier;
25 import com.sun.star.sheet.XSheetAnnotation;
26 import com.sun.star.sheet.XSheetAnnotationAnchor;
27 import com.sun.star.sheet.XSpreadsheets;
28 import com.sun.star.container.XIndexAccess;
29 
30 
31 /**
32  * Test Create Show Hide Edit Delete Comments
33  * @author BinGuo 9/5/2012
34  *
35  */
36 
37 public class CreateShowHideEditDeleteComments {
38 
39     UnoApp unoApp = new UnoApp();
40     XSpreadsheetDocument scDocument = null;
41     XComponent scComponent = null;
42 
43     @Before
44     public void setUp() throws Exception {
45         unoApp.start();
46     }
47 
48     @After
49     public void tearDown() throws Exception {
50         unoApp.closeDocument(scComponent);
51         unoApp.close();
52         }
53 
54     @BeforeClass
55     public static void setUpConnection() throws Exception {
56 //      unoApp.start();
57     }
58 
59     @AfterClass
60     public static void tearDownConnection() throws InterruptedException, Exception {
61 //      unoApp.close();
62         SCUtil.clearTempDir();
63     }
64 
65     /**
66      * New a spreadsheet
67      * Insert annotations for A1:A5
68      * Delete the 2nd annotations for A1:A5
69      * Edit text in annotation
70      */
71 
72     @Test
73     public void testCreateEditDeleteComments() throws Exception {
74 
75         scComponent = unoApp.newDocument("scalc");
76         scDocument = (XSpreadsheetDocument) UnoRuntime.queryInterface(XSpreadsheetDocument.class, scComponent);
77         XSpreadsheets xSpreadsheets = scDocument.getSheets();
78 
79         // Gets the first sheet in the document.
80         XIndexAccess xSheetsIA = (XIndexAccess)UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
81         Object sheetObj = (XSpreadsheet)UnoRuntime.queryInterface(XSpreadsheet.class, xSheetsIA.getByIndex(0));
82         XSpreadsheet xSheet = (XSpreadsheet) UnoRuntime.queryInterface(XSpreadsheet.class, sheetObj);
83 
84         // Get current sheet
85         xSheet = SCUtil.getCurrentSheet(scDocument);
86 
87         // Create cell range A2:A5 and Add annotation for cells
88         int nRow = 1;
89 
90         for (int i = 1; i < 5; ++i) {
91             XCell xCell = xSheet.getCellByPosition(0, nRow);
92             xCell.setValue(nRow);
93 
94             // Create the CellAddress structure
95             XCellAddressable xCellAddr = (XCellAddressable)
96              UnoRuntime.queryInterface(XCellAddressable.class, xCell);
97             CellAddress aAddress = xCellAddr.getCellAddress();
98 
99             // Insert an annotation
100             XSheetAnnotationsSupplier xAnnotationsSupp =
101              (XSheetAnnotationsSupplier) UnoRuntime.queryInterface(
102                  XSheetAnnotationsSupplier.class, xSheet);
103             XSheetAnnotations xAnnotations = xAnnotationsSupp.getAnnotations();
104             xAnnotations.insertNew(aAddress, "This is an annotation");
105 
106             nRow += 1;
107         }
108 
109         XSheetAnnotationsSupplier xAnnotationsSupp =
110                  (XSheetAnnotationsSupplier) UnoRuntime.queryInterface(
111                      XSheetAnnotationsSupplier.class, xSheet);
112         XSheetAnnotations xAnnotations = xAnnotationsSupp.getAnnotations();
113 
114         // Verify results after insert annotations for cell range A2:A5
115         assertEquals("Verify total number of annotations after execute insert annotations."
116                       ,4, xAnnotations.getCount());
117 
118         // Remove annotation
119         xAnnotations.removeByIndex(1);
120 
121         // Verify results after delete annotations from cell range A2:A5
122         assertEquals("Verify number of annotations after execute delete annotations."
123                       ,3, xAnnotations.getCount());
124 
125     }
126 
127     /**
128      * New a spreadsheet
129      * Insert annotations for B2
130      * Show it
131      * Hide it
132      */
133 
134     @Test
135     public void testShowHideComments() throws Exception {
136 
137         scComponent = unoApp.newDocument("scalc");
138         scDocument = (XSpreadsheetDocument) UnoRuntime.queryInterface(XSpreadsheetDocument.class, scComponent);
139         XSpreadsheets xSpreadsheets = scDocument.getSheets();
140 
141         // Gets the first sheet in the document.
142         XIndexAccess xSheetsIA = (XIndexAccess)UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
143         Object sheetObj = (XSpreadsheet)UnoRuntime.queryInterface(XSpreadsheet.class, xSheetsIA.getByIndex(0));
144         XSpreadsheet xSheet = (XSpreadsheet) UnoRuntime.queryInterface(XSpreadsheet.class, sheetObj);
145 
146         // Get current sheet
147         xSheet = SCUtil.getCurrentSheet(scDocument);
148 
149         // Create the CellAddress structure
150 
151         // Get Cell B2
152         int nColumn = 1;
153         int nRow = 1;
154 
155         XCell xCell = xSheet.getCellByPosition(nColumn, nRow);
156         XCellAddressable xCellAddr = (XCellAddressable)
157              UnoRuntime.queryInterface(XCellAddressable.class, xCell);
158         CellAddress aAddress = xCellAddr.getCellAddress();
159 
160         // Insert an annotation
161         XSheetAnnotationsSupplier xAnnotationsSupp =
162              (XSheetAnnotationsSupplier) UnoRuntime.queryInterface(
163                  XSheetAnnotationsSupplier.class, xSheet);
164         XSheetAnnotations xAnnotations = xAnnotationsSupp.getAnnotations();
165         xAnnotations.insertNew(aAddress, "This is an annotation");
166 
167         XSheetAnnotationAnchor xAnnotAnchor =
168                 (XSheetAnnotationAnchor) UnoRuntime.queryInterface(XSheetAnnotationAnchor.class, xCell);
169         XSheetAnnotation xAnnotation = xAnnotAnchor.getAnnotation();
170 
171         // Make the annotation visible
172         xAnnotation.setIsVisible(true);
173         ////////
174         TestUtil.printPropertiesList(xAnnotAnchor);
175         ////////////////
176         // Verify annotation is visible.
177         assertTrue("Verify annotation is visible in cell B2.",xAnnotation.getIsVisible());
178 
179         // Make the annotation invisible
180         xAnnotation.setIsVisible(false);
181 
182         // Verify annotation is invisible.
183         assertFalse("Verify annotation is invisible in cell B2.",xAnnotation.getIsVisible());
184 
185     }
186 
187 }
188 
189 
190 
191 
192