1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski package ifc.ui; 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyValue; 26*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertySet; 27*b1cdbd2cSJim Jagielski import com.sun.star.container.XIndexAccess; 28*b1cdbd2cSJim Jagielski import com.sun.star.container.XIndexContainer; 29*b1cdbd2cSJim Jagielski import com.sun.star.lang.XMultiServiceFactory; 30*b1cdbd2cSJim Jagielski import com.sun.star.lang.XServiceInfo; 31*b1cdbd2cSJim Jagielski import com.sun.star.lang.XSingleComponentFactory; 32*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime; 33*b1cdbd2cSJim Jagielski import com.sun.star.uno.XComponentContext; 34*b1cdbd2cSJim Jagielski import com.sun.star.ui.UIElementType; 35*b1cdbd2cSJim Jagielski import com.sun.star.ui.XImageManager; 36*b1cdbd2cSJim Jagielski import com.sun.star.ui.XUIConfigurationManager; 37*b1cdbd2cSJim Jagielski import java.io.PrintWriter; 38*b1cdbd2cSJim Jagielski import lib.MultiMethodTest; 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski public class _XUIConfigurationManager extends MultiMethodTest { 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski public XUIConfigurationManager oObj; 43*b1cdbd2cSJim Jagielski private String msResourceUrl = "private:resource/menubar/menubar"; 44*b1cdbd2cSJim Jagielski private String msMyResourceUrl = "private:resource/menubar/mymenubar"; 45*b1cdbd2cSJim Jagielski private XIndexContainer mxSettings = null; 46*b1cdbd2cSJim Jagielski private XIndexAccess mxMenuBarSettings = null; 47*b1cdbd2cSJim Jagielski private XMultiServiceFactory mxMSF = null; 48*b1cdbd2cSJim Jagielski private String sShortCutManagerServiceName = null; 49*b1cdbd2cSJim Jagielski 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski /** 52*b1cdbd2cSJim Jagielski * Some stuff before the tests: 53*b1cdbd2cSJim Jagielski * extract the multi service factory. 54*b1cdbd2cSJim Jagielski */ before()55*b1cdbd2cSJim Jagielski protected void before() { 56*b1cdbd2cSJim Jagielski mxMSF = (XMultiServiceFactory)tParam.getMSF(); 57*b1cdbd2cSJim Jagielski sShortCutManagerServiceName = (String)tEnv.getObjRelation("XConfigurationManager.ShortCutManager"); 58*b1cdbd2cSJim Jagielski 59*b1cdbd2cSJim Jagielski } 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski /** 62*b1cdbd2cSJim Jagielski * reset all changes: do at the end. 63*b1cdbd2cSJim Jagielski */ _reset()64*b1cdbd2cSJim Jagielski public void _reset() { 65*b1cdbd2cSJim Jagielski requiredMethod("removeSettings()"); 66*b1cdbd2cSJim Jagielski oObj.reset(); 67*b1cdbd2cSJim Jagielski tRes.tested("reset()", true); 68*b1cdbd2cSJim Jagielski } 69*b1cdbd2cSJim Jagielski _getUIElementsInfo()70*b1cdbd2cSJim Jagielski public void _getUIElementsInfo() { 71*b1cdbd2cSJim Jagielski boolean result = true; 72*b1cdbd2cSJim Jagielski try { 73*b1cdbd2cSJim Jagielski PropertyValue[][]props = oObj.getUIElementsInfo(UIElementType.UNKNOWN); 74*b1cdbd2cSJim Jagielski for (int i=0; i<props.length; i++) 75*b1cdbd2cSJim Jagielski for(int j=0; j<props[i].length; j++) 76*b1cdbd2cSJim Jagielski log.println("Prop["+i+"]["+j+"]: " + props[i][j].Name + " " + props[i][j].Value.toString()); 77*b1cdbd2cSJim Jagielski } 78*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalArgumentException e) { 79*b1cdbd2cSJim Jagielski result = false; 80*b1cdbd2cSJim Jagielski e.printStackTrace(log); 81*b1cdbd2cSJim Jagielski } 82*b1cdbd2cSJim Jagielski tRes.tested("getUIElementsInfo()", result); 83*b1cdbd2cSJim Jagielski } 84*b1cdbd2cSJim Jagielski _createSettings()85*b1cdbd2cSJim Jagielski public void _createSettings() { 86*b1cdbd2cSJim Jagielski mxSettings = oObj.createSettings(); 87*b1cdbd2cSJim Jagielski util.dbg.printInterfaces(mxSettings); 88*b1cdbd2cSJim Jagielski tRes.tested("createSettings()", mxSettings != null); 89*b1cdbd2cSJim Jagielski } 90*b1cdbd2cSJim Jagielski _hasSettings()91*b1cdbd2cSJim Jagielski public void _hasSettings() { 92*b1cdbd2cSJim Jagielski boolean result = false; 93*b1cdbd2cSJim Jagielski try { 94*b1cdbd2cSJim Jagielski result = oObj.hasSettings(msResourceUrl); 95*b1cdbd2cSJim Jagielski } 96*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalArgumentException e) { 97*b1cdbd2cSJim Jagielski log.println(e); 98*b1cdbd2cSJim Jagielski result = false; 99*b1cdbd2cSJim Jagielski } 100*b1cdbd2cSJim Jagielski tRes.tested("hasSettings()", result); 101*b1cdbd2cSJim Jagielski } 102*b1cdbd2cSJim Jagielski _getSettings()103*b1cdbd2cSJim Jagielski public void _getSettings() { 104*b1cdbd2cSJim Jagielski requiredMethod("hasSettings()"); 105*b1cdbd2cSJim Jagielski boolean result = true; 106*b1cdbd2cSJim Jagielski try { 107*b1cdbd2cSJim Jagielski mxMenuBarSettings = oObj.getSettings(msResourceUrl, true); 108*b1cdbd2cSJim Jagielski result = mxMenuBarSettings != null; 109*b1cdbd2cSJim Jagielski for (int i=0; i<mxMenuBarSettings.getCount(); i++) { 110*b1cdbd2cSJim Jagielski Object[] o = (Object[])mxMenuBarSettings.getByIndex(i); 111*b1cdbd2cSJim Jagielski log.println("+++++++++ i = " + i); 112*b1cdbd2cSJim Jagielski for (int j=0; j<o.length; j++) { 113*b1cdbd2cSJim Jagielski PropertyValue prop = (PropertyValue)o[j]; 114*b1cdbd2cSJim Jagielski log.println("Property" + j + ": " + prop.Name + " " + prop.Value.toString()); 115*b1cdbd2cSJim Jagielski } 116*b1cdbd2cSJim Jagielski } 117*b1cdbd2cSJim Jagielski } 118*b1cdbd2cSJim Jagielski catch(com.sun.star.container.NoSuchElementException e) { 119*b1cdbd2cSJim Jagielski result = false; 120*b1cdbd2cSJim Jagielski e.printStackTrace(log); 121*b1cdbd2cSJim Jagielski } 122*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalArgumentException e) { 123*b1cdbd2cSJim Jagielski result = false; 124*b1cdbd2cSJim Jagielski e.printStackTrace(log); 125*b1cdbd2cSJim Jagielski } 126*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IndexOutOfBoundsException e) { 127*b1cdbd2cSJim Jagielski result = false; 128*b1cdbd2cSJim Jagielski e.printStackTrace(log); 129*b1cdbd2cSJim Jagielski } 130*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.WrappedTargetException e) { 131*b1cdbd2cSJim Jagielski result = false; 132*b1cdbd2cSJim Jagielski e.printStackTrace(log); 133*b1cdbd2cSJim Jagielski } 134*b1cdbd2cSJim Jagielski tRes.tested("getSettings()", result); 135*b1cdbd2cSJim Jagielski } 136*b1cdbd2cSJim Jagielski _replaceSettings()137*b1cdbd2cSJim Jagielski public void _replaceSettings() { 138*b1cdbd2cSJim Jagielski requiredMethod("getSettings()"); 139*b1cdbd2cSJim Jagielski boolean result = true; 140*b1cdbd2cSJim Jagielski PropertyValue[] prop = createMenuBarEntry("My Entry", mxMenuBarSettings, mxMSF, log); 141*b1cdbd2cSJim Jagielski if (prop == null) { 142*b1cdbd2cSJim Jagielski tRes.tested("replaceSettings()", false); 143*b1cdbd2cSJim Jagielski return; 144*b1cdbd2cSJim Jagielski } 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski createMenuBarItem("Click for Macro", (XIndexContainer)UnoRuntime.queryInterface( 147*b1cdbd2cSJim Jagielski XIndexContainer.class, prop[3].Value), log); 148*b1cdbd2cSJim Jagielski 149*b1cdbd2cSJim Jagielski XIndexContainer x = (XIndexContainer)UnoRuntime.queryInterface(XIndexContainer.class, mxMenuBarSettings); 150*b1cdbd2cSJim Jagielski try { 151*b1cdbd2cSJim Jagielski x.insertByIndex(x.getCount(), prop); 152*b1cdbd2cSJim Jagielski } 153*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalArgumentException e) { 154*b1cdbd2cSJim Jagielski result = false; 155*b1cdbd2cSJim Jagielski e.printStackTrace(log); 156*b1cdbd2cSJim Jagielski } 157*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IndexOutOfBoundsException e) { 158*b1cdbd2cSJim Jagielski result = false; 159*b1cdbd2cSJim Jagielski e.printStackTrace(log); 160*b1cdbd2cSJim Jagielski } 161*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.WrappedTargetException e) { 162*b1cdbd2cSJim Jagielski result = false; 163*b1cdbd2cSJim Jagielski e.printStackTrace(log); 164*b1cdbd2cSJim Jagielski } 165*b1cdbd2cSJim Jagielski 166*b1cdbd2cSJim Jagielski try { 167*b1cdbd2cSJim Jagielski oObj.replaceSettings(msResourceUrl, mxMenuBarSettings); 168*b1cdbd2cSJim Jagielski } 169*b1cdbd2cSJim Jagielski catch(com.sun.star.container.NoSuchElementException e) { 170*b1cdbd2cSJim Jagielski result = false; 171*b1cdbd2cSJim Jagielski e.printStackTrace(log); 172*b1cdbd2cSJim Jagielski } 173*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalArgumentException e) { 174*b1cdbd2cSJim Jagielski result = false; 175*b1cdbd2cSJim Jagielski e.printStackTrace(log); 176*b1cdbd2cSJim Jagielski } 177*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalAccessException e) { 178*b1cdbd2cSJim Jagielski result = false; 179*b1cdbd2cSJim Jagielski e.printStackTrace(log); 180*b1cdbd2cSJim Jagielski } 181*b1cdbd2cSJim Jagielski _getSettings(); 182*b1cdbd2cSJim Jagielski tRes.tested("replaceSettings()", result); 183*b1cdbd2cSJim Jagielski } 184*b1cdbd2cSJim Jagielski _removeSettings()185*b1cdbd2cSJim Jagielski public void _removeSettings() { 186*b1cdbd2cSJim Jagielski requiredMethod("insertSettings()"); 187*b1cdbd2cSJim Jagielski boolean result = true; 188*b1cdbd2cSJim Jagielski try { 189*b1cdbd2cSJim Jagielski oObj.removeSettings(msMyResourceUrl); 190*b1cdbd2cSJim Jagielski } 191*b1cdbd2cSJim Jagielski catch(com.sun.star.container.NoSuchElementException e) { 192*b1cdbd2cSJim Jagielski result = false; 193*b1cdbd2cSJim Jagielski e.printStackTrace(log); 194*b1cdbd2cSJim Jagielski } 195*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalArgumentException e) { 196*b1cdbd2cSJim Jagielski result = false; 197*b1cdbd2cSJim Jagielski e.printStackTrace(log); 198*b1cdbd2cSJim Jagielski } 199*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalAccessException e) { 200*b1cdbd2cSJim Jagielski e.printStackTrace(log); 201*b1cdbd2cSJim Jagielski result = false; 202*b1cdbd2cSJim Jagielski } 203*b1cdbd2cSJim Jagielski tRes.tested("removeSettings()", result); 204*b1cdbd2cSJim Jagielski } 205*b1cdbd2cSJim Jagielski _insertSettings()206*b1cdbd2cSJim Jagielski public void _insertSettings() { 207*b1cdbd2cSJim Jagielski requiredMethod("createSettings()"); 208*b1cdbd2cSJim Jagielski requiredMethod("replaceSettings()"); 209*b1cdbd2cSJim Jagielski boolean result = true; 210*b1cdbd2cSJim Jagielski util.dbg.printInterfaces(mxSettings); 211*b1cdbd2cSJim Jagielski PropertyValue[] prop = createMenuBarEntry("A new entry", mxSettings, mxMSF, log); 212*b1cdbd2cSJim Jagielski if (prop == null) { 213*b1cdbd2cSJim Jagielski tRes.tested("replaceSettings()", false); 214*b1cdbd2cSJim Jagielski return; 215*b1cdbd2cSJim Jagielski } 216*b1cdbd2cSJim Jagielski 217*b1cdbd2cSJim Jagielski createMenuBarItem("A new sub entry", (XIndexContainer)UnoRuntime.queryInterface( 218*b1cdbd2cSJim Jagielski XIndexContainer.class, prop[3].Value), log); 219*b1cdbd2cSJim Jagielski 220*b1cdbd2cSJim Jagielski XIndexContainer x = (XIndexContainer)UnoRuntime.queryInterface(XIndexContainer.class,mxSettings); 221*b1cdbd2cSJim Jagielski try { 222*b1cdbd2cSJim Jagielski int count = x.getCount(); 223*b1cdbd2cSJim Jagielski x.insertByIndex(count, prop); 224*b1cdbd2cSJim Jagielski } 225*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalArgumentException e) { 226*b1cdbd2cSJim Jagielski result = false; 227*b1cdbd2cSJim Jagielski e.printStackTrace(log); 228*b1cdbd2cSJim Jagielski } 229*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IndexOutOfBoundsException e) { 230*b1cdbd2cSJim Jagielski result = false; 231*b1cdbd2cSJim Jagielski e.printStackTrace(log); 232*b1cdbd2cSJim Jagielski } 233*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.WrappedTargetException e) { 234*b1cdbd2cSJim Jagielski result = false; 235*b1cdbd2cSJim Jagielski e.printStackTrace(log); 236*b1cdbd2cSJim Jagielski } 237*b1cdbd2cSJim Jagielski 238*b1cdbd2cSJim Jagielski try { 239*b1cdbd2cSJim Jagielski oObj.insertSettings(msMyResourceUrl, mxSettings); 240*b1cdbd2cSJim Jagielski } 241*b1cdbd2cSJim Jagielski catch(com.sun.star.container.ElementExistException e) { 242*b1cdbd2cSJim Jagielski e.printStackTrace(log); 243*b1cdbd2cSJim Jagielski result = false; 244*b1cdbd2cSJim Jagielski } 245*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalArgumentException e) { 246*b1cdbd2cSJim Jagielski e.printStackTrace(log); 247*b1cdbd2cSJim Jagielski result = false; 248*b1cdbd2cSJim Jagielski } 249*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalAccessException e) { 250*b1cdbd2cSJim Jagielski e.printStackTrace(log); 251*b1cdbd2cSJim Jagielski result = false; 252*b1cdbd2cSJim Jagielski } 253*b1cdbd2cSJim Jagielski tRes.tested("insertSettings()", result); 254*b1cdbd2cSJim Jagielski } 255*b1cdbd2cSJim Jagielski 256*b1cdbd2cSJim Jagielski /** 257*b1cdbd2cSJim Jagielski * Only a short test. 258*b1cdbd2cSJim Jagielski * See complex.imageManager.CheckImageManager for a more extensive test of 259*b1cdbd2cSJim Jagielski * this implementation. 260*b1cdbd2cSJim Jagielski */ _getImageManager()261*b1cdbd2cSJim Jagielski public void _getImageManager() { 262*b1cdbd2cSJim Jagielski Object o = oObj.getImageManager(); 263*b1cdbd2cSJim Jagielski log.println("###### ImageManager "); 264*b1cdbd2cSJim Jagielski XImageManager xImageManager = (XImageManager)UnoRuntime.queryInterface(XImageManager.class, o); 265*b1cdbd2cSJim Jagielski tRes.tested("getImageManager()", xImageManager != null); 266*b1cdbd2cSJim Jagielski } 267*b1cdbd2cSJim Jagielski 268*b1cdbd2cSJim Jagielski 269*b1cdbd2cSJim Jagielski /** 270*b1cdbd2cSJim Jagielski * get a shortcut manager 271*b1cdbd2cSJim Jagielski */ _getShortCutManager()272*b1cdbd2cSJim Jagielski public void _getShortCutManager() { 273*b1cdbd2cSJim Jagielski Object o = oObj.getShortCutManager(); 274*b1cdbd2cSJim Jagielski XServiceInfo xSI = (XServiceInfo)UnoRuntime.queryInterface(XServiceInfo.class,o); 275*b1cdbd2cSJim Jagielski String[] serviceNames = xSI.getSupportedServiceNames(); 276*b1cdbd2cSJim Jagielski boolean bSupportedServiceFound = false; 277*b1cdbd2cSJim Jagielski for (int i=0; i<serviceNames.length; i++) { 278*b1cdbd2cSJim Jagielski log.println("SuppService: " + serviceNames[i]); 279*b1cdbd2cSJim Jagielski if (serviceNames[i].equals(sShortCutManagerServiceName)) { 280*b1cdbd2cSJim Jagielski bSupportedServiceFound = true; 281*b1cdbd2cSJim Jagielski } 282*b1cdbd2cSJim Jagielski } 283*b1cdbd2cSJim Jagielski tRes.tested("getShortCutManager()", bSupportedServiceFound); 284*b1cdbd2cSJim Jagielski } 285*b1cdbd2cSJim Jagielski _getEventsManager()286*b1cdbd2cSJim Jagielski public void _getEventsManager() { 287*b1cdbd2cSJim Jagielski Object o = oObj.getEventsManager(); 288*b1cdbd2cSJim Jagielski tRes.tested("getEventsManager()", o == null); 289*b1cdbd2cSJim Jagielski } 290*b1cdbd2cSJim Jagielski 291*b1cdbd2cSJim Jagielski /** 292*b1cdbd2cSJim Jagielski * Create a menu bar entry for adding to the menu bar of the Office. 293*b1cdbd2cSJim Jagielski * @param sLabelName The name of the new entry. 294*b1cdbd2cSJim Jagielski * @param xMenuBarSettings The existing menu bar settings, used for creating the new entry. 295*b1cdbd2cSJim Jagielski * @return An array of properties of the new entry. 296*b1cdbd2cSJim Jagielski */ createMenuBarEntry(String sLabelName, XIndexAccess xMenuBarSettings, XMultiServiceFactory xMSF, PrintWriter log)297*b1cdbd2cSJim Jagielski public static PropertyValue[] createMenuBarEntry(String sLabelName, XIndexAccess xMenuBarSettings, XMultiServiceFactory xMSF, PrintWriter log) { 298*b1cdbd2cSJim Jagielski PropertyValue[] prop = new PropertyValue[4]; 299*b1cdbd2cSJim Jagielski prop[0] = new PropertyValue(); 300*b1cdbd2cSJim Jagielski prop[0].Name = "CommandURL"; 301*b1cdbd2cSJim Jagielski prop[0].Value = "vnd.openoffice.org:MyMenu"; 302*b1cdbd2cSJim Jagielski prop[1] = new PropertyValue(); 303*b1cdbd2cSJim Jagielski prop[1].Name = "Label"; 304*b1cdbd2cSJim Jagielski prop[1].Value = sLabelName; 305*b1cdbd2cSJim Jagielski prop[2] = new PropertyValue(); 306*b1cdbd2cSJim Jagielski prop[2].Name = "Type"; 307*b1cdbd2cSJim Jagielski prop[2].Value = new Short((short)0); 308*b1cdbd2cSJim Jagielski prop[3] = new PropertyValue(); 309*b1cdbd2cSJim Jagielski prop[3].Name = "ItemDescriptorContainer"; 310*b1cdbd2cSJim Jagielski 311*b1cdbd2cSJim Jagielski XSingleComponentFactory xFactory = (XSingleComponentFactory)UnoRuntime.queryInterface( 312*b1cdbd2cSJim Jagielski XSingleComponentFactory.class, xMenuBarSettings); 313*b1cdbd2cSJim Jagielski try { 314*b1cdbd2cSJim Jagielski XPropertySet xProp = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xMSF); 315*b1cdbd2cSJim Jagielski XComponentContext xContext = (XComponentContext)UnoRuntime.queryInterface( 316*b1cdbd2cSJim Jagielski XComponentContext.class, xProp.getPropertyValue("DefaultContext")); 317*b1cdbd2cSJim Jagielski prop[3].Value = xFactory.createInstanceWithContext(xContext); 318*b1cdbd2cSJim Jagielski } 319*b1cdbd2cSJim Jagielski catch(com.sun.star.uno.Exception e) { 320*b1cdbd2cSJim Jagielski log.println("Could not create an instance for ItemDescriptorContainer property."); 321*b1cdbd2cSJim Jagielski e.printStackTrace(log); 322*b1cdbd2cSJim Jagielski return null; 323*b1cdbd2cSJim Jagielski } 324*b1cdbd2cSJim Jagielski return prop; 325*b1cdbd2cSJim Jagielski } 326*b1cdbd2cSJim Jagielski 327*b1cdbd2cSJim Jagielski /** 328*b1cdbd2cSJim Jagielski * Create a sub entry to the menu bar. 329*b1cdbd2cSJim Jagielski * @param sLabelName The name of the entry in the UI. 330*b1cdbd2cSJim Jagielski * @param xDescriptionContainer The parent entry in the menu bar where 331*b1cdbd2cSJim Jagielski * this entry is added. 332*b1cdbd2cSJim Jagielski */ createMenuBarItem(String sLabelName, XIndexContainer xDescriptionContainer, PrintWriter log)333*b1cdbd2cSJim Jagielski public static void createMenuBarItem(String sLabelName, XIndexContainer xDescriptionContainer, PrintWriter log) { 334*b1cdbd2cSJim Jagielski PropertyValue[]aMenuItem = new PropertyValue[3]; 335*b1cdbd2cSJim Jagielski // create a menu item 336*b1cdbd2cSJim Jagielski aMenuItem[0] = new PropertyValue(); 337*b1cdbd2cSJim Jagielski aMenuItem[0].Name = "CommandURL"; 338*b1cdbd2cSJim Jagielski aMenuItem[0].Value = "macro:///Standard.Module1.Test()"; 339*b1cdbd2cSJim Jagielski aMenuItem[1] = new PropertyValue(); 340*b1cdbd2cSJim Jagielski aMenuItem[1].Name = "Label"; 341*b1cdbd2cSJim Jagielski aMenuItem[1].Value = sLabelName; 342*b1cdbd2cSJim Jagielski aMenuItem[2] = new PropertyValue(); 343*b1cdbd2cSJim Jagielski aMenuItem[2].Name = "Type"; 344*b1cdbd2cSJim Jagielski aMenuItem[2].Value = new Short((short)0); 345*b1cdbd2cSJim Jagielski 346*b1cdbd2cSJim Jagielski try { 347*b1cdbd2cSJim Jagielski xDescriptionContainer.insertByIndex(0, aMenuItem); 348*b1cdbd2cSJim Jagielski } 349*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IllegalArgumentException e) { 350*b1cdbd2cSJim Jagielski e.printStackTrace(log); 351*b1cdbd2cSJim Jagielski } 352*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.IndexOutOfBoundsException e) { 353*b1cdbd2cSJim Jagielski e.printStackTrace(log); 354*b1cdbd2cSJim Jagielski } 355*b1cdbd2cSJim Jagielski catch(com.sun.star.lang.WrappedTargetException e) { 356*b1cdbd2cSJim Jagielski e.printStackTrace(log); 357*b1cdbd2cSJim Jagielski } 358*b1cdbd2cSJim Jagielski } 359*b1cdbd2cSJim Jagielski } 360