Fórum primefaces dialog frameword , 2 dialog #482156
10/06/2014
0
obs: estou usando o primefaces 5.0 e o jsf 2.2.6
[img]http://arquivo.devmedia.com.br/forum/imagem/243128-20140610-180305.jpg[/img]
Deivison Melo
Curtir tópico
+ 0Posts
11/06/2014
Diogo Souza
Existe a propriedade position que acredito não funcionar muito para o seu caso...
Já considerou abrir um e fechar o outro e vice versa?
Gostei + 0
11/06/2014
Deivison Melo
Gostei + 0
11/06/2014
Deivison Melo
package br.com.teste.bean;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.context.RequestContext;
@ManagedBean(name = "dialog")
@SessionScoped
public class Dialog implements Serializable {
/**
*
*/
private static final long serialVersionUID = -4944774476384986097L;
/**metodo usado para chamar o dialogo
*
* @param val true - abrir o dialogo , false - fechar
* @param tela - nome do xhtml
* @param layout - layout do dialogo
*/
public void dialogo(boolean val , String tela , int layout){
try {
if(val){
RequestContext.getCurrentInstance().openDialog(tela , tamanho(layout) , null);
}else{
RequestContext.getCurrentInstance().closeDialog(tela);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private Map<String , Object> tamanho(int cod){
Map<String , Object> option = new HashMap<String, Object>();
if(cod==1){
option.put("modal", true);
}else if (cod==2){
option.put("modal", true);
}
return option;
}
}
Gostei + 0
11/06/2014
Deivison Melo
Gostei + 0
11/06/2014
Deivison Melo
Gostei + 0
12/06/2014
Deivison Melo
Gostei + 0
12/06/2014
Rafael Lazzari
Gostei + 0
13/06/2014
Diogo Souza
Talvez possamos agir sobre o CSS dos componentes... Poderia inspecionar os elementos que ele gera e postar o HTML e CSS dos dialogs pra ver se a gente consegue mudar?
Gostei + 0
17/06/2014
Deivison Melo
Segue código fonte da minha aplicação, na verdade fiz um exemplo bem simples para que tenha um melhor entendimento.
Quando abrir, por favor, abra a tela do botão 1 e da tela que for aberta chame a tela 2 (mesma tela chamada do botao2, também colocado na tela).
Vc perceberá que a tela fica dentro da area da outra e não permite ser arrastada para fora.
[url]https://rapidshare.com/share/322A75EE8B3F60A62D7A131432F9BC3C[/url]
Agradeço a todos pela ajuda!
Abração!
Gostei + 0
20/06/2014
Diogo Souza
Então, como não temos recursos pelo próprio Primefaces pra configurar isso, façamos na mão mesmo.
O Primefaces disponibiliza o jQuery por padrão, então podemos usar os recursos dele pra facilitar. Você só precisa buscar o elemento iframe que compõe esse panel, após ele ser carregado na página, e setar sua largura para um tamanho menor, aí ele adapta.
Faz assim, na sua página "tela2.html", acrescenta o código abaixo logo após o fechamento da tag </h:form>
<script type="text/javascript">
$(document).ready(function() {
$('iframe', parent.document).css('width', '490px');
});
</script>O código será executado assim que a tela 2 abrir pela função ready(). Logo após, recuperamos o iframe que está fora da página atual (por isso precisamos do parent.document) e setamos o valor da largura! Testa e avisa se deu certo! :)
Gostei + 0
24/06/2014
Deivison Melo
Gostaria de agradecer desde já pelo código!!
Depois de inserir o código, Quando abrimos a tela 2 através da tela 1, o contexto não está funcionando, ou seja, coloquei um botão fechar e não consigo fechar a tela com ele...
Na verdade ele está se "perdendo".
Abração e bons códigos!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)