1 package org.robsite.extension.rss;
2
3 import oracle.ide.docking.DockStation;
4 import oracle.ide.docking.Dockable;
5 import oracle.ide.docking.DockableFactory;
6 import oracle.ide.docking.DockingParam;
7 import oracle.ide.layout.ViewId;
8 import oracle.ide.log.LogManager;
9 import oracle.ide.log.LogWindow;
10
11 /***
12 * Dockable factory for the RSS News dockable window.
13 *
14 * @author brian_duff@sourceforge.net
15 * @version $Revision: 1.1.1.1 $
16 */
17 public class NewsDockableFactory implements DockableFactory
18 {
19 private NewsDockableWindow _dockableWindow;
20
21 public NewsDockableFactory()
22 {
23 super();
24 }
25
26 public Dockable getDockable(ViewId viewId)
27 {
28 if ( _dockableWindow == null )
29 {
30 _dockableWindow = createDockableWindow();
31 }
32 return _dockableWindow;
33 }
34
35 public void install()
36 {
37 }
38
39 private NewsDockableWindow createDockableWindow()
40 {
41 NewsDockableWindow dockable = new NewsDockableWindow();
42 DockingParam param = new DockingParam();
43
44 LogWindow logWindow = LogManager.getIdeLogWindow();
45 if ( DockStation.getDockStation().isDockableVisible( logWindow ) )
46 {
47 param.setTabbedWith( LogManager.getIdeLogWindow() );
48 }
49 else
50 {
51 param.setPosition( DockStation.SOUTH );
52 }
53
54 DockStation.getDockStation().dock( dockable, param );
55
56 return dockable;
57 }
58 }