Author: nbelaevski
Date: 2008-11-24 17:46:07 -0500 (Mon, 24 Nov 2008)
New Revision: 11341
Removed:
trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIQueue.java
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/component/QueueRegistry.java
trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java
Log:
Queue code refactored
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/component/QueueRegistry.java
===================================================================
---
trunk/framework/impl/src/main/java/org/ajax4jsf/component/QueueRegistry.java 2008-11-24
22:45:49 UTC (rev 11340)
+++
trunk/framework/impl/src/main/java/org/ajax4jsf/component/QueueRegistry.java 2008-11-24
22:46:07 UTC (rev 11341)
@@ -34,31 +34,51 @@
*/
public class QueueRegistry {
+ //TODO move to appropriate place
+ public static final String GLOBAL_QUEUE_NAME = "org.richfaces.queue.global";
+
private static final String REGISTRY_ATTRIBUTE_NAME = QueueRegistry.class.getName();
- public static void registerQueue(FacesContext context, String clientName, Object data)
{
+ private Map<String, Object> queuesData = new LinkedHashMap<String,
Object>();
+
+ private QueueRegistry() {
+ }
+
+ public static QueueRegistry getInstance(FacesContext context) {
ExternalContext externalContext = context.getExternalContext();
Map<String, Object> requestMap = externalContext.getRequestMap();
- Map<String, Object> registryMap = (Map<String, Object>)
+ QueueRegistry registry = (QueueRegistry)
requestMap.get(REGISTRY_ATTRIBUTE_NAME);
- if (registryMap == null) {
- registryMap = new LinkedHashMap<String, Object>();
- requestMap.put(REGISTRY_ATTRIBUTE_NAME, registryMap);
+ if (registry == null) {
+ registry = new QueueRegistry();
+ requestMap.put(REGISTRY_ATTRIBUTE_NAME, registry);
}
- if (!registryMap.containsKey(clientName)) {
- registryMap.put(clientName, data);
+ return registry;
+ }
+
+ public void registerQueue(FacesContext context, String clientName, Object data) {
+ if (!queuesData.containsKey(clientName)) {
+ queuesData.put(clientName, data);
} else {
context.getExternalContext().log("Queue with name '" + clientName +
"' has already been registered");
}
}
- public static Map<String, Object> getRegisteredQueues(FacesContext context) {
- ExternalContext externalContext = context.getExternalContext();
- Map<String, Object> requestMap = externalContext.getRequestMap();
-
- return (Map<String, Object>) requestMap.get(REGISTRY_ATTRIBUTE_NAME);
+ public Map<String, Object> getRegisteredQueues(FacesContext context) {
+ return queuesData;
}
+
+ public void createGlobalDefaultQueue(FacesContext context) {
+ String encodedGlobalQueueName =
context.getExternalContext().encodeNamespace(GLOBAL_QUEUE_NAME);
+ if (!queuesData.containsKey(encodedGlobalQueueName)) {
+ queuesData.put(encodedGlobalQueueName, null);
+ }
+ }
+
+ public boolean hasRegisteredQueues() {
+ return !queuesData.isEmpty();
+ }
}
Deleted: trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIQueue.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIQueue.java 2008-11-24
22:45:49 UTC (rev 11340)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIQueue.java 2008-11-24
22:46:07 UTC (rev 11341)
@@ -1,118 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.ajax4jsf.component;
-
-import javax.faces.component.NamingContainer;
-import javax.faces.component.UIComponent;
-import javax.faces.component.UIComponentBase;
-import javax.faces.component.UIForm;
-import javax.faces.context.FacesContext;
-
-/**
- * @author Nick Belaevski
- * @since 3.3.0
- */
-public abstract class UIQueue extends UIComponentBase {
-
- public static final String COMPONENT_TYPE = "org.ajax4jsf.Queue";
-
- public static final String COMPONENT_FAMILY = "org.ajax4jsf.Queue";
-
- //TODO rename to org.ajax4jsf?
- public static final String GLOBAL_QUEUE_NAME = "org.richfaces.queue.global";
-
- public abstract String getName();
- public abstract void setName(String name);
-
- public abstract String getOnsubmit();
- public abstract void setOnsubmit(String onsubmit);
-
- public abstract String getOncomplete();
- public abstract void setOncomplete(String oncomplete);
-
- public abstract String getOnbeforedomupdate();
- public abstract void setOnbeforedomupdate(String onbeforedomupdate);
-
- public abstract String getOnerror();
- public abstract void setOnerror(String onerror);
-
- public abstract String getOnsizeexceeded();
- public abstract void setOnsizeexceeded(String onsizeexceeded);
-
- public abstract boolean isDisabled();
- public abstract void setDisabled(boolean disabled);
-
- public abstract int getSize();
- public abstract void setSize(int size);
-
- public abstract String getSizeExceededBehavior();
- public abstract void setSizeExceededBehavior(String behavior);
-
- public abstract int getTimeout();
- public abstract void setTimeout(int timeout);
-
- public abstract int getRequestDelay();
- public abstract void setRequestDelay(int requestDelay);
-
- public abstract boolean isIgnoreDupResponses();
- public abstract void setIgnoreDupResponses(boolean ignoreDupResponses);
-
-
-
- @Override
- public String getFamily() {
- return COMPONENT_FAMILY;
- }
-
- private UIComponent findParentForm() {
- UIComponent component = getParent();
- while (component != null && !(component instanceof UIForm)) {
- component = component.getParent();
- }
-
- return component;
- }
-
- public String getClientName(FacesContext context) {
- UIComponent form = findParentForm();
- String name = getName();
- String clientName;
-
- if (form != null) {
- String formClientId = form.getClientId(context);
-
- if (name != null && name.length() != 0) {
- clientName = formClientId + NamingContainer.SEPARATOR_CHAR + name;
- } else {
- clientName = formClientId;
- }
- } else {
- if (name == null || name.length() == 0) {
- name = UIQueue.GLOBAL_QUEUE_NAME;
- }
-
- clientName = context.getExternalContext().encodeNamespace(name);
- }
-
- return clientName;
- }
-}
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java 2008-11-24
22:45:49 UTC (rev 11340)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java 2008-11-24
22:46:07 UTC (rev 11341)
@@ -42,7 +42,6 @@
import javax.faces.render.Renderer;
import org.ajax4jsf.component.QueueRegistry;
-import org.ajax4jsf.component.UIQueue;
import org.ajax4jsf.io.SAXResponseWriter;
import org.ajax4jsf.renderkit.HeaderResourceProducer;
import org.ajax4jsf.renderkit.HeaderResourceProducer2;
@@ -456,20 +455,14 @@
context.setResponseWriter(componentWriter);
- Map<String, Object> queues = QueueRegistry.getRegisteredQueues(context);
+ QueueRegistry queueRegistry = QueueRegistry.getInstance(context);
if (Boolean.valueOf(getInitParameterValue(context,
"org.richfaces.queue.global.enabled"))) {
- String encodedGlobalQueueName =
context.getExternalContext().encodeNamespace(UIQueue.GLOBAL_QUEUE_NAME);
-
- //TODO opimize this
- if (queues == null || !queues.containsKey(encodedGlobalQueueName)) {
- QueueRegistry.registerQueue(context, encodedGlobalQueueName, null);
- }
+ queueRegistry.createGlobalDefaultQueue(context);
}
- queues = QueueRegistry.getRegisteredQueues(context);
- if (queues != null && !queues.isEmpty()) {
+ if (queueRegistry.hasRegisteredQueues()) {
InternetResource queueScriptResource =
resourceBuilder.getResource(QUEUE_SCRIPT_RESOURCE);
- queueScriptResource.encode(context, queues);
+ queueScriptResource.encode(context, null);
}
// Append Skin StyleSheet after a
Show replies by date