Galera boa tarde.
Pesquisei bastante, li uns artigos, e a verdade é que não consegui fazer funcionar uma parada, segue:
resumo do que interessa da página esbocoRede.jsp
<script>
function executa(){
switch(tipoEdicao){
case 1:{
maisPonto(coordX,coordY,"ponto_"+numPontos);
}
case 2:{
maisLinha(coordX,coordY,"linha_"+numLinhas);
}
}
}
</script>
<h:form>
<a4j:jsFunction ajaxSingle="true" name="maisLinha" action="#{esbocoRede.maisLinha}">
<a4j:actionparam name="param1" assignTo="#{esbocoRede.linha.coordX}" />
<a4j:actionparam name="param2" assignTo="#{esbocoRede.linha.coordY}" />
<a4j:actionparam name="param3" assignTo="#{esbocoRede.linha.id}" />
<a4j:actionparam name="param4" value="0" assignTo="#{esbocoRede.linha.coordZ}" />
</a4j:jsFunction>
<a4j:jsFunction ajaxSingle="true" name="maisPonto" action="#{esbocoRede.maisPonto}">
<a4j:actionparam name="param1" assignTo="#{esbocoRede.ponto.coordX}" />
<a4j:actionparam name="param2" assignTo="#{esbocoRede.ponto.coordY}" />
<a4j:actionparam name="param3" assignTo="#{esbocoRede.ponto.id}" />
<a4j:actionparam name="param4" value="0" assignTo="#{esbocoRede.ponto.coordZ}" />
</a4j:jsFunction>
</h:form>
resumo do que interessa da classe EsbocoRede.java
public EsbocoRede(){
this.ponto = new TipoPonto();
this.linha = new TipoPonto();
this.pontos = new ArrayList<TipoPonto>();
this.linhas = new ArrayList<TipoPonto>();
}
public void maisPonto(){
this.pontos.add(ponto);
}
public void maisLinha(){
this.linhas.add(linha);
}
public ArrayList<TipoPonto> getPontos(){
return this.pontos;
}
public TipoPonto getPonto() {
return ponto;
}
public void setPonto(TipoPonto ponto) {
this.ponto = ponto;
}
public int getNumPontos() {
return this.pontos.size();
}
public TipoPonto getLinha() {
return linha;
}
public void setLinha(TipoPonto linha) {
this.linha = linha;
}
Meu objetivo com esse código, é poder inserir Pontos e Linhas(composto por 2 ou mais pontos) nos seus respectivos arrays
A cada clique no mapa, eu crio um novo ponto na coordenada, ou então, eu desenho uma linha.
Após o desenho do ponto ou da linha, quero incrementar meu array de pontos/linhas, para posteriormente salvar tudo.
O problema é que ao clicar em maisPonto(), ele chama o método maisLinha(), e de uma forma desordenada, além de chamar 2x ou não, algum método
Por gentileza, qual o procedimento correto? Já tentei, li alguns links já postados aqui no fórum, porém não consegui resolver meu caso, sendo que só consegui enxergar essa forma de o fazer.