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]

Reply via email to