You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by er...@apache.org on 2012/03/30 22:44:28 UTC

svn commit: r1307601 [3/3] - in /ofbiz/branches/20120329_portletWidget/framework: base/src/org/ofbiz/base/util/ common/config/ common/data/ common/entitydef/ common/webcommon/WEB-INF/ common/widget/ images/webapp/images/ webtools/config/ webtools/webap...

Modified: ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java?rev=1307601&r1=1307600&r2=1307601&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java (original)
+++ ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java Fri Mar 30 20:44:26 2012
@@ -45,6 +45,7 @@ import org.ofbiz.base.util.string.Flexib
 import org.ofbiz.entity.Delegator;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
+import org.ofbiz.entity.util.EntityUtil; //#Eam# portletWidget
 import org.ofbiz.widget.ModelWidget;
 import org.ofbiz.widget.ModelWidgetAction;
 import org.ofbiz.widget.WidgetFactory;
@@ -1602,12 +1603,44 @@ public abstract class ModelScreenWidget 
         protected String originalPortalPageId;
         protected String actualPortalPageId;
         protected Boolean usePrivate;
+        //#Bam# portletWidget
+        protected FlexibleStringExpander portalPortletId;
+        protected FlexibleStringExpander portletSeqId;
+        private static final List<String> portletFieldNames = initPortletFieldNames();
+
+        static private List<String> initPortletFieldNames(){
+            List<String> _portletFieldNames = FastList.newInstance();
+            _portletFieldNames.add("screenName");
+            _portletFieldNames.add("screenLocation");
+            _portletFieldNames.add("useScreen");
+            _portletFieldNames.add("useScript");
+            _portletFieldNames.add("scriptName");
+            _portletFieldNames.add("uiLabelLocation");
+            _portletFieldNames.add("formName");
+            _portletFieldNames.add("formLocation");
+            _portletFieldNames.add("pkIdName");
+            _portletFieldNames.add("editAreaDivId");
+            _portletFieldNames.add("subAreaDivId");
+            _portletFieldNames.add("titleLabel");
+            _portletFieldNames.add("useMenu");
+            _portletFieldNames.add("menuName");
+            _portletFieldNames.add("menuLocation");
+            _portletFieldNames.add("helpName");
+            _portletFieldNames.add("editFormName");
+            _portletFieldNames.add("editFormLocation");
+            return _portletFieldNames;
+        }
+        //#Eam# portletWidget
 
         public PortalPage(ModelScreen modelScreen, Element portalPageElement) {
             super(modelScreen, portalPageElement);
             this.idExdr = FlexibleStringExpander.getInstance(portalPageElement.getAttribute("id"));
             this.confModeExdr = FlexibleStringExpander.getInstance(portalPageElement.getAttribute("conf-mode"));
             this.usePrivate = !("false".equals(portalPageElement.getAttribute("use-private")));
+            //#Bam# portletWidget
+            this.portalPortletId = FlexibleStringExpander.getInstance(portalPageElement.getAttribute("portalPortletId"));
+            this.portletSeqId = FlexibleStringExpander.getInstance(portalPageElement.getAttribute("portletSeqId"));
+            //#Eam# portletWidget
         }
 
         @Override
@@ -1617,9 +1650,10 @@ public abstract class ModelScreenWidget 
                 GenericValue portalPage = null;
                 List<GenericValue> portalPageColumns = null;
                 List<GenericValue> portalPagePortlets = null;
-                List<GenericValue> portletAttributes = null;
 
                 String expandedPortalPageId = getId(context);
+                String portalPortletId = this.portalPortletId.expandString(context);//#Eam# portletWidget
+                String portletSeqId = this.portletSeqId.expandString(context);//#Eam# portletWidget
 
                 if (UtilValidate.isNotEmpty(expandedPortalPageId)) {
                     if (usePrivate) {
@@ -1643,6 +1677,45 @@ public abstract class ModelScreenWidget 
                     return;
                 }
 
+                //#Bam# portletWidget
+                if (UtilValidate.isNotEmpty(portalPortletId)) {
+                    GenericValue portletValue = null;
+                    if ( UtilValidate.isNotEmpty(portletSeqId)) {
+                        portletValue = delegator.findByPrimaryKey("PortalPagePortletView", UtilMisc.toMap("portalPageId", actualPortalPageId, "portalPortletId", portalPortletId, "portletSeqId", portletSeqId));
+                    } else {
+                        List<GenericValue> portletValues = delegator.findByAnd("PortalPagePortletView", UtilMisc.toMap("portalPageId", actualPortalPageId, "portalPortletId", portalPortletId));
+                        if (UtilValidate.isNotEmpty(portletValues)) {
+                            portletValue = EntityUtil.getFirst(portletValues);
+                            portletSeqId = portletValue.getString("portletSeqId");
+                        }
+                    }
+                    if ( UtilValidate.isEmpty(portletValue)) {
+                        portletValue = delegator.findByPrimaryKey("PortalPortlet", UtilMisc.toMap("portalPortletId", portalPortletId));
+                    }
+
+                    if (UtilValidate.isNotEmpty(portletValue)) {
+                        //remove from context value which will be initialized by this portlet
+                        for (String portletField : portletFieldNames) {
+                            if (context.containsKey(portletField)) context.put(portletField, null); //remove not works, suppose it's a because it's a stack
+                        }
+                        context.put("portletValue",portletValue);
+                        context.put("portalPageId", actualPortalPageId);
+                        context.put("portletSeqId", portletSeqId);
+                        context.put("portalPortletId", portalPortletId);
+
+                        retrievePortletAttributes(context);
+                        putScreenNameLocationValue(delegator, context, portletValue);
+
+                        // Renders the portalPagePortlet
+                        context.put("includedInPage", "N"); // portletWidget modification
+                        screenStringRenderer.renderPortalPagePortletBegin(writer, context, this, portletValue);
+                        screenStringRenderer.renderPortalPagePortletBody(writer, context, this, portletValue);
+                        screenStringRenderer.renderPortalPagePortletEnd(writer, context, this, portletValue);
+                    }
+                } else {
+                    context.put("includedInPage", "Y"); // portletWidget modification
+                //#Eam# portletWidget
+
                 // Renders the portalPage header
                 screenStringRenderer.renderPortalPageBegin(writer, context, this);
                 
@@ -1693,6 +1766,8 @@ public abstract class ModelScreenWidget 
                         context.put("nextColumnSeqId", nextColumnSeqId);
                        
                         // Get portlet's attributes
+                        //#Bam# portletWidget
+                        /*
                         portletAttributes = delegator.findList("PortletAttribute",
                             EntityCondition.makeCondition(UtilMisc.toMap("portalPageId", portletValue.get("portalPageId"), "portalPortletId", portletValue.get("portalPortletId"), "portletSeqId", portletValue.get("portletSeqId"))),
                             null, null, null, false);
@@ -1701,7 +1776,30 @@ public abstract class ModelScreenWidget 
                             GenericValue attribute = attributesIterator.next();
                             context.put(attribute.getString("attrName"), attribute.getString("attrValue"));
                         }
+                        */
+                        for (String portletField : portletFieldNames) {
+                            if (context.containsKey(portletField))     context.remove(portletField);
+                        }
+                        //if (context.containsKey("areaDivId"))        context.remove("areaDivId"); with id build with portalPageId portalPortletId portletSeqId, it seem, it's no more necessary because always unique
+                        if (context.containsKey("component"))        context.remove("component");
+                        if (context.containsKey("portletLongId"))    context.remove("portletLongId");
+                        if (context.containsKey("portletTypeId"))    context.remove("portletTypeId");
+                        if (context.containsKey("subComponent"))     context.remove("subComponent");
+                        if (context.containsKey("webapp"))           context.remove("webapp");
+                        if (context.containsKey("areaId"))           context.remove("areaId");
+
+                        context.put("portletValue",portletValue);
+                        context.put("portalPageId", portletValue.get("portalPageId"));
+                        context.put("portalPortletId", portletValue.get("portalPortletId"));
+                        context.put("portletSeqId", portletValue.get("portletSeqId"));
+
+                        retrievePortletAttributes(context);
+
+                        ListIterator<GenericValue> attributesIterator = (ListIterator<GenericValue>) context.remove("portletAttributesIterator");
                         
+                        putScreenNameLocationValue(delegator, context, portletValue);
+                        //#Eam# portletWidget
+
                         // Renders the portalPagePortlet
                         screenStringRenderer.renderPortalPagePortletBegin(writer, context, this, portletValue);
                         screenStringRenderer.renderPortalPagePortletBody(writer, context, this, portletValue);
@@ -1725,6 +1823,7 @@ public abstract class ModelScreenWidget 
                 }
                 // Renders the portalPage footer
                 screenStringRenderer.renderPortalPageEnd(writer, context, this);
+              } //#Eam# portletWidget
             } catch (IOException e) {
                 String errMsg = "Error rendering PortalPage with portalPageId [" + getId(context) + "]: " + e.toString();
                 Debug.logError(e, errMsg, module);
@@ -1736,6 +1835,214 @@ public abstract class ModelScreenWidget 
             }
         }
 
+        /**
+         *  update screenName and screenLocation in portletValue with correct value if it's with a portletType or if it's a default value
+         * @param delegator
+         * @param context
+         * @param portletValue
+         * @throws GenericEntityException
+         */
+        private static void putScreenNameLocationValue(Delegator delegator, Map<String,Object> context, GenericValue portletValue) throws GenericEntityException{
+            if (UtilValidate.isNotEmpty(portletValue.get("portletTypeId"))) {
+                //update screen values
+                GenericValue portletType = delegator.findOne("PortletType", true, "portletTypeId", portletValue.get("portletTypeId"));
+                if (UtilValidate.isEmpty(portletType)){
+                    Debug.logError("PortletId = " + portletValue.get("portalPortletId") + " with a not existing portletType, portletTypeId = " + portletValue.get("portletTypeId"), module);
+                } else {
+                    portletValue.put("screenName", portletType.get("screenName"));
+                    portletValue.put("screenLocation", portletType.get("screenLocation"));
+                }
+            } else {
+                if (UtilValidate.isEmpty(portletValue.get("screenName"))){
+                    portletValue.put("screenName", context.get("screenName"));
+                }
+                if (UtilValidate.isEmpty(portletValue.get("screenLocation"))){
+                    portletValue.put("screenLocation", context.get("screenLocation"));
+                }
+            }
+        }
+
+        protected static Map<String,Object> retrievePortletAttributes (Map<String,Object> context) throws GenericEntityException {
+            Delegator delegator = (Delegator) context.get("delegator");
+            String portalPageId = (String) context.get("portalPageId");
+            String portalPortletId = (String) context.get("portalPortletId");
+            GenericValue portletValue = (GenericValue) context.remove("portletValue");
+            if (UtilValidate.isEmpty(portletValue)) {
+                portletValue = delegator.findByPrimaryKey("PortalPortlet", UtilMisc.toMap("portalPortletId", portalPortletId));
+            }
+            String portletSeqId= (String) context.get("portletSeqId");
+
+            List<GenericValue> portletAttributes = delegator.findList("PortletAttribute",
+                    EntityCondition.makeCondition(UtilMisc.toMap("portalPageId", "_NA_", "portalPortletId", portalPortletId, "portletSeqId", "00000")),
+                    null, null, null, false);
+            //Begin addon modification : portletWidget
+
+            //Retrieve attributes from portletValue
+            // portalPortlet field overwrite PortletAttribute coming from portalPageId _NA_
+            if (UtilValidate.isNotEmpty(portletValue)) {
+                for (String portletField : portletFieldNames) {
+                    if (UtilValidate.isNotEmpty(portletValue.get(portletField)))     portletAttributes.add(delegator.makeValidValue("PortletAttribute", UtilMisc.toMap("attrName",portletField,"attrValue", portletValue.get(portletField))));
+                }
+                if (UtilValidate.isNotEmpty(portletValue.get("helpName"))) {
+                    String helpName = (String) portletValue.get("helpName");
+                    if (helpName.startsWith("DETAIL_") && helpName.length()>7) {
+                        helpName = (String) context.get(helpName.substring(7, helpName.length()));
+                    }
+                    portletAttributes.add(delegator.makeValidValue("PortletAttribute", UtilMisc.toMap("attrName","helpName","attrValue", helpName)));
+                }
+            }
+            //End addon modification : portletWidget
+
+            if (UtilValidate.isNotEmpty(portletSeqId)) {
+                List<GenericValue> portalPortletAttributes = delegator.findList("PortletAttribute",
+                        EntityCondition.makeCondition(UtilMisc.toMap("portalPageId", portalPageId, "portalPortletId", portalPortletId, "portletSeqId",portletSeqId)),
+                        null, null, null, false);
+                if (UtilValidate.isNotEmpty(portalPortletAttributes)) {
+                    portletAttributes.addAll(portalPortletAttributes);
+                }
+            }
+            ListIterator<GenericValue> portletAttributesIterator = portletAttributes.listIterator();
+            while (portletAttributesIterator.hasNext()) {
+                GenericValue attribute = portletAttributesIterator.next();
+                context.put(attribute.getString("attrName"), attribute.getString("attrValue"));
+            }
+            if (UtilValidate.isNotEmpty(portletValue.get("portletLongId"))) context.put("portletLongId", portletValue.get("portletLongId"));
+            if (UtilValidate.isNotEmpty(portletValue.get("portletTypeId"))) context.put("portletTypeId", portletValue.get("portletTypeId"));
+            if (UtilValidate.isNotEmpty(portletValue.get("component")))     context.put("component", portletValue.get("component"));
+            if (UtilValidate.isNotEmpty(portletValue.get("subComponent")))  context.put("subComponent", portletValue.get("subComponent"));
+            if (UtilValidate.isNotEmpty(portletValue.get("webapp")))        context.put("webapp", portletValue.get("webapp"));
+
+            // put default value in areaId, use value in attribute (so in context) or in parameters or PP_${portalPageId}${portalPortletId}${portletSeqId}
+            String areaId = (String) context.get("areaId");
+            if (UtilValidate.isEmpty(areaId)) {
+                Map<String, Object> contextParameters = UtilGenerics.checkMap( context.get("parameters"));
+                areaId = (String) contextParameters.get("areaId");
+            }
+            if (UtilValidate.isEmpty(areaId)) {
+                areaId = "PP_"+portalPageId+portalPortletId+portletSeqId;
+            }
+            context.put("currentAreaId", "PP_"+portalPageId+portalPortletId+portletSeqId);
+            context.put("areaId", areaId);
+
+            //Begin addon modification : portletWidget
+            String portletLongId = (String) context.get("portletLongId");
+            if (UtilValidate.isEmpty(portletLongId)) {
+                portletLongId = portalPortletId;
+            }
+            if (UtilValidate.isNotEmpty(portletValue.get("component"))) {
+                if (UtilValidate.isNotEmpty(portletValue) && UtilValidate.isNotEmpty(portletValue.get("screenName"))) {
+                    context.put("screenName", portletValue.get("screenName"));
+                } else {
+                    context.put("screenName", portletLongId);
+                }
+            } 
+
+            // prepare location for screen form menu
+            StringBuffer location = new StringBuffer();
+            StringBuffer uiLabelLocation = new StringBuffer();
+            if (UtilValidate.isNotEmpty(portletValue.get("component"))){
+                location.append("component://").append(portletValue.get("component")).append("/widget/");
+                if (UtilValidate.isNotEmpty(context.get("webapp"))) {
+                    location.append(context.get("webapp")).append("/");
+                }
+                uiLabelLocation.append(location);
+                location.append(context.get("subComponent"));
+            }
+            //End addon modification : portletWidget
+            if (UtilValidate.isNotEmpty(portletValue.get("component"))) {
+                if (UtilValidate.isNotEmpty(portletValue) && UtilValidate.isNotEmpty(portletValue.get("screenLocation"))
+                        && "Y".equals(portletValue.get("useScreen"))) {
+                    context.put("screenLocation",portletValue.get("screenLocation"));
+                } else if ("Y".equals(portletValue.get("useScreen")) ) {
+                    context.put("screenLocation", location +"Screens.xml");
+                }
+            } 
+            else if (UtilValidate.isNotEmpty(portletValue)) {
+                context.put("screenLocation", portletValue.get("screenLocation"));
+            }
+
+            //if (UtilValidate.isEmpty(context.get("areaDivId")))     context.put("areaDivId", "PP_" + portalPageId + portalPortletId + portletSeqId); with id build with portalPageId portalPortletId portletSeqId, it seem, it's no more necessary because always unique
+            if (UtilValidate.isEmpty(context.get("editAreaDivId"))) context.put("editAreaDivId", portletLongId + "_EditArea");
+            if (UtilValidate.isEmpty(context.get("entity")))        context.put("entity", portletLongId);
+            if (UtilValidate.isEmpty(context.get("helpName")))      context.put("helpName", "HELP_" + portalPortletId);
+            if (UtilValidate.isEmpty(context.get("subAreaDivId")))  context.put("subAreaDivId", portletLongId + "_SubArea");
+            if (UtilValidate.isEmpty(context.get("titleLabel")))    context.put("titleLabel", "PageTitle"+portletLongId);
+
+                if (UtilValidate.isNotEmpty(portletValue) && UtilValidate.isNotEmpty(portletValue.get("menuName")) ){
+                    context.put("menuName", portletValue.get("menuName"));
+                } else {
+                    context.put("menuName", portletLongId);
+                }
+
+                if (UtilValidate.isNotEmpty(portletValue.get("portletTypeId"))){
+                    if (UtilValidate.isNotEmpty(portletValue) && UtilValidate.isNotEmpty(portletValue.get("menuLocation"))
+                            && "Y".equals(portletValue.get("useMenu")) ){
+                        context.put("menuLocation", portletValue.get("menuLocation"));
+                    } else if ("Y".equals(portletValue.get("useMenu")) ) {
+                        context.put("menuLocation", location.toString() + "Menus.xml");
+                    }
+                }
+
+            if (UtilValidate.isNotEmpty(portletValue.get("portletTypeId"))){
+                if (UtilValidate.isNotEmpty(portletValue) 
+                        && UtilValidate.isNotEmpty(portletValue.get("scriptName"))
+                        && "Y".equals(portletValue.get("useScript"))  ){
+                    context.put("scriptName", portletValue.get("scriptName"));
+                } else {
+                    StringBuffer scriptName = new StringBuffer();
+                    scriptName.append("component://").append(context.get("component"))
+                                                     .append("/script/org/ofbiz/")
+                                                     .append(context.get("component"))
+                                                     .append("/");
+                    if (UtilValidate.isNotEmpty(context.get("webapp"))) {
+                        scriptName.append(context.get("webapp")).append("/");
+                    }
+                    // test if we should use script, if yes add scriptName in context
+                    if (UtilValidate.isNotEmpty(portletValue) && "Y".equals(portletValue.get("useScript"))) {
+                        context.put("scriptName", scriptName.append(context.get("subComponent")).append("Wactions.xml").append("#").append(portletLongId) );
+                    }
+                }
+                if (UtilValidate.isNotEmpty(portletValue) && UtilValidate.isNotEmpty(portletValue.get("uiLabelLocation")) ){
+                    context.put("uiLabelLocation", portletValue.get("uiLabelLocation"));
+                } else {
+                    uiLabelLocation.append("CommonScreens.xml");
+                    context.put("uiLabelLocation", uiLabelLocation );
+                }
+            }
+            if (UtilValidate.isEmpty(context.get("formName"))) {
+                if (UtilValidate.isNotEmpty(portletValue) && UtilValidate.isNotEmpty(portletValue.get("formName")) ){
+                    context.put("formName", portletValue.get("formName"));
+                } else {
+                    context.put("formName", portletLongId);
+                }
+            }
+            if (UtilValidate.isEmpty(context.get("formLocation"))) {
+                if (UtilValidate.isNotEmpty(portletValue) && UtilValidate.isNotEmpty(portletValue.get("formLocation")) ){
+                    context.put("formLocation", portletValue.get("formLocation"));
+                } else {
+                    context.put("formLocation", location.toString() + "Forms.xml");
+                }
+            }
+
+            if (UtilValidate.isEmpty(context.get("editFormName"))){
+                if (UtilValidate.isNotEmpty(portletValue) && UtilValidate.isNotEmpty(portletValue.get("editFormName")) ){
+                    context.put("editFormName", portletValue.get("editFormName"));
+                } else {
+                    context.put("editFormName", "EditParam_"+portletLongId);
+                }
+            }
+            if (UtilValidate.isEmpty(context.get("editFormLocation"))) {
+                if (UtilValidate.isNotEmpty(portletValue) && UtilValidate.isNotEmpty(portletValue.get("editFormLocation")) ){
+                    context.put("editFormLocation", portletValue.get("editFormLocation"));
+                } else {
+                    context.put("editFormLocation", location.toString() + "Forms.xml");
+                }
+            }
+            //End addon modification : portletWidget
+            context.put("portletAttributesIterator", portletAttributesIterator);
+            return context;
+        }
+
         public String getId(Map<String, Object> context) {
             return this.idExdr.expandString(context);
         }

Modified: ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/text/TextFormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/text/TextFormRenderer.java?rev=1307601&r1=1307600&r2=1307601&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/text/TextFormRenderer.java (original)
+++ ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/text/TextFormRenderer.java Fri Mar 30 20:44:26 2012
@@ -46,6 +46,7 @@ import org.ofbiz.widget.form.ModelFormFi
 import org.ofbiz.widget.form.ModelFormField.RadioField;
 import org.ofbiz.widget.form.ModelFormField.RangeFindField;
 import org.ofbiz.widget.form.ModelFormField.ResetField;
+import org.ofbiz.widget.form.ModelFormField.ShowPortletLink;
 import org.ofbiz.widget.form.ModelFormField.SubmitField;
 import org.ofbiz.widget.form.ModelFormField.TextField;
 import org.ofbiz.widget.form.ModelFormField.TextFindField;
@@ -298,4 +299,9 @@ public class TextFormRenderer implements
 
     public void renderContainerFindField(Appendable writer, Map<String, Object> context, ContainerField containerField) throws IOException {
     }
+
+    @Override
+    public void renderShowPortletLink(Appendable writer, Map<String, Object> context, ShowPortletLink showPortletLink) {
+        // TODO Auto-generated method stub
+    }
 }

Modified: ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/xml/XmlFormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/xml/XmlFormRenderer.java?rev=1307601&r1=1307600&r2=1307601&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/xml/XmlFormRenderer.java (original)
+++ ofbiz/branches/20120329_portletWidget/framework/widget/src/org/ofbiz/widget/xml/XmlFormRenderer.java Fri Mar 30 20:44:26 2012
@@ -46,6 +46,7 @@ import org.ofbiz.widget.form.ModelFormFi
 import org.ofbiz.widget.form.ModelFormField.RadioField;
 import org.ofbiz.widget.form.ModelFormField.RangeFindField;
 import org.ofbiz.widget.form.ModelFormField.ResetField;
+import org.ofbiz.widget.form.ModelFormField.ShowPortletLink;
 import org.ofbiz.widget.form.ModelFormField.SubmitField;
 import org.ofbiz.widget.form.ModelFormField.TextField;
 import org.ofbiz.widget.form.ModelFormField.TextFindField;
@@ -339,4 +340,9 @@ public class XmlFormRenderer implements 
 
     public void renderContainerFindField(Appendable writer, Map<String, Object> context, ContainerField containerField) throws IOException {
     }
+
+    @Override
+    public void renderShowPortletLink(Appendable writer, Map<String, Object> context, ShowPortletLink showPortletLink) {
+        // TODO Auto-generated method stub
+    }
 }

Modified: ofbiz/branches/20120329_portletWidget/framework/widget/templates/htmlFormMacroLibrary.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=1307601&r1=1307600&r2=1307601&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/widget/templates/htmlFormMacroLibrary.ftl (original)
+++ ofbiz/branches/20120329_portletWidget/framework/widget/templates/htmlFormMacroLibrary.ftl Fri Mar 30 20:44:26 2012
@@ -47,6 +47,13 @@ under the License.
     </#if>
 </#macro>
 <#macro renderHyperlinkField></#macro>
+<#macro makeShowPortletString linkStyle id event action target targetArea targetPortletId description parameterForm parameterList collapse>
+<div <#if id?has_content>id="${id}_div"</#if>><a href="javascript:ajaxUpdateArea('${targetArea}','${target}',<#if parameterForm?has_content> jQuery('#${parameterForm}').serialize()<#elseif parameterList?has_content>${parameterList}<#else>'portalPortletId=${targetPortletId}'</#if>); <#if collapse?has_content>toggleParentScreenlet('${collapse}');</#if>">${description}</a></div>
+</#macro>
+<#macro rerenderRefreshPortlet linkStyle event action areaId id formName imgSrc title alternate target appendFormParams description params collapse markSelected>
+<#if id?has_content><div id="${id}_div"></#if>
+<a <#if linkStyle?has_content>class="${linkStyle}"</#if> href='javascript:refrshPortlet("${target}", "${areaId}", "${params}", "${formName}", "${appendFormParams}", "${collapse}", <#if (collapse== "true"  || markSelected=="true" ) && id?has_content>"${id}_div"<#else>""</#if>,"${markSelected}" )' <#if action?has_content && event?has_content> ${event}="${action}"</#if><#if imgSrc?length == 0 && title?has_content> title="${title}"</#if>><#if imgSrc?has_content><img src="${imgSrc}" alt="${alternate}" title="${title}"/></#if>${description}</a><#if id?has_content></div></#if>
+</#macro>
 
 <#macro renderTextField name className alert value textSize maxlength id event action disabled clientAutocomplete ajaxUrl ajaxEnabled mask>
     <#if mask?has_content>
@@ -276,13 +283,15 @@ ${item.description}</span>
 </#list>
 </#macro>
 
-<#macro renderSubmitField buttonType className alert formName title name event action imgSrc confirmation containerId ajaxUrl>
+<#-- <#macro renderSubmitField buttonType className alert formName title name event action imgSrc confirmation containerId ajaxUrl> -->
+<#macro renderSubmitField buttonType className alert formName title name event action imgSrc confirmation containerId ajaxUrl returnParams>
 <#if buttonType=="text-link">
  <a <@renderClass className alert /> href="javascript:document.${formName}.submit()" <#if confirmation?has_content>onclick="return confirm('${confirmation?js_string}');"</#if>><#if title?has_content>${title}</#if> </a>
 <#elseif buttonType=="image">
  <input type="image" src="${imgSrc}" <@renderClass className alert /><#if name?has_content> name="${name}"</#if><#if title?has_content> alt="${title}"</#if><#if event?has_content> ${event}="${action}"</#if> <#if confirmation?has_content>onclick="return confirm('${confirmation?js_string}');"</#if>/>
 <#else>
-<input type="<#if containerId?has_content>button<#else>submit</#if>" <@renderClass className alert /><#if name?exists> name="${name}"</#if><#if title?has_content> value="${title}"</#if><#if event?has_content> ${event}="${action}"</#if><#if containerId?has_content> onclick="<#if confirmation?has_content>if (confirm('${confirmation?js_string}')) </#if>ajaxSubmitFormUpdateAreas('${containerId}', '${ajaxUrl}')"<#else><#if confirmation?has_content> onclick="return confirm('${confirmation?js_string}');"</#if></#if>/></#if>
+<#--<input type="<#if containerId?has_content>button<#else>submit</#if>" <@renderClass className alert /><#if name?exists> name="${name}"</#if><#if title?has_content> value="${title}"</#if><#if event?has_content> ${event}="${action}"</#if><#if containerId?has_content> onclick="<#if confirmation?has_content>if (confirm('${confirmation?js_string}')) </#if>ajaxSubmitFormUpdateAreas('${containerId}', '${ajaxUrl}')"<#else><#if confirmation?has_content> onclick="return confirm('${confirmation?js_string}');"</#if></#if>/></#if>-->
+<input type="<#if containerId?has_content>button<#else>submit</#if>" <@renderClass className alert /><#if name?exists> name="${name}"</#if><#if title?has_content> value="${title}"</#if><#if event?has_content> ${event}="${action}"</#if><#if containerId?has_content> onclick="<#if confirmation?has_content>if (confirm('${confirmation?js_string}')) </#if><#if returnParams?has_content>ajaxSubmitFormUpdateAreasWithReturn('${containerId}', '${ajaxUrl}', ${returnParams})"<#else>ajaxSubmitFormUpdateAreas('${containerId}', '${ajaxUrl}')"</#if><#else><#if confirmation?has_content> onclick="return confirm('${confirmation?js_string}');"</#if></#if>/></#if>
 </#macro>
 
 <#macro renderResetField className alert name title>
@@ -376,7 +385,7 @@ ${item.description}</span>
 </#macro>
 
 <#macro renderFormatItemRowOpen formName itemIndex altRowStyles evenRowStyle oddRowStyle>
-    <tr <#if itemIndex?has_content><#if itemIndex%2==0><#if evenRowStyle?has_content>class="${evenRowStyle}<#if altRowStyles?has_content> ${altRowStyles}</#if>"<#elseif altRowStyles?has_content>class="${altRowStyles}"</#if><#else><#if oddRowStyle?has_content>class="${oddRowStyle}<#if altRowStyles?has_content> ${altRowStyles}</#if>"<#elseif altRowStyles?has_content>class="${altRowStyles}"</#if></#if></#if> >
+    <tr <#if itemIndex?has_content>id="${formName}_row_${itemIndex}" </#if><#if itemIndex?has_content><#if itemIndex%2==0><#if evenRowStyle?has_content>class="${evenRowStyle}<#if altRowStyles?has_content> ${altRowStyles}</#if>"<#elseif altRowStyles?has_content>class="${altRowStyles}"</#if><#else><#if oddRowStyle?has_content>class="${oddRowStyle}<#if altRowStyles?has_content> ${altRowStyles}</#if>"<#elseif altRowStyles?has_content>class="${altRowStyles}"</#if></#if></#if> >
 </#macro>
 <#macro renderFormatItemRowClose formName>
     </tr>

Modified: ofbiz/branches/20120329_portletWidget/framework/widget/templates/htmlScreenMacroLibrary.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/widget/templates/htmlScreenMacroLibrary.ftl?rev=1307601&r1=1307600&r2=1307601&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/widget/templates/htmlScreenMacroLibrary.ftl (original)
+++ ofbiz/branches/20120329_portletWidget/framework/widget/templates/htmlScreenMacroLibrary.ftl Fri Mar 30 20:44:26 2012
@@ -237,10 +237,17 @@ ${menuString}
   </td>
 </#macro>
 
+<#--#Bam# portletWidget -->
+<#--
 <#macro renderPortalPagePortletBegin originalPortalPageId portalPageId portalPortletId portletSeqId prevPortletId="" prevPortletSeqId="" nextPortletId="" nextPortletSeqId="" columnSeqId="" prevColumnSeqId="" nextColumnSeqId="" confMode="false" delPortletHint="Remove this portlet" editAttribute="false" editAttributeHint="Edit portlet parameters">
+-->
+<#macro renderPortalPagePortletBegin originalPortalPageId portalPageId portalPortletId portletSeqId includedInPage prevPortletId="" prevPortletSeqId="" nextPortletId="" nextPortletSeqId="" columnSeqId="" prevColumnSeqId="" nextColumnSeqId="" confMode="false" delPortletHint="Remove this portlet" editAttribute="false" editAttributeHint="Edit portlet parameters">
+<#--#Eam# portletWidget  -->
   <#assign portletKey = portalPageId+portalPortletId+portletSeqId>
   <#assign portletKeyFields = '<input name="portalPageId" value="' + portalPageId + '" type="hidden"/><input name="portalPortletId" value="' + portalPortletId + '" type="hidden"/><input name="portletSeqId" value="' + portletSeqId  + '" type="hidden"/>'>
+  <#if includedInPage=="Y"><#--#Bam# portletWidget -->
   <div id="PP_${portletKey}" name="portalPortlet" class="noClass" portalPageId="${portalPageId}" portalPortletId="${portalPortletId}" columnSeqId="${columnSeqId}" portletSeqId="${portletSeqId}">
+  </#if><#--#Bam# portletWidget -->
     <#if confMode == "true">
       <div class="portlet-config" id="PPCFG_${portletKey}">
         <div class="portlet-config-title-bar">
@@ -314,8 +321,14 @@ ${menuString}
       </#if>
 </#macro>
 
+<#--#Bam# portletWidget
 <#macro renderPortalPagePortletEnd confMode="false">
+-->
+<#macro renderPortalPagePortletEnd includedInPage confMode="false">
+<#--#Bam# portletWidget -->
+  <#if includedInPage=="Y"> <#--#Eam# portletWidget -->
   </div>
+  </#if> <#--#Eam# portletWidget -->
   <#if confMode == "true">
     </div>
   </#if>