KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > openccm > explorer > CosNaming > BindNewContextAction


1 /*====================================================================
2
3 OpenCCM: The Open CORBA Component Model Platform
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 package org.objectweb.openccm.explorer.CosNaming;
27
28 import org.objectweb.util.explorer.api.MenuItem;
29 import org.objectweb.util.explorer.api.MenuItemTreeView;
30 import org.objectweb.util.explorer.api.TreeView;
31 import org.objectweb.util.explorer.swing.gui.api.DialogAction;
32 import org.objectweb.util.explorer.swing.gui.api.DialogBox;
33 import org.objectweb.util.explorer.swing.gui.lib.DefaultDialogBox;
34 import org.objectweb.util.explorer.swing.gui.lib.LabelBox;
35 import org.omg.CosNaming.NamingContextExt JavaDoc;
36 import org.omg.CosNaming.NamingContext JavaDoc;
37 import org.omg.CosNaming.NameComponent JavaDoc;
38
39 /**
40  * This action binds a new context into the NameService.
41  *
42  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jerome Moroy</a>
43  *
44  * @version 0.1
45  */

46 public class BindNewContextAction
47     implements MenuItem, DialogAction {
48
49     //==================================================================
50
//
51
// Internal states.
52
//
53
//==================================================================
54

55     /** The dialog box */
56     protected DialogBox dialog_;
57     
58     /** The associated NamingContext */
59     protected NamingContextExt JavaDoc namingContext_ = null;
60
61     /** The name of the object */
62     protected LabelBox name_ = null;
63
64     //==================================================================
65
//
66
// No constructor.
67
//
68
//==================================================================
69

70     //==================================================================
71
//
72
// No internal method.
73
//
74
//==================================================================
75

76     //==================================================================
77
//
78
// Public methods for MenuItem interface.
79
//
80
//==================================================================
81

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

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

92     public void actionPerformed(MenuItemTreeView e) {
93         namingContext_ = (NamingContextExt JavaDoc) e.getSelectedObject();
94         dialog_ = new DefaultDialogBox("Binds a new context into the NameService");
95         name_ = new LabelBox("Context name");
96         dialog_.addElementBox(name_);
97         dialog_.setValidateAction(this);
98         dialog_.show();
99     }
100
101     //==================================================================
102
//
103
// Public methods for DialogAction interface.
104
//
105
//==================================================================
106

107     /**
108      * Executes an action
109      */

110     public void executeAction() throws Exception JavaDoc {
111         NameComponent JavaDoc[] names = namingContext_.to_name(name_.getLabel());
112         NamingContext JavaDoc namingContext = namingContext_;
113         for (int i = 0 ; i < names.length ; i++) {
114             NameComponent JavaDoc[] currentNameComponent = new NameComponent JavaDoc[]{names[i]};
115             NamingContext JavaDoc newNamingContext = null;
116             try {
117                 newNamingContext = namingContext.bind_new_context(currentNameComponent);
118             } catch(org.omg.CosNaming.NamingContextPackage.AlreadyBound JavaDoc e){
119                 // Ignore : a namingContext with the same name already exists !
120
newNamingContext = org.omg.CosNaming.NamingContextExtHelper.narrow(namingContext.resolve(currentNameComponent));
121             }
122             namingContext = newNamingContext;
123         }
124     }
125 }
Popular Tags