ich versuche mittels swt ms office (in meinem fall zur zeit v2007) einzubetten. in diesem zuge möchte ich natürlich die dokumente auch verarbeiten können. wie teile ich dem office programm über die OleClientSite mit, zu speichern bzw. den druckdialog aufzurufen? :confused:
Code
		
					
				public class OleContainer extends java.awt.Container
{
    private org.eclipse.swt.widgets.Display display;
    private org.eclipse.swt.widgets.Shell swtParent;
    private java.awt.Canvas awtParent;
    private org.eclipse.swt.ole.win32.OleClientSite site;
    public OleContainer(final String oleAppId, final java.io.File file, final int width, final int height)
    {
        Thread thread = new Thread(new Runnable()
        {
            public void run()
            {
                final int swtStyle = org.eclipse.swt.SWT.None;
                setLayout(new java.awt.GridLayout(1,1));
                awtParent = new java.awt.Canvas();
                add(awtParent);
                display = new org.eclipse.swt.widgets.Display();
                swtParent = org.eclipse.swt.awt.SWT_AWT.new_Shell(display,awtParent);
                swtParent.setLayout(new org.eclipse.swt.layout.FillLayout());
                org.eclipse.swt.ole.win32.OleFrame frame = new org.eclipse.swt.ole.win32.OleFrame(swtParent,swtStyle);
                try
                {
                    if(file!=null && file.exists() && oleAppId==null)
                        site = new org.eclipse.swt.ole.win32.OleClientSite(frame,swtStyle,file);
                    else if(file!=null && file.exists())
                        site = new org.eclipse.swt.ole.win32.OleClientSite(frame,swtStyle,oleAppId,file);
                    else
                        site = new org.eclipse.swt.ole.win32.OleClientSite(frame,swtStyle,oleAppId);
                }
                catch(org.eclipse.swt.SWTException e)
                {
                    System.err.println("Create OleClientSite Error: " + e.toString());
                    return;
                }
                setSize(width,height);
                validate();
                site.doVerb(org.eclipse.swt.ole.win32.OLE.OLEIVERB_SHOW);
                while(swtParent!=null && !swtParent.isDisposed())
                    if(!display.readAndDispatch())
                        display.sleep();
            }
        });
        thread.start();
    }ps: mittels save(java.io.File,boolean) habe ich es bereits probiert, aber anscheindend funktioniert das nicht solange das dokument noch geöffnet ist und auch sonst werden änderungen anscheinend nicht übernommen.
danke im vorhinein 
lg hucskjs
 
		 
		
		
	 java soll auf möglichst vielen system immer gleich laufen. wie viele systeme glaubst du verwenden MS office? mein Vorschlag: umstieg auf eine MS-Sprache ... c# .net what ever. Da bekommst du sicher bessere Schnittstellen und Unterstützung.
 java soll auf möglichst vielen system immer gleich laufen. wie viele systeme glaubst du verwenden MS office? mein Vorschlag: umstieg auf eine MS-Sprache ... c# .net what ever. Da bekommst du sicher bessere Schnittstellen und Unterstützung. .. ich sag ja nicht das es nicht geht, sondern nur das es vermutlich unnötig kompliziert ist
 .. ich sag ja nicht das es nicht geht, sondern nur das es vermutlich unnötig kompliziert ist
