I will try to give more info of the problem. Here's a concrete class of my modal window: public final class GeneralLinkParametersModalWindow extends AbstractParametersModalWindow { private static final long serialVersionUID = -2817303037867728250L; private WebPage originatePage; private ReportPage newReportPage; private final String parametersWebPageClassName;
public GeneralLinkParametersModalWindow(String id, String parametersWebPageClassName) { super(id, parametersWebPageClassName); this.parametersWebPageClassName = parametersWebPageClassName; } @Override protected void onOk(AjaxRequestTarget target) { if (originatePage == null) { throw new RuntimeException( "GeneralLinkParametersModalWindow.onOk - originatePage is null!!"); } originatePage.setResponsePage(newReportPage); } @Override protected Component componentToAjaxTarget() { return null; } @Override public void setReportSrcUrl(Map<String, String> parametersPairsForReport, String reportName) { newReportPage = new ReportPage(parametersWebPageClassName); newReportPage.setReportSrcUrl(parametersPairsForReport, reportName); } public final void setOriginatePage(WebPage webPage) { this.originatePage = webPage; } } As I described in the previous post, when the user presses OK, I set a boolean and in the callback, the onOk is called. I managed to progress a little bit and now I have this strange problem: I open the first time the modal window and press Cancel. I then open the same modal, choose the values I want and then press OK. The sequence is that when pressing OK, the setReportSrcUrl is called. Then the close callback is called (because I also call close()); And the bug: In the onOk, newReportPage is null for the originatePage.setResponsePage(newReportPage);. This is very strange for me. Anyone knows something about it? We use 1.3.4 On Sun, Sep 21, 2008 at 12:19 PM, Eyal Golan <[EMAIL PROTECTED]> wrote: > > Hello, > I have a problem with class members in a Modal Window. > Here's my general structure of things: > -- AbstractParametersModalWindow > -- > GeneralLinkParametersModalWindow > -- > ReportPageParamatersModalWindow > > In the parent modal window I have this: > setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { > private static final long serialVersionUID = 1L; > > public void onClose(final AjaxRequestTarget target) { > // If not pressed ok, we don't want to make the ajax call > if (okPressed) { > onOk(target); > } > okPressed = false; > } > }); > > The problem is with the *okPressed* class member. > > The Modal uses a Page as content. > In the page there are OK and Cancel buttons. > When the user presses OK, I set the okPressed to true, do some stuff and > call the close method. > This is the OK button code: > EurekifyAjaxButton okButton = new EurekifyAjaxButton("ok") { > private static final long serialVersionUID = 1L; > > @Override > protected void onError(AjaxRequestTarget target, Form form) { > super.onError(target, form); > target.addComponent(feedbackPanel); > } > > @Override > protected void onSubmit(AjaxRequestTarget target, Form form) { > window.okPressed(getParametersPairsForReport(), > getReportName()); > window.close(target); > } > > }; > > This is the okPressed method in the modal window: > public final void okPressed(Map<String, String> > parametersPairsForReport, String reportName) { > okPressed = true; > setReportSrcUrl(parametersPairsForReport, reportName); > } > > For the sake of the question, it's not important how the onOk is > implemented in each sub class. > > Here is how I add a link with ReportPageParamatersModalWindow: > popupParametersWindow = > new > ReportPageParamatersModalWindow(ReportParametersLink.POPUP_WINDOW_ID, > parametersWebPageClassName, this); > > add(popupParametersWindow); > AjaxLink link = new AjaxLink(MenuItem.LINK_ID) { > private static final long serialVersionUID = 1L; > > @Override > public void onClick(AjaxRequestTarget target) { > popupParametersWindow.show(target); > } > }; > link.addOrReplace(new Label("linktext", new > ResourceModel("Reports.showParameters"))); > add(link); > > And this is the description of my problem: > When putting break point in the onClose callback, the okPressed is FALSE > even though I set it to TRUE. > I tried many options of subclassing etc. > > The link with GeneralLinkParametersModalWindow works fine and the okPressed > is true. > It seems that I look at two different objects. > > I tried to be as clear as possible. > > Any thoughts? > > > > -- > Eyal Golan > [EMAIL PROTECTED] > > Visit: http://jvdrums.sourceforge.net/ > LinkedIn: http://www.linkedin.com/in/egolan74 > > P Save a tree. Please don't print this e-mail unless it's really necessary > -- Eyal Golan [EMAIL PROTECTED] Visit: http://jvdrums.sourceforge.net/ LinkedIn: http://www.linkedin.com/in/egolan74 P Save a tree. Please don't print this e-mail unless it's really necessary