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();
}
Alles anzeigen
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