Amigos,
Ontem fiz um post sobre o assunto, acima, e o colega @TerraSkilll me ajudou com o link, abaixo:
Queria construir um loop que referenciasse cada controle do formulário (TextField, ComboBox, etc) e executasse as alterações que eu quisesse, nesses controles. O código contido no link, acima, Funcionou, PERFEITAMENTE.
Porém, como o meu formulário tem muito containers (um TABPANE, com 4 abas, principalmente), o código ainda ficou muito comprido, pois preciso fazer um loop para cada container e, dentro desse loop, referenciar todos os tipos de controle que quero referenciar.
Enfim… A PERGUNTA É: existe uma maneira de fazer um loop que faça uma varredura geral, independentemente dos containers? Algo tipo assim: “Independentemente dos containers existentes no formulário, faça uma varredura por todos os TextFields existentes no formulário e limpe cada um deles”.
Abaixo, segue o código que fiz, e repito: ELE ESTÁ FUNCIONANDO, PERFEITAMENTE. Só gostaria de encurtá-lo. Alguém tem uma dica?
@FXML public void AtivaDesativaCampos(boolean desatIdent, boolean desatContrato, boolean desatLocal, boolean desatFisica) { //Grupo GERAL (anchorpane geral)
for (Node nodeGeral : LayoutGeral.getChildren())
{
if (nodeGeral instanceof TextField)
{
((TextField)nodeGeral).setDisable(desatFisica);
}
else if (nodeGeral instanceof ComboBox)
{
((ComboBox)nodeGeral).setDisable(desatIdent);
}
else if (nodeGeral instanceof TextArea)
{
((TextArea)nodeGeral).setDisable(desatIdent);
}
}
//Grupo IDENTIFICAÇÃO
for (Node nodeIdent : tbIdent2.getChildren())
{
if (nodeIdent instanceof TextField)
{
((TextField)nodeIdent).setDisable(desatIdent);
}
else if (nodeIdent instanceof ComboBox)
{
((ComboBox)nodeIdent).setDisable(desatIdent);
}
else if (nodeIdent instanceof TextArea)
{
((TextArea)nodeIdent).setDisable(desatIdent);
}
else if (nodeIdent instanceof Button)
{
((Button)nodeIdent).setDisable(desatIdent);
}
}
//Grupo CONTRATO
for (Node nodeContrato : tbContrato2.getChildren())
{
if (nodeContrato instanceof TextField)
{
((TextField) nodeContrato).setDisable(desatContrato);
}
else if (nodeContrato instanceof ComboBox)
{
((ComboBox) nodeContrato).setDisable(desatContrato);
}
else if (nodeContrato instanceof TextArea)
{
((TextArea) nodeContrato).setDisable(desatContrato);
}
else if (nodeContrato instanceof Button)
{
((Button) nodeContrato).setDisable(desatContrato);
}
}
//Grupo LOCALIZAÇÃO E REDES SOCIAIS
for (Node nodeLocal : tbLocal2.getChildren())
{
if (nodeLocal instanceof TextField)
{
((TextField) nodeLocal).setDisable(desatLocal);
}
else if (nodeLocal instanceof ComboBox)
{
((ComboBox) nodeLocal).setDisable(desatLocal);
}
else if (nodeLocal instanceof TextArea)
{
((TextArea) nodeLocal).setDisable(desatLocal);
}
else if (nodeLocal instanceof Button)
{
((Button) nodeLocal).setDisable(desatLocal);
}
}
//Grupo PESSOA FÍSICA
for (Node nodeFisica : tbFisica2.getChildren())
{
if (nodeFisica instanceof TextField)
{
((TextField) nodeFisica).setDisable(desatFisica);
}
else if (nodeFisica instanceof ComboBox)
{
((ComboBox) nodeFisica).setDisable(desatFisica);
}
else if (nodeFisica instanceof TextArea)
{
((TextArea) nodeFisica).setDisable(desatFisica);
}
else if (nodeFisica instanceof Button)
{
((Button) nodeFisica).setDisable(desatFisica);
}
}
}