]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.editors.win32/src/org/simantics/editors/win32/ole/PreviewController.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.editors.win32 / src / org / simantics / editors / win32 / ole / PreviewController.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.editors.win32.ole;\r
13 \r
14 import org.eclipse.swt.ole.win32.OLE;\r
15 import org.eclipse.swt.ole.win32.OleAutomation;\r
16 import org.eclipse.swt.ole.win32.OleClientSite;\r
17 import org.eclipse.swt.ole.win32.OleFrame;\r
18 import org.eclipse.swt.ole.win32.Variant;\r
19 import org.simantics.editors.win32.OLEEditorInput;\r
20 \r
21 \r
22 /**\r
23  * Utility for Windows Picture and Fax Preview\r
24  * \r
25  * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
26  *\r
27  */\r
28 public class PreviewController implements OleController {\r
29 \r
30         OleFrame frame;\r
31         OleClientSite site;\r
32         OleAutomation auto;\r
33         \r
34         public PreviewController(OleFrame frame, OleClientSite site, OleAutomation auto) {\r
35                 this.frame = frame;\r
36                 this.site = site;\r
37                 this.auto = auto;\r
38         }\r
39         \r
40         public void show(OLEEditorInput input) {\r
41                 site.doVerb(OLE.OLEIVERB_SHOW);\r
42                 loadFile(input.getFile().getAbsoluteFile().toString());\r
43         }\r
44         \r
45         public void loadFile(String file) {\r
46                 \r
47                 int[] rgdispid;\r
48                 rgdispid = auto.getIDsOfNames(new String[]{"Show"});\r
49                 \r
50                 if (rgdispid != null) {\r
51                         int dispIdMember = rgdispid[0];\r
52                         auto.invoke(dispIdMember, new Variant[]{new Variant(file)});\r
53                 }       \r
54         }\r
55         \r
56         public void bestFit() {\r
57                 int[] rgdispid;\r
58                 rgdispid = auto.getIDsOfNames(new String[]{"BestFit"});\r
59                 \r
60                 if (rgdispid != null) {\r
61                         int dispIdMember = rgdispid[0];\r
62                         auto.invoke(dispIdMember);\r
63                 }\r
64         }\r
65         \r
66         public void actualSize() {\r
67                 int[] rgdispid;\r
68                 rgdispid = auto.getIDsOfNames(new String[]{"ActualSize"});\r
69                 \r
70                 if (rgdispid != null) {\r
71                         int dispIdMember = rgdispid[0];\r
72                         auto.invoke(dispIdMember);\r
73                 }\r
74         }\r
75         \r
76         public void zoom(int i) {\r
77                 \r
78                 int[] rgdispid;\r
79                 rgdispid = auto.getIDsOfNames(new String[]{"Zoom"});\r
80                 \r
81                 if (rgdispid != null) {\r
82                         int dispIdMember = rgdispid[0];\r
83                         auto.invoke(dispIdMember, new Variant[]{new Variant(i)});\r
84                 }       \r
85         }\r
86         \r
87 \r
88 }\r