Wicket: como passar parametros para o modalWindow?

3 respostas
P

Fala feras :smiley:

Criei um modalWindow através de m tutorial mas não consigo passar parâmetros para o modal para que ela receba o valor passado e exiba no modal. Alguém sabe como fazer isso?

Valeu

Abs

3 Respostas

lucasdnd

Você pode fazer um outro construtor pro seu modalWindow que recebe o parâmetro.

P

Amigo, eu sei que é abuso, mas vc pode me mostrar um exemplo de como ficaria na classe Java? Eu to um pouco perdido com relação ao Wicket, to lendo o livro Wicket in Action, mas to cheio de dúvidas.

Vou colar meu código da página ‘principal’, assim vc pode ver como q eu inicio o modal:

public class RequirementTreeTablePage extends WebPage {

	@SuppressWarnings("unchecked")
	public RequirementTreeTablePage() {
		super();
		final ModalWindow modalWindow = new RequirementModalWindow("modalWindow"){

			private static final long serialVersionUID = 1L;

			@Override
			void onCancel(AjaxRequestTarget target) {
				 resultLabel.setModelObject("ModalWindow cancelled.");
				 target.addComponent(resultLabel);
                 close(target);
			}

			@Override
			void onSelect(AjaxRequestTarget target, String selection) {
                resultLabel.setModelObject(selection);
                target.addComponent(resultLabel);
                close(target);
				
			}
			
		};

                 AajaxLink = new AjaxLink("modalLink", new Model(model)) {
					private static final long serialVersionUID = 1L;
					
					@Override
					public void onClick(AjaxRequestTarget target) {
						System.out.println("");
						RequerimentoTO requerimentoTO = (RequerimentoTO) this.getModelObject();
// Neste ponto, eu gostaria de setar o requerimentoTO.getRqReqName() dentro do modalWindow, mas não consigo
						modalWindow.show(target);
						
					}
				};

http://papernapkin.org/pastebin/view/5477/

Abs

ricardospinoza

Sei que este tópico é do ano passado, mas como hoje enfrentei o mesmo problema, e não houve resposta, resolvi postar minha solução para ajudar os companheiros que se depararem com a mesma dificuldade :slight_smile:

Na Classe que hospeda o código da Modal

final ModalWindow modalVerDetalhe;
            item.add(modalVerDetalhe = new ModalWindow("modalVerDetalhe"));

            modalVerDetalhe.setPageMapName("modal-VerDetalhe");
            modalVerDetalhe.setCookieName("modal-VerDetalhe");
            modalVerDetalhe.setHeightUnit("px");
            modalVerDetalhe.setInitialHeight(200);
            modalVerDetalhe.setInitialWidth(750);

            modalVerDetalhe.setPageCreator(new ModalWindow.PageCreator() {

                @Override
                public Page createPage() {

                    PageParameters param = new PageParameters();
                    param.put("id", documento.getId());//seto o parametro PageParameters aqui
                    return new VerDetalhesModal(PesqDocumento.this, modalVerDetalhe, param);
                }
            });
            modalVerDetalhe.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() {

                @Override
                public void onClose(AjaxRequestTarget target) {
                }
            });

            item.add(new AjaxLink("showModalVerDetalhe") {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    modalVerDetalhe.show(target);
                }
            });

Na classe Modal

//construtor com PageParameters 
public VerDetalhesModal(PesqDocumento pesqDocumentoWindowPage, ModalWindow modal, PageParameters params) {
        super(params);
            this.pesqDocumentoWindowPage = pesqDocumentoWindowPage;
            this.window = modal;


        if (params != null && params.get("id") != null && params.getAsInteger("id") != null) {
            Integer id = params.getAsInteger("id");
            try {               
                this.documento = Fachada.getInstancia().pesqPorId(Documento.class, id);
            } catch (Exception ex) {
                error(ex.getMessage());
            }
            form();
        }
    }

Só pra constar o html referente a modal

<span>
     <a  ><img     /></a>
     &lt;div wicket:id="modalVerDetalhe"&gt;&lt;/div&gt;
&lt;/span&gt;
Criado 13 de maio de 2009
Ultima resposta 8 de abr. de 2010
Respostas 3
Participantes 3