4 Replies Latest reply on Aug 18, 2009 6:21 PM by tulip

    Issue with special characters in tree node names.

    tulip

      Hi,
      I am using Richfaces tree and have a context menu attached to each tree node. The issue I am facing is that if the tree node names has special characters in it such as apostrophe/single quote (example May '09) or ampersand in it, the context menu does not get displayed.

      I am using Jboss version 3.2.1. Anyone encountered this problem?
      I tried escaping the special character with backslash but it does not seem to work.
      Comments/Suggestions apprreciated.

      Thanks.

        • 1. Re: Issue with special characters in tree node names.
          tulip

          Any inputs on this? Thanks

          • 2. Re: Issue with special characters in tree node names.
            nbelaevski

            Hi,

            Please post minimal page code sample.

            • 3. Re: Issue with special characters in tree node names.
              tulip

              Hi,
              Please see the code snippet attached:

              <a4j:outputPanel id="sharedReportsTreePanel" >
               <rich:tree style="width:230px" switchType="client"
               value="#{reportCenterMgr.sharedReportsTreeNode}" id="sharedReportsNamesTree" var="item" iconExpanded="/images/origImage.gif" iconCollapsed="/images/origImage2.gif"
               bypassUpdates="true" nodeFace="#{item.type}" rendered="#{!reportCenterMgr.projectUnavailable}">
               <rich:treeNode type="#{item.type}" icon="/images/#{item.icon}" iconLeaf="/images/#{item.icon}" highlightedClass="tree-node-selected" selectedClass="tree-node-selected">
               <h:outputText value="#{item.name}" rendered="#{item.type == 8}" style="color: white;"/>
               <a4j:commandLink value="#{item.name}" rendered="#{item.type == 3 or item.type == 55 }" onclick="reportName='#{item.name}';document.getElementById('iFrame').src='#{reportCenterMgr.reportSubmittedPage}' + '?reportName=' + reportName"
               actionListener="#{reportCenterMgr.objectNameClicked}"
               event="onclick" reRender="iFramePanel,titlePanel, myUserInputsPanel, sharedUserInputsPanel, defaultProjectPanel">
               <f:param name="objectName" value="#{item.name}" />
               <f:param name="objectId" value="#{item.id}" />
               <f:param name="objectType" value="#{item.type}" />
               </a4j:commandLink>
               <ui:include src="objectContextMenu.xhtml">
               <ui:param name="treeName" value="shared"/>
               </ui:include>
               </rich:treeNode>
               </rich:tree>
               <h:outputText rendered="#{reportCenterMgr.isSharedReportsEmpty}" value="#{msgs.empty_folder}" style="color: white;"> </h:outputText>
               </a4j:outputPanel>



              objectContextMenu.xhtml
              <f:view contentType="text/html"
               xmlns:ui="http://java.sun.com/jsf/facelets"
               xmlns:f="http://java.sun.com/jsf/core"
               xmlns:h="http://java.sun.com/jsf/html"
               xmlns:c="http://java.sun.com/jstl/core"
               xmlns:a4j="http://richfaces.org/a4j"
               xmlns:rich="http://richfaces.org/rich">
              <rich:contextMenu event="oncontextmenu" attached="true"
               submitMode="ajax">
               <rich:menuItem icon="/images/Search.gif" rendered="#{item.type == 3 or item.type == 55 }" value="#{msgs.view_object}" limitToList="true" labelClass="context-menu-item-label" ajaxSingle="true" onclick="reportName='#{item.name}';document.getElementById('iFrame').src='#{reportCenterMgr.reportSubmittedPage}' + '?reportName=' + reportName"
               actionListener="#{reportCenterMgr.contextMenuClicked}" reRender="titlePanel,iFramePanel,myUserInputsPanel, sharedUserInputsPanel, defaultProjectPanel">
               <ui:include src="params.xhtml">
               <ui:param name="menuItem" value="view"/>
               </ui:include>
               </rich:menuItem>
               <rich:menuItem icon="/images/Remove_2.gif" value="#{msgs.delete_object}" limitToList="true" labelClass="context-menu-item-label" ajaxSingle="true"
               actionListener="#{reportCenterMgr.contextMenuClicked}" reRender="myUserInputsPanel, sharedUserInputsPanel, defaultProjectPanel">
               <ui:include src="params.xhtml">
               <ui:param name="menuItem" value="delete"/>
               </ui:include>
               </rich:menuItem>
              
               <rich:menuItem icon="/images/Edit.gif" rendered="#{item.type == 3 or item.type == 55 }" value="#{msgs.edit_object}" limitToList="true" labelClass="context-menu-item-label" ajaxSingle="true"
               actionListener="#{reportCenterMgr.contextMenuClicked}" reRender="titlePanel,iFramePanel,myUserInputsPanel, sharedUserInputsPanel, defaultProjectPanel">
               <ui:include src="params.xhtml">
               <ui:param name="menuItem" value="edit"/>
               </ui:include>
               </rich:menuItem>
              
               <rich:menuItem icon="/images/Save_As.gif" value="#{msgs.rename_object}" limitToList="true" labelClass="context-menu-item-label" ajaxSingle="true"
               actionListener="#{reportCenterMgr.contextMenuClicked}" reRender="myUserInputsPanel, sharedUserInputsPanel, defaultProjectPanel">
               <ui:include src="params.xhtml">
               <ui:param name="menuItem" value="rename"/>
               </ui:include>
               </rich:menuItem>
              
               <rich:menuItem icon="/images/iconFolder.gif"
               labelClass="context-menu-item-label" ajaxSingle="true"
               actionListener="#{reportCenterMgr.labelContextMenuItemClicked}"
               reRender="myUserInputsPanel, sharedUserInputsPanel, defaultProjectPanel"
               rendered="#{item.name eq 'Published Reports' and treeName eq 'shared'}">
               <b> #{msgs.create_folder}</b>
               <ui:include src="params.xhtml">
               <ui:param name="menuItem" value="createFolder"/>
               </ui:include>
               </rich:menuItem>
              
               <rich:menuSeparator rendered="#{item.type == 3 or item.type == 55 }"/>
               <rich:menuItem icon="/images/Check.gif" rendered="#{item.type == 3 or item.type == 55 }" value="#{msgs.set_default_report}" limitToList="true" labelClass="context-menu-item-label" ajaxSingle="true"
               actionListener="#{reportCenterMgr.contextMenuClicked}" reRender="myUserInputsPanel, sharedUserInputsPanel,defaultProjectPanel">
               <ui:include src="params.xhtml">
               <ui:param name="menuItem" value="setAsDefault"/>
               </ui:include>
               </rich:menuItem>
              
              
              
               </rich:contextMenu>
               </f:view>
              


              • 4. Re: Issue with special characters in tree node names.
                tulip

                Still facing this issue. Anyone has any suggestions on this?