KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > fractal > explorer > menu > DefaultFractalMenuItem


1 /*====================================================================
2  
3  Objectweb Browser Framework
4  Copyright (C) 2000-2004 INRIA & USTL - LIFL - GOAL
5  Contact: openccm@objectweb.org
6  
7  This library is free software; you can redistribute it and/or
8  modify it under the terms of the GNU Lesser General Public
9  License as published by the Free Software Foundation; either
10  version 2.1 of the License, or any later version.
11  
12  This library is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  Lesser General Public License for more details.
16  
17  You should have received a copy of the GNU Lesser General Public
18  License along with this library; if not, write to the Free Software
19  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20  USA
21  
22  Initial developer(s): Jerome Moroy.
23  Contributor(s): ______________________________________.
24  
25  ---------------------------------------------------------------------
26  $Id: DefaultFractalMenuItem.java,v 1.3 2004/11/15 16:44:24 moroy Exp $
27  ====================================================================*/

28
29 package org.objectweb.fractal.explorer.menu;
30
31 import org.objectweb.fractal.api.NoSuchInterfaceException;
32 import org.objectweb.fractal.api.control.LifeCycleController;
33 import org.objectweb.fractal.explorer.FcExplorer;
34 import org.objectweb.fractal.explorer.api.FractalMenuItem;
35 import org.objectweb.util.explorer.api.MenuItem;
36 import org.objectweb.util.explorer.api.MenuItemTreeView;
37 import org.objectweb.util.explorer.api.TreeView;
38
39 /**
40  * Specialization of the menu item for entities having life cycle properties.
41  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jerome Moroy</a>
42  * @version 0.1
43  */

44 public abstract class DefaultFractalMenuItem
45            implements MenuItem,
46                       FractalMenuItem
47 {
48     //==================================================================
49
//
50
// No internal state.
51
//
52
//==================================================================
53

54     //==================================================================
55
//
56
// No constructor.
57
//
58
//==================================================================
59

60     //==================================================================
61
//
62
// Internal methods.
63
//
64
//==================================================================
65

66     //==================================================================
67
//
68
// No public method.
69
//
70
//==================================================================
71

72     /**
73      * Compute if the component is started or not.
74      */

75     /* (non-Javadoc)
76      * @see org.objectweb.util.explorer.api.MenuItem#getStatus(org.objectweb.util.explorer.api.TreeView)
77      */

78     public int getStatus(TreeView arg0) {
79         LifeCycleController lcc = null;
80         try{
81             lcc = FcExplorer.getLifeCycleController(FcExplorer.getComponent(arg0.getSelectedObject()));
82         } catch(NoSuchInterfaceException e) {
83             try {
84                 return getStartedStatus(arg0);
85             } catch (Exception JavaDoc e1) {
86                 return getStoppedStatus(arg0);
87             }
88         }
89         if(lcc.getFcState().equals(LifeCycleController.STARTED))
90             return getStartedStatus(arg0);
91         else
92             return getStoppedStatus(arg0);
93     }
94     
95     /**
96      * Call the appropriate <code>actionPerformed</code> depending on the status of the component (STARTED or STOPPED).
97      */

98     /* (non-Javadoc)
99      * @see org.objectweb.util.explorer.api.MenuItem#actionPerformed(org.objectweb.util.explorer.api.MenuItemTreeView)
100      */

101     public void actionPerformed(MenuItemTreeView arg0) throws Exception JavaDoc {
102         LifeCycleController lcc = null;
103         try {
104             lcc = FcExplorer.getLifeCycleController(FcExplorer.getComponent(arg0.getSelectedObject()));
105         } catch(NoSuchInterfaceException e) {
106             try {
107                 actionStartedPerformed(arg0);
108             } catch (Exception JavaDoc e1) {
109                 actionStoppedPerformed(arg0);
110             }
111         }
112         if(lcc.getFcState().equals(LifeCycleController.STARTED))
113             actionStartedPerformed(arg0);
114         else
115             actionStoppedPerformed(arg0);
116     }
117     
118     public int getStartedStatus(TreeView arg0) {
119         return MenuItem.ENABLED_STATUS;
120     }
121     
122     public int getStoppedStatus(TreeView arg0) {
123         return MenuItem.NOT_VISIBLE_STATUS;
124     }
125     
126     public void actionStoppedPerformed(MenuItemTreeView arg0) throws Exception JavaDoc {
127         // Nothing to do
128
}
129     
130     public abstract void actionStartedPerformed(MenuItemTreeView arg0) throws Exception JavaDoc;
131 }
Popular Tags