View | Details | Raw Unified | Return to issue 120600
Collapse All | Expand All

(-)source/testcase/uno/sd/ParagraphStyle.java (+207 lines)
Line 0 Link Here
1
package testcase.uno.sd;
2
3
import junit.framework.Assert;
4
5
import org.junit.After;
6
import org.junit.Before;
7
import org.junit.Test;
8
import org.openoffice.test.common.FileUtil;
9
import org.openoffice.test.common.Testspace;
10
import org.openoffice.test.uno.UnoApp;
11
12
import testlib.uno.PageUtil;
13
import testlib.uno.ShapeUtil;
14
15
import com.sun.star.awt.Point;
16
import com.sun.star.awt.Size;
17
import com.sun.star.beans.PropertyValue;
18
import com.sun.star.beans.XPropertySet;
19
import com.sun.star.drawing.TextFitToSizeType;
20
import com.sun.star.drawing.XDrawPage;
21
import com.sun.star.drawing.XDrawPages;
22
import com.sun.star.drawing.XDrawPagesSupplier;
23
import com.sun.star.drawing.XShape;
24
import com.sun.star.drawing.XShapes;
25
import com.sun.star.frame.XStorable;
26
import com.sun.star.lang.XComponent;
27
import com.sun.star.lang.XMultiServiceFactory;
28
import com.sun.star.presentation.XPresentation;
29
import com.sun.star.presentation.XPresentationSupplier;
30
import com.sun.star.style.LineSpacing;
31
import com.sun.star.style.LineSpacingMode;
32
import com.sun.star.style.ParagraphAdjust;
33
import com.sun.star.text.ControlCharacter;
34
import com.sun.star.text.XText;
35
import com.sun.star.text.XTextCursor;
36
import com.sun.star.text.XTextRange;
37
import com.sun.star.uno.UnoRuntime;
38
39
public class ParagraphStyle {
40
	XPresentationSupplier sdDocument = null;
41
	XPresentation pre = null;
42
	XComponent precomp = null;
43
	XComponent impressDocument = null;
44
	XComponent reLoadFile = null;
45
	XDrawPagesSupplier drawsupplier = null;
46
	XDrawPages drawpages = null;
47
	XShapes xShapes = null;
48
	XDrawPage xpage = null;
49
	String filePath=null;
50
	
51
    UnoApp unoApp = new UnoApp();
52
	
53
	/**
54
	 * @throws java.lang.Exception
55
	 */
56
	@Before
57
	public void setUp() throws Exception {
58
		unoApp.start();
59
		createDocumentAndSlide();
60
	}
61
62
	@After
63
	public void tearDown() throws Exception {
64
		unoApp.closeDocument(impressDocument);
65
		unoApp.closeDocument(reLoadFile);
66
		unoApp.close();
67
	}
68
69
	@Test
70
	public void ParaStyle() throws Exception {		
71
		Point po = new Point(5000, 5000);
72
		xShapes = (XShapes) UnoRuntime.queryInterface(XShapes.class, xpage);
73
		// create the shape
74
		XShape xRectangle = ShapeUtil.createShape(impressDocument, po, new Size(21000, 12500), "com.sun.star.drawing.RectangleShape");
75
		 xShapes.add(xRectangle);
76
		 XPropertySet xShapePropSet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xRectangle);
77
		 // TextFitToSize
78
		 xShapePropSet.setPropertyValue("TextFitToSize", TextFitToSizeType.PROPORTIONAL);
79
		 
80
		 XPropertySet xTextPropSet1 = addPortion(xRectangle, "New text paragraph", true);
81
		 xTextPropSet1.setPropertyValue("ParaAdjust", ParagraphAdjust.CENTER);
82
		 
83
		 //Line Spacing
84
		 LineSpacing xLineSpacing = new LineSpacing(LineSpacingMode.LEADING, (short)1);
85
		 xTextPropSet1.setPropertyValue("ParaLineSpacing",  xLineSpacing);
86
		 
87
		 //left, right, top and bottom margin
88
		 xTextPropSet1.setPropertyValue("ParaLeftMargin",  1000);
89
		 xTextPropSet1.setPropertyValue("ParaRightMargin",  1000);
90
		 xTextPropSet1.setPropertyValue("ParaTopMargin",  1000);
91
		 xTextPropSet1.setPropertyValue("ParaBottomMargin",  1000);
92
		 
93
		 XPropertySet xTextPropSet2 = addPortion(xRectangle, "And another text paragraph", true);
94
		 xTextPropSet2.setPropertyValue("CharColor", new Integer(0xff0000));
95
		 
96
		 xRectangle = saveAndLoadShape(po, "com.sun.star.drawing.EllipseShape");
97
		
98
99
		 Assert.assertEquals("Paragraph Left Margin is 1000",1000, xTextPropSet1.getPropertyValue("ParaLeftMargin"));
100
		 Assert.assertEquals("Paragraph Right Margin is 1000", 1000,xTextPropSet1.getPropertyValue("ParaRightMargin"));
101
		 Assert.assertEquals("Paragraph Top Margin is 1000",1000, xTextPropSet1.getPropertyValue("ParaTopMargin") );
102
		 Assert.assertEquals("Paragraph Bottom Margin is 1000 ",1000, xTextPropSet1.getPropertyValue("ParaBottomMargin"));
103
		 Assert.assertEquals("Text Color is red",0xff0000,xTextPropSet2.getPropertyValue("CharColor"));
104
	     
105
	}
106
	
107
		
108
	public static XShape createShape(XComponent xComponent, int x, int y,
109
			int width, int height, String sShapeType)
110
			throws java.lang.Exception {
111
		// query the document for the document-internal service factory
112
		XMultiServiceFactory xFactory = (XMultiServiceFactory) UnoRuntime
113
				.queryInterface(XMultiServiceFactory.class, xComponent);
114
115
		// get the given Shape service from the factory
116
		Object xObj = xFactory.createInstance(sShapeType);
117
		Point aPos = new Point(x, y);
118
		Size aSize = new Size(width, height);
119
120
		// use its XShape interface to determine position and size before
121
		// insertion
122
		XShape xShape = (XShape) UnoRuntime.queryInterface(XShape.class, xObj);
123
		xShape.setPosition(aPos);
124
		xShape.setSize(aSize);
125
		return xShape;
126
	}
127
	
128
	public static XPropertySet addPortion(XShape xShape, String sText, boolean bNewParagraph)
129
	         throws com.sun.star.lang.IllegalArgumentException {
130
	     XText xText = (XText)UnoRuntime.queryInterface(XText.class, xShape);
131
	     XTextCursor xTextCursor = xText.createTextCursor();
132
	     xTextCursor.gotoEnd(false);
133
	     if (bNewParagraph) {
134
	         xText.insertControlCharacter(xTextCursor, ControlCharacter.PARAGRAPH_BREAK, false);
135
	         xTextCursor.gotoEnd(false);
136
	     }
137
	     XTextRange xTextRange = (XTextRange)UnoRuntime.queryInterface(XTextRange.class, xTextCursor);
138
	     xTextRange.setString(sText);
139
	     xTextCursor.gotoEnd(true);
140
	     XPropertySet xPropSet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTextRange);
141
	     return xPropSet;
142
	 }
143
	
144
	/**
145
	 * create a new presentation document and insert a new slide.
146
	 * 
147
	 * @throws Exception
148
	 */
149
	public void createDocumentAndSlide() throws Exception {
150
		impressDocument = (XComponent) UnoRuntime.queryInterface(
151
				XComponent.class, unoApp.newDocument("simpress"));
152
		drawsupplier = (XDrawPagesSupplier) UnoRuntime.queryInterface(
153
				XDrawPagesSupplier.class, impressDocument);
154
		drawpages = drawsupplier.getDrawPages();
155
		drawpages.insertNewByIndex(1);
156
		xpage = PageUtil.getDrawPageByIndex(impressDocument, 1);
157
	}
158
	
159
	/**
160
	 * Save presentation and reLoad the presentation and shape in it.
161
	 * 
162
	 * @param po
163
	 * @param shapeType
164
	 * @return
165
	 * @throws Exception
166
	 */
167
	public XShape saveAndLoadShape(Point po, String shapeType) throws Exception {
168
		reLoadFile = saveAndReloadDoc(impressDocument,
169
				"StarOffice XML (Impress)", "odp");
170
		drawsupplier = (XDrawPagesSupplier) UnoRuntime.queryInterface(
171
				XDrawPagesSupplier.class, reLoadFile);
172
		drawpages = drawsupplier.getDrawPages();
173
		xpage = PageUtil.getDrawPageByIndex(impressDocument, 1);
174
		xShapes = (XShapes) UnoRuntime.queryInterface(XShapes.class, xpage);
175
		XShape shap = ShapeUtil.getShape(impressDocument, po,
176
				"com.sun.star.drawing.EllipseShape");
177
		return shap;
178
	}
179
180
	/**
181
	 * save and reload Presentation document.
182
	 * 
183
	 * @param presentationDocument
184
	 * @param sFilter
185
	 * @param sExtension
186
	 * @return
187
	 * @throws Exception
188
	 */
189
	private XComponent saveAndReloadDoc(XComponent presentationDocument,
190
			String sFilter, String sExtension) throws Exception {
191
		filePath = Testspace.getPath("tmp/paragraphstyle."
192
				+ sExtension);
193
		PropertyValue[] aStoreProperties = new PropertyValue[2];
194
		aStoreProperties[0] = new PropertyValue();
195
		aStoreProperties[1] = new PropertyValue();
196
		aStoreProperties[0].Name = "Override";
197
		aStoreProperties[0].Value = true;
198
		aStoreProperties[1].Name = "FilterName";
199
		aStoreProperties[1].Value = sFilter;
200
		XStorable xStorable = (XStorable) UnoRuntime.queryInterface(
201
				XStorable.class, presentationDocument);
202
		xStorable.storeToURL(FileUtil.getUrl(filePath), aStoreProperties);
203
204
		return UnoRuntime.queryInterface(XComponent.class,
205
				unoApp.loadDocument(filePath));
206
	}
207
}

Return to issue 120600