I've found out one solution how it works.

The goLink/Image is the same as below, only that the destination is the same 
.xhtml file as the one where the image is actually on. It can not be only # (as 
anchor) because the page needs to be reloaded. Additionally there is Jscript 
that reads the location from address bar, writes it into an inputHidden and 
than submits a "hidden" button to send the data to the server. Not a nice 
solution, but works, if anyone has any "nicer" way, please let me now.

 

test.xhtml:

<ui:composition>

<tr:goLink destination="/test.xhtml">

<tr:image source="#{bean.imageUrl}" imageMapType="server" />

</tr:goLink>

      <tr:inputHidden id="mapInputX" value="#{bean.locationX}" />

      <tr:inputHidden id="mapInputY" value="#{bean.locationY}" />

      <tr:commandButton id="imageMapSubmit" text="" inlineStyle="display:none;">

            <f:actionListener type="my.package.SelectImageAreaListener" />

      </tr:commandButton>

      <script>

      str = location.search;

      if (str == "") {

            //ignore

      } else {

            var inputX = document.getElementById("mapInputX");

            var inputY = document.getElementById("mapInputY");

            var submit = document.getElementById("imageMapSubmit");

            commaloc = str.indexOf(",");

            inputX.value = str.substring(1, commaloc);

            inputY.value = str.substring(commaloc+1, str.length);

            submit.click();

      }

      </script>

</ui:composition>

 

 

Von: Döring Markus [mailto:[EMAIL PROTECTED] 
Gesendet: Freitag, 25. Januar 2008 17:08
An: MyFaces Discussion
Betreff: AW: [Trinidad] How to use ServerSide ImageMaps

 

Ok, found out something more.

The image has to be inside of the goLink, so this is correct:

 

<tr:goLink destination="test.html">

<tr:image source="#{image.url}" imageMapType="server" 
inlineStyle="width:600px;" />

</tr:goLink>

 

But still, I only have a destination URL, and the cords get posted to it (this 
works so far)

 

Now how do I get this cords back inside the JSF lifecycle? Or is there any 
possibility to get it directly into an actionListener?

Thanks for help

 

 

Von: Döring Markus [mailto:[EMAIL PROTECTED] 
Gesendet: Freitag, 25. Januar 2008 16:50
An: MyFaces Discussion
Betreff: [Trinidad] How to use ServerSide ImageMaps

 

Hello,

I'm trying around with tr:image and server side ImageMaps.

<tr:image> documentation says:

If a server-side image map is desired, specify "server" and place inside a 
CoreGoLink component. The acceptable values are "server" or "none"; defaults to 
"none".

 

What I have so far is the following (really straight forward)

 

<tr:image source="#{image.url}" imageMapType="server" 
inlineStyle="width:600px;">

<tr:goLink />

</tr:image>

 

What I was not able to find out is how to trigger an action listener from this 
goLink. GoLink only supports stuff like destination and targetFrame, but not 
something like action / actionListener.

Also if I try something like

<tr:image source="#{image.url}" imageMapType="server" 
inlineStyle="width:600px;">

<tr:goLink>

      <f:actionListener type="my.package.ActionListener" />

</tr:goLink>

</tr:image>

 

This does not work because <tr:goLink> is not an JSF "action source" 
(com.sun.facelets.tag.TagException: /sample.xhtml @9,116 <f:actionListener> 
Parent is not of type ActionSource, type is: CoreGoLink[UIXFacesBeanImpl, 
id=_id46])

 

So how do I manage to call an actionListener from <tr:goLink> and how to get 
the coordinates of the click inside of it?

 

I'm using:

JBoss 4.2.0

MyFaces 1.1.5

Faclets 1.1.13

Trinidad 1.0.3

 

Thanks for help

Markus Döring

TCC Products GmbH

Reply via email to