summaryrefslogtreecommitdiff
path: root/odk/examples/DevelopersGuide/FirstSteps/HelloTextTableShape.java
diff options
context:
space:
mode:
Diffstat (limited to 'odk/examples/DevelopersGuide/FirstSteps/HelloTextTableShape.java')
-rw-r--r--odk/examples/DevelopersGuide/FirstSteps/HelloTextTableShape.java462
1 files changed, 0 insertions, 462 deletions
diff --git a/odk/examples/DevelopersGuide/FirstSteps/HelloTextTableShape.java b/odk/examples/DevelopersGuide/FirstSteps/HelloTextTableShape.java
deleted file mode 100644
index 047747e5..00000000
--- a/odk/examples/DevelopersGuide/FirstSteps/HelloTextTableShape.java
+++ /dev/null
@@ -1,462 +0,0 @@
-/*************************************************************************
- *
- * The Contents of this file are made available subject to the terms of
- * the BSD license.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Sun Microsystems, Inc. nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *************************************************************************/
-
-import com.sun.star.lang.XComponent;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.AnyConverter;
-import com.sun.star.bridge.XUnoUrlResolver;
-import com.sun.star.frame.XComponentLoader;
-import com.sun.star.lang.XMultiComponentFactory;
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.lang.XServiceInfo;
-import com.sun.star.beans.XPropertySet;
-import com.sun.star.beans.XPropertySetInfo;
-import com.sun.star.beans.PropertyValue;
-import com.sun.star.beans.UnknownPropertyException;
-import com.sun.star.beans.PropertyVetoException;
-import com.sun.star.text.XTextDocument;
-import com.sun.star.text.XText;
-import com.sun.star.text.XTextCursor;
-import com.sun.star.text.XWordCursor;
-import com.sun.star.text.XTextContent;
-import com.sun.star.text.XTextTable;
-import com.sun.star.text.XTextTableCursor;
-import com.sun.star.table.XTableRows;
-import com.sun.star.table.XCellRange;
-import com.sun.star.table.XCell;
-import com.sun.star.table.XCellCursor;
-import com.sun.star.table.TableBorder;
-import com.sun.star.table.BorderLine;
-import com.sun.star.drawing.XShape;
-import com.sun.star.awt.Size;
-import com.sun.star.awt.Point;
-import com.sun.star.sheet.XSpreadsheetDocument;
-import com.sun.star.sheet.XSpreadsheet;
-import com.sun.star.sheet.XSheetCellCursor;
-import com.sun.star.container.XIndexAccess;
-import com.sun.star.drawing.XDrawPagesSupplier;
-import com.sun.star.drawing.XDrawPageSupplier;
-import com.sun.star.drawing.XDrawPage;
-
-import com.sun.star.text.XTextTablesSupplier;
-import com.sun.star.container.XNameAccess;
-import com.sun.star.container.XNamed;
-import com.sun.star.text.XBookmarksSupplier;
-import com.sun.star.text.XTextRange;
-
-/**
- *
- * @author dschulten
- */
-public class HelloTextTableShape {
-
- private XComponentContext xRemoteContext = null;
- private XMultiComponentFactory xRemoteServiceManager = null;
-
- /** Creates a new instance of HelloTextTableShape */
- public HelloTextTableShape() {
- }
-
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- HelloTextTableShape helloTextTableShape1 = new HelloTextTableShape();
- try {
- helloTextTableShape1.useDocuments();
- }
- catch (java.lang.Exception e){
- System.err.println(e.getMessage());
- e.printStackTrace();
- }
- finally {
- System.exit(0);
- }
-
- }
-
- protected void useDocuments() throws java.lang.Exception {
- useWriter();
- useCalc();
- useDraw();
- }
-
- protected void useWriter() throws java.lang.Exception {
- try {
- // create new writer document and get text, then manipulate text
- XComponent xWriterComponent = newDocComponent("swriter");
- XTextDocument xTextDocument = (XTextDocument)UnoRuntime.queryInterface(
- XTextDocument.class, xWriterComponent);
- XText xText = xTextDocument.getText();
-
- manipulateText(xText);
-
- // get internal service factory of the document
- XMultiServiceFactory xWriterFactory = (XMultiServiceFactory)UnoRuntime.queryInterface(
- XMultiServiceFactory.class, xWriterComponent);
-
- // insert TextTable and get cell text, then manipulate text in cell
- Object table = xWriterFactory.createInstance("com.sun.star.text.TextTable");
- XTextContent xTextContentTable = (XTextContent)UnoRuntime.queryInterface(
- XTextContent.class, table);
-
- xText.insertTextContent(xText.getEnd(), xTextContentTable, false);
-
- XCellRange xCellRange = (XCellRange)UnoRuntime.queryInterface(
- XCellRange.class, table);
- XCell xCell = xCellRange.getCellByPosition(0, 1);
- XText xCellText = (XText)UnoRuntime.queryInterface(XText.class, xCell);
-
- manipulateText(xCellText);
- manipulateTable(xCellRange);
-
- // insert RectangleShape and get shape text, then manipulate text
- Object writerShape = xWriterFactory.createInstance(
- "com.sun.star.drawing.RectangleShape");
- XShape xWriterShape = (XShape)UnoRuntime.queryInterface(
- XShape.class, writerShape);
- xWriterShape.setSize(new Size(10000, 10000));
- XTextContent xTextContentShape = (XTextContent)UnoRuntime.queryInterface(
- XTextContent.class, writerShape);
-
- xText.insertTextContent(xText.getEnd(), xTextContentShape, false);
-
- XPropertySet xShapeProps = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class, writerShape);
- // wrap text inside shape
- xShapeProps.setPropertyValue("TextContourFrame", new Boolean(true));
-
-
- XText xShapeText = (XText)UnoRuntime.queryInterface(XText.class, writerShape);
-
- manipulateText(xShapeText);
- manipulateShape(xWriterShape);
-
-/* more code snippets used in the manual:
-
- Object bookmark = xWriterFactory.createInstance ( "com.sun.star.text.Bookmark" );
- // name the bookmark
- XNamed xNamed = (XNamed) UnoRuntime.queryInterface (
- XNamed.class, bookmark );
- xNamed.setName("MyUniqueBookmarkName");
-
- // get XTextContent interface and insert it at the end of the document
- XTextContent xTextContent = (XTextContent) UnoRuntime.queryInterface (
- XTextContent.class, bookmark );
- //mxDocText.insertTextContent ( mxDocText.getEnd(), xTextContent, false );
- xText.insertTextContent ( xText.getEnd(), xTextContent, false );
-
- //query BookmarksSupplier
- XBookmarksSupplier xBookmarksSupplier = (XBookmarksSupplier)UnoRuntime.queryInterface(
- XBookmarksSupplier.class, xWriterComponent);
- XNameAccess xNamedBookmarks = xBookmarksSupplier.getBookmarks();
- Object foundBookmark = xNamedBookmarks.getByName("MyUniqueBookmarkName");
- XTextContent xFoundBookmark = (XTextContent)UnoRuntime.queryInterface(XTextContent.class, foundBookmark);
- XTextRange xFound = xFoundBookmark.getAnchor();
- xFound.setString(" The throat mike, glued to her neck, "
- + "looked as much as possible like an analgesic dermadisk.");
-
-
-
-
- // first query the XTextTablesSupplier interface from our document
- XTextTablesSupplier xTablesSupplier = (XTextTablesSupplier) UnoRuntime.queryInterface(
- XTextTablesSupplier.class, xWriterComponent);
- // get the tables collection
- XNameAccess xNamedTables = xTablesSupplier.getTextTables();
-
- // now query the XIndexAccess from the tables collection
- XIndexAccess xIndexedTables = (XIndexAccess) UnoRuntime.queryInterface(
- XIndexAccess.class, xNamedTables);
-
- // we need properties
- XPropertySet xTableProps = null;
-
- // get the tables
- for (int i = 0; i < xIndexedTables.getCount(); i++) {
- //Object table = xIndexedTables.getByIndex(i);
- table = xIndexedTables.getByIndex(i);
- xTableProps = (XPropertySet) UnoRuntime.queryInterface(
- XPropertySet.class, table);
- xTableProps.setPropertyValue("BackColor", new Integer(0xC8FFB9));
- }
- */
- }
- catch( com.sun.star.lang.DisposedException e ) { //works from Patch 1
- xRemoteContext = null;
- throw e;
- }
-
- }
-
- protected void useCalc() throws java.lang.Exception {
- try {
- // create new calc document and manipulate cell text
- XComponent xCalcComponent = newDocComponent("scalc");
- XSpreadsheetDocument xSpreadsheetDocument =
- (XSpreadsheetDocument)UnoRuntime.queryInterface(
- XSpreadsheetDocument .class, xCalcComponent);
- Object sheets = xSpreadsheetDocument.getSheets();
- XIndexAccess xIndexedSheets = (XIndexAccess)UnoRuntime.queryInterface(
- XIndexAccess.class, sheets);
- Object sheet = xIndexedSheets.getByIndex(0);
-
- //get cell A2 in first sheet
- XCellRange xSpreadsheetCells = (XCellRange)UnoRuntime.queryInterface(
- XCellRange.class, sheet);
- XCell xCell = xSpreadsheetCells.getCellByPosition(0,1);
- XPropertySet xCellProps = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class, xCell);
- xCellProps.setPropertyValue("IsTextWrapped", new Boolean(true));
-
- XText xCellText = (XText)UnoRuntime.queryInterface(XText.class, xCell);
-
- manipulateText(xCellText);
- manipulateTable(xSpreadsheetCells);
-
- // get internal service factory of the document
- XMultiServiceFactory xCalcFactory = (XMultiServiceFactory)UnoRuntime.queryInterface(
- XMultiServiceFactory.class, xCalcComponent);
- // get Drawpage
- XDrawPageSupplier xDrawPageSupplier = (XDrawPageSupplier)UnoRuntime.queryInterface(XDrawPageSupplier.class, sheet);
- XDrawPage xDrawPage = xDrawPageSupplier.getDrawPage();
-
- // create and insert RectangleShape and get shape text, then manipulate text
- Object calcShape = xCalcFactory.createInstance(
- "com.sun.star.drawing.RectangleShape");
- XShape xCalcShape = (XShape)UnoRuntime.queryInterface(
- XShape.class, calcShape);
- xCalcShape.setSize(new Size(10000, 10000));
- xCalcShape.setPosition(new Point(7000, 3000));
-
- xDrawPage.add(xCalcShape);
-
- XPropertySet xShapeProps = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class, calcShape);
- // wrap text inside shape
- xShapeProps.setPropertyValue("TextContourFrame", new Boolean(true));
-
-
- XText xShapeText = (XText)UnoRuntime.queryInterface(XText.class, calcShape);
-
- manipulateText(xShapeText);
- manipulateShape(xCalcShape);
-
- }
- catch( com.sun.star.lang.DisposedException e ) { //works from Patch 1
- xRemoteContext = null;
- throw e;
- }
-
- }
-
- protected void useDraw() throws java.lang.Exception {
- try {
- //create new draw document and insert ractangle shape
- XComponent xDrawComponent = newDocComponent("sdraw");
- XDrawPagesSupplier xDrawPagesSupplier =
- (XDrawPagesSupplier)UnoRuntime.queryInterface(
- XDrawPagesSupplier.class, xDrawComponent);
-
- Object drawPages = xDrawPagesSupplier.getDrawPages();
- XIndexAccess xIndexedDrawPages = (XIndexAccess)UnoRuntime.queryInterface(
- XIndexAccess.class, drawPages);
- Object drawPage = xIndexedDrawPages.getByIndex(0);
- XDrawPage xDrawPage = (XDrawPage)UnoRuntime.queryInterface(XDrawPage.class, drawPage);
-
- // get internal service factory of the document
- XMultiServiceFactory xDrawFactory =
- (XMultiServiceFactory)UnoRuntime.queryInterface(
- XMultiServiceFactory.class, xDrawComponent);
-
- Object drawShape = xDrawFactory.createInstance(
- "com.sun.star.drawing.RectangleShape");
- XShape xDrawShape = (XShape)UnoRuntime.queryInterface(XShape.class, drawShape);
- xDrawShape.setSize(new Size(10000, 20000));
- xDrawShape.setPosition(new Point(5000, 5000));
- xDrawPage.add(xDrawShape);
-
- XText xShapeText = (XText)UnoRuntime.queryInterface(XText.class, drawShape);
- XPropertySet xShapeProps = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class, drawShape);
-
- // wrap text inside shape
- xShapeProps.setPropertyValue("TextContourFrame", new Boolean(true));
-
- manipulateText(xShapeText);
- manipulateShape(xDrawShape);
- }
- catch( com.sun.star.lang.DisposedException e ) { //works from Patch 1
- xRemoteContext = null;
- throw e;
- }
-
-
- }
-
- protected void manipulateText(XText xText) throws com.sun.star.uno.Exception {
- // simply set whole text as one string
- xText.setString("He lay flat on the brown, pine-needled floor of the forest, "
- + "his chin on his folded arms, and high overhead the wind blew in the tops "
- + "of the pine trees.");
-
- // create text cursor for selecting and formatting
- XTextCursor xTextCursor = xText.createTextCursor();
- XPropertySet xCursorProps = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class, xTextCursor);
-
- // use cursor to select "He lay" and apply bold italic
- xTextCursor.gotoStart(false);
- xTextCursor.goRight((short)6, true);
- // from CharacterProperties
- xCursorProps.setPropertyValue("CharPosture",
- com.sun.star.awt.FontSlant.ITALIC);
- xCursorProps.setPropertyValue("CharWeight",
- new Float(com.sun.star.awt.FontWeight.BOLD));
-
- // add more text at the end of the text using insertString
- xTextCursor.gotoEnd(false);
- xText.insertString(xTextCursor, " The mountainside sloped gently where he lay; "
- + "but below it was steep and he could see the dark of the oiled road "
- + "winding through the pass. There was a stream alongside the road "
- + "and far down the pass he saw a mill beside the stream and the falling water "
- + "of the dam, white in the summer sunlight.", false);
- // after insertString the cursor is behind the inserted text, insert more text
- xText.insertString(xTextCursor, "\n \"Is that the mill?\" he asked.", false);
- }
-
- protected void manipulateTable(XCellRange xCellRange) throws com.sun.star.uno.Exception {
-
- String backColorPropertyName = "";
- XPropertySet xTableProps = null;
-
- // enter column titles and a cell value
- XCell xCell = xCellRange.getCellByPosition(0,0);
- XText xCellText = (XText)UnoRuntime.queryInterface(XText.class, xCell);
- xCellText.setString("Quotation");
- xCell = xCellRange.getCellByPosition(1,0);
- xCellText = (XText)UnoRuntime.queryInterface(XText.class, xCell);
- xCellText.setString("Year");
- xCell = xCellRange.getCellByPosition(1,1);
- xCell.setValue(1940);
- XCellRange xSelectedCells = xCellRange.getCellRangeByName("A1:B1");
- XPropertySet xCellProps = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class, xSelectedCells);
-
- // format table headers and table borders
- // we need to distinguish text and sheet tables:
- // property name for cell colors is different in text and sheet cells
- // we want to apply TableBorder to whole text table, but only to sheet cells with content
- XServiceInfo xServiceInfo = (XServiceInfo)UnoRuntime.queryInterface(
- XServiceInfo.class, xCellRange);
- if (xServiceInfo.supportsService("com.sun.star.sheet.Spreadsheet")) {
- backColorPropertyName = "CellBackColor";
- xSelectedCells = xCellRange.getCellRangeByName("A1:B2");
- xTableProps = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class, xSelectedCells);
- }
- else if (xServiceInfo.supportsService("com.sun.star.text.TextTable")) {
- backColorPropertyName = "BackColor";
- xTableProps = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class, xCellRange);
- }
- // set cell background color
- xCellProps.setPropertyValue(backColorPropertyName, new Integer(0x99CCFF));
-
- // set table borders
- // create description for blue line, width 10
- BorderLine theLine = new BorderLine();
- theLine.Color = 0x000099;
- theLine.OuterLineWidth = 10;
- // apply line description to all border lines and make them valid
- TableBorder bord = new TableBorder();
- bord.VerticalLine = bord.HorizontalLine =
- bord.LeftLine = bord.RightLine =
- bord.TopLine = bord.BottomLine =
- theLine;
- bord.IsVerticalLineValid = bord.IsHorizontalLineValid =
- bord.IsLeftLineValid = bord.IsRightLineValid =
- bord.IsTopLineValid = bord.IsBottomLineValid =
- true;
-
- xTableProps.setPropertyValue("TableBorder", bord);
-
- bord = (TableBorder)xTableProps.getPropertyValue("TableBorder");
- theLine = bord.TopLine;
- int col = theLine.Color;
- System.out.println(col);
- }
-
- protected void manipulateShape(XShape xShape) throws com.sun.star.uno.Exception {
- XPropertySet xShapeProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShape);
- xShapeProps.setPropertyValue("FillColor", new Integer(0x99CCFF));
- xShapeProps.setPropertyValue("LineColor", new Integer(0x000099));
- xShapeProps.setPropertyValue("RotateAngle", new Integer(3000));
-
- xShapeProps.setPropertyValue("TextLeftDistance", new Integer(0));
- xShapeProps.setPropertyValue("TextRightDistance", new Integer(0));
- xShapeProps.setPropertyValue("TextUpperDistance", new Integer(0));
- xShapeProps.setPropertyValue("TextLowerDistance", new Integer(0));
- }
-
-
- protected XComponent newDocComponent(String docType) throws java.lang.Exception {
- String loadUrl = "private:factory/" + docType;
- xRemoteServiceManager = this.getRemoteServiceManager();
- Object desktop = xRemoteServiceManager.createInstanceWithContext(
- "com.sun.star.frame.Desktop", xRemoteContext);
- XComponentLoader xComponentLoader = (XComponentLoader)UnoRuntime.queryInterface(
- XComponentLoader.class, desktop);
- PropertyValue[] loadProps = new PropertyValue[0];
- return xComponentLoader.loadComponentFromURL(loadUrl, "_blank", 0, loadProps);
- }
-
- protected XMultiComponentFactory getRemoteServiceManager() throws java.lang.Exception {
- if (xRemoteContext == null && xRemoteServiceManager == null) {
- try {
- // First step: get the remote office component context
- xRemoteContext = com.sun.star.comp.helper.Bootstrap.bootstrap();
- System.out.println("Connected to a running office ...");
-
- xRemoteServiceManager = xRemoteContext.getServiceManager();
- }
- catch( Exception e) {
- e.printStackTrace();
- System.exit(1);
- }
- }
- return xRemoteServiceManager;
- }
-}