1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // __________ Imports __________ 25 26 import com.sun.star.uno.UnoRuntime; 27 import com.sun.star.lang.XComponent; 28 29 import com.sun.star.awt.Point; 30 import com.sun.star.awt.Size; 31 32 import com.sun.star.beans.PropertyValue; 33 import com.sun.star.beans.XPropertySet; 34 import com.sun.star.beans.XPropertySetInfo; 35 36 import com.sun.star.container.XNameAccess; 37 38 import com.sun.star.drawing.XShape; 39 import com.sun.star.drawing.XShapes; 40 import com.sun.star.drawing.XDrawPage; 41 import com.sun.star.drawing.XDrawPages; 42 import com.sun.star.drawing.XDrawPagesSupplier; 43 44 import com.sun.star.frame.XModel; 45 46 47 48 // __________ Implementation __________ 49 50 /** StyleDemo 51 @author Sven Jacobi 52 */ 53 54 public class StyleDemo 55 { main( String args[] )56 public static void main( String args[] ) 57 { 58 XComponent xComponent = null; 59 try 60 { 61 // get the remote office context of a running office (a new office 62 // instance is started if necessary) 63 com.sun.star.uno.XComponentContext xOfficeContext = Helper.connect(); 64 65 // suppress Presentation Autopilot when opening the document 66 // properties are the same as described for 67 // com.sun.star.document.MediaDescriptor 68 PropertyValue[] pPropValues = new PropertyValue[ 1 ]; 69 pPropValues[ 0 ] = new PropertyValue(); 70 pPropValues[ 0 ].Name = "Silent"; 71 pPropValues[ 0 ].Value = new Boolean( true ); 72 73 xComponent = Helper.createDocument( xOfficeContext, 74 "private:factory/simpress", "_blank", 0, pPropValues ); 75 76 77 78 79 /* The first part of this demo will set each "CharColor" Property 80 that is available within the styles of the document to red. It 81 will also print each family and style name to the standard output */ 82 XModel xModel = 83 (XModel)UnoRuntime.queryInterface( 84 XModel.class, xComponent ); 85 com.sun.star.style.XStyleFamiliesSupplier xSFS = 86 (com.sun.star.style.XStyleFamiliesSupplier) 87 UnoRuntime.queryInterface( 88 com.sun.star.style.XStyleFamiliesSupplier.class, xModel ); 89 90 com.sun.star.container.XNameAccess xFamilies = xSFS.getStyleFamilies(); 91 92 // the element should now contain at least two Styles. The first is 93 // "graphics" and the other one is the name of the Master page 94 String[] Families = xFamilies.getElementNames(); 95 for ( int i = 0; i < Families.length; i++ ) 96 { 97 // this is the family 98 System.out.println( "\n" + Families[ i ] ); 99 100 // and now all available styles 101 Object aFamilyObj = xFamilies.getByName( Families[ i ] ); 102 com.sun.star.container.XNameAccess xStyles = 103 (com.sun.star.container.XNameAccess) 104 UnoRuntime.queryInterface( 105 com.sun.star.container.XNameAccess.class, aFamilyObj ); 106 String[] Styles = xStyles.getElementNames(); 107 for( int j = 0; j < Styles.length; j++ ) 108 { 109 System.out.println( " " + Styles[ j ] ); 110 Object aStyleObj = xStyles.getByName( Styles[ j ] ); 111 com.sun.star.style.XStyle xStyle = (com.sun.star.style.XStyle) 112 UnoRuntime.queryInterface( 113 com.sun.star.style.XStyle.class, aStyleObj ); 114 // now we have the XStyle Interface and the CharColor for 115 // all styles is exemplary be set to red. 116 XPropertySet xStylePropSet = (XPropertySet) 117 UnoRuntime.queryInterface( XPropertySet.class, xStyle ); 118 XPropertySetInfo xStylePropSetInfo = 119 xStylePropSet.getPropertySetInfo(); 120 if ( xStylePropSetInfo.hasPropertyByName( "CharColor" ) ) 121 { 122 xStylePropSet.setPropertyValue( "CharColor", 123 new Integer( 0xff0000 ) ); 124 } 125 } 126 } 127 128 129 130 /* now create a rectangle and apply the "title1" style of 131 the "graphics" family */ 132 133 Object obj = xFamilies.getByName( "graphics" ); 134 com.sun.star.container.XNameAccess xStyles = (XNameAccess) 135 UnoRuntime.queryInterface(com.sun.star.container.XNameAccess.class, 136 obj ); 137 obj = xStyles.getByName( "title1" ); 138 com.sun.star.style.XStyle xTitle1Style = (com.sun.star.style.XStyle) 139 UnoRuntime.queryInterface( com.sun.star.style.XStyle.class, obj ); 140 141 XDrawPagesSupplier xDrawPagesSupplier = 142 (XDrawPagesSupplier)UnoRuntime.queryInterface( 143 XDrawPagesSupplier.class, xComponent ); 144 XDrawPages xDrawPages = xDrawPagesSupplier.getDrawPages(); 145 XDrawPage xDrawPage = (XDrawPage)UnoRuntime.queryInterface( 146 XDrawPage.class, xDrawPages.getByIndex( 0 )); 147 XShapes xShapes = (XShapes)UnoRuntime.queryInterface(XShapes.class, 148 xDrawPage ); 149 XShape xShape = ShapeHelper.createShape( xComponent, new Point( 0, 0 ), 150 new Size( 5000, 5000 ), "com.sun.star.drawing.RectangleShape" ); 151 xShapes.add( xShape ); 152 XPropertySet xPropSet = (XPropertySet) 153 UnoRuntime.queryInterface( XPropertySet.class, xShape ); 154 xPropSet.setPropertyValue( "Style", xTitle1Style ); 155 156 } 157 catch( Exception ex ) 158 { 159 System.out.println( ex ); 160 } 161 System.exit( 0 ); 162 } 163 } 164