diff options
author | Steve Northover <steve> | 2007-02-21 18:37:35 +0000 |
---|---|---|
committer | Steve Northover <steve> | 2007-02-21 18:37:35 +0000 |
commit | 4eb166d89eb46006ffefe52776362a58a1e97438 (patch) | |
tree | 7caaa56a634e4ba316afe64bcd6605c920f40901 | |
parent | 66fa307eec506e3136d2c27a9cce2ce77b077065 (diff) | |
download | eclipse.platform.swt-4eb166d89eb46006ffefe52776362a58a1e97438.tar.gz eclipse.platform.swt-4eb166d89eb46006ffefe52776362a58a1e97438.tar.xz eclipse.platform.swt-4eb166d89eb46006ffefe52776362a58a1e97438.zip |
*** empty log message ***
-rw-r--r-- | examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet262.java | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet262.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet262.java index 5c42f98685..4c08a54fec 100644 --- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet262.java +++ b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet262.java @@ -10,7 +10,10 @@ *******************************************************************************/ package org.eclipse.swt.snippets; +import java.io.*; + import org.eclipse.swt.*; +import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.ole.win32.*; import org.eclipse.swt.widgets.*; @@ -24,14 +27,18 @@ import org.eclipse.swt.widgets.*; * @since 3.3 */ public class Snippet262 { + static OleClientSite clientSite; + static OleFrame frame; + public static void main(String[] args) { Display display = new Display(); final Shell shell = new Shell(display); shell.setText("Word Example"); shell.setLayout(new FillLayout()); try { - OleFrame frame = new OleFrame(shell, SWT.NONE); - new OleClientSite(frame, SWT.NONE, "Word.Document"); + frame = new OleFrame(shell, SWT.NONE); + clientSite = new OleClientSite(frame, SWT.NONE, "Word.Document"); + addFileMenu(frame); } catch (SWTError e) { System.out.println("Unable to open activeX control"); return; @@ -45,4 +52,44 @@ public class Snippet262 { } display.dispose(); } + + static void addFileMenu(OleFrame frame) { + final Shell shell = frame.getShell(); + Menu menuBar = shell.getMenuBar(); + if (menuBar == null) { + menuBar = new Menu(shell, SWT.BAR); + shell.setMenuBar(menuBar); + } + MenuItem fileMenu = new MenuItem(menuBar, SWT.CASCADE); + fileMenu.setText("&File"); + Menu menuFile = new Menu(fileMenu); + fileMenu.setMenu(menuFile); + frame.setFileMenus(new MenuItem[] { fileMenu }); + + MenuItem menuFileOpen = new MenuItem(menuFile, SWT.CASCADE); + menuFileOpen.setText("Open..."); + menuFileOpen.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + fileOpen(); + } + }); + MenuItem menuFileExit = new MenuItem(menuFile, SWT.CASCADE); + menuFileExit.setText("Exit"); + menuFileExit.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + shell.dispose(); + } + }); + } + + static void fileOpen() { + FileDialog dialog = new FileDialog(clientSite.getShell(), SWT.OPEN); + dialog.setFilterExtensions(new String[] { "*.doc" }); + String fileName = dialog.open(); + if (fileName != null) { + clientSite.dispose(); + clientSite = new OleClientSite(frame, SWT.NONE, "Word.Document", new File(fileName)); + clientSite.doVerb(OLE.OLEIVERB_INPLACEACTIVATE); + } + } }
\ No newline at end of file |