Thank you very much!It's OK! -------------------------------------------------- From: "Ariel Constenla-Haile" <[EMAIL PROTECTED]> Sent: Tuesday, May 20, 2008 12:53 PM To: <dev@api.openoffice.org> Subject: Re: [api-dev] How to set false of MenuBarVaisible via Java?
> Hi Sean, > >> Hi, >> >> I want customize view of openoffice 3.0 beta thought execute Java code. >> The "slot:5920" could hide StatusBar,but the "slot:6661" is invalid. >> Can anybody ask me , what is MenuBarVisible's new slotID in new OpenOffice >> 3.0 Beta? > > slots are from OOo's stone age, you should try to use the UNO commnad URLs: > > ".uno:StatusBarVisible" > ".uno:MenuBarVisible" > > and you may try to use the newer API: XDispatchHelper > > Anyway, (1) ".uno:MenuBarVisible" seems not to work in 2.4.0 (I'm not > sure if this is this a bug, or this command does not work just because > it isn't available in the UI, and so they have remove it), (2) you > should avoid using the dispatch mechanism for this, and use instead the > ayoutManager, see the sample below: it is even *simpler*, and here you > *can* set the menu bar not visible! > > Regards > Ariel. > > //*************************************************************************** > > import com.sun.star.beans.PropertyValue; > import com.sun.star.beans.XPropertySet; > import com.sun.star.uno.XComponentContext; > import com.sun.star.comp.helper.Bootstrap; > import com.sun.star.frame.XComponentLoader; > import com.sun.star.frame.XDispatchHelper; > import com.sun.star.frame.XDispatchProvider; > import com.sun.star.frame.XFrame; > import com.sun.star.frame.XLayoutManager; > import com.sun.star.frame.XModel; > import com.sun.star.lang.XComponent; > import com.sun.star.uno.UnoRuntime; > > /** > * > * @author ariel > */ > public class UIElementsDemo { > > private XComponentContext m_xContext; > > /** Creates a new instance of DispatchDemo */ > public UIElementsDemo(XComponentContext xContext) { > m_xContext = xContext; > } > > > protected void runDispatchDemo() { > try { > XModel xModel = (XModel) UnoRuntime.queryInterface( > XModel.class, createNewDoc(m_xContext, "swriter") ); > > XFrame xFrame = xModel.getCurrentController().getFrame(); > > PropertyValue[] aDispatchArgs = new PropertyValue[1]; > aDispatchArgs[0] = new PropertyValue(); > aDispatchArgs[0].Name = "StatusBarVisible"; > aDispatchArgs[0].Value = Boolean.FALSE; > > executeDispatch(m_xContext, xFrame, ".uno:StatusBarVisible", > "", 0, aDispatchArgs); > > aDispatchArgs[0].Name = "MenuBarVisible"; > > executeDispatch(m_xContext, xFrame, ".uno:MenuBarVisible", > "", 0, aDispatchArgs); > > } catch (Exception e) { > e.printStackTrace(); > } > } > > > protected void runLayoutManagerDemo() { > String sStatusBar = "private:resource/statusbar/statusbar"; > String sMenuBar = "private:resource/menubar/menubar"; > try { > XComponent xComponent = createNewDoc(m_xContext, "swriter"); > > XLayoutManager xLayoutManager = getLayoutManager(xComponent); > > toggleUIElement(xLayoutManager, sStatusBar); > > toggleUIElement(xLayoutManager, sMenuBar); > > } catch (Exception e) { > e.printStackTrace(); > } > } > > > public static XLayoutManager getLayoutManager(XComponent xComponent) { > XLayoutManager xLayoutManager = null; > try { > XModel xModel = (XModel) UnoRuntime.queryInterface( > XModel.class, xComponent); > XFrame xFrame = xModel.getCurrentController().getFrame(); > > XPropertySet xPropertySet = (XPropertySet) > UnoRuntime.queryInterface( > XPropertySet.class, xFrame); > xLayoutManager = (XLayoutManager) UnoRuntime.queryInterface( > XLayoutManager.class, > xPropertySet.getPropertyValue("LayoutManager")); > } catch (Exception e) { > e.printStackTrace(); > } finally { > return xLayoutManager; > } > } > > private void toggleUIElement(XLayoutManager xLayoutManager, String > sUIElement) { > if (xLayoutManager.isElementVisible(sUIElement)) { > xLayoutManager.hideElement(sUIElement); > } else { > xLayoutManager.showElement(sUIElement); > } > } > > public XComponent createNewDoc(XComponentContext xContext, String > sDocType) throws Exception { > XComponentLoader xComponentLoader = (XComponentLoader) > UnoRuntime.queryInterface(XComponentLoader.class, > m_xContext.getServiceManager().createInstanceWithContext( > "com.sun.star.frame.Desktop", m_xContext)); > > return (XComponent) UnoRuntime.queryInterface( > XComponent.class, xComponentLoader.loadComponentFromURL( > "private:factory/" + sDocType, "_default", 0, new > PropertyValue[]{})); > } > > public static XDispatchHelper getDispatchHelper(XComponentContext > xContext) { > XDispatchHelper xDispatchHelper = null; > try { > xDispatchHelper = (XDispatchHelper) UnoRuntime.queryInterface( > XDispatchHelper.class, > xContext.getServiceManager().createInstanceWithContext( > "com.sun.star.frame.DispatchHelper", xContext)); > } catch (com.sun.star.uno.Exception ex) { > ex.printStackTrace(); > } > return xDispatchHelper; > } > > public static void executeDispatch( > XComponentContext xContext, > XFrame xFrame, > String aDispatchURL, > String aTargetFrameName, > int iSearchFlags, > PropertyValue[] someArgs) { > > XDispatchHelper xDispatchHelper = getDispatchHelper(xContext); > XDispatchProvider xDispatchProvider = (XDispatchProvider) > UnoRuntime.queryInterface(XDispatchProvider.class, xFrame); > xDispatchHelper.executeDispatch( > xDispatchProvider, aDispatchURL, aTargetFrameName, > iSearchFlags, someArgs); > } > > > > > > /** > * @param args the command line arguments > */ > public static void main(String[] args) { > try { > // get the remote office component context > XComponentContext xContext = Bootstrap.bootstrap(); > > UIElementsDemo demo = new UIElementsDemo(xContext); > > demo.runDispatchDemo(); > > demo.runLayoutManagerDemo(); > > > } catch (java.lang.Exception e) { > e.printStackTrace(); > } finally { > System.exit(0); > } > } > > } > > //*********************************************************************** > > -- > Ariel Constenla-Haile > La Plata, Argentina > > [EMAIL PROTECTED] > [EMAIL PROTECTED] > > http://www.ArielConstenlaHaile.com.ar/ooo/ > > > > "Aus der Kriegsschule des Lebens > - Was mich nicht umbringt, > macht mich härter." > Nietzsche Götzendämmerung, Sprüche und Pfeile, 8. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED]