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

    Issue with special characters in tree node names.

    hello All Newbie

      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.

        • 2. Re: Issue with special characters in tree node names.
          Nick Belaevski Master

          Hi,

          Please post minimal page code sample.

          • 3. Re: Issue with special characters in tree node names.
            hello All Newbie

            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.
              hello All Newbie

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