Details

    • Issuezilla Id:
      850
    • Status Whiteboard:
      Hide

      changelog size_small importance_medium

      Show
      changelog size_small importance_medium

      Description

      In composite.tld, need to specify "deferred-method" element nested within
      cc:attribute.

        Issue Links

          Activity

          Hide
          Ed Burns added a comment -

          Ensure changelog_2_1 is in keywords list

          Show
          Ed Burns added a comment - Ensure changelog_2_1 is in keywords list
          Hide
          Ed Burns added a comment -

          composite.tld: Specify deferred-method Element Within cc:attribute

          Also depends on issue 853: cc:clientBehavior not specified.

          Show
          Ed Burns added a comment - composite.tld: Specify deferred-method Element Within cc:attribute Also depends on issue 853: cc:clientBehavior not specified.
          Hide
          Ed Burns added a comment -

          Set priority to baseline ahead of JSF 2.3 triage. Priorities will be assigned accurately after this exercise.

          Show
          Ed Burns added a comment - Set priority to baseline ahead of JSF 2.3 triage. Priorities will be assigned accurately after this exercise.
          Hide
          Manfred Riem added a comment -

          Reassigned to Ed as I am uncertain how exactly to do this

          Show
          Manfred Riem added a comment - Reassigned to Ed as I am uncertain how exactly to do this
          Hide
          Ed Burns added a comment -

          I don't see the need for this because you can already do it with attributes on <cc:attribute>

          In our jsf-demo directory we have the non-working example:

          <cc:interface name="myComponent" 
                               displayName="Very Simple Composite Component" 
                               preferred="true"
                               expert="false"
                               shortDescription="An illustration of the composite component feature">
            <cc:attribute name="loginAction">
              <cc:deferred-method>
                <cc:method-signature>
                            java.lang.Object action()
                </cc:method-signature>
              </cc:deferred-method>
            </cc:attribute>
          
            <cc:attribute name="usernameLabel" default="User ID: " />
          
            <cc:attribute name="loginButtonLabel" default="Login " />
          
            <cc:editableValueHolder name="username" />
            <cc:actionSource name="loginEvent" />
          
          </cc:interface>
          
          <cc:implementation>
          
                <p>
          
                   #{cc.attrs.usernameLabel} 
                   <h:inputText value="#{cc.attrs.model.fieldValue}" id="username" />
          
                </p>
          
                <p>
          
          	<h:commandButton id="loginEvent" value="#{cc.attrs.loginButtonLabel}" 
                                   action="#{cc.attrs.loginAction}"/>
          
                </p>
          
          </cc:implementation>
          

          and the working example:

          <composite:interface name="loginPanel" 
                               displayName="Very Simple Login Panel" 
                               preferred="true"
                               expert="false"
                               shortDescription="An illustration of the composite component feature">
          
            <composite:attribute name="usernameLabel" default="Username" />
            <composite:attribute name="pinLabel" default="PIN" />
            <composite:attribute name="loginLabel" default="Login" />
            <composite:attribute name="model" required="true"/>
            <composite:attribute name="action" method-signature="java.lang.Object action()" targets="loginEvent"/>
          
          
            <composite:editableValueHolder name="usernameInput" />
            <composite:editableValueHolder name="pinInput" />
            <composite:editableValueHolder name="allInputs" targets="usernameInput pinInput" />
            <composite:actionSource name="loginEvent" />
          
          </composite:interface>
          
          <composite:implementation>
          
            <ui:decorate template="loginPanelTemplate.xhtml">
          
              <ui:define name="usernameInput">
          
                <h:inputText id="usernameInput" />
          
              </ui:define>
          
              <ui:define name="pinInput">
          
                <h:inputText id="pinInput" />
          
              </ui:define>
          
              <ui:define name="loginEvent">
          
                <h:commandButton id="loginEvent" value="#{cc.attrs.loginLabel}" 
                           onkeypress="javascript: submitenter(event, 'loginButton', Login');" 
                           onclick="javascript: submitAndDisable(this, 'Login');" 
                           onfocus="javascript: if (this.disabled==0) this.className='Btn1Hov'" 
                           onblur="javascript: if (this.disabled==0) this.className='Btn1'" 
                           onmouseout="javascript: if (this.disabled==0) this.className='Btn1'" 
                           onmouseover="javascript: if (this.disabled==0) this.className='Btn1Hov'" 
                           tabindex="3" 
                           title="Log In to Sun Java System Application Server" 
                           class="Btn1">
                </h:commandButton>
          
          
              </ui:define>
          
            </ui:decorate>
          
          </composite:implementation>
          
          Show
          Ed Burns added a comment - I don't see the need for this because you can already do it with attributes on <cc:attribute> In our jsf-demo directory we have the non-working example: <cc: interface name= "myComponent" displayName= "Very Simple Composite Component" preferred= " true " expert= " false " shortDescription= "An illustration of the composite component feature" > <cc:attribute name= "loginAction" > <cc:deferred-method> <cc:method-signature> java.lang. Object action() </cc:method-signature> </cc:deferred-method> </cc:attribute> <cc:attribute name= "usernameLabel" default = "User ID: " /> <cc:attribute name= "loginButtonLabel" default = "Login " /> <cc:editableValueHolder name= "username" /> <cc:actionSource name= "loginEvent" /> </cc: interface > <cc:implementation> <p> #{cc.attrs.usernameLabel} <h:inputText value= "#{cc.attrs.model.fieldValue}" id= "username" /> </p> <p> <h:commandButton id= "loginEvent" value= "#{cc.attrs.loginButtonLabel}" action= "#{cc.attrs.loginAction}" /> </p> </cc:implementation> and the working example: <composite: interface name= "loginPanel" displayName= "Very Simple Login Panel" preferred= " true " expert= " false " shortDescription= "An illustration of the composite component feature" > <composite:attribute name= "usernameLabel" default = "Username" /> <composite:attribute name= "pinLabel" default = "PIN" /> <composite:attribute name= "loginLabel" default = "Login" /> <composite:attribute name= "model" required= " true " /> <composite:attribute name= "action" method-signature= "java.lang. Object action()" targets= "loginEvent" /> <composite:editableValueHolder name= "usernameInput" /> <composite:editableValueHolder name= "pinInput" /> <composite:editableValueHolder name= "allInputs" targets= "usernameInput pinInput" /> <composite:actionSource name= "loginEvent" /> </composite: interface > <composite:implementation> <ui:decorate template= "loginPanelTemplate.xhtml" > <ui:define name= "usernameInput" > <h:inputText id= "usernameInput" /> </ui:define> <ui:define name= "pinInput" > <h:inputText id= "pinInput" /> </ui:define> <ui:define name= "loginEvent" > <h:commandButton id= "loginEvent" value= "#{cc.attrs.loginLabel}" onkeypress= "javascript: submitenter(event, 'loginButton', Login');" onclick= "javascript: submitAndDisable( this , 'Login');" onfocus= "javascript: if ( this .disabled==0) this .className='Btn1Hov'" onblur= "javascript: if ( this .disabled==0) this .className='Btn1'" onmouseout= "javascript: if ( this .disabled==0) this .className='Btn1'" onmouseover= "javascript: if ( this .disabled==0) this .className='Btn1Hov'" tabindex= "3" title= "Log In to Sun Java System Application Server" class= "Btn1" > </h:commandButton> </ui:define> </ui:decorate> </composite:implementation>

            People

            • Assignee:
              Ed Burns
              Reporter:
              rogerk
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: