Re: DirectLink

"Howard M. Lewis Ship" <[email protected]>
Newsgroups gmane.comp.java.tapestry.devel
Message-ID <027401c29bf1$2b4fd130$3dc41e42@howardczkz2sl3>
Seems to me you could implement an MapArea component pretty easily.  Have it take a listener and all that ... just like an DirectLink.

Basically, you can get the right IEngineService from the IEngine.

You can get a Gesture from the service.

The Gesture will provide you with the URL.

  ----- Original Message ----- 
  From: David Solis 
  To: 'Tapestry Developer' 
  Sent: Thursday, December 05, 2002 1:27 PM
  Subject: [Tapestry-developer] DirectLink


  Hello,

   

  I've a page which contains an image map and each area has associated an action, in fact a direct action.

   

  The  implementation is:

   

  HTML

  <span jwcid="hiddenZone">

  <a jwcid="link">link</a>

  </span>

  <img jwcid="bottomImage" src="/images/bottom.jpeg" border=0 usemap="#buttons" width="426" height="258"/>

   

  <map name="buttons">

    <area shape="rect" coords="324,124,371,204" href="calculator?service=direct&context=Home/link&sp=Sclear" alt="Clear"/>

    <area shape="rect" coords="262,124,308,203" href="calculator?service=direct&context=Home/link&sp=Splus" alt="Plus"/>

    <area shape="rect" coords="325,79,370,112" href="calculator?service=direct&context=Home/link&sp=Snegate" alt="Negate"/>

    <area shape="rect" coords="324,33,368,67" href="calculator?service=direct&context=Home/link&sp=Sdivide" alt="Divide"/>

    <area shape="rect" coords="262,77,308,112" href="calculator?service=direct&context=Home/link&sp=Sminus" alt="Subtract"/>

    <area shape="rect" coords="261,34,308,66" href="calculator?service=direct&context=Home/link&sp=Stimes" alt="Times"/>

    <area shape="rect" coords="192,171,250,204" href="calculator?service=direct&context=Home/link&sp=Sequals" alt="Equals"/>

    <area shape="rect" coords="132,170,179,205" href="calculator?service=direct&context=Home/link&sp=Spoint" alt="Point"/>

  </map>

   

  Page

      <component id="hiddenZone" type="Conditional"/>

      <component id="link" type="DirectLink">

          <binding name="listener" expression='listeners.processButton'/>

      </component>

      <component id="bottomImage" type="Image">

          <binding name="image" expression='assets.bottomImage'/>

      </component>

      <context-asset name="bottomImage" path="/images/bottom.jpeg"/>

   

  I had to  declare a DirectLink even though it's invisible and I encoded the URL for each area by hand. From my point of view this is ugly and depends on Tapestry internals.

  We've a menu implemented with javascript and used the same technique to solve this.

  My concern is why the DirectLink is just for html links? - Yes, I know this is a silly question; I guess these cases probably are exceptions for many applications, however I'm wondering if there is a general method to deal with direct actions?

   

  Is there a better way to encode the href elements?

   

   

  Regards

   

  David
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.