KickJava   Java API By Example, From Geeks To Geeks.

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


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: AddSubComponentAction.java,v 1.3 2004/11/15 16:44:24 moroy Exp $
27  ====================================================================*/

28
29 package org.objectweb.fractal.explorer.menu;
30
31 import java.awt.Dimension JavaDoc;
32
33 import org.objectweb.fractal.api.Component;
34 import org.objectweb.fractal.api.control.ContentController;
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 import org.objectweb.util.explorer.resolver.api.PropertyResolver;
39 import org.objectweb.util.explorer.swing.gui.api.DialogAction;
40 import org.objectweb.util.explorer.swing.gui.api.DialogBox;
41 import org.objectweb.util.explorer.swing.gui.lib.DefaultDialogBox;
42 import org.objectweb.util.explorer.swing.gui.lib.TreeBox;
43
44 /**
45  * This action allows to add a component into a composite component.
46  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jerome Moroy</a>
47  * @version 0.1
48  */

49 public class AddSubComponentAction
50   implements MenuItem,
51              DialogAction
52 {
53     //==================================================================
54
//
55
// Internal states.
56
//
57
//==================================================================
58

59     /** TheTreeBox used. */
60     protected TreeBox treeBox_;
61     
62     /** The controller used to add a new component component. */
63     protected ContentController contentInterface_;
64     
65     //==================================================================
66
//
67
// No constructor.
68
//
69
//==================================================================
70

71     //==================================================================
72
//
73
// No Internal method.
74
//
75
//==================================================================
76

77     //==================================================================
78
//
79
// Public methods for ExtendedActionListener interface.
80
//
81
//==================================================================
82

83     /* (non-Javadoc)
84      * @see org.objectweb.util.explorer.api.MenuItem#getStatus(org.objectweb.util.explorer.api.TreeView)
85      */

86     public int getStatus(TreeView treeView) {
87         return MenuItem.ENABLED_STATUS;
88     }
89     
90     /* (non-Javadoc)
91      * @see org.objectweb.util.explorer.api.MenuItem#actionPerformed(org.objectweb.util.explorer.api.MenuItemTreeView)
92      */

93     public void actionPerformed(MenuItemTreeView e) throws Exception JavaDoc {
94         contentInterface_ = (ContentController)e.getSelectedObject();
95         Component comp = e.getTree().duplicate();
96         
97         //Tree treeItf = (Tree)comp.getFcInterface(Tree.TREE);
98
//treeItf.addEntry("New tree", comp);
99
PropertyResolver pr = (PropertyResolver)comp.getFcInterface(PropertyResolver.PROPERTY_RESOLVER);
100         
101         treeBox_ = new TreeBox(comp);
102         treeBox_.setPreferredSize(new Dimension JavaDoc(450, 350));
103         
104         DialogBox dialog = new DefaultDialogBox("Select a component to add");
105         dialog.setValidateAction(this);
106         dialog.addElementBox(treeBox_);
107         dialog.show();
108     }
109     
110     //==================================================================
111
//
112
// Public methods for DialogAction interface.
113
//
114
//==================================================================
115

116     /* (non-Javadoc)
117      * @see org.objectweb.util.explorer.swing.gui.api.DialogAction#executeAction()
118      */

119     public void executeAction() throws Exception JavaDoc {
120         Object JavaDoc o = treeBox_.getObject();
121         try{
122             Component subComponent = (Component)o;
123             contentInterface_.addFcSubComponent(subComponent);
124         }catch(ClassCastException JavaDoc e){
125             throw new Exception JavaDoc("You must select a component!");
126         }
127     }
128     
129 }
Popular Tags