New to tomahawk

hi,
i have just started using tomahawk..
i was curious with the validation part of it.
i was wondering whether i can customize my own validation messages!
like i would like to have my own error messages rather than the conventional ones provided by tomahawk.
also can anyone tell me something about faces-config?
when does any jsp refer faces-config to acknowledge the navigation?
would appreciate if anyone can solve this.
thanks in advance.

Ah OK, I now see and understand your problem.
Sorry, I can't give a detailed answer on this as I've never used the t:dataScroller before. How does the generated HTML output look like? You could play a bit with CSS to align out the positioning. Does it maybe help if you add the <h:outputText value="#{PageIndex} of #{PageCount}"/> to the first facet?
E.g.
<f:facet name="previous">
    <h:panelGroup>
        <h:outputText value="Previous Page"/>
        <h:outputText value="#{PageIndex} of #{PageCount}"/>
    </h:panelGroup>
</f:facet>
<f:facet name="next"><h:outputText value="Next Page"/></f:facet>

Similar Messages

  • Trying to use tomahawk and rich faces jar?

    I tried a very simple example to know how to use menu group. These are the following steps:
    1. I opened a web application using Netbeans using JSF as framework.
    2. When I run my application, it worked and welcomeJSF page was displayed.
    3. Then I wanted to a try a sample program. Hence I modified welcomeJSF page as below:
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
    <%@ taglib uri="http://richfaces.org/rich" prefix="rich" %>
    <f:subview id="menuSubView">
        <h:form>
            <t:panelGrid columns="1" width="50">
                <rich:dropDownMenu value="Menu" direction="bottom-right">
                    <rich:menuItem value="Home" action="home"/>
                    <rich:menuSeparator id="menuSeparator1"/>
                    <rich:menuGroup value="test">
                        <rich:menuGroup value="Library ">
                            <rich:menuItem action="regNewLibrary" value="new"/>
                            <rich:menuItem action="regEditLibrary" value="edit"/>
                        </rich:menuGroup>
                       <rich:menuGroup value="Sample ">
                            <rich:menuItem action="regNewSample" value="new"/>
                            <rich:menuItem action="regEditSample" value="edit"/>
                        </rich:menuGroup>
                        <rich:menuGroup value="search ">
                            <rich:menuItem action="regSearchLibrary" value="library"/>
                            <rich:menuItem action="regSearchSample" value="sample"/>
                        </rich:menuGroup>
                    </rich:menuGroup>
                    <rich:menuSeparator id="menuSeparator2"/>
                    <rich:menuGroup value="test2 ">
                        <rich:menuItem action="testSelectLibrary" value="Load Library"/>
                        <rich:menuItem action="testSeqRequest" value="Seq Request"/>
                    </rich:menuGroup>
                    <rich:menuSeparator id="menuSeparator3"/>
                    <rich:menuItem value="Exit" action=" testing"/>
                </rich:dropDownMenu>
            </t:panelGrid>
        </h:form>
    </f:subview>4. I added tomahawk-1.1.6.jar, richfaces-api-3.1.0.jar, richfaces-impl-3.1.0.jar, richfaces-ui-3.1.0.jar into libraries.
    5. When I run my application, I get an error report as below:
    type Status report
    message /test1/
    description The requested resource (/test1/) is not available.Can anyone tell me what went wrong?

    Yes, I could guess my problem now. My web.xml is as below:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
        </context-param>
        <context-param>
            <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
            <param-value>messages</param-value>
        </context-param>
        <context-param>
            <param-name>com.sun.faces.verifyObjects</param-name>
            <param-value>false</param-value>
        </context-param>
        <context-param>
            <param-name>com.sun.faces.validateXml</param-name>
            <param-value>true</param-value>
        </context-param>
        <context-param>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
            <param-value>client</param-value>
        </context-param>
        <servlet>
            <servlet-name>Faces Servlet</servlet-name>
            <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>/faces/*</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>*.html</url-pattern>
        </servlet-mapping>  
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>
                index.jsp
            </welcome-file>
        </welcome-file-list>
    </web-app>When I try to add filter for tomahawk and rich faces as below, I get deployment error.
    <filter>
            <filter-name>extensionsFilter</filter-name>
            <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
            <init-param>
                <description>Set the size limit for uploaded files.
                    Format: 10 - 10 bytes
                    10k - 10 KB
                    10m - 10 MB
                    1g - 1 GB
                </description>
                <param-name>uploadMaxFileSize</param-name>
                <param-value>100m</param-value>
            </init-param>
            <init-param>
                <description>Set the threshold size - files
                    below this limit are stored in memory, files above
                    this limit are stored on disk.
                    Format: 10 - 10 bytes
                    10k - 10 KB
                    10m - 10 MB
                    1g - 1 GB
                </description>
                <param-name>uploadThresholdSize</param-name>
                <param-value>100k</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>extensionsFilter</filter-name>
            <url-pattern>*.html</url-pattern>
        </filter-mapping>
    <filter>
            <display-name>RichFaces Filter</display-name>
            <filter-name>richfaces</filter-name>
            <filter-class>org.ajax4jsf.Filter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>richfaces</filter-name>
            <servlet-name>Faces Servlet</servlet-name>
            <dispatcher>REQUEST</dispatcher>
            <dispatcher>FORWARD</dispatcher>
            <dispatcher>INCLUDE</dispatcher>
        </filter-mapping>Anything wrong in the above code?

  • How to click on h:datatable and open a new page

    Hi,
    I'm new to JSF. I have a basic example with JSF h:datatable which displays data. When I click on the table row new page is opened and an argument s passed via the http header:
    Datatable:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core">
        <head>
            <title>test</title>
            <script type="text/javascript">
                function addOnclickToDatatableRows() {
                    //gets all the generated rows in the html table
                    var trs = document.getElementById('myForm:dataTable').getElementsByTagName('tbody')[0]
                    .getElementsByTagName('tr');
                    //on every row, add onclick function (this is what you're looking for)
                    for (var i = 0; trs.length > i; i++) {
                        trs.onclick = new Function("rowOnclick(this)");
    function rowOnclick(tr) {
    // var childNodes = tr.childNodes;
    // for(var i = 0; childNodes.length > i; i++) {
    var elements = tr.cells[0].childNodes;
    for(var i = 0; elements.length > i; i++) {
    if ((typeof elements[i].id !== "undefined") &amp;&amp;
    (elements[i].id.indexOf("lnkHidden") > -1)) {
    //opne in a new window// window.open(elements[i].href);
    location.href=elements[i].href
    break;
    return false;
    </script>
    </head>
    <body onload="addOnclickToDatatableRows();">
    <h:form id="myForm">
    <h1>Click on table row example</h1>
    <h:dataTable id="dataTable" var="data" value="#{datatableBean.lstData}" border="1">
    <h:column>
    <f:facet name="header">
    <h:outputText value="ID" />
    </f:facet>
    <h:outputText value="#{data.id}" />
    <h:outputLink id="lnkHidden" value="AnotherPage.xhtml"
    style="display:none">
    <f:param name="id" value="#{data.id}" />
    </h:outputLink>
    </h:column>
    <h:column>
    <f:facet name="header">
    <h:outputText value="Value1" />
    </f:facet>
    <h:outputText value="#{data.value}" />
    </h:column>
    <h:column>
    <f:facet name="header">
    <h:outputText value="Value2" />
    </f:facet>
    <h:outputText value="#{data.value}" />
    </h:column>
    </h:dataTable>
    </h:form>
    </body>
    </html>
    Managed bean:package edu.home;
    import edu.home.model.Data;
    import java.util.ArrayList;
    import java.util.List;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.ViewScoped;
    @ManagedBean
    @ViewScoped
    public class DatatableBean {
    private List<Data> lstData;
    * Creates a new instance of datatableBean
    public DatatableBean() {
    lstData = new ArrayList<Data>();
    lstData.add(new Data(1, "Hello World"));
    lstData.add(new Data(2, "Hello 123"));
    lstData.add(new Data(3, "Hello abv"));
    lstData.add(new Data(4, "Hello qaz"));
    * @return the lstData
    public List<Data> getLstData() {
    return lstData;
    * @param lstData the lstData to set
    public void setLstData(List<Data> lstData) {
    this.lstData = lstData;
    The Java object:package edu.home.model;
    public class Data {
    private int id;
    private String value;
    public Data(int id, String value) {
    this.id = id;
    this.value = value;
    * @return the id
    public int getId() {
    return id;
    * @param id the id to set
    public void setId(int id) {
    this.id = id;
    * @return the value
    public String getValue() {
    return value;
    * @param value the value to set
    public void setValue(String value) {
    this.value = value;
    The page which is opened after the row is clicked:<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html">
    <head>
    <title>TODO supply a title</title>
    </head>
    <body>
    <h1>This is another page</h1>
    <h:panelGrid columns="2">
    <h:outputText value="Selected ID" />
    <h:outputText value="#{anotherPageBean.id}" />
    </h:panelGrid>
    </body>
    </html>
    The managed bean of the opened page:package edu.home;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.RequestScoped;
    import javax.faces.context.FacesContext;
    @ManagedBean
    @RequestScoped
    public class AnotherPageBean {
    private int id;
    * Creates a new instance of AnotherPageBean
    public AnotherPageBean() {
    try {
    this.id = Integer.parseInt((String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"));
    catch (Exception e) {
    this.id = 0;
    * @return the id
    public int getId() {
    return id;
    * @param id the id to set
    public void setId(int id) {
    this.id = id;
    My question is how I can pass the argument into the background, without using the http header? Can you help me to implement this example?
    Best Wishes
    Peter
    Edited by: 932633 on May 7, 2012 3:18 PM
    Edited by: 932633 on May 7, 2012 3:18 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    EJP wrote:
    And why all the futzing around in Javascript? Why not just use &lt;a&gt; or <h:outputLink> in the normal way? What value are you trying to add here?
    I'm new to JSF.OP answered that already. I guess the OP really wants to turn a table row into something clickable, a link won't suffice then. Basic JSF tags don't support tagging event handlers to individual rows/columns as far as I know.
    @OP: you should really check out extension frameworks like Primefaces which have more advanced datatable implementations. Check out this for example:
    http://www.primefaces.org/showcase/ui/datatableRowSelectionInstant.jsf
    There is also Richfaces, Icefaces, Tomahawk. Probably using any of these extension frameworks you hardly ever have to write manual javascript.

  • JSF Visual Editor does not work with Tomahawk 1.1.3

    hi,
    i am using JDeveloper 10.1.3.0.4 (SU4) with tomahawk 1.1.3 and myfaces-core 1.1.3.
    All Tomahawk components that need the extensions filter to be rendered properly cannot be displayed
    in the UI Designer anymore (e.g. Calendar). More painfully: all compontents in the container that comes after the component
    that failed rendering will not be rendered too.
    I have enabled JSP Visual Editor Preferendes 'Show Design Time Messages in Log' and got the following
    exception:
    Error exercising tag : h:panelGrid
    java.lang.IllegalStateException: ExtensionsFilter not correctly configured. JSF mapping missing. JSF pages not covered. Please see: http://myfaces.apache.org/tomahawk/extensionsFilter.html
         at org.apache.myfaces.renderkit.html.util.AddResourceFactory.throwExtensionsFilterMissing(AddResourceFactory.java:371)
         at org.apache.myfaces.renderkit.html.util.AddResourceFactory.checkEnvironment(AddResourceFactory.java:333)
         at org.apache.myfaces.renderkit.html.util.AddResourceFactory.getInstance(AddResourceFactory.java:288)
    But the ExtensionsFilter is configured correctly - all works fine when running the page.
    A little help was to disable the ExtensionsFilter Check in web.xml
    <context-param>
    <param-name>org.apache.myfaces.CHECK_EXTENSIONS_FILTER</param-name>
    <param-value>false</param-value>
    </context-param>
    So only the components that need the extensions filter will not be rendered - others will not be affected.
    But this is not really satisfying (btw. all worked fine with myfaces 1.1.1)
    Has anyone else got the same expirience?
    thanks

    hi,
    to work with myfaces-1.1.1 and the newer versions in jdeveloper i have changed the tlib-versionS for myfaces-impl-1.1.3 and tomahawk-1.1.3 so that they differ from the 1.1.1 libs.
    then i registered the JSP libraries tomahawk.tld from tomahawk-1.1.3.jar, myfaces_html.tld and myfaces_core.tld from myfaces-impl-1.1.3.jar
    then i have created a user library containing myfaces-api-1.1.3.jar and myfaces-impl-1.1.3.jar
    on a new created JSF i allways have to manually remove the jsf-impl.jar from WEB-INF/lib directory because it conflicts with myfaces.
    i hope this helps

  • Tomahawk t:inputDate problem in IE

    I am using t:inputDate with popupCalendar attribute set to "true". It works perfectly in Firefox but the calendar can't popup in IE. Would anyone please help me? Thanks very much!
    Note: I have already added extension filters and I'm using tomahawk version 1.1.5
    Here is my JSP source code:
    <html>
         <head>
              <title>Stock Management System</title>
         </head>
         <body>
              <f:view>
                   <h:form>
                        <t:outputText value="Welcome "/>
                        <t:outputText value="#{account.engName}!"/>
                        <p>
                        <t:panelGrid columns="3">
                             <t:commandLink tabindex="100" value="Save" action="#{transactionHandler.insert}"/>
                             <t:commandLink tabindex="101" value="Cancel" action="main" immediate="true"/>
                             <h:outputLink tabindex="102" value="#{facesContext.externalContext.request.contextPath}/pages/logout.jsp">
                                  <t:outputText value="Logout"/>
                             </h:outputLink>
                        </t:panelGrid>
                        <p>
                        <t:panelGrid id="main" columns="3">
                             <t:outputText value="Buy / Sell"/>
                             <t:selectOneMenu tabindex="1" id="action" value="#{transaction.action}" required="true">
                                  <f:selectItem itemValue="B" itemLabel="Buy"/>
                                  <f:selectItem itemValue="S" itemLabel="Sell"/>
                             </t:selectOneMenu>
                             <t:message for="action"/>
                             <t:outputText value="Date"/>
                             <t:inputDate id="date" type="date" popupCalendar="true" value="#{transaction.date}"/>
                             <t:message for="date"/>
                             <t:outputText value="Stock Code"/>
                             <t:inputText tabindex="5" id="stockCd" value="#{transaction.stockCd}" size="4" dir="RTL" required="true">
                                  <f:validateLongRange maximum="9999" minimum="1"/>
                             </t:inputText>
                             <t:message for="stockCd"/>
                             <t:outputText value="Quantity" />
                             <t:inputText tabindex="6" id="qty" value="#{transaction.qty}" size="8" dir="RTL" required="true">
                                  <f:validateDoubleRange minimum="0"/>
                             </t:inputText>
                             <t:message for="qty"/>
                             <t:outputText value="Unit Price" />
                             <t:inputText tabindex="7" id="unitPrice" value="#{transaction.unitPrice}" size="8" dir="RTL" required="true">
                                  <f:convertNumber pattern="$#,##0.000"/>
                                  <f:validateDoubleRange minimum="0"/>
                             </t:inputText>
                             <t:message for="unitPrice"/>
                             <t:outputText value="Brokerage" />
                             <t:inputText tabindex="8" id="brokerage" value="#{transaction.brokerage}" size="8" dir="RTL">
                                  <f:convertNumber pattern="$#,##0.00"/>
                                  <f:validateDoubleRange minimum="0"/>
                             </t:inputText>
                             <t:message for="brokerage"/>
                             <t:outputText value="Levy Fee" />
                             <t:inputText tabindex="9" id="levy" value="#{transaction.levy}" size="8" dir="RTL">
                                  <f:convertNumber pattern="$#,##0.00"/>
                                  <f:validateDoubleRange minimum="0"/>
                             </t:inputText>
                             <t:message for="levy"/>
                             <t:outputText value="Stamp Duty" />
                             <t:inputText tabindex="10" id="stampDuty" value="#{transaction.stampDuty}" size="8" dir="RTL">
                                  <f:convertNumber pattern="$#,##0.00"/>
                                  <f:validateDoubleRange minimum="0"/>
                             </t:inputText>
                             <t:message for="stampDuty"/>
                             <t:outputText value="Trading Fee" />
                             <t:inputText tabindex="11" id="tradingFee" value="#{transaction.tradingFee}" size="8" dir="RTL">
                                  <f:convertNumber pattern="$#,##0.00"/>
                                  <f:validateDoubleRange minimum="0"/>
                             </t:inputText>
                             <t:message for="tradingFee"/>
                             <t:outputText value="Investment Compensation Levy" />
                             <t:inputText tabindex="12" id="invCompLevy" value="#{transaction.invCompLevy}" size="8" dir="RTL">
                                  <f:convertNumber pattern="$#,##0.00"/>
                                  <f:validateDoubleRange minimum="0"/>
                             </t:inputText>
                             <t:message for="invCompLevy"/>
                             <t:outputText value="Handling Charge" />
                             <t:inputText tabindex="13" id="handlingChrg" value="#{transaction.handlingCharge}" size="8" dir="RTL">
                                  <f:convertNumber pattern="$#,##0.00"/>
                                  <f:validateDoubleRange minimum="0"/>
                             </t:inputText>
                             <t:message for="handlingChrg"/>
                             <t:outputText value="Deposit Charge" />
                             <t:inputText tabindex="14" id="depositChrg" value="#{transaction.depositCharge}" size="8" dir="RTL">
                                  <f:convertNumber pattern="$#,##0.00"/>
                                  <f:validateDoubleRange minimum="0"/>
                             </t:inputText>
                             <t:message for="depositChrg"/>
                        </t:panelGrid>
                   </h:form>
              </f:view>
         </body>     
    </html>
    Here is the generated HTML results:
    <html>
         <head>
    <link rel="stylesheet" href="/Stock/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/11796022/calendar.HtmlCalendarRenderer/WH/theme.css" type="text/css" />
    <link rel="stylesheet" href="/Stock/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/11796022/calendar.HtmlCalendarRenderer/DB/theme.css" type="text/css" />
    <script type="text/javascript" src="/Stock/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/11796022/prototype.PrototypeResourceLoader/prototype.js"><!--
    //--></script>
    <script type="text/javascript" src="/Stock/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/11796022/calendar.HtmlCalendarRenderer/date.js"><!--
    //--></script>
    <script type="text/javascript" src="/Stock/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/11796022/calendar.HtmlCalendarRenderer/popcalendar.js"><!--
    //--></script>
              <title>Stock Management System</title>
         </head>
         <body>
                   <form id="_idJsp0" name="_idJsp0" method="post" action="/Stock/pages/add_transaction.jsf" enctype="application/x-www-form-urlencoded">
                        Welcome
                        Tsang Shiu Ching!
                        <p>
                        <table><tbody><tr><td><script type="text/javascript"><!--
         function oamSetHiddenInput(formname, name, value)
              var form = document.forms[formname];
              if(typeof form.elements[name]=='undefined')
                   var newInput = document.createElement('input');
                   newInput.setAttribute('type','hidden');
                   newInput.setAttribute('name',name);
                   newInput.setAttribute('value',value);
                   form.appendChild(newInput);
              else
                   form.elements[name].value=value;
         function oamClearHiddenInput(formname, name, value)
              var form = document.forms[formname];
              if(typeof form.elements[name]!='undefined')
                   form.elements[name].value=null;
         function oamSubmitForm(formName, linkId, target, params)
              var clearFn = 'clearFormHiddenParams_'+formName.replace(/-/g, '\$:').replace(/:/g,'_');
              if(typeof eval('window.'+clearFn)!='undefined')
                   eval('window.'+clearFn+'(formName)');
              if(typeof window.getScrolling!='undefined')
                   oamSetHiddenInput(formName,'autoScroll',getScrolling());
              var oldTarget = '';
              if((typeof target!='undefined') && target != null)
                   oldTarget=document.forms[formName].target;
                   document.forms[formName].target=target;
              if((typeof params!='undefined') && params != null)
                   for(var i=0; i<params.length; i++)
                        oamSetHiddenInput(formName,params[0], params[i][1]);
              oamSetHiddenInput(formName,formName +':'+'_idcl',linkId);
              if(document.forms[formName].onsubmit)
                   var result=document.forms[formName].onsubmit();
                   if((typeof result=='undefined')||result)
                        document.forms[formName].submit();
              else
                   document.forms[formName].submit();
              if(oldTarget==null) oldTarget='';
              document.forms[formName].target=oldTarget;
              if((typeof params!='undefined') && params != null)
                   for(var i=0; i<params.length; i++)
                        oamClearHiddenInput(formName,params[i][0], params[i][1]);
              oamClearHiddenInput(formName,formName +':'+'_idcl',linkId);return false;
    //--></script>Save
    <input type="hidden" name="autoScroll" />
    </td><td>Cancel</td><td><a id="_idJsp0:_idJsp6" name="_idJsp0:_idJsp6" href="/Stock/pages/logout.jsp" tabindex="102">Logout</a></td></tr>
    </tbody></table>
                        <p>
                        <table id="_idJsp0:main"><tbody><tr><td>Buy / Sell</td><td><select id="_idJsp0:action" name="_idJsp0:action" size="1" tabindex="1">     <option value="B">Buy</option>     <option value="S">Sell</option></select></td><td></td></tr>
    <tr><td>Date</td><td>
    <span id="_idJsp0:date"><input id="_idJsp0:date.day" name="_idJsp0:date.day" size="2" maxlength="2" /><select id="_idJsp0:date.month" name="_idJsp0:date.month" size="1"><option value="-1" selected="selected"></option>          <option value="1">&#19968;&#26376;</option>          <option value="2">&#20108;&#26376;</option>          <option value="3">&#19977;&#26376;</option>          <option value="4">&#22235;&#26376;</option>          <option value="5">&#20116;&#26376;</option>          <option value="6">&#20845;&#26376;</option>          <option value="7">&#19971;&#26376;</option>          <option value="8">&#20843;&#26376;</option>          <option value="9">&#20061;&#26376;</option>          <option value="10">&#21313;&#26376;</option>          <option value="11">&#21313;&#19968;&#26376;</option>          <option value="12">&#21313;&#20108;&#26376;</option></select><input id="_idJsp0:date.year" name="_idJsp0:date.year" size="4" maxlength="4" /><span id="_idJsp0:dateSpan"></span><script type="text/javascript"><!--
    var _5FidJsp0_3AdateCalendarVar=new org_apache_myfaces_PopupCalendar();
    _5FidJsp0_3AdateCalendarVar.initData.imgDir = "/Stock/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/11796022/calendar.HtmlCalendarRenderer/DB/";
    _5FidJsp0_3AdateCalendarVar.initData.monthName = new Array("\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708");
    _5FidJsp0_3AdateCalendarVar.initData.dayName = new Array("\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D");
    _5FidJsp0_3AdateCalendarVar.initData.startAt = 0;
    _5FidJsp0_3AdateCalendarVar.dateFormatSymbols.weekdays = new Array("\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D");
    _5FidJsp0_3AdateCalendarVar.dateFormatSymbols.shortWeekdays = new Array("\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D");
    _5FidJsp0_3AdateCalendarVar.dateFormatSymbols.shortMonths = new Array("1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708");
    _5FidJsp0_3AdateCalendarVar.dateFormatSymbols.months = new Array("\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708");
    _5FidJsp0_3AdateCalendarVar.dateFormatSymbols.eras = new Array("\u897F\u5143\u524D","\u897F\u5143");
    _5FidJsp0_3AdateCalendarVar.dateFormatSymbols.ampms = new Array("\u4E0A\u5348","\u4E0B\u5348");
    _5FidJsp0_3AdateCalendarVar.init(document.getElementById('_idJsp0:dateSpan'));
    //--></script><input type="button" onclick="_5FidJsp0_3AdateCalendarVar._popUpCalendarForInputDate('_idJsp0:date','yy'&#24180;'M'&#26376;'d'&#26085;'');" value="..." /></span></td><td></td></tr>
    <tr><td>Stock Code</td><td><input id="_idJsp0:stockCd" name="_idJsp0:stockCd" type="text" value="0" size="4" dir="RTL" tabindex="5" /></td><td></td></tr>
    <tr><td>Quantity</td><td><input id="_idJsp0:qty" name="_idJsp0:qty" type="text" value="0.0" size="8" dir="RTL" tabindex="6" /></td><td></td></tr>
    <tr><td>Unit Price</td><td><input id="_idJsp0:unitPrice" name="_idJsp0:unitPrice" type="text" value="$0.000" size="8" dir="RTL" tabindex="7" /></td><td></td></tr>
    <tr><td>Brokerage</td><td><input id="_idJsp0:brokerage" name="_idJsp0:brokerage" type="text" value="$0.00" size="8" dir="RTL" tabindex="8" /></td><td></td></tr>
    <tr><td>Levy Fee</td><td><input id="_idJsp0:levy" name="_idJsp0:levy" type="text" value="$0.00" size="8" dir="RTL" tabindex="9" /></td><td></td></tr>
    <tr><td>Stamp Duty</td><td><input id="_idJsp0:stampDuty" name="_idJsp0:stampDuty" type="text" value="$0.00" size="8" dir="RTL" tabindex="10" /></td><td></td></tr>
    <tr><td>Trading Fee</td><td><input id="_idJsp0:tradingFee" name="_idJsp0:tradingFee" type="text" value="$0.00" size="8" dir="RTL" tabindex="11" /></td><td></td></tr>
    <tr><td>Investment Compensation Levy</td><td><input id="_idJsp0:invCompLevy" name="_idJsp0:invCompLevy" type="text" value="$0.00" size="8" dir="RTL" tabindex="12" /></td><td></td></tr>
    <tr><td>Handling Charge</td><td><input id="_idJsp0:handlingChrg" name="_idJsp0:handlingChrg" type="text" value="$0.00" size="8" dir="RTL" tabindex="13" /></td><td></td></tr>
    <tr><td>Deposit Charge</td><td><input id="_idJsp0:depositChrg" name="_idJsp0:depositChrg" type="text" value="$0.00" size="8" dir="RTL" tabindex="14" /></td><td></td></tr>
    </tbody></table>
                   <input type="hidden" name="_idJsp0_SUBMIT" value="1" /><input type="hidden" name="_idJsp0:_link_hidden_" /><input type="hidden" name="_idJsp0:_idcl" /><script type="text/javascript"><!--
         function clear__5FidJsp0()
              clearFormHiddenParams__idJsp0('_idJsp0');
         function clearFormHiddenParams__idJsp0(currFormName)
              var f = document.forms['_idJsp0'];
              f.elements['_idJsp0:_link_hidden_'].value='';
              f.elements['_idJsp0:_idcl'].value='';
              f.target='';
         clearFormHiddenParams__idJsp0();
    //--></script><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="rO0ABXVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAN0AAIxM3B0ABovcGFnZXMvYWRkX3RyYW5zYWN0aW9uLmpzcA==" /></form>
         <!-- MYFACES JAVASCRIPT -->
    <script type="text/javascript"><!--
         function getScrolling()
              var x = 0; var y = 0;if (self.pageXOffset || self.pageYOffset)
                   x = self.pageXOffset;
                   y = self.pageYOffset;
              else if ((document.documentElement && document.documentElement.scrollLeft)||(document.documentElement && document.documentElement.scrollTop))
                   x = document.documentElement.scrollLeft;
                   y = document.documentElement.scrollTop;
              else if (document.body)
                   x = document.body.scrollLeft;
                   y = document.body.scrollTop;
              return x + "," + y;
    //--></script>
    </body>     
    </html>

    i am having the same problem
    I have a page with three use of input date tomahawk
    2 of them sometimes work as expected (i.e. the calendar appear beside the icon), 1 of them never work (the calendar shows up like 1/2 screen below the icon)

  • Navigation issue using jsf, tiles, tomahawk  :loosing faces context

    Hi all,
    I enhanced my webapp using tomahawks jscookmenu.
    Triggering 1 menuItem the wanted pages displays correctly but the next click anywhere in the application shows this error:
    org.apache.jasper.JasperException: javax.faces.FacesException: Faces context not found. getResponseWriter will fail. Check if the FacesServlet has been initialized at all in your web.xml configuration fileand if you are accessing your jsf-pages through the correct mapping. E.g.: if your FacesServlet is mapped to  *.jsf (with the <servlet-mapping>-element), you need to access your pages as 'sample.jsf'. If you tried to access 'sample.jsp', you'd get this error-message.The web config is like that:
    <?xml version="1.0"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">
         <context-param>
              <description>Tiles MyFaces Config</description>
              <param-name>tiles-definitions</param-name>
              <param-value>/WEB-INF/tiles.xml</param-value>
         </context-param>
         <context-param> 
              <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
              <param-value>.jsp</param-value>
         </context-param>
         <context-param>
              <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
              <param-value>server</param-value>
         </context-param>
         <context-param>
              <param-name>javax.faces.PARTIAL_STATE_SAVING_METHOD</param-name>
              <param-value>off</param-value>
         </context-param>
         <!-- context-params mafaces -->
         <context-param>
              <param-name>org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS</param-name>
              <param-value>true</param-value>
         </context-param>
         <context-param>
              <param-name>org.apache.myfaces.RENDER_VIEWSTATE_ID</param-name>
              <param-value>true</param-value>
         </context-param>
         <context-param>
              <param-name>org.apache.myfaces.STRICT_XHTML_LINKS</param-name>
              <param-value>true</param-value>
         </context-param>
         <context-param>
              <param-name>org.apache.myfaces.CONFIG_REFRESH_PERIOD</param-name>
              <param-value>this is a bug in myfaces</param-value>
         </context-param>
         <context-param>
              <param-name>org.apache.myfaces.ADD_RESOURCE_CLASS</param-name>
              <param-value>org.apache.myfaces.renderkit.html.util.DefaultAddResource</param-value>
         </context-param>
         <context-param>
              <param-name>org.apache.myfaces.RESOURCE_VIRTUAL_PATH</param-name>
              <param-value>/faces/myFacesExtensionResource</param-value>
         </context-param>
         <context-param>
              <param-name>org.apache.myfaces.CHECK_EXTENSIONS_FILTER</param-name>
              <param-value>true</param-value>
         </context-param>
         <context-param>
              <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
              <param-value>true</param-value>
         </context-param>
         <context-param>
              <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
              <param-value>true</param-value>
         </context-param>
         <context-param>
              <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
              <param-value>true</param-value>
         </context-param>
         <context-param>
              <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
              <param-value>false</param-value>
         </context-param>
         <!-- StartupServletContextListener -->
         <listener>
              <listener-class>
                   org.apache.myfaces.webapp.StartupServletContextListener
              </listener-class>
         </listener>
         <!-- Faces MyFacesExtensionsFilter -->
         <filter>
              <filter-name>MyFacesExtensionsFilter</filter-name>
              <filter-class>
                   org.apache.myfaces.webapp.filter.ExtensionsFilter
              </filter-class>
              <init-param>
                   <param-name>uploadMaxFileSize</param-name>
                   <param-value>1m</param-value>
              </init-param>
         </filter>
         <filter-mapping>
              <filter-name>MyFacesExtensionsFilter</filter-name>
              <url-pattern>/faces/*</url-pattern>
         </filter-mapping>
         <filter-mapping>
              <filter-name>MyFacesExtensionsFilter</filter-name>
              <url-pattern>*.jsf</url-pattern>
         </filter-mapping>
         <!-- Faces Servlet -->
         <servlet>
              <servlet-name>Faces Servlet</servlet-name>
              <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
              <load-on-startup>1</load-on-startup>
         </servlet>
         <!-- Faces Servlet Mapping -->
         <servlet-mapping>
              <servlet-name>Faces Servlet</servlet-name>
              <url-pattern>*.jsf</url-pattern>
         </servlet-mapping>
         <welcome-file-list>
              <welcome-file>index.jsp</welcome-file>
         </welcome-file-list>
         <servlet>
              <servlet-name>imageServlet</servlet-name>
              <servlet-class>my.com.xplorer.gui.v.ImageServlet</servlet-class>
         </servlet>
         <servlet-mapping>
              <servlet-name>imageServlet</servlet-name>
              <url-pattern>/image/*</url-pattern>
         </servlet-mapping>
    </web-app>So I lost the faces context using the jscookmenu, I believe.
    My webapp uses tiles, and there is 2 navigation possibilities: tomahawaks jscookmenu and tomahawaks commandNavigation.
    Latter one runs ok, I do use
    <t:panelNavigation id="nav" styleClass="navigation"
         itemClass="navitem" separatorClass="navseparator" 
         activeItemClass="navitem_active" openItemClass="navitem_open">
         <t:commandNavigation action="#{newsHandler.userRequest}" value="#{newsHandler.rss_source_name[0]}">
              <f:param name="navigator"  value="/jsf/news.jsp" />
         </t:commandNavigation>
    </t:panelNavigation>for this kind of navigation I do not use any navigation rules in faces config. To dynamically include the desired faces page I do that:
    <%
         String s = (String)request.getParameter("navigator");
         if (s == null || s.length() == 0 ) {
              s =  "/jsf/explorer.jsp";
    %>
    <jsp:include page="<%=s %>" />That does work.
    Now like I said I did enhance the app by adding tomahawks jscookmenu.
    Therefore I use the following in another tile:
    <t:jscookMenu layout="hbr" theme="ThemeOffice" styleLocation="resources/css">
              <%/* Availaible jscookMenu themes: ThemeIE, ThemeMiniBlack, ThemeOffice, ThemePanel
                 Availaible jscookMenu layout: hbr, hbl, hur, hul, vbr, vbl, vur, vul
                 respect to Heng Yuan http://www.cs.ucla.edu/~heng/JSCookMenu
            */%>
      <t:navigationMenuItem id="nav_0" itemLabel="#{localz.Xplorer}" action="Xplorer" />
    </t:jscookMenu>For this kind of navigation I tried to use navigation rules and the following show the config:
         <navigation-rule>
           <from-view-id>/jsf/*</from-view-id>
            <navigation-case>
                <from-outcome>Xplorer</from-outcome>
                <to-view-id>/jsf/tileMain.jsp?navigator=/jsf/explorer.jsp</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>Tabs</from-outcome>
                <to-view-id>/jsf/tileMain.jsp?navigator=/jsf/tab.jsp</to-view-id>
            </navigation-case>
         </navigation-rule>That works for the first click. The desired page is shown. The nect click anywhere in the app then show the mentioned error.
    Using tiles I use this view-handler
    <view-handler>org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl</view-handler>One question is: can I use another view-handler on top of the above one? So I could extend com.sun.facelets.FaceletViewHandler and try my luck with this? Or is the solution pointed out just a millisecond from being ok, I just don�t see it?
    Maybe you need to know a bit more on how I use tiles:
    That is the page I start with. It inserts the tile shown underneath.
    <f:view locale="#{userLocale}">
         <f:loadBundle var="localz" basename="my.com.xplorer.gui.v.Lokalization" />
         <f:loadBundle var="bundle" basename="my.com.xplorer.gui.v.messages" />
         <f:subview id="tileMain">
              <h:form id="myJsfForm" styleClass="standard">
                        <tiles:insert definition="template" flush="false" />
              </h:form>
         </f:subview>
         <h:messages />
    </f:view>
    </html>The foolowing is the tile structure.
    The bodi tile is the dynamic part. Above you see that I dynamically load the pages into it.
    <t:htmlTag value="div" styleClass="pageLayout">
         <h:panelGrid columns="2" align="center" styleClass="pageContent">
              <f:facet name="header">
                   <f:subview id="header">
                        <tiles:insert attribute="header" flush="false" />
                   </f:subview>
              </f:facet>
              <t:htmlTag value="div" styleClass="pageMenu">
                   <f:subview id="menu">
                        <tiles:insert attribute="menu" flush="false" />
                   </f:subview>
              </t:htmlTag>
              <t:htmlTag value="div" styleClass="pageContentWoMenu">
                   <f:subview id="bodi">
                        <tiles:insert attribute="bodi" flush="false" />
                   </f:subview>
              </t:htmlTag>
              <f:facet name="footer">
                   <f:subview id="footer">
                        <tiles:insert attribute="footer" flush="false" />
                   </f:subview>
              </f:facet>
         </h:panelGrid>
    </t:htmlTag>Maybe you also need to know the tiles config?
    <tiles-definitions>
       <definition name="template" path="/jsf/tileTemplate.jsp">
              <put name="header"  value="/jsf/header.jsp"/>
          <put name="menu"    value="/jsf/menu.jsp"/>
          <put name="bodi"    value="/jsf/bodi.jsp"/>
          <put name="footer"    value="/jsf/footer.jsp"/>
       </definition>
       <definition name="/jsf/news.tiles" extends="template">
              <put name="bodi"  value="/jsf/news.jsp"/>
       </definition>
       <definition name="/jsf/explorer.tiles" extends="template">
              <put name="bodi"  value="/jsf/explorer.jsp"/>
       </definition>
       <definition name="/jsf/tab.tiles" extends="template">
              <put name="bodi"  value="/jsf/tab.jsp"/>
       </definition>If you have read until here: thanks very much.
    There seems to be a sort of gap regarding jsf navigation documentation.
    I mean the ordinary way is covered everywhere (the book I have covers that too), but jscookmenu seems not to fit in too good. I also tried it with an actionslistener in the jscookmenu but that failed, too. So a link to documents telling the truth on jsf navigation I would appreciate very much.
    Kind regards
    Belle Ile En Mer

    This is the error i am getting into now..
    exception
    org.apache.jasper.JasperException: An exception occurred processing JSP page /welcomeJSF.jsp at line 19
    16: This file is an entry point for JavaServer Faces application.
    17: --%>
    18: <body>
    19: <f:view>
    20: <h3><h:outputText value="CHOULTRY'S IN BANGALORE" /></h3>
    21: <h:form>
    22: <table border="0">
    Stacktrace:
         org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    root cause
    java.lang.RuntimeException: Cannot find FacesContext
         javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:1811)
         javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1628)
         org.apache.jsp.welcomeJSF_jsp._jspx_meth_f_005fview_005f0(welcomeJSF_jsp.java:112)
         org.apache.jsp.welcomeJSF_jsp._jspService(welcomeJSF_jsp.java:86)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

  • Problem in using Tomahawk 1.1.3 jar with jsf-api.jar & jsf-impl.jar

    Hi All,
    i am facing the problem while using <t:panelTabbedPane> in jsp.APplication has jsf-api.jar and jsf-impl.jar and Tomahawk 1.1.3 jar files in lib folder. This is a Portal Application.While deplyoing on portal server, i am getting following exception
    Nested Exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/el/ELException
    at org.apache.myfaces.shared_tomahawk.config.MyfacesConfig.<clinit>(MyfacesConfig.java:80).
    if any faces problem previously, please help me out in debugging this issue

    Please don't resurrect old topics. Start a new topic for each stand alone question. If necessary put links to the topics you found with search/google.
    Back to the actual problem:java.lang.NoClassDefFoundError: javax/servlet/jsp/el/ELException The given class is missing in the classpath during runtime. Add that class, or at least the JAR file with that class, to the classpath of the runtime environment, then you're fine.

  • Java.lang.IllegalStateException in tomahawk tree 2

    Hi,
    I am getting the following exception in tomahawk tree2 while fetching the data from database and constructing the tree:
    java.lang.IllegalStateException: Encountered a node [0:0:0] + with an illogical state. Node is expanded but it is also considered a leaf (a leaf cannot be considered expanded
    Here is the function which returns the tree data:
    public TreeNode getTreeData()
    TreeNode treeData = new TreeNodeBase("foo-folder", "First", false);      Enumeration keys = topMostNodes.keys();
    while(keys.hasMoreElements()){
    String currKey = keys.nextElement().toString();
    Vector tempChildList = (Vector)topMostNodes.get(currKey);
    TreeNodeBase tempNodeBase = new TreeNodeBase("foo-folder", currKey, false);
    for(int cnt=0; cnt < tempChildList.size(); cnt++)
    tempNodeBase.getChildren().add(new TreeNodeBase("foo-folder",tempChildList.get(cnt).toString(),true));
    treeData.getChildren().add(tempNodeBase);
    return treeData;
    The topMostNodes HashTable contanis these entries:
    parent 170160 childList [108858, 152338, 306438]
    parent 106404 childList [306304]
    parent 106402 childList [106406, 106407, 106408]
    parent 106401 childList [106404]
    parent 106400 childList [106403, 106405]
    parent 290094 childList [290095, 290096, 290097, 290098, 290099, 290100, 290101]
    childList is a vector containing all the children of a node.
    This is the stack Trace of the exception I am getting:
    java.lang.IllegalStateException: Encountered a node [0:0:0] + with an illogical state. Node is expanded but it is also considered a leaf (a leaf cannot be considered expanded.
    at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeNavigation
    (HtmlTreeRenderer.java:463)
    at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeCurrentNode
    HtmlTreeRenderer.java:346)
    at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeTree
    (HtmlTreeRenderer.java:248)
         at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeTree
    (HtmlTreeRenderer.java:276)
         at org.apache.myfaces.custom.tree2.HtmlTreeRenderer.encodeChildren
    (HtmlTreeRenderer.java:211)
         at javax.faces.component.UIComponentBase.encodeChildren
    (UIComponentBase.java:701)
         at org.apache.myfaces.renderkit.RendererUtils.renderChild
    (RendererUtils.java:444)
         at org.apache.myfaces.renderkit.html.HtmlGridRendererBase.
    renderChildren
    (HtmlGridRendererBase.java:203)
         at org.apache.myfaces.renderkit.html.HtmlGridRendererBase.encodeEnd
    (HtmlGridRendererBase.java:85)
         at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:720)
         at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:623)
         at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:546)
    It works fine if I replace the while loop with some hard coded node values.
    Can anybody help plz?
    Thanks in advance.
    Sanjeev.

    Its a known issue - and is documented in the Release Notes - doh.
    A very speed response from Oracle Support (in the Netherlands I would guess from his accent ) 8)
    Andrew

  • Facelets + tomahawk + SJSAS

    Hi
    I had posted this in the wrong forum. So I apologise if this looks familiar to some of you.
    I am creating a JSF application using Facelets and tomahawk, deploying on SJSAS 8.1.
    I have noticed some weird behavior:
    1. If there is a problem with a tomahawk component, it is not registered in the log. For example, if I specify an invalid EL expression, normal HTML components will register this as an error in the log, tomahawk components do not.
    2. I have an action that gets a record for the database and fills a Javabean (using OJB) or will create a new object. It will then navigate to a new page. If I add invalid information to a page, it registers the validation message in a messages component. However, if I redeploy the application and try opening a new record, I get the following error:
    javax.faces.FacesException: #{promotionSelectPage.editPromotion}: javax.faces.el.EvaluationException: /promoSearch.xjsf @16,89 action="#{promotionSelectPage.editPromotion}": java.lang.IllegalStateException
    com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:78)
    javax.faces.component.UICommand.broadcast(UICommand.java:312)
    javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
    javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
    com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:225)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:193)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:585)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
    java.security.AccessController.doPrivileged(Native Method)
    javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
    org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
    java.security.AccessController.doPrivileged(Native Method)
    org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
    3. Probably related to the previous issue, the tomahawk messages component (which I am using) is meant to display the label of the offending field. However, this does not work for me.
    Any ideas of what could be wrong or how to debug this?
    Cheers.

    Apologies, wrong forum. I would remove this, if I knew how.
    Message was edited by:
    KamBha

  • Jsf problem go from jsp page to another jsp in new window

    I’ve two jsp pages attendReport.jsp and printAttendReport.jsp
    attendReport.jsp contains inputs for attend duration and employee id and command button “view” to view attendance data entered employee during entered duration inside the same page(this work very good)
    the problem is the same page includes another command button “print” its job is to get the same data but view them in the second page printAttendReport.jsp in another window in order to print the data in some suitable format , but the print button opens attendReport.jsp instead of printAttendReport.jsp and does not hold the inputs else if I set <managed-bean-scope> to session not request which cause caching data , please help me if you to solve this problem
    and here the related lines of code
    <faces-config >
    <managed-bean>
    <managed-bean-name>attendReportBean</managed-bean-name>
    <managed-bean-class>csc.attend.bean.AttendReportBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <navigation-rule>
    <from-view-id>/attend/attendReport.jsp</from-view-id>
    <navigation-case>
    <from-action>#{AttendReportBean.attendReport}</from-action>
    <from-outcome>attendReport</from-outcome>
    <to-view-id>/attend/attendReport.jsp</to-view-id>
    </navigation-case>
    </navigation-rule>
    <navigation-rule>
    <from-view-id>/attend/attendReport.jsp</from-view-id>
    <navigation-case>
    <from-action>#{AttendReportBean.printAttendReportAction}</from-action>
    <from-outcome>printAttendReportAction</from-outcome>
    <to-view-id>/attend/printAttendReport.jsp</to-view-id>
    </navigation-case>
    </navigation-rule>
    </faces-config> // here is managed bean code
    public class AttendReportBean {
    // data , getters and setters
    init();
    //Preload in initialization block.
    public void init() {
    // initialize data
    public String attendReport() {
    // code to get attend data to go to view page(same page) it is ok
    return "attendReport"; // Navigation case.
    public static String getRequestParameter(String name) {
    return (String) FacesContext.getCurrentInstance().getExternalContext()
    .getRequestParameterMap().get(name);
    public void printAttendReportListener(ActionEvent event) {
    String fromYearStr = getRequestParameter("fromYearAtt");
    System.out.println("fromYearStr = "+fromYearStr);
    // try to get inputs through ActionListener but it gives me null
    public String printAttendReportAction() {
    // code to get attend data to go to print page(another page in new //window) but inputs come in default values
    return "printAttendReportAction"; // Navigation case.
    }attendReport.jsp
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <f:view>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    //title . styles and validations //
    </head>
    <body>
    <h:form id="attendReportForm">/the form tag appear in running source as <form id="attendReportForm" method="post" action="/newdiwan/faces/attend/attendReport.jsp" enctype="application/x-www-form-urlencoded" >
    i.e. it always submit to attendReport.jsp page
    / some inputs and outputs /
    <h:commandButton onclick="return check();" id="view" action="#{attendReportBean.attendReport}" value="" styleClass="linksNumBlue" />//it works good/
    // some outputs to view data /
    <h:commandLink immediate="true" id="printLink" value="" action="#{attendReportBean.printAttendReportAction}" actionListener="#{attendReportBean.printAttendReportListener}" target="_blank" styleClass="linksNumBlue">
        <f:attribute  name="fromYearAtt" value="2009" />
        <f:attribute  name="fromMonth" value="01" />
       <f:attribute  name="toYear" value="2010" />
       <f:attribute  name="toMonth" value="06" />
    </h:commandLink>//this has two problems 1)submit to attendReport.jsp not printAttendReport.jsp which I want to go to.
    //2)does not get the inputs but return the default values only /
    </h:form></body></html></f:view>I use libraries { jsf-api.jar , jsf-impl.jar , jstl-1.1.0.jar and tomahawk-1.1.6.jar } and deploy on tomcat 6.0
    I’m sorry for the prolongation, please help me if you can
    Edited by: alynoor on Jul 8, 2010 1:51 AM
    Edited by: alynoor on Jul 8, 2010 1:55 AM

    my problem solved 1- i use 2 managed bean , one of request scope (used in attendReport.jsp ) and the other with session scope (used in printAttendReport.jsp)
    2 - add new jsp contains the h:commandLink of the print (attendReportPrintAction.jsp)
    3 - divide the view of attendReport.jsp to two subviews (each subview has its own form) one contains inputs and outputs of attend and the other contains include to (attendReportPrintAction.jsp)
    <%@ include file="attendReportPrintAction.jsp" %>
    4 - send and get parameters using two methods
                public static Object getSessionMapValue(String key) {
                   return FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get(key);
                public static void setSessionMapValue(String key, Object value) {
                   FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(key, value);
                }faces-config.xml
       <managed-bean>
          <managed-bean-name>attendReportBean</managed-bean-name>
          <managed-bean-class>csc.attend.bean.AttendReportBean</managed-bean-class>
          <managed-bean-scope>request</managed-bean-scope>
       </managed-bean>
        <managed-bean>
          <managed-bean-name>print_attendReportBean</managed-bean-name>
          <managed-bean-class>csc.attend.bean.AttendReportBean</managed-bean-class>
          <managed-bean-scope>session</managed-bean-scope>
       </managed-bean>
    <navigation-rule>  
        <display-name>viewReport</display-name>  
        <from-view-id>/attend/attendReport.jsp</from-view-id>  
        <navigation-case>  
            <from-action>#{AttendReportBean.attendReport}</from-action>
            <from-outcome>attendReport</from-outcome>  
            <to-view-id>/attend/attendReport.jsp</to-view-id>  
        </navigation-case>  
    </navigation-rule>
    <navigation-rule>  
        <display-name>printReport</display-name>
        <from-view-id>/attend/attendReport.jsp</from-view-id>  
        <navigation-case>  
            <from-outcome>printAttendReportAction</from-outcome>  
            <to-view-id>/attend/printAttendReport.jsp</to-view-id>  
        </navigation-case>  
    </navigation-rule>attendReportPrintAction.jsp
    <f:subview id="printAttendReportSubView" >
    <h:form id="printAttendReportForm" onsubmit="return check222();" >
                                <table width="100%" border="0" cellpadding="0" cellspacing="0">
                                  <tr>
                                    <td width="11%">
                                    <table width="70" border="0" cellpadding="0" cellspacing="0">
                                        <tr>
                                          <td width="7" height="28"><img src="../images/B-left.gif" width="7" height="28" /></td>
                                          <td align="center" background="../images/B-bg.gif">
                                            <!--a href="printAttendReport.jsp" class="linksNumBlue" target="_blank" >&#1591;&#1576;&#1575;&#1593;&#1577;</a-->
    <h:commandLink id="printLink" value="&#1591;&#1576;&#1575;&#1593;&#1577;" title="&#1591;&#1576;&#1575;&#1593;&#1577;"  action="#{print_attendReportBean.printAttendReportAction}"   target="_blank"  styleClass="linksNumBlue">
                                        </h:commandLink>
                                            </td>
                                          <td width="7" height="28"><img src="../images/B-right.gif" width="7" height="28" /></td>
                                        </tr>
                                      </table>
                                      </td>
                                    <td align="right"> </td>
                                  </tr>
                                </table>
    </h:form>
    </f:subview>i hope this helps someone

  • Sun JSF 1.2 (RI) + MyFaces  project Tomahawk 1.1.3

    Hi Guys,
    I wondering if someone can help me out. I'm so lost...
    In general, I'm working in a new project using Tomcat 5.5.17 as Servlet container, NetBeans as IDE and Sun JSF 1.2 (RI) Framework. The combination of Tomcat and JFS 1.2 already is an issue that I believe can be solved using Servlets framework ( I hope so). For now I just crossing my fingers believing Apache Tomcat soon will be using JSP 2.1
    Like most projects always start simple and then grows bigger and complicated. Now I just so confusing when I trying to use custom components not found in the JSF 1.2 specification. I really like MyFaces Tomahawk and would like to use in my project as well, specially a few components: Calendar, Schedule and so on.
    Making the long history short, there you are my questions:
    1 - ) Is it possible to work with Sun JSF 1.2 (RI) + Tomahawk 1.1.3 project?. Using anly a few components of Tomahawk and not the entire MyFaces specificacion.
    2 - ) Where can I donwload MyFaces examples spefically using those Tomahawk components mentioned before ? I would like to deploy the examples application myself. In the web site (http://www.myfaces.org) mention two files in Installing and Running the examples:
    " Unpack the MyFaces examples archive myfaces-X.X.X-examples.zip (or myfaces-X.X.X-examples.tgz) to a directory of your choice. "......
    I have no clue where to find those two files. All I get is a link to and external site that show me the examples and offering services, but I have no option to download any examples file.
    Thanks in advance.

    Amittev,
    Thank you. I really appreciate your help. Now the examples are working just fine in my computer.
    By the way, I have another question for you considering your kindness taken your time to share your expertise.
    I'm facing a Tiles and Facelets dilema. Which framework do you recomend me to invest my time learning it??.
    Thanks again for your time and consideration.

  • Exception while using Tomahawk

    I am using tomahawk datalist in a page. All works fine and data is also displaying on the page but i am getting the following exception:
    SEVERE: Error while serving resource: prototype.PrototypeResourceLoader/prototype.js, message : null
    ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error
         at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:327)
         at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
         at org.apache.catalina.connector.Response.flushBuffer(Response.java:537)
         at org.apache.catalina.connector.ResponseFacade.flushBuffer(ResponseFacade.java:276)
         at org.apache.myfaces.renderkit.html.util.DefaultAddResource.serveResource(DefaultAddResource.java:560)
         at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:125)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: java.net.SocketException: Connection reset by peer: socket write error
         at java.net.SocketOutputStream.socketWrite0(Native Method)
         at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
         at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
         at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:746)
         at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433)
         at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:304)
         at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:991)
         at org.apache.coyote.Response.action(Response.java:182)
         at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:322)
         ... 19 more
    Nov 27, 2008 4:44:03 PM org.apache.myfaces.webapp.filter.ExtensionsFilter doFilter
    SEVERE: Exception wile retrieving addResource
    java.lang.IllegalStateException
         at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:418)
         at org.apache.myfaces.renderkit.html.util.DefaultAddResource.serveResource(DefaultAddResource.java:583)
         at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:125)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Thread.java:595)

    ohh i got something new...
    When i delploy my project and run it for the first time it says:
    Nov 27, 2008 8:39:13 PM org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    INFO: No context init parameter 'org.apache.myfaces.PRETTY_HTML' found, using default value true
    Nov 27, 2008 8:39:13 PM org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    INFO: No context init parameter 'org.apache.myfaces.ALLOW_JAVASCRIPT' found, using default value true
    Nov 27, 2008 8:39:13 PM org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    INFO: No context init parameter 'org.apache.myfaces.DETECT_JAVASCRIPT' found, using default value false
    Nov 27, 2008 8:39:13 PM org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    INFO: No context init parameter 'org.apache.myfaces.AUTO_SCROLL' found, using default value false
    Nov 27, 2008 8:39:13 PM org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getStringInitParameter
    INFO: No context init parameter 'org.apache.myfaces.ADD_RESOURCE_CLASS' found, using default value org.apache.myfaces.renderkit.html.util.DefaultAddResource
    Nov 27, 2008 8:39:13 PM org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
    INFO: No context init parameter 'org.apache.myfaces.CHECK_EXTENSIONS_FILTER' found, using default value true
    Nov 27, 2008 8:39:14 PM org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader getLastModified
    SEVERE: Unparsable lastModified : @lastModified@
    But everything runs fine on the page but after that when i refresh the page i got the exception, mentioned above

  • JSF Tomahawk Dynamic Menu jsCookMenu Param Passing Question .. Help Please!

    Hello everyone,
    Thank you again for your help. Let me explain what my issue is.
    I am currently developing a JSF 1.2 application using WDSC 7 (RAD 7). I am trying to
    develop a shopping cart application. The part I am stuck on is the menu.
    I need to draw a menu with drop downs with multiple levels. The first level is the category
    and the second level is the item name. The menu must be dynamically built from a Database table.
    After searching high and low I came across jsCookMenu component which requires Tomahawk to be installed.
    I installed this ontop of my IBM JSF implementation and it seems to be working fine.
    I currently have a MenuBean which calls a database and populates a NavigationMenuItems array and passes
    that to the jsCookMenu component which then renders that to the client.
    This works fine.
    Here is my question. When the user selects the first level of the menu, I want to call a page called
    GetCategory.jsp?catID=num num being the category id selected. When they select the second level of the
    menu, I want it to then call GetItem.jsp?itemID=num. I know I can use the action attribute of the menu
    item or a direct URL (which pops it up in a new window).
    Basically, I need to pass a parameter to an action (again I am somewhat new to JSF) or I need
    to call the page directly passing the request parameter.
    Am I going about this the wrong way, and if so, what way should I be going?
    Secondly, is there a better, cleaner implementation or component I can use instead.
    I'm using Tomahawk just for the one component.. That's it.
    Any help anyone can provide I would greatly appreciate it.
    Thanks so much!
    Matt

    That is correct.
    I have the menu populating dynamically built from a JavaBean.
    It works beautifully.
    Level 1 is the Category - the action is DisplayCategory
    Level 2 is the Item - the action is DisplayItem
    Level 3 is the Style - the action is DisplayStyle
    My problem is, on each page, DisplayCategory/DisplayItem/etc how do I know which menu item was clicked?
    Anyone have any idea?
    Thanks,
    Matt

  • JSF -Tomahawk Tabs

    I'm using JSF Tomahawk tabbedPane... to get the tabs... I have the commandbutton inside each t:panelTab whwn i click dat commandbutton, the action it is supposed to perform is done but it shows the first tab contents..
    for ex if i have commandbutton in second tab wen i click it performs correctly but first tab becomes active... i want dat particular tab to be active in which user has clicked commandbutton hw shall i do it...
    <t:panelTabbedPane id="editorPanel" >
    <t:panelTab id="tab11" label="Tab1" >
    <h:commandbutton action="" />
    </t:panelTab>
    <t:panelTab id="tab22" label="Tab2" >
    <h:commandbutton action="" />
    </t:panelTab>
    </t:paneltabbedPane>

    Thanks BalusC . Let me re iterate my question. I am new to JSF to pardon me if my terminology is not correct.
    I have a list which contains object .I have to generate tabs based on contents on list. So if list contain 3 objects I have to generate 3 tabs . Each page inside tab will have same layout but will be populated with different content.
    With that said. I used jsf pane_tab and I tried different ways to iterate over the list and include the jsp which will contain the layout. More specifically I tried something like below with different variations .
    <%
         for (int i = 0 ; i< list.size() ; i++)
              String abc = "name"+ i;
              %>
    <d:pane_tab id="<%= abc %>" >
    <f:facet name="label">
    <d:pane_tablabel label="test" commandName="third"/>
    </f:facet>
    <jsp:include page="addMaintenence.jsp"/>
    </d:pane_tab>
              <%
    %>
    It gives duplicate id error. Now I am not sure if my approach is right or not. Also if it not correct what should I try ??
    Any pointers would be helpful.
    Thanks in advance.
    Priyanka

  • Tomahawk compatibility

    Hello,
    I apologize for the cross-posting, but I posted this question yesterday in the JSF forum and got no response.
    I am trying to use the Tomahawk project in my application so that I can implement the Tree2 functionality. However, when I put the JAR in my WEB-INF/lib, I am getting an XML parse error on the faces-config file in the JAR. I am using JSF 1.0 on a WAS 5.1 server and I am assuming (perhaps incorrectly) that my version of JSF is incompatible with this JAR.
    My question is, does anyone know if this assumption is correct? If so, are any of the archived versions of Tomahawk that are currently on the Apache site compatible with JSF 1.0? If neither of these, then does anyone know the best way I can implement a Tree component in my application without writing my own from scratch? Upgrading to a newer version of JSF is not an option (thanks to tech management).
    Any help is appreciated, thank you.

    You're best bet to get this question answered is to use the MyFaces user mailing list.

Maybe you are looking for