Please create a jira issue and attach a page source code that doesn't work.

-Matej

2008/4/14 Tomasz Prus <[EMAIL PROTECTED]>:
> I have AjaxLink which works good in Wicket 1.3.2 but doens't work whe i
>  change version to 1.3.3.
>
>  package pl.mainseek.car.wicket.components;
>
>  import java.util.Arrays;
>  import java.util.List;
>
>  import org.apache.wicket.PageParameters;
>  import org.apache.wicket.ajax.AjaxRequestTarget;
>  import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
>  import org.apache.wicket.ajax.markup.html.AjaxLink;
>  import org.apache.wicket.markup.html.form.Button;
>  import org.apache.wicket.markup.html.form.DropDownChoice;
>  import org.apache.wicket.markup.html.form.Form;
>  import org.apache.wicket.markup.html.form.IChoiceRenderer;
>  import org.apache.wicket.markup.html.form.RequiredTextField;
>  import org.apache.wicket.markup.html.form.StatelessForm;
>  import org.apache.wicket.markup.html.panel.Panel;
>  import org.apache.wicket.model.CompoundPropertyModel;
>  import org.apache.wicket.model.Model;
>  import org.apache.wicket.spring.injection.annot.SpringBean;
>
>  import pl.mainseek.car.dao.CarsDAO;
>  import pl.mainseek.car.entities.CarModel;
>  import pl.mainseek.car.entities.CarPart.Condition;
>  import pl.mainseek.car.wicket.CommonWebPage;
>  import pl.mainseek.car.wicket.models.SearchCarPartsModel;
>  import pl.mainseek.car.wicket.pages.AdvertismentsList;
>  import pl.mainseek.forum.wicket.pages.ForumList;
>
>  public class SearchPanel extends Panel {
>
>     public static final String FORUM_OPTION = "forum";
>     public static final String ADS_OPTION = "ads";
>
>     @SpringBean
>     private CarsDAO carsDAO;
>
>     //keys
>     private static final String ADVANCED_SEARCH_BUTTON_KEY =
>  "advanced.search.button";
>
>     //wicket:ids
>     public static final String SEARCH_FORM = "search_form";
>     public static final String CONDITION = "condition";
>     public static final String CAR_MODEL = "carModel";
>     public static final String CAR_MARK = "carMark";
>     public static final String QUERY = "query";
>     public static final String ADVANCED_SEARCH = "advanced_search";
>     public static final String SEARCH_BUTTON = "search_button";
>     public static final String SEARCH_WHERE = "searchWhere";
>
>     private final DropDownChoice searchWhereDDC, carMarkDDC, carModelDDC,
>  conditionDDC;
>     private final RequiredTextField queryField;
>
>     private final String[] searchWhereKeys = new String[] {ADS_OPTION,
>  FORUM_OPTION};
>
>     //model
>     private SearchCarPartsModel carPartsModel;
>
>     public SearchPanel(String id, SearchCarPartsModel model) {
>         super(id);
>         this.carPartsModel = model;
>         final Form searchForm = new StatelessForm(SEARCH_FORM, new
>  CompoundPropertyModel(carPartsModel)) {
>             @Override
>             protected void onSubmit() {
>                 super.onSubmit();
>                 setRedirect(true);
>                 PageParameters pageParameters = new PageParameters();
>                 pageParameters.add("query", carPartsModel.getQuery());
>                 if(carPartsModel.getCarModel() != null) {
>                     pageParameters.add("carModel",
>  String.valueOf(carPartsModel.getCarModel().getId()));
>                 } else if(carPartsModel.getCarMark() != null) {
>                     pageParameters.add("carMark",
>  String.valueOf(carPartsModel.getCarMark().getId()));
>                 }
>                 if(carPartsModel.getSearchWhere().equals(ADS_OPTION)) {
>                     if(carPartsModel.getCondition() != null) {
>                         pageParameters.add("condition",
>  carPartsModel.getCondition().toString().toLowerCase());
>                     }
>                     setResponsePage(AdvertismentsList.class,
>  pageParameters);
>                 } else
>  if(carPartsModel.getSearchWhere().equals(FORUM_OPTION)) {
>                     setResponsePage(ForumList.class, pageParameters);
>                 }
>             }
>         };
>         searchForm.setOutputMarkupId(true);
>         queryField = new RequiredTextField(QUERY);
>         searchWhereDDC = getSearchWhereDDC(searchForm);
>         conditionDDC = getConditionDDC(searchForm);
>         List<CarModel> carModels =
>  carsDAO.getCarModels(carPartsModel.getCarMark());
>         carModelDDC = getCarModelDDC(carModels);
>         carMarkDDC = getCarMarkDDC(carModels);
>         carMarkDDC.setVisible(false);
>         carModelDDC.setVisible(false);
>         conditionDDC.setVisible(false);
>
>         searchForm.add(queryField);
>         searchForm.add(searchWhereDDC);
>         searchForm.add(conditionDDC);
>         searchForm.add(carMarkDDC);
>         searchForm.add(carModelDDC);
>         final AjaxLink advancedSearch = new AjaxLink(ADVANCED_SEARCH) {
>             @Override public void onClick(AjaxRequestTarget target) {
>                 carMarkDDC.setVisible(!carMarkDDC.isVisible());
>                 carModelDDC.setVisible(!carModelDDC.isVisible());
>                 conditionDDC.setVisible(!carModelDDC.isVisible());
>                 if(carMarkDDC.isVisible()){
>                     carMarkDDC.setChoices(carsDAO.getAllCarMarks());
>                 }
>                 target.addComponent(searchForm);
>             }
>         };
>         searchForm.add(advancedSearch);
>         searchForm.add(new Button(SEARCH_BUTTON, new
>  Model(getString(ADVANCED_SEARCH_BUTTON_KEY))));
>         add(searchForm);
>     }
>
>     private DropDownChoice getSearchWhereDDC(final Form form) {
>         DropDownChoice _searchWhereDDC = new DropDownChoice(SEARCH_WHERE,
>  Arrays.asList(searchWhereKeys));
>         _searchWhereDDC.setNullValid(false);
>         _searchWhereDDC.setChoiceRenderer(new IChoiceRenderer() {
>             public Object getDisplayValue(Object o) {
>                 String searchOpt = (String) o;
>                 return getString("searchWhere." + searchOpt);
>             }
>
>             public String getIdValue(Object o, int i) {
>                 String searchOpt = (String) o;
>                 return searchOpt;
>             }
>         });
>         _searchWhereDDC.add(new
>  AjaxFormComponentUpdatingBehavior(CommonWebPage.ONCHANGE_BEHAVIOR) {
>             protected void onUpdate(AjaxRequestTarget target) {
>                 if(carPartsModel.getSearchWhere().equals(ADS_OPTION)) {
>                     conditionDDC.setVisible(true);
>                 } else {
>                     conditionDDC.setVisible(false);
>                 }
>                 if(carMarkDDC.isVisible()) {
>                     target.addComponent(form);
>                 }
>             }
>         });
>         return _searchWhereDDC;
>     }
>
>     private DropDownChoice getConditionDDC(Form form) {
>         DropDownChoice _conditionDDC = new DropDownChoice(CONDITION,
>  Arrays.asList(Condition.values())) {
>             @Override
>             public boolean isVisible() {
>                 return carMarkDDC.isVisible() &&
>  carPartsModel.getSearchWhere().equals(ADS_OPTION);
>             }
>         };
>         _conditionDDC.setChoiceRenderer(new IChoiceRenderer() {
>             public Object getDisplayValue(Object o) {
>                 Condition condition = (Condition) o;
>                 return getString(Condition.getKey(condition));
>             }
>
>             public String getIdValue(Object o, int i) {
>                 Condition condition = (Condition) o;
>                 return condition.toString();
>             }
>         });
>         return _conditionDDC;
>     }
>
>     private DropDownChoice getCarMarkDDC(final List<CarModel> carModels) {
>         return new CarMarkDDC(CAR_MARK, carPartsModel, carsDAO, carModels,
>  carModelDDC);
>     }
>
>     @SuppressWarnings("unchecked")
>     private DropDownChoice getCarModelDDC(final List<CarModel> carModels) {
>         return new CarModelDDC(CAR_MODEL, carPartsModel.getCarMark(),
>  carModels);
>     }
>  }
>
>
>
>
>  <html>
>     <wicket:head>
>           <link rel="stylesheet" type="text/css" href="/css/search.css">
>     </wicket:head>
>     <body>
>         <wicket:panel>
>             <form wicket:id="search_form">
>                 <div class="headerNav">
>                     <div class="lft">
>                         <div class="rgt">
>                             <img src="/img/logo.gif" class="floatL"
>  alt="kfz.pl" />
>                             <div class="posSearch">
>                                 <div class="floatL">
>                                     <input type="text" wicket:id="query" />
>                                     <select wicket:id="searchWhere">[search
>  where]</select>
>                                 </div>
>                                 <button class="btn btn_b" type="submit"
>  wicket:id="search_button" ><font><span><wicket:message
>  key="search_form.button"/></span></font></button>
>                                 <a class="advanced"
>  wicket:id="advanced_search"><wicket:message key="advanced.search.link"/></a>
>                             </div>
>                         </div>
>                     </div>
>                 </div>
>                 <wicket:enclosure child="carMark">
>                     <div class="hoverSearch">
>                         <div class="boxSearch oo">
>                             <div class="txtSel mt10">
>                                 <div><wicket:message
>  key="advanced.search.condition"/></div>
>                                 <div><wicket:message
>  key="advanced.search.mark"/></div>
>                                 <div><wicket:message
>  key="advanced.search.model"/></div>
>                             </div>
>                             <div class="selct mt10">
>                                 <select
>  wicket:id="condition">[condition]</select>
>                                 <select
>  wicket:id="carMark">[carMark]</select>
>                                 <select
>  wicket:id="carModel">[carModel]</select>
>                             </div>
>                         </div>
>                         <div class="shadow"><div class="lft"><div
>  class="rgt"></div></div></div>
>                     </div>
>                 </wicket:enclosure>
>             </form>
>         </wicket:panel>
>     </body>
>  </html>
>
>  Wicket Ajax Debug:
>  *INFO: *focus removed from
>  *INFO: *focus set on advanced__search4
>  *INFO: *
>  *INFO: *
>  Initiating Ajax GET request on
>  ../../?wicket:interface=:0:2:::0:2&random=0.3031798307043151
>  *INFO: *Invoking pre-call handler(s)...
>  *INFO: *Received ajax response (2159 characters)
>  *INFO: *
>  <?xml version="1.0"
>  encoding="UTF-8"?><ajax-response><header-contribution
>  encoding="wicket1" ><![CDATA[<head xmlns:wicket="
>  http://wicket.apache.org";><script type="text/javascript"
>  
> src="../../resources/org.apache.wicket.markup.html.WicketEventReference/wicket-event.js"></script>
>
>  <script type="text/javascript"
>  
> src="../../resources/org.apache.wicket.ajax.WicketAjaxReference/wicket-ajax.js"></script>
>
>  <script type="text/javascript"
>  
> src="../../resources/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/wicket-ajax-debug.js"></script>
>
>  <script type="text/javascript"
>  id="wicket-ajax-debug-enable"><!--/*--><![CDATA[/*><!--*/
>  wicketAjaxDebugEnable=true;
>  /*-->]^]^>*/</script>
>
>  </head>]]></header-contribution><component id="search__form1"
>  ><![CDATA[<form id="search__form1"
>  
> action="../../page/HomePage/wicket:interface/%3A0%3Asearch_panel%3Asearch_form%3A%3AIFormSubmitListener%3A%3A/"
>  method="post"><div style="display:none"><input type="hidden"
>  name="search__form1_hf_0" id="search__form1_hf_0" /></div>
>
>                 <div class="headerNav">
>                     <div class="lft">
>                         <div class="rgt">
>                             <img src="/img/logo.gif" class="floatL"
>  alt="kfz.pl" />
>
>                             <div class="posSearch">
>                                 <div class="floatL">
>                                     <input name="query" value="" type="text"/>
>
>                                     <select id="searchWhere2"
>  name="searchWhere" onchange="var
>  wcall=wicketAjaxPost('../../?wicket:interface=:0:1:::0:2',
>  wicketSerialize(Wicket.$('searchWhere2')),null,null, function()
>  {return Wicket.$('searchWhere2') != null;}.bind(this));">
>  <option selected="selected" value="ads">w ogłoszeniach</option>
>  <option value="forum">w forum</option>
>  </select>
>                                 </div>
>                                 <button id="search__button3"
>  name="search_button" value="Szukaj" class="btn btn_b"
>  type="submit"><font><span>Szukaj</span></font></button>
>
>                                 <a id="advanced__search4" onclick="var
>  wcall=wicketAjaxGet('../../?wicket:interface=:0:2:::0:2',null,null,
>  function() {return Wicket.$('advanced__search4') !=
>  null;}.bind(this));return !wcall;" class="advanced" href="#">Szukanie
>  zaawansowane</a>
>
>                             </div>
>                         </div>
>                     </div>
>                 </div>
>
>             </form>]]></component></ajax-response>
>  *INFO: *Response parsed. Now invoking steps...
>  *INFO: *Response processed successfully.
>  *INFO: *Invoking post-call handler(s)...
>  *INFO: *Calling focus on advanced__search4
>  *INFO: *focus set on advanced__search4
>  *INFO: *focus removed from advanced__search4
>  *INFO: *focus set on advanced__search4
>  *INFO: *focus removed from advanced__search4
>



-- 
Resizable and reorderable grid components.
http://www.inmethod.com

Reply via email to