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] 

Reply via email to