Подскажите, пожалуйста, как пользоваться
org.eclipse.swt.ole.win32.OleFrame
в потоке без пользовательского интерфейса?
Создание "OleFrame", если это сделано в не-UI-потоках.
Я знаю разницу между пользовательским интерфейсом и не-пользовательским потоком.
Я пытаюсь добиться использования org.eclipse.swt.ole.win32.OleAutomation
в `IRunnableWithProgress
Добавление
for(;mShell.getDisplay().readAndDispatch(););
(mShell
задается в конструкторе) после каждого вызова OLE немного помогает, но недостаточно ...
Любая помощь будет оценена.
OutlookHelper outlook = new OutlookHelper(mShell, mModel.getEmailToAddresses(), "Feedback report", emailInfo.body, attachment);
new ProgressMonitorDialog(mShell).run(true, false, outlook);
.
public class OutlookHelper implements IRunnableWithProgress {
public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
monitor.beginTask("Sending...", IProgressMonitor.UNKNOWN);
send(monitor);
monitor.done();
}
private void send(IProgressMonitor monitor) throws InterruptedException {
monitor.subTask("Creating OLE frame");
// Will block UI thread here ...
final OleFrame frame = new OleFrame(mShell, SWT.NONE);
monitor.subTask("Starting Outlook application");
// Will block UI thread here ...
OleClientSite site = new OleClientSite(frame, SWT.NONE, "Outlook.Application");
...
}
}