There are multiple ways to accomplish this.
One way might be to do something like (I'm going to assume that you're
using the "base" library provided on t-deli. If not, you can substitute
the if/else components with appropriate conditional components):
<li jwcid="@base:If"
        condition="qualityCheckWarningText.equals('duplicate')">
     <a href="#" jwcid="@DirectLink"
                  parameters="ognl:someMethodForGettingParameters"
                  listener="ognl:listeners.yourListener">
         <span jwcid="qualityCheckWarning">Preliminary Scales</span>
     </a>
</li>
<li jwcid="@base:Else">
         <span jwcid="qualityCheckWarningCopy">Preliminary Scales</span>
</li>

So, there you've avoided doing anything in code, really, except for
getting the parameters.
(note that qualityCheckWarningCopy is something like:
<component id="qualityCheckWarningCopy" copy-of="qualityCheckWarning"/>
defined in your page or component spec)

Robert

> Hi everyone,
>
> I have a Tapestry page that needs to generate a list of warnings (see
> Listing 1 below).  If the warning is of a certain type (e.g. Duplicate),
> then I need to dynamically add in one or more DirectLinks to the warning
> text.  My question is how do I dynamically generate DirectLink in the
> java/class file?  I looked and searched everywhere but only found some
> code
> that call the getLink() method from the DirectService class.  However, I
> am
> not sure how you can set the various parameters for each DirectLink (e.g.
> listener, stateful, etc)?
>
> -- PLEASE NOTE THAT I AM USING TAPESTRY 3.0.3. --
>
> Listing 1:
> <ul>
>    <h1>Warnings</h1>
>    <span jwcid="qualityCheckWarningsLoop">
>       <li><span jwcid="qualityCheckWarning">Preliminary Scales</span></li>
>       <span jwcid="$remove$">
>          <li>No Report</li>
>          <li>Below Standard</li>
>          <li>Invalid ID</li>
>          <li>Wrong Type</li>
>          <li>Sample</li>
>          <li>Duplicate: <a>HDS-2345678</a></li>
>       </span>
>    </span>
> </ul>
>
> Listing 2 - Here is part of the .page file that corresponding the the
> jwcid
> tags above:
>
> <component id="qualityCheckWarningsLoop" type="Foreach">
>    <binding name="source"
> expression="visit.qualityCheckSession.currentScan.qualityCheckWarnings"/>
>    <binding name="value" expression="qualityCheckWarning"/>
> </component>
>
> <component id="qualityCheckWarning" type="Insert">
>    <binding name="value" expression="qualityCheckWarningText"/>
> </component>
>
> Listing 3 - Here is the getter that returns the warning text for the
> qualityCheckWarning component:
>
> public String getQualityCheckWarningText() {
>
>    Visit visit = (Visit) getVisit();
>    Scan currentScan = visit.getQualityCheckSession().getCurrentScan();
>
>    StringBuffer qualityCheckWarningText = new
> StringBuffer(getQualityCheckWarning());
>
>    if
> (qualityCheckWarningText.toString().equals(DuplicateScalesScanCheck.DUPLICAT
> E_SCALE_WARNING_FLAG)) {
>
>       qualityCheckWarningText.append(": ");
>       int index = 0;
>
>
>       for (Scan duplicateScan: currentScan.getDuplicateScaleScans()) {
>
>          if (index != 0) {
>             qualityCheckWarningText.append(", ");
>          }
>
>          // ==================================================         //
> NEED TO ADD A DIRECT LINK AROUND THE FOLLOWING TEXT
>          // ===================================================
>          qualityCheckWarningText.append(duplicateScan.getStoneId());
>          index++;
>       }
>    }
>
>    return qualityCheckWarningText.toString();
> }
>
> Thanks for any help in advance,
> Ben
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to