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: StartComponentAction.java,v 1.1 2004/04/20 16:37:27 moroy Exp $ 27 ====================================================================*/ 28 29 package org.objectweb.util.browser.plugins.fractal.menu; 30 31 import org.objectweb.fractal.api.Component; 32 import org.objectweb.fractal.api.NoSuchInterfaceException; 33 import org.objectweb.fractal.api.control.IllegalLifeCycleException; 34 import org.objectweb.fractal.api.control.LifeCycleController; 35 import org.objectweb.util.browser.api.MenuItem; 36 import org.objectweb.util.browser.api.MenuItemTreeView; 37 import org.objectweb.util.browser.api.TreeView; 38 import org.objectweb.util.browser.plugins.fractal.FcBrowser; 39 40 /** 41 * This action allows to start/stop the component. 42 * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jerome Moroy</a> 43 * @version 0.1 44 */ 45 public class StartComponentAction 46 implements MenuItem 47 { 48 49 //================================================================== 50 // 51 // No internal state. 52 // 53 //================================================================== 54 55 //================================================================== 56 // 57 // No constructor. 58 // 59 //================================================================== 60 61 //================================================================== 62 // 63 // No internal method. 64 // 65 //================================================================== 66 67 //================================================================== 68 // 69 // Public methods for ExtendedActionListener interface. 70 // 71 //================================================================== 72 73 public void actionPerformed(MenuItemTreeView e) { 74 Component ci = (Component)e.getSelectedObject(); 75 try { 76 LifeCycleController lcc = FcBrowser.getLifeCycleController(ci); 77 lcc.startFc(); 78 } catch (NoSuchInterfaceException e1) { 79 e1.printStackTrace(); 80 } catch (IllegalLifeCycleException e1) { 81 e1.printStackTrace(); 82 } 83 } 84 85 /** 86 * @see org.objectweb.util.browser.api.MenuItem#isActive(org.objectweb.util.browser.gui.common.TreeView) 87 */ 88 public int getStatus(TreeView treeView) { 89 Component ci = (Component)treeView.getSelectedObject(); 90 try { 91 LifeCycleController lcc = FcBrowser.getLifeCycleController(ci); 92 String status = lcc.getFcState(); 93 if (status.equals(LifeCycleController.STARTED)) 94 return MenuItem.NOT_VISIBLE_STATUS; 95 } catch (NoSuchInterfaceException e) { 96 return MenuItem.NOT_VISIBLE_STATUS; 97 } 98 return MenuItem.ENABLED_STATUS; 99 } 100 }