How to write regular expression for NOT to include view name start with '(' in xe:dominoViewListTreeNode
Generally we use expression to include view name like:
<xe:dominoViewListTreeNode filter='All.*' ...>
There is the code:
<xe:navigator
id="navigator1"
xp:key="facet_3"
expandable="false"
>
<xe:this.treeNodes>
<xe:repeatTreeNode
loaded="true"
indexVar="index"
var="crrView"
value="#{javascript:return database.getViews();}"
>
<xe:this.children>
<xe:dominoViewListTreeNode
folders="false"
label="#{javascript:crrView.getName()}"
submitValue="#{javascript:crrView.getName()}"
enabled="true"
filter="^\w+.*"
>
<xe:this.selected><![CDATA[#{javascript:if(context.getSubmittedValue()===null){
crrView.getName().equals("Pending \\By Status");
}
else{
crrView.getName().equals(context.getSubmittedValue());
}}]]></xe:this.selected>
</xe:dominoViewListTreeNode>
</xe:this.children>
</xe:repeatTreeNode>
</xe:this.treeNodes>
<xp:eventHandler
event="onItemClick"
submit="true"
refreshMode="partial"
refreshId="oneuilayout"
>
<xe:this.action>
<xp:executeScript
script="# {javascript:viewScope.viewName = context.getSubmittedValue();}"
>
</xp:executeScript>
</xe:this.action>
</xp:eventHandler>
</xe:navigator>
Any idea!
-MAK
Use filter="[^(]+.*"
for selecting all viewnames which don't start with "(" or filter="\w+.*"
for viewnames which starts with a letter, digit or underscore.
Example for testing:
<xe:navigator id="navigator1">
<xe:this.treeNodes>
<xe:dominoViewListTreeNode var="viewName" folders="false"
enabled="true" filter="[^(]+.*"
href="#{javascript:viewName}" />
</xe:this.treeNodes>
</xe:navigator>