KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > openccm > explorer > CosTrading > LookupContext


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): Sylvain Leblanc.
23 Contributor(s): ______________________________________.
24
25 ===========================================================================*/

26
27 package org.objectweb.openccm.explorer.CosTrading;
28
29 /** The OMG Trading Service imports. */
30 import org.objectweb.util.explorer.api.Context;
31 import org.objectweb.util.explorer.api.Entry;
32 import org.objectweb.util.explorer.core.naming.lib.DefaultEntry;
33 import org.omg.CosTrading.Lookup;
34 import org.omg.CosTradingRepos.ServiceTypeRepository;
35 import org.omg.CosTradingRepos.ServiceTypeRepositoryHelper;
36
37
38 /**
39  * Basic implementation of the Context interface
40  * for managing org.omg.CosTrading.Lookup references.
41  *
42  * @author <a HREF="mailto:Sylvain.Leblanc@lifl.fr">Sylvain Leblanc</a>
43  * @version 0.1
44  */

45 public class LookupContext
46   implements Context
47 {
48
49     // ==================================================================
50
//
51
// Internal state.
52
//
53
// ==================================================================
54

55     /**
56      * States if the Trading Service must be manipulated by an admin
57      * or a user. Default value is the user view.
58      */

59     private static boolean admin_view_=false;
60
61     // ==================================================================
62
//
63
// Constructors.
64
//
65
// ==================================================================
66

67     // ==================================================================
68
//
69
// Internal methods.
70
//
71
// ==================================================================
72

73     // ==================================================================
74
//
75
// Public methods.
76
//
77
// ==================================================================
78

79     /**
80      * Toogles the view of the trading service. If the previous view
81      * was an admin view, it becomes a user view and vice-versa. <br/>
82      *
83      * <b>Warning:</b> toogling the view will impact all Lookup
84      * references in the administration console.
85      */

86     public static void toogleAdminUserView()
87     {
88         LookupContext.admin_view_ = ! LookupContext.admin_view_;
89     }
90
91     // ==================================================================
92
//
93
// Public methods for interface Context.
94
//
95
// ==================================================================
96

97     /* (non-Javadoc)
98      * @see org.objectweb.util.explorer.api.Context#getEntries(java.lang.Object)
99      */

100     public Entry[] getEntries(Object JavaDoc object) {
101         Lookup lookup = (Lookup)object;
102         ServiceTypeRepository str = ServiceTypeRepositoryHelper.narrow(lookup.type_repos());
103         Entry[] values = null;
104         
105         // The admin view consider all CosTrading management interfaces.
106
if (LookupContext.admin_view_) {
107             values = new Entry[6];
108             values[0] = new DefaultEntry("Service Type Repository", str);
109             values[1] = new DefaultEntry("Queries", new Queries(lookup));
110             values[2] = new DefaultEntry("Registered Offers", new Offers(lookup.admin_if()));
111             values[3] = new DefaultEntry("Proxy Offers", new ProxyOffers(lookup.admin_if()));
112             values[4] = new DefaultEntry("Trader Config", lookup.admin_if());
113             values[5] = new DefaultEntry("Trader Links", lookup.link_if());
114         // The user view only consider CosTrading query an service type repos. interfaces.
115
} else {
116             values = new Entry[2];
117             values[0] = new DefaultEntry("Service Type Repository", str);
118             values[1] = new DefaultEntry("Queries", new Queries(lookup));
119         }
120         return values;
121     }
122
123 }
124
Popular Tags