]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.proconf.g3d/src/org/simantics/proconf/g3d/base/EditorLoader.java
ErrorLogger moved (integration)
[simantics/3d.git] / org.simantics.proconf.g3d / src / org / simantics / proconf / g3d / base / EditorLoader.java
1 package org.simantics.proconf.g3d.base;\r
2 \r
3 import org.eclipse.ui.IPartListener;\r
4 import org.eclipse.ui.IWorkbenchPart;\r
5 \r
6 /**\r
7  * IPartListener that allows editor to load its content after the editorPart is activated.\r
8  * \r
9  * This is crucial with 3D graphics, which does not work if the editor part is activated\r
10  * after the data has been loaded.\r
11  * \r
12  * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
13  *\r
14  */\r
15 public abstract class EditorLoader implements IPartListener {\r
16 \r
17         boolean opened = false;\r
18         boolean activated = false;\r
19         \r
20     public void partOpened(IWorkbenchPart part) {\r
21         if (part.equals(getWorkbechPart())) {\r
22             opened = true;\r
23         }\r
24     }\r
25     \r
26     public void partActivated(IWorkbenchPart part) {\r
27         if (part.equals(getWorkbechPart())) {\r
28             if (opened & !activated) {\r
29                 activated = true;\r
30                 load();\r
31             }\r
32         }\r
33     }\r
34     \r
35     public void partBroughtToTop(IWorkbenchPart part) {}\r
36     \r
37     public void partClosed(IWorkbenchPart part) {}\r
38     \r
39     public void partDeactivated(IWorkbenchPart part) {}\r
40     \r
41     /**\r
42      * Returns the IWorkbenchPart of the editor\r
43      * @return\r
44      */\r
45     public abstract IWorkbenchPart getWorkbechPart();\r
46     \r
47     /**\r
48      * Starts the content loading process\r
49      */\r
50     public abstract void load();\r
51 }\r