Author: byersa
Date: Thu Sep 20 14:30:44 2007 New Revision: 577932 URL: http://svn.apache.org/viewvc?rev=577932&view=rev Log: The content widget was not using the dataResourceId attribute. To make it work I had to copy someone's brilliant WidgetContentWorker pattern. Added: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/DataResourceWorkerInterface.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/WidgetDataResourceWorker.java Modified: ofbiz/trunk/applications/content/src/org/ofbiz/content/data/DataResourceWorker.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java Modified: ofbiz/trunk/applications/content/src/org/ofbiz/content/data/DataResourceWorker.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/src/org/ofbiz/content/data/DataResourceWorker.java?rev=577932&r1=577931&r2=577932&view=diff ============================================================================== --- ofbiz/trunk/applications/content/src/org/ofbiz/content/data/DataResourceWorker.java (original) +++ ofbiz/trunk/applications/content/src/org/ofbiz/content/data/DataResourceWorker.java Thu Sep 20 14:30:44 2007 @@ -68,7 +68,7 @@ /** * DataResourceWorker Class */ -public class DataResourceWorker { +public class DataResourceWorker implements org.ofbiz.widget.DataResourceWorkerInterface { public static final String module = DataResourceWorker.class.getName(); public static final String err_resource = "ContentErrorUiLabel"; @@ -1134,5 +1134,15 @@ streamDataResource(baos, delegator, dataResourceId, https, webSiteId, locale, rootDir); ByteWrapper byteWrapper = new ByteWrapper(baos.toByteArray()); return byteWrapper; + } + + public String renderDataResourceAsTextExt(GenericDelegator delegator, String dataResourceId, Map templateContext, + Locale locale, String targetMimeTypeId, boolean cache) throws GeneralException, IOException { + return renderDataResourceAsText(delegator, dataResourceId, templateContext, locale, targetMimeTypeId, cache); + } + + public void renderDataResourceAsTextExt(GenericDelegator delegator, String dataResourceId, Writer out, Map templateContext, + Locale locale, String targetMimeTypeId, boolean cache) throws GeneralException, IOException { + renderDataResourceAsText(delegator, dataResourceId, out, templateContext, locale, targetMimeTypeId, cache); } } Added: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/DataResourceWorkerInterface.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/DataResourceWorkerInterface.java?rev=577932&view=auto ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/DataResourceWorkerInterface.java (added) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/DataResourceWorkerInterface.java Thu Sep 20 14:30:44 2007 @@ -0,0 +1,42 @@ +/******************************************************************************* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + *******************************************************************************/ +package org.ofbiz.widget; + +import java.io.IOException; +import java.io.Writer; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.ofbiz.base.util.GeneralException; +import org.ofbiz.entity.GenericDelegator; +import org.ofbiz.entity.GenericEntityException; +import org.ofbiz.entity.GenericValue; +import org.ofbiz.service.LocalDispatcher; + +/** + * ContentWorkerInterface + */ +public interface DataResourceWorkerInterface { + public String renderDataResourceAsTextExt(GenericDelegator delegator, String dataResourceId, Map templateContext, + Locale locale, String targetMimeTypeId, boolean cache) throws GeneralException, IOException; + + public void renderDataResourceAsTextExt(GenericDelegator delegator, String dataResourceId, Writer out, Map templateContext, + Locale locale, String targetMimeTypeId, boolean cache) throws GeneralException, IOException; +} Added: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/WidgetDataResourceWorker.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/WidgetDataResourceWorker.java?rev=577932&view=auto ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/WidgetDataResourceWorker.java (added) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/WidgetDataResourceWorker.java Thu Sep 20 14:30:44 2007 @@ -0,0 +1,42 @@ +/******************************************************************************* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + *******************************************************************************/ +package org.ofbiz.widget; + +import org.ofbiz.base.util.Debug; + +/** + * WidgetContentWorker Class + */ +public class WidgetDataResourceWorker { + public static final String module = WidgetDataResourceWorker.class.getName(); + public static DataResourceWorkerInterface dataresourceWorker = null; + static { + try { + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + // note: loadClass is necessary for these since this class doesn't know anything about them at compile time + dataresourceWorker = (DataResourceWorkerInterface) loader.loadClass("org.ofbiz.content.data.DataResourceWorker").newInstance(); + } catch (ClassNotFoundException e) { + Debug.logError(e, "Could not pre-initialize dynamically loaded class: ", module); + } catch (IllegalAccessException e) { + Debug.logError(e, "Could not pre-initialize dynamically loaded class: ", module); + } catch (InstantiationException e) { + Debug.logError(e, "Could not pre-initialize dynamically loaded class: ", module); + } + } +} Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java?rev=577932&r1=577931&r2=577932&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java Thu Sep 20 14:30:44 2007 @@ -38,6 +38,7 @@ import org.ofbiz.webapp.control.RequestHandler; import org.ofbiz.webapp.taglib.ContentUrlTag; import org.ofbiz.widget.WidgetContentWorker; +import org.ofbiz.widget.WidgetDataResourceWorker; import org.ofbiz.widget.screen.ModelScreenWidget; import org.ofbiz.widget.screen.ScreenStringRenderer; import org.ofbiz.service.LocalDispatcher; @@ -287,6 +288,7 @@ //Boolean nullThruDatesOnly = new Boolean(false); String mimeTypeId = "text/html"; String expandedContentId = content.getContentId(context); + String expandedDataResourceId = content.getDataResourceId(context); String renderedContent = null; LocalDispatcher dispatcher = (LocalDispatcher) context.get("dispatcher"); GenericDelegator delegator = (GenericDelegator) context.get("delegator"); @@ -294,11 +296,23 @@ // make a new map for content rendering; so our current map does not get clobbered Map contentContext = FastMap.newInstance(); contentContext.putAll(context); - + String dataResourceId = (String)contentContext.get("dataResourceId"); if (Debug.verboseOn()) Debug.logVerbose("expandedContentId:" + expandedContentId, module); try { - if (UtilValidate.isNotEmpty(expandedContentId)) { + if (UtilValidate.isNotEmpty(expandedDataResourceId)) { + if (WidgetDataResourceWorker.dataresourceWorker != null) { + renderedContent = WidgetDataResourceWorker.dataresourceWorker.renderDataResourceAsTextExt(delegator, expandedDataResourceId, contentContext, locale, mimeTypeId, false); + } else { + Debug.logError("Not rendering content, not WidgetDataResourceWorker.dataresourceWorker found.", module); + } + } else if (UtilValidate.isNotEmpty(dataResourceId)) { + if (WidgetDataResourceWorker.dataresourceWorker != null) { + renderedContent = WidgetDataResourceWorker.dataresourceWorker.renderDataResourceAsTextExt(delegator, dataResourceId, contentContext, locale, mimeTypeId, false); + } else { + Debug.logError("Not rendering content, not WidgetDataResourceWorker.dataresourceWorker found.", module); + } + } else if (UtilValidate.isNotEmpty(expandedContentId)) { if (WidgetContentWorker.contentWorker != null) { renderedContent = WidgetContentWorker.contentWorker.renderContentAsTextExt(dispatcher, delegator, expandedContentId, contentContext, locale, mimeTypeId, true); } else { |
Free forum by Nabble | Edit this page |