Great Jim, thanks a bunch.
I'll try it out and let you know.
Thanks again,
f(t)
On 6/8/07, James McLaughlin <[EMAIL PROTECTED]> wrote:
I think some of the older versions of wicket would sometimes omit
header contributions. When the error happens, check to see if
wicket-ajax.js is included in the page. Also, you might want to
upgrade to 1.2.6 and see if that fixes the issue.
best,
jim
On 6/8/07, Francisco Diaz Trepat - gmail <[EMAIL PROTECTED]>
wrote:
> James, sorry I took so long to respond. I tried to put PageLinks in the
> menu.
>
> And I could swear that the frequency of "error" drop, but some times it
> still happens.
>
> I am using wicket 1.2.5.
>
>
> f(t)
>
> On 6/6/07, James McLaughlin <[EMAIL PROTECTED]> wrote:
> > Looks good. What version of wicket are you using? And the second time
> > you click DossierSearch, the time when no wicket ajax debug shows up,
> > do a view source and see if the proper wicket-ajax js files are in the
> > head section. Another thing I would suggest is using Bookmarkable
> > links in your menu for Dossier search. You are using regular links,
> > and that is why your url changes.
> >
> > best,
> > jim
> >
> > On 6/6/07, Francisco Diaz Trepat - gmail <
[EMAIL PROTECTED]>
> wrote:
> > > Here is the video.
> > >
> > > It is .AVI file made with CamStudio, an Open-source project.
> > >
> > > and it is inside a rar.
> > >
> > > f(t)
> > >
> > >
> > >
> > >
> > > On 6/6/07, James McLaughlin <[EMAIL PROTECTED]> wrote:
> > > > Hi Francisco,
> > > > I can't see anything logically wrong with your code, all though
there
> > > > are things I would have done differently. What is the output of
the
> > > > wicket ajax debug panel when you click on the ajax submit button?
> > > >
> > > > If you want some advice, I would suggest not using a
pageablelistview
> > > > and not keeping your search results as an instance member (unless
they
> > > > are very expensive to create). Instead, look into using
> > > > DefaultDataTable or extending DataTable. That way you can put all
your
> > > > search logic in your IDataProvider (such as SortableDataProvider),
and
> > > > retrieve only the results you will display in the current page,
and
> > > > not carry them around in the session after the request is over.
Hope
> > > > this helps.
> > > >
> > > > best,
> > > > jim
> > > >
> > > > On 6/6/07, Francisco Diaz Trepat - gmail
> <[EMAIL PROTECTED] >
> > > wrote:
> > > > > Sorry but I cannot find what the problem is. I've search Nabble.
> > > > >
> > > > > ---------------------------------
> > > > >
> > > > >
> > > > >
> > > > > Hello every one, I have a page that uses a panel (code ahead)
that
> has a
> > > > > form with an AJAX button, it works fine, but some times I have
to
> click
> > > on
> > > > > the Search button 2 times to make it work. I think it has to do
with
> > > URLs or
> > > > > something because when it happens it changes the url.
> > > > >
> > > > > The code for the page that uses the following panel I don't
include
> > > because
> > > > > it only has a statement saying add(new SearchPanel(etc...
> > > > >
> > > > > Here is the code, can some one help?
> > > > >
> > > > > ps: If any other comments like, your code sucks, please also
include
> > > them.
> > > > >
> > > > > thanks a bunch
> > > > >
> > > > > f(t)
> > > > >
> > > > > and here is the code:
> > > > >
> > > > > package ch.logismata.wicket.panels.ajax;
> > > > >
> > > > > import ch.logismata.serverwrapper.DossierSearch ;
> > > > > import
> ch.logismata.serverwrapper.DossierSearchResult ;
> > > > > import
> > > ch.logismata.serverwrapper.DossierSearchResultList;
> > > > > import ch.logismata.wicket.pages.NewDossier ;
> > > > > import ch.logismata.wicket.panels.BasePanel;
> > > > > import java.io.Serializable;
> > > > > import java.util.ArrayList ;
> > > > > import wicket.AttributeModifier;
> > > > > import wicket.Component;
> > > > > import wicket.PageParameters;
> > > > > import wicket.ajax.AjaxRequestTarget;
> > > > > import
> wicket.ajax.markup.html.form.AjaxSubmitButton ;
> > > > > import
> > > > >
> > >
> wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator
> > > > > ;
> > > > > import wicket.markup.html.WebMarkupContainer;
> > > > > import wicket.markup.html.basic.Label ;
> > > > > import wicket.markup.html.form.Form ;
> > > > > import wicket.markup.html.form.TextField;
> > > > > import wicket.markup.html.link.Link;
> > > > > import wicket.markup.html.list.ListItem ;
> > > > > import wicket.markup.html.list.PageableListView;
> > > > > import wicket.markup.html.panel.FeedbackPanel ;
> > > > > import wicket.model.AbstractReadOnlyModel;
> > > > > import wicket.model.CompoundPropertyModel ;
> > > > > import wicket.model.Model;
> > > > > import wicket.model.ResourceModel;
> > > > >
> > > > > /**
> > > > > * Panel to make a Dossier Search and display the results
> > > > > *
> > > > > * @author gm
> > > > > */
> > > > > public class DossierSearchPanel extends BasePanel {
> > > > > private SearchDossierModel
> > > m_cSearchDossierModel = new
> > > > > SearchDossierModel();
> > > > > private ArrayList<DossierSearchResult>
> > > m_cSearchResults = new
> > > > > ArrayList<DossierSearchResult>();
> > > > > public DossierSearchPanel(String id) {
> > > > > //Call super base panel
> > > > > super(id);
> > > > > // create feedback panel to show errors
> > > > > final FeedbackPanel feedback = new
> > > > > FeedbackPanel("searchFeedback");
> > > > > //add feedback panel
> > > > > feedback.setOutputMarkupId(true);
> > > > > add(feedback);
> > > > >
> > > > > // create form with markup id setter so it can be
updated
> via
> > > ajax
> > > > > Form form = new Form("dossierSearchForm", new
> > > > > CompoundPropertyModel(m_cSearchDossierModel));
> > > > > form.setOutputMarkupId(true);
> > > > >
> > > > > form.add(new Label("legend", new
> > > > > ResourceModel("fields.legend")));
> > > > > form.add(new Label("nameLabel", new ResourceModel("
> > > > > fields.name")));
> > > > > //Construct TextFields
> > > > > TextField cNameTextField = new
TextField("name");
> > > > > TextField cLastNameTextField = new
> TextField("lastName");
> > > > > //add Fields to the form
> > > > > form.add(cNameTextField);
> > > > > form.add(new Label("lastNameLabel", new
> > > > > ResourceModel("fields.lastName")));
> > > > > form.add(cLastNameTextField);
> > > > >
> > > > >
> > > > >
> > > > > ///Add pageable table
> > > > > final WebMarkupContainer datacontainer = new
> > > > > WebMarkupContainer("data");
> > > > > datacontainer.setOutputMarkupId (true);
> > > > > add(datacontainer);
> > > > >
> > > > > Model modelForList = new Model(){
> > > > > public Object getObject(Component component){
> > > > > return m_cSearchResults;
> > > > > }
> > > > > };
> > > > >
> > > > > final PageableListView listview = new
> PageableListView("rows",
> > > > > modelForList, 10) {
> > > > >
> > > > > protected void populateItem(final ListItem item) {
> > > > > final DossierSearchResult dossierSearchResult =
> > > > > (DossierSearchResult)item.getModelObject();
> > > > >
> > > > > item.add(new Link("goToDetail") {
> > > > > public void onClick() {
> > > > > setResponsePage(NewDossier.class , new
> > > > >
> > >
> PageParameters("dossierId="+dossierSearchResult.getDossierObjectId()));
> > > > > }
> > > > > }.add(new Label("composedName",
> > > > > dossierSearchResult.getComposedName())));
> > > > >
> > > > > item.add(new Label("streetAddress",
> > > > > dossierSearchResult.getStreetWithNumber ()));
> > > > > item.add(new AttributeModifier("class", true,
new
> > > > > AbstractReadOnlyModel() {
> > > > > public Object getObject(Component component)
{
> > > > > return (item.getIndex () % 2 == 1) ?
"even"
> :
> > > "odd";
> > > > > }
> > > > > }));
> > > > > }
> > > > > };
> > > > > if(m_cSearchResults.size()==0){
> > > > >
> > > > > }
> > > > > listview.setOutputMarkupId (true);
> > > > > datacontainer.add(listview);
> > > > > datacontainer.add(new
> > > > > AjaxPagingNavigator("navigator", listview));
> > > > > datacontainer.setVersioned(false);
> > > > >
> > > > >
> > > > > // add a button that can be used to submit the form via
ajax
> > > > > form.add(new
> AjaxSubmitButton("searchButton",
> > > form)
> > > > > {
> > > > > protected void onSubmit(AjaxRequestTarget target,
Form
> form)
> > > {
> > > > > // repaint the feedback panel so that it is
hidden
> > > > >
> > > > > searchDossiers(m_cSearchDossierModel.getName(),
> > > > > m_cSearchDossierModel.getLastName());
> > > > > if(m_cSearchResults.size()==0){
> > > > > datacontainer.setVisible(false);
> > > > > }else{
> > > > > datacontainer.setVisible(true);
> > > > > }
> > > > > target.addComponent(feedback);
> > > > >
> > > > > target.addComponent(datacontainer);
> > > > > }
> > > > >
> > > > > protected void onError(AjaxRequestTarget target,
Form
> form)
> > > {
> > > > > // repaint the feedback panel so errors are
shown
> > > > > target.addComponent(feedback);
> > > > > }
> > > > > });
> > > > > //Add Form
> > > > > add(form);
> > > > > }
> > > > > private void searchDossiers(String name, String lastName){
> > > > >
> > > > > String message = null;
> > > > > try{
> > > > > if(m_cSearchResults==null){
> > > > > m_cSearchResults = new
> > > > > ArrayList<DossierSearchResult>();
> > > > > }
> > > > > m_cSearchResults.clear();
> > > > > DossierSearch cDossierSearch;
> > > > > DossierSearchResultList cDossierSearchResultList;
> > > > >
> > > > > cDossierSearch = new DossierSearch();
> > > > >
> > > > > if(name==null){
> > > > > name = "";
> > > > > }
> > > > > if(lastName==null){
> > > > > lastName = "";
> > > > > }
> > > > >
> > > > > cDossierSearch.setFirstName(name);
> > > > > cDossierSearch.setName(lastName);
> > > > >
> > > > > cDossierSearchResultList = cDossierSearch.search();
> > > > >
> > > > > message =
> > > > >
> > >
> cDossierSearchResultList.size()>0?cDossierSearchResultList.size()+"
> > > > > Dossiers found at search.":"No Dossiers found at search.";
> > > > > info(message);
> > > > > for(int iIterator=0;iIterator<
> > > > > cDossierSearchResultList.size();iIterator++){
> > > > >
> > > > >
> > >
>
m_cSearchResults.add((DossierSearchResult)cDossierSearchResultList.getItem(iIterator));
> > > > > }
> > > > > /*
> > > > > for(int
> > > iIterator=0;iIterator<100;iIterator++){
> > > > > DossierSearchResultEntity cDossierResultEntity =
new
> > > > >
> DossierSearchResultEntity("DossierObjectId-"+iIterator,
> > > > > "ComposedName-"+iIterator, "StreetWithNumber-"+iIterator,
> > > > > "ZipWithLocation-"+iIterator, iIterator);
> > > > >
> > > m_cSearchResults.add(cDossierResultEntity);
> > > > > }*/
> > > > > } catch(Exception xException){
> > > > > message = "Error Occured at
> > > > >
> > >
> DossierSearchPanel.searchDossiers().\n"+xException.toString();
> > > > > error(message);
> > > > > }
> > > > > }
> > > > > public boolean isVisible() {
> > > > > return getWicketSession().isUserLoggedIn();
> > > > > }
> > > > >
> > > > > /** simple java bean. */
> > > > > private static class SearchDossierModel implements
Serializable
> {
> > > > > private String name, lastName;
> > > > >
> > > > > /**
> > > > > * Gets lastName.
> > > > > *
> > > > > *
> > > > > * @return lastName
> > > > > */
> > > > > public String getLastName() {
> > > > > return lastName;
> > > > > }
> > > > >
> > > > > /**
> > > > > * Sets lastName.
> > > > > *
> > > > > *
> > > > > * @param lastName
> > > > > * lastName
> > > > > */
> > > > > public void setLastName(String lastName) {
> > > > > this.lastName = lastName;
> > > > > }
> > > > >
> > > > > /**
> > > > > * Gets name.
> > > > > *
> > > > > * @return name
> > > > > */
> > > > > public String getName() {
> > > > > return name;
> > > > > }
> > > > >
> > > > > /**
> > > > > * Sets name.
> > > > > *
> > > > > * @param name
> > > > > * name
> > > > > */
> > > > > public void setName(String name) {
> > > > > this.name = name;
> > > > > }
> > > > > }
> > > > > }
> > > > >
> > > > >
> > >
>
-------------------------------------------------------------------------
> > > > > This SF.net email is sponsored by DB2 Express
> > > > > Download DB2 Express C - the FREE version of DB2 express and
take
> > > > > control of your XML. No limits. Just data. Click to get it now.
> > > > > http://sourceforge.net/powerbar/db2/
> > > > > _______________________________________________
> > > > > Wicket-user mailing list
> > > > > Wicket-user@lists.sourceforge.net
> > > > >
> > >
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > > >
> > > > >
> > > >
> > > >
> > >
>
-------------------------------------------------------------------------
> > > > This SF.net email is sponsored by DB2 Express
> > > > Download DB2 Express C - the FREE version of DB2 express and take
> > > > control of your XML. No limits. Just data. Click to get it now.
> > > > http://sourceforge.net/powerbar/db2/
> > > > _______________________________________________
> > > > Wicket-user mailing list
> > > > Wicket-user@lists.sourceforge.net
> > > >
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > >
> > >
> > >
> > >
>
-------------------------------------------------------------------------
> > > This SF.net email is sponsored by DB2 Express
> > > Download DB2 Express C - the FREE version of DB2 express and take
> > > control of your XML. No limits. Just data. Click to get it now.
> > > http://sourceforge.net/powerbar/db2/
> > > _______________________________________________
> > > Wicket-user mailing list
> > > Wicket-user@lists.sourceforge.net
> > >
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > >
> > >
> > >
> >
> >
>
-------------------------------------------------------------------------
> > This SF.net email is sponsored by DB2 Express
> > Download DB2 Express C - the FREE version of DB2 express and take
> > control of your XML. No limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> > _______________________________________________
> > Wicket-user mailing list
> > Wicket-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
> >
>
>
>
-------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
>
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user