001: /*
002: * $Id: WirelessContainerProviderAdapter.java,v 1.6 2005/09/21 10:48:57 dg154973 Exp $
003: * Copyright 2003 Sun Microsystems, Inc. All
004: * rights reserved. Use of this product is subject
005: * to license terms. Federal Acquisitions:
006: * Commercial Software -- Government Users
007: * Subject to Standard License Terms and
008: * Conditions.
009: *
010: * Sun, Sun Microsystems, the Sun logo, and Sun ONE
011: * are trademarks or registered trademarks of Sun Microsystems,
012: * Inc. in the United States and other countries.
013: */
014:
015: package com.sun.portal.wireless.providers.containers.template;
016:
017: import java.util.*;
018: import java.util.logging.Level;
019: import java.util.logging.Logger;
020:
021: import javax.servlet.http.HttpServletRequest;
022:
023: import com.sun.portal.log.common.PortalLogger;
024: import com.sun.portal.providers.containers.ProviderWindowStates;
025: import com.sun.portal.providers.containers.ContainerProviderAdapter;
026: import com.sun.portal.providers.ProviderException;
027: import com.sun.portal.providers.context.ContainerProviderContext;
028: import com.sun.portal.providers.context.ProviderContextException;
029: import com.sun.portal.wireless.providers.containers.util.ChannelOrder;
030: import com.sun.portal.wireless.providers.containers.WirelessContainerProvider;
031:
032: public class WirelessContainerProviderAdapter extends
033: ContainerProviderAdapter implements WirelessContainerProvider {
034:
035: private static Logger sLogger = PortalLogger
036: .getLogger(WirelessContainerProviderAdapter.class);
037:
038: public List getAvailableChannels() throws ProviderException {
039: List availableChannels = super .getAvailableChannels();
040: if (existsListProperty(USER_DEFINED_CHANNELS)) {
041: availableChannels
042: .addAll(getListProperty(USER_DEFINED_CHANNELS));
043: }
044:
045: return availableChannels;
046: }
047:
048: public List getAvailableChannels(HttpServletRequest req,
049: boolean onlyRemovable) throws ProviderException {
050:
051: ContainerProviderContext cpc = getContainerProviderContext();
052: List availableChannels = getAvailableChannels();
053: List newChannelList = new ArrayList();
054: boolean defaultIsRemovable = false;
055: boolean isRemovable;
056: Map isRemovableMap = null;
057: String channel;
058: try {
059: if (onlyRemovable) {
060: defaultIsRemovable = cpc.getBooleanProperty(getName(),
061: DEFAULTISREMOVABLE);
062: isRemovableMap = cpc.getCollectionProperty(getName(),
063: CHANNELSISREMOVABLE);
064: }
065: } catch (ProviderContextException e) {
066: throw new ProviderException(
067: "WirelessContainerProviderAdapter.getAvailableChannels(): ",
068: e);
069: }
070:
071: for (int i = 0; i < availableChannels.size(); i++) {
072:
073: channel = (String) availableChannels.get(i);
074:
075: if (!cpc.existsChannel(channel)) {
076: sLogger.log(Level.INFO, "PSMA_CSPWPCT0020", channel);
077:
078: } else {
079: // Channel exists
080: if (!cpc.getProvider(req, getName(), channel)
081: .isPresentable(req)) {
082: sLogger
083: .log(Level.FINE, "PSMA_CSPWPCT0021",
084: channel);
085: } else {
086: // the channel exists and is presentable
087: if (onlyRemovable) {
088: // determine if channel is removable
089: if (isRemovableMap.containsKey(channel)) {
090: isRemovable = ((Boolean) isRemovableMap
091: .get(channel)).booleanValue();
092: } else {
093: isRemovable = defaultIsRemovable;
094: }
095:
096: // only list channels that are removable
097: if (!isRemovable) {
098: sLogger.log(Level.FINE, "PSMA_CSPWPCT0022",
099: channel);
100: } else {
101: // the channel exists, is presentable and removable
102: newChannelList.add(channel);
103: }
104: } else {
105: // the channel exists and is presentable
106: newChannelList.add(channel);
107: }
108: }
109: }
110: }
111:
112: return newChannelList;
113: }
114:
115: public List getAvailableChannels(HttpServletRequest request)
116: throws ProviderException {
117: return getAvailableChannels(request, true);
118: }
119:
120: public List getOrderedSelectedChannels(HttpServletRequest req,
121: boolean onlyMovable) throws ProviderException {
122: ContainerProviderContext cpc = getContainerProviderContext();
123: List selectedChannels = getSelectedChannels();
124: if (selectedChannels == null) {
125: selectedChannels = new ArrayList();
126: }
127: String channel;
128: for (int i = 0; i < selectedChannels.size(); i++) {
129:
130: channel = (String) selectedChannels.get(i);
131:
132: if (!cpc.existsChannel(channel)) {
133: sLogger.log(Level.INFO, "PSMA_CSPWPCT0020", channel);
134: selectedChannels.remove(channel);
135:
136: } else {
137:
138: if (!cpc.getProvider(req, getName(), channel)
139: .isPresentable(req)) {
140: sLogger
141: .log(Level.INFO, "PSMA_CSPWPCT0021",
142: channel);
143: selectedChannels.remove(channel);
144: }
145: }
146: }
147:
148: return ChannelOrder.order(selectedChannels, getName(), cpc,
149: onlyMovable);
150: }
151:
152: public List getOrderedSelectedChannels(HttpServletRequest request)
153: throws ProviderException {
154: return getOrderedSelectedChannels(request, false);
155: }
156:
157: static int[] supportedStates = new int[3];
158:
159: static {
160: supportedStates[0] = ProviderWindowStates.MINIMIZE;
161: supportedStates[1] = ProviderWindowStates.NORMAL;
162: }
163:
164: static final int MAXPAGESIZE = 32000;
165:
166: static final String USER_DEFINED_CHANNELS = "userDefinedChannels";
167: static final String MAIN_TEMPLATE = "frontProvider.template";
168: static final String MAINHELP_TEMPLATE = "frontHelpLink.template";
169: static final String PROVHELP_TEMPLATE = "provHelpLink.template";
170: static final String LINK_TEMPLATE = "linkWrapper.template";
171: static final String CHANNEL_TEMPLATE = "providerWrapper.template";
172: static final String PAGELINK_TEMPLATE = "changePage.template";
173: static final String NOCONTENT_TEMPLATE = "noContent.template";
174: static final String CONTENT_TEMPLATE = "contentProvider.template";
175: static final String SELECTWRAPPERTRUE_TEMPLATE = "selectWrapperTrue.template";
176: static final String SELECTWRAPPERFALSE_TEMPLATE = "selectWrapperFalse.template";
177: static final String OPTIONWRAPPER_TEMPLATE = "optionWrapper.template";
178: static final String LAYOUT_TEMPLATE = "layoutProvider.template";
179: static final String ANCHORWRAPPER_TEMPLATE = "anchorWrapper.template";
180: static final String BANNER_TEMPLATE = "banner.template";
181: static final String BULLETCOLOR_TEMPLATE = "bulletColor.js";
182: static final String DEVICEMENUBAR_TEMPLATE = "menubar.template";
183: static final String CLIENTOPTION_TEMPLATE = "clientOption.template";
184: static final String CLIENTSELECT_TEMPLATE = "clientSelect.template";
185: static final String CLIENTCONFIG_TEMPLATE = "clientConfiguration.template";
186: static final String CHECKED_TEMPLATE = "checked.template";
187: static final String MAXIMIZEDCHANNEL_TEMPLATE = "maximizedChannel.template";
188: static final String MAXIMIZELINK_TEMPLATE = "maximizeLinkWrapper.template";
189: static final String MINIMIZEOPTION_TEMPLATE = "minimizeOption.template";
190:
191: static final String CLIENTTYPE = "clientType";
192: static final String MAXSIZE = "WmlDeckSize";
193: static final String GENERICHTML = "genericHTML";
194:
195: static final String PRODUCTNAME = "productName";
196: static final String DEFAULTISREMOVABLE = "defaultChannelIsRemovable";
197: static final String CHANNELSISREMOVABLE = "channelsIsRemovable";
198: static final String DEFAULTISMOVABLE = "defaultChannelIsMovable";
199: static final String CHANNELSISMOVABLE = "channelsIsMovable";
200: static final String DEFAULTCHANNELROW = "defaultChannelRow";
201: static final String CHANNELSROW = "channelsRow";
202: static final String DESKTOPCONTAINER = "desktopContainer";
203: static final String EDITPAGES = "editPages";
204: static final String SELECTEDCLIENTS = "selectedClients";
205: static final String TITLE = "title";
206: static final String DESCRIPTION = "description";
207: static final String DEFAULTISMINIMIZED = "defaultChannelIsMinimized";
208: static final String DEFAULTISMINIMIZABLE = "defaultChannelIsMinimizable";
209: static final String DEFAULTISMAXIMIZABLE = "defaultChannelIsMaximizable";
210:
211: static final String PAGE = "page";
212: static final String NEXT = "next";
213: static final String PREVIOUS = "prev";
214: static final String STARTCHANNEL = "startChannel";
215: static final String PROVIDER = "provider";
216: static final String ACTION = "action";
217: static final String CONTAINER = "container";
218: static final String EDIT = "edit";
219: static final String PROCESS = "process";
220: static final String CONTENT = "content";
221: static final String LAYOUT = "layout";
222: static final String CLIENTCONFIG = "clientconfig";
223: static final String SELECTEDCHANNELS = "selectedChannels";
224: static final String MOVEUP = "moveUp";
225: static final String MOVEDOWN = "moveDown";
226: static final String ORDER = "order";
227: static final String MOVECHANNEL = "moveChannel";
228: static final String LOGOUT = "logout";
229: static final String CLIENT = "client";
230: static final String MAXIMIZEDCHANNEL = "m";
231: static final String LOADCHANNELS = "loadChannels";
232:
233: static final String PROPERTIES_BASE = "WirelessTemplateDesktopProvider";
234: static final String PROPERTIES_DEV = "DeviceNames";
235: static final String PREVIOUSMSG = "prevPage";
236: static final String NEXTMSG = "nextPage";
237: static final String TOOLARGE = "contentTooLarge";
238: static final String NOCONTENT = "noContent";
239: static final String NOCHANNELS = "noAvailableChannels";
240:
241: static final String MAINHELP_TAG = "front_help";
242: static final String HELPLINK_TAG = "help_link";
243: static final String PAGELINK_TAG = "changePageURL";
244: static final String PAGEMSG_TAG = "textMsg";
245: static final String PROVIDER_TAG = "provider";
246: static final String TITLE_TAG = "title";
247: static final String DESCRIPTION_TAG = "description";
248: static final String PROVIDERHELP_TAG = "prov_help";
249: static final String CONTENT_TAG = "content";
250: static final String LINKS_TAG = "links";
251: static final String NOCONTENT_TAG = "noContentMsg";
252: static final String SEMICOLONSELECTEDLIST_TAG = "semiColonSelectedList";
253: static final String PROVIDERCOUNT_TAG = "providerCount";
254:
255: static final String LOGINLINK_TAG = "login_link";
256: static final String LOGIN_URL_ATTR = "iplanet-am-platform-login-url";
257: static final String PLATFORM_SVC_NAME = "iPlanetAMPlatformService";
258:
259: static final String LOGOUTLINK_TAG = "logout_link";
260: static final String CONTENTLINK_TAG = "content_link";
261: static final String LAYOUTLINK_TAG = "layout_link";
262: static final String CLIENTCONFIGLINK_TAG = "clientconfig_link";
263: static final String ADDREMOVECLIENTSLINK_TAG = "addremoveclients_link";
264: static final String MINIMIZELINK_TAG = "minimize_link";
265: static final String MAXIMIZELINK_TAG = "maximize_link";
266: static final String MINIMIZEOPTION_TAG = "minimize_option";
267: static final String CONTENTPROVIDER_TAG = "content_provider";
268: static final String LAYOUTPROVIDER_TAG = "layout_provider";
269: static final String CLIENTCONFIGPROVIDER_TAG = "clientconfig_provider";
270: static final String BANNER_TAG = "banner";
271: static final String BULLETCOLOR_TAG = "bulletColor";
272: static final String DEVICEMENUBAR_TAG = "devicemenubar";
273: static final String CLIENTSIZE_TAG = "clientSize";
274: static final String CLIENTOPTIONS_TAG = "clientOptions";
275: static final String SELECTCLIENTS_TAG = "selectClients";
276: static final String CLIENTNAME_TAG = "clientName";
277: static final String CLIENTCONTAINER_TAG = "clientContainer";
278: static final String CHECKED_TAG = "checked";
279:
280: }
|