You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by András Piros <a....@avedas.com> on 2006/10/16 11:39:26 UTC
Re: t:panelTabbedPane and t:dataScroller: links work only on the
first p
hi all,
so I've finally found out it was my fault -- I shouldn't have _always_
updated my tabbed pane in the set() method. Now I differentiate the cases
when I have to - then I update, and when I don't - then not. So it works now
somehow.
The moral of the story is, don't ever trust JSF regarding error messages -
in this case I did not get any, it simply did not work always as expected.
Till next time.
Enjoy,
:andras
András Piros wrote:
>
> Hi Mike,
>
> sorry to inform you, it does not work with the tomahawk 1.1.5 snapshot
> from 22-Sep-2006 04:50.
>
> :andras
>
>
> Mike Kienenberger wrote:
>>
>> There were some changes made with javascript and links on Sat Jul 15
>> 09:24:06 2006 to improve compatibility with the JSF RI.
>>
>> You might try a 1.1.5 snapshot and see if the problem is already fixed.
>>
>>
>> On 9/22/06, András Piros <a....@avedas.com> wrote:
>>>
>>> Hi folks,
>>>
>>> I'm using MyFaces Tomahawk 1.1.3 and Sun's RI 1.2 together in an
>>> enterprise app under Sun's GlassFish appserver.
>>>
>>> If I have a t:dataTable, which has a t:dataScroller, my h:commandLinks
>>> inside t:dataTable work just fine, on the first page, and on every other
>>> page of the dataTable:
>>> [image: t:panelTabbedPane and t:dataScroller: links work only on the
>>> first
>>> page] [image: t:panelTabbedPane and t:dataScroller: links work only on
>>> the
>>> first page]
>>>
>>> So far, so good. But, if I generate a t:dataTable on every tab of a
>>> t:panelTabbedPane (I must generate them in the backing bean
>>> programmatically, because I don't even know in advance how much tabs I
>>> have...), and generate a t:dataScroller for every t:dataTable inside my
>>> panelTabbedPane, my h:commandLinks are working only on the first page of
>>> every table, they are actually not working on the subsequent pages:
>>> [image: t:panelTabbedPane and t:dataScroller: links work only on the
>>> first
>>> page] [image: t:panelTabbedPane and t:dataScroller: links work only on
>>> the
>>> first page]
>>>
>>> On the subsequent pages, nevertheless, a HTTP POST is done on the form
>>> (every component is inside a single form), but funnily, neither the
>>> commandLink's action, nor its actionListener methods are called. Instead
>>> of
>>> the link working, the dataScroller just jumps back to the first page on
>>> the
>>> actual tab.
>>>
>>> Any ideas? Your replies are highly appreciated!
>>>
>>> enjoy,
>>>
>>> :andras
>>>
>>> JSF code:
>>> <t:panelTabbedPane binding="#{
>>> infoobjecttabbedpanebean.tabbedPane}"
>>> bgcolor="#EBEEF8" width="90%"
>>> cellspacing="1"
>>> styleClass="tabbedPane" align="center"
>>> activeTabStyleClass="activeTab"
>>> inactiveTabStyleClass="inactiveTab"
>>> disabledTabStyleClass="disabledTab"
>>> activeSubStyleClass="activeSub"
>>> inactiveSubStyleClass="inactiveSub"
>>> tabContentStyleClass="tabContent" />
>>>
>>> Java code:
>>> public class InfoObjectTabbedPaneBean {
>>>
>>> ...
>>>
>>> public HtmlPanelTabbedPane getTabbedPane() {
>>> if (this.htmlPanelTabbedPane == null) {
>>> Application app = FacesContext.getCurrentInstance
>>> ().getApplication();
>>>
>>> // tabbedpane
>>> this.htmlPanelTabbedPane
>>> = (HtmlPanelTabbedPane)app.createComponent(
>>> HtmlPanelTabbedPane.COMPONENT_TYPE);
>>> }
>>> updateTabbedPane(this.htmlPanelTabbedPane);
>>> return this.htmlPanelTabbedPane;
>>> }
>>>
>>> public void setTabbedPane(HtmlPanelTabbedPane tabbedPane){
>>> updateTabbedPane(tabbedPane);
>>> this.htmlPanelTabbedPane = tabbedPane;
>>> }
>>>
>>> public void updateTabbedPane(HtmlPanelTabbedPane hptp) {
>>> Application app = FacesContext.getCurrentInstance
>>> ().getApplication();
>>> ValueExpression valueExpressionOfId;
>>> ValueExpression valueExpressionOfType;
>>> int cntTabs = 0;
>>>
>>> // Reset
>>> hptp.getChildren().clear();
>>> for (...) {
>>>
>>> // Get data from EJBs...
>>>
>>> // tab i
>>> UIPanel tab = (HtmlPanelTab)app.createComponent(
>>> HtmlPanelTab.COMPONENT_TYPE);
>>> tab.setId("panelTab" + cntTabs);
>>> tab.getAttributes().put("label", actInfoObjectTypeName);
>>> hptp.getChildren().add(tab);
>>>
>>> // datatable
>>> HtmlDataTable myHdt = new HtmlDataTable();
>>> myHdt.setId("hdtId" + cntTabs);
>>> myHdt.setVar("hdtVar" + cntTabs);
>>> myHdt.setRows(10);
>>> myHdt.setBorder(0);
>>> myHdt.setCellpadding("5");
>>> myHdt.setCellspacing("0");
>>> myHdt.setHeaderClass("columnheader");
>>> myHdt.setRowClasses("oddrow, evenrow");
>>> UIData hdt = myHdt;
>>> tab.getChildren().add(hdt);
>>>
>>> // Data scroller for actual HtmlDataTable
>>> HtmlDataScroller scroller = new HtmlDataScroller();
>>> scroller.setPaginator(true);
>>> scroller.setPaginatorActiveColumnClass("evenrow");
>>> scroller.setPaginatorColumnClass("oddrow");
>>> scroller.setPaginatorMaxPages(10);
>>> scroller.setId("SCROLLER_" + "hdtId" + cntTabs);
>>> scroller.setFor("hdtId" + cntTabs);
>>> scroller.setFastStep(10);
>>> scroller.setPageIndexVar("pageIndex");
>>> scroller.setPageCountVar("pageCount");
>>> // First
>>> HtmlGraphicImage imageFirst = new HtmlGraphicImage();
>>> imageFirst.setUrl("/images/first.gif");
>>> imageFirst.setAlt("First");
>>> imageFirst.setStyleClass("imagelink");
>>> scroller.setFirst(imageFirst);
>>> // Last
>>> HtmlGraphicImage imageLast = new HtmlGraphicImage();
>>> imageLast.setUrl("/images/last.gif");
>>> imageLast.setAlt("First");
>>> imageLast.setStyleClass("imagelink");
>>> scroller.setLast(imageLast);
>>> // Previous
>>> HtmlGraphicImage imagePrevious = new HtmlGraphicImage();
>>> imagePrevious.setUrl("/images/prev.gif");
>>> imagePrevious.setAlt("Previous");
>>> imagePrevious.setStyleClass("imagelink");
>>> scroller.setPrevious(imagePrevious);
>>> // Next
>>> HtmlGraphicImage imageNext = new HtmlGraphicImage();
>>> imageNext.setUrl("/images/next.gif");
>>> imageNext.setAlt("Next");
>>> imageNext.setStyleClass("imagelink");
>>> scroller.setNext(imageNext);
>>> tab.getChildren().add(scroller);
>>>
>>> // Setup data model...
>>>
>>> hdt.setValue(actTable);
>>>
>>> for (...) {
>>> // Create column
>>> UIColumn column = (UIColumn)app.createComponent(
>>> HtmlSimpleColumn.COMPONENT_TYPE);
>>>
>>> // Create and add header
>>> UIOutput header = (UIOutput)app.createComponent(
>>> HtmlOutputText.COMPONENT_TYPE);
>>> header.setValue(actName);
>>> column.setHeader(header);
>>>
>>> // Create and add content
>>>
>>> // First column: link to detail view, attach primary key
>>> of the
>>> // InfoObject which detail view has to be presented
>>> // Other columns: no link
>>>
>>> // add column
>>> hdt.getChildren().add(column);
>>>
>>> cntCols++;
>>> }
>>>
>>> // Add column for Delete and Edit buttons
>>>
>>> // add column
>>> hdt.getChildren().add(columnEditDelete);
>>>
>>> }
>>>
>>> }
>>>
>>> ...
>>>
>>> }
>>>
>>> ------------------------------
>>> View this message in context: t:panelTabbedPane and t:dataScroller:
>>> links
>>> work only on the first
>>> page<http://www.nabble.com/t%3ApanelTabbedPane-and-t%3AdataScroller%3A-links-work-only-on-the-first-page-tf2316788.html#a6443898>
>>> Sent from the MyFaces -
>>> Users<http://www.nabble.com/MyFaces---Users-f181.html>mailing list
>>> archive at
>>> Nabble.com.
>>>
>>
>>
>
>
--
View this message in context: http://www.nabble.com/t%3ApanelTabbedPane-and-t%3AdataScroller%3A-links-work-only-on-the-first-page-tf2316788.html#a6831128
Sent from the MyFaces - Users mailing list archive at Nabble.com.