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