thanks for the details. What you said about adding a model to the media descriptor seems very interesting. However it does not seem to be documented. I tried something quickly along these lines:
XModel model = ( XModel ) UnoRuntime.queryInterface( XModel.class, connection.getTextDocument()); PropertyValue prop1 = new PropertyValue(); prop1.Name = "Model"; prop1.Value = model; loadedComponent = frameComponentLoader.loadComponentFromURL( "private:stream", "_self", 0, args ); and I get om.sun.star.lang.IllegalArgumentException: URL seems to be an unsupported one. --- Mathias Bauer <[EMAIL PROTECTED]> wrote: > Kent Gibson wrote: > > > argh. please help. this is driving me batty. > > > > Ok i have an empty frame, > > > > XWindow xWindow = ( XWindow ) > > UnoRuntime.queryInterface( XWindow.class, > > officeWindow.getUNOWindowPeer() ); > > object = serviceFactory.createInstance( > > "com.sun.star.frame.Frame" ); > > XFrame documentFrame = ( XFrame ) > > UnoRuntime.queryInterface( XFrame.class, object ); > > documentFrame.initialize( xWindow ); > > documentFrame.setName( documentFrame.toString() ); > > > > // Register frame at the desktop > > XFrames xFrames = ( ( XFramesSupplier ) > > UnoRuntime.queryInterface( XFramesSupplier.class, > > desktop ) ).getFrames(); > > xFrames.append( documentFrame ); > > > > then I go and create a blank document and put it > into > > my frame: > > > > XComponentLoader frameComponentLoader = ( > > XComponentLoader ) UnoRuntime.queryInterface( > > XComponentLoader.class, documentFrame); > > loadedComponent = > > frameComponentLoader.loadComponentFromURL( url, > > "_self", 0, args ); > > > > the purpose so that I can see a nice blank doc. > > > > then I go and create another blank doc. I do some > > rendering and I want > > to replace my first doc with the second doc. > > This isn't possible so easily. There are several > other options, but I > don't know which I should recommend because I don't > know what your goal > is. You could: > > - not create the first document at all (why do you?) > - add the model of the second document to a > MediaDescriptor and use > loadComponentFromURL at the first frame, thus > replacing the first doc > - perhaps even don't create a second frame and only > use a standalone > model that you insert in the same way into your > frame > > It's hard do make a good suggestion without knowing > your intended > workflow or functionality. > > > for example this does not work: > > documentFrame.setComponent( > > > documentFrame.getContainerWindow(),officeDocument.getCurrentController()); > > Yes, this is not possible, a controller is owned by > a frame as soon as > you have created it and it can be only in one frame > at a time. This > means once you remove it from a frame to put it into > another one the > frame will dispose of the controller. > > You only can move the *model* from one frame to > another (or have it in > more than one frame at the same time), thus creating > a new controller > each time you insert the model into a frame. > Currently this needs the way mentioned above (use a > "Model" parameter in > MediaDescriptor, see DevGuide), we are working on an > API to make this > easier and more elegant. > > > The guide says"Currently, the only way for clients > to > > construct a frame and insert a OpenOffice.org > document > > into it, is to use the > > com.sun.star.frame.XComponentLoader interface of > the > > com.sun.star.frame.Desktop" but this is not > > clear to me. > > Yes, as I said: Controllers can't be moved between > frames, the only way > to get a model into a frame is to create a new > Controller. And the only > way to achieve this currently is > loadComponentFromURL. > > Best regards, > Mathias > > -- > Mathias Bauer - OpenOffice.org Application Framework > Project Lead > Please reply to the list only, [EMAIL PROTECTED] > is a spam sink. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]