You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Michael Meierhoff <Mi...@WebtopProject.de> on 2008/06/10 23:07:09 UTC

[Trinidad] Problem to get id's of components of treeTable in jsp

Hallo,


first myfaces and his sub projects a grandious projects. I love it. I 
use this libarys for my OpenSource Project WebtopProject.


I have a little problem to find out the id of a component inside a 
tr:treeTable.  The varStatus variable example "row" give me a index 
through #{row.index}, but this is only the index of the container item 
not the index of the row.  The id's which are refer by the component are 
not suitable to  call it in the jsp file.


I will take a example:


The indexes get by #{row.index}:

Tree------item1(index=0)--------subitem1(index=0)

          |                                 |

           --item2(index(=1)      --subitem2(index=1)

          |                                

           --item3(index=2)


The id's inside columns (treeTable has id=tableId):


Tree------item1(id=tableId:0:otherID)--------subitem1(id=tableId:4:otherID)

          |                                                        |

           --item2(id=tableId:1:otherID)        
--subitem2(id=tableId:5:otherID)

          |                                

           --item3(id=tableId:2:otherID)

and so on.


Why i need this? I need a calendar component. tr:inputDate and 
t:inputDate is not suitable for me, because of lack of hour in it and 
some functions on. The tr:inputDate always make a whole page refresh not 
a partial refresh. Also a Monday can't be the first date of week. I life 
in Germany, here begins the week with Monday. What i use is a free 
JavaScript LGPL DHTML calendar. This Calendar lib very flexible. And 
therfore very suitable for me. This is only one example of needing. I 
have also other needs where i want to extend some functions through own 
javascript. Most time, when a component is good but let me not do what i 
want. To write a own component is a very time expensive task.


A short extract of the code inside the treeTable:


<tr:inputText id="iDeadlineEdit"  value="#{todo.deadline}" 
contentStyle="width:110px;padding:2px;">

    <tr:convertDateTime pattern="dd.MM.yyyy HH:mm" />
</tr:inputText>
<tr:spacer width="5" height="1" />
<tr:image id="triggerDeadlineDate" source="/img/date.png" 
inlineStyle="border:0px;cursor:pointer;"  />
<wtp:calendarPopup     inputId="ttm:#{row.index}:iDeadlineEdit" 
showsTime="true" ifFormat="%H:%M"  />


Ok, the last part is facelets. Ther is following code in.
<trh:script>
    Calendar.setup({
        inputField  : '#{inputId}',     // id of the input field
        button      : '#{buttonId}',    // trigger for the calendar 
(button ID)
        ifFormat    : '%d.%m.%Y #{ifFormat}', // format of the input field
        showsTime   : #{showsTime},     // will display a time selector
        singleClick : true,             // double-click mode
        step        : 1,                // show all years in drop-down 
boxes (instead of every other year as default)
        firstDay    : 1
    });
</trh:script>


This does not function because with children the id is not correct. I 
have also try to calculate from model, which i can get per varStatus, 
but this is not so easy.
#{row.model.depth == 1 ? row.index : ProjectBean.project.todoSize + 1 + 
row.model.containerRowKey[1] * row.model.depth + row.index} This is not 
correct for whole calculation of id.

Maybe someone have a good typ for me who i can get the correct id. 
Otherwise i think i has to calculate the position of the rowData from my 
model tree. But this way i don't want to go.


Greetings Michael Meierhoff



[Trinidad] How to get the right clientId in tr:table or tr:treeTable

Posted by Michael Meierhoff <Mi...@WebtopProject.de>.
Hallo,

i have some problems to get the correct clientId of a component in a 
tr:table and a tr:treeTable in a jspx or a xhtml file.

What i need:
Sometimes i need the correct clientId of a component to work with third 
JS libs like DHTML Calendar, MceTiny, FCKEditor on it.
Example:
<tr:input id="inputTextarea" ...
Do something with JS whith this Tag with this ID...

inputTextarea is not the id the id is table:0:inputTextarea or else.  In 
the most case it is OK. I can get the index by row value.  But, when you 
sort as example i don't know which index is set on which component in 
moment.

What i have:
When nobody click anything i have the right index.

What i do:
I create own components,because that is the only solution to get the 
correct clientId. But i think that this is to hard to work for only have 
a solution of a problem to know which id is set on which component on 
client side.

Best regards Micha in hope of any answer.

Re: [Trinidad] Problem to get id's of components of treeTable in jsp

Posted by Michael Meierhoff <Mi...@WebtopProject.de>.
Ok, i have found a solution on my own.  I think it is not the best, but 
it is a solution.


What i have done is follow:

[code]

<tr:inputText id="iStartDate" value="#{todo.start}"  
contentStyle="width:110px;padding:2px;" autoSubmit="true">

         <tr:convertDateTime pattern="dd.MM.yyyy HH:mm" />

</tr:inputText>
<tr:spacer width="5" height="1" />
<tr:image id="triggerStartDate" source="/img/date.png" 
inlineStyle="border:0px;cursor:pointer;"                       
                                                        

                         
onmouseover="addCalendar(this.up().previous(1).down().next().identify(),this.identify(),'%H:%M','true');" 
/>

[code]


up() next() and so are intepreted by JavaScript Prototype lib.


The JavaScript function add a calendar. After this i can open the 
calendar by click on the image. This act and solved what i want to have. 
I get the id of subelements in a treeTable.


I think it was better to have a rule to know which id is on which 
component in jsp.



Best greetings Michael


Michael Meierhoff schrieb:

> Hallo,
>
>
> first myfaces and his sub projects a grandious projects. I love it. I 
> use this libarys for my OpenSource Project WebtopProject.
>
>
> I have a little problem to find out the id of a component inside a 
> tr:treeTable.  The varStatus variable example "row" give me a index 
> through #{row.index}, but this is only the index of the container item 
> not the index of the row.  The id's which are refer by the component 
> are not suitable to  call it in the jsp file.
>
>
> I will take a example:
>
>
> The indexes get by #{row.index}:
>
> Tree------item1(index=0)--------subitem1(index=0)
>
>           |                                 |
>
>            --item2(index(=1)      --subitem2(index=1)
>
>           |                                
>
>            --item3(index=2)
>
>
> The id's inside columns (treeTable has id=tableId):
>
>
> Tree------item1(id=tableId:0:otherID)--------subitem1(id=tableId:4:otherID)
>
>           |                                                        |
>
>            --item2(id=tableId:1:otherID)        
> --subitem2(id=tableId:5:otherID)
>
>           |                                
>
>            --item3(id=tableId:2:otherID)
>
> and so on.
>
>
> Why i need this? I need a calendar component. tr:inputDate and 
> t:inputDate is not suitable for me, because of lack of hour in it and 
> some functions on. The tr:inputDate always make a whole page refresh 
> not a partial refresh. Also a Monday can't be the first date of week. 
> I life in Germany, here begins the week with Monday. What i use is a 
> free JavaScript LGPL DHTML calendar. This Calendar lib very flexible. 
> And therfore very suitable for me. This is only one example of 
> needing. I have also other needs where i want to extend some functions 
> through own javascript. Most time, when a component is good but let me 
> not do what i want. To write a own component is a very time expensive 
> task.
>
>
> A short extract of the code inside the treeTable:
>
>
> <tr:inputText id="iDeadlineEdit"  value="#{todo.deadline}" 
> contentStyle="width:110px;padding:2px;">
>
>     <tr:convertDateTime pattern="dd.MM.yyyy HH:mm" />
> </tr:inputText>
> <tr:spacer width="5" height="1" />
> <tr:image id="triggerDeadlineDate" source="/img/date.png" 
> inlineStyle="border:0px;cursor:pointer;"  />
> <wtp:calendarPopup     inputId="ttm:#{row.index}:iDeadlineEdit" 
> showsTime="true" ifFormat="%H:%M"  />
>
>
> Ok, the last part is facelets. Ther is following code in.
> <trh:script>
>     Calendar.setup({
>         inputField  : '#{inputId}',     // id of the input field
>         button      : '#{buttonId}',    // trigger for the calendar 
> (button ID)
>         ifFormat    : '%d.%m.%Y #{ifFormat}', // format of the input field
>         showsTime   : #{showsTime},     // will display a time selector
>         singleClick : true,             // double-click mode
>         step        : 1,                // show all years in drop-down 
> boxes (instead of every other year as default)
>         firstDay    : 1
>     });
> </trh:script>
>
>
> This does not function because with children the id is not correct. I 
> have also try to calculate from model, which i can get per varStatus, 
> but this is not so easy.
> #{row.model.depth == 1 ? row.index : ProjectBean.project.todoSize + 1 
> + row.model.containerRowKey[1] * row.model.depth + row.index} This is 
> not correct for whole calculation of id.
>
> Maybe someone have a good typ for me who i can get the correct id. 
> Otherwise i think i has to calculate the position of the rowData from 
> my model tree. But this way i don't want to go.
>
>
> Greetings Michael Meierhoff
>
>