Como recuperar os "checkednodes" do Componente TreePanel do OpenSwing

5 respostas
diegobilhalva

Prezados,

Sou muito novo (novo demais) nesta linguagem (e principalmente em OO) e estou com um problema que na web não achei solução (e olha que pesquisei!).

Vejam a imagem:

Então, estou pegando os checkednodes de um OpenSwing.TreePanel da seguinte forma:

HashSet checkedNodes = treeMenu.getCheckedNodes();, onde treeMenu é uma instância da classe TreePanel. E o método getCheckedNodes é do tipo HashSet.

Agora vamos a vaca fria:

Se vocês observarem a imagem verão que…
[list]1 - checkednodes é do tipo HashSet,[/list]
[list]2 - O elemento [0] é do tipo OpenSwingTreeNode[/list]
[list]3 - O elemento [cloneUserObject] contido em [0] é do tipo TestVO (esta classe está copiada abaixo)[/list]

Preciso passar para três variáveis do tipo string, os elementos CODE, DESCRIPTION e FOLDERCODE contidos no item 3 (acima).
Como fazer isso???

Se precisarem de mais informações, por favor, peçam. O interesse é todo meu. :slight_smile:

Classe TestVO (esta classe retirei do exemplo 33 que acompanha o pacote de download do framework):

package treepane;

import org.openswing.swing.message.receive.java.ValueObjectImpl;


/**
 * <p>Title: OpenSwing Framework</p>
 * <p>Description: Test Value Object.</p>
 * <p>Copyright: Copyright (C) 2006 Mauro Carniel</p>
 * <p> </p>
 * @author Mauro Carniel
 * @version 1.0
 */
public class TestVO extends ValueObjectImpl {

  private String code;
  private String folderCode;
  private String description;


  public TestVO() {
  }


  public String getCode() {
    return code;
  }
  public String getDescription() {
    return description;
  }
  public void setCode(String code) {
    this.code = code;
  }
  public void setDescription(String description) {
    this.description = description;
  }
  public String getFolderCode() {
    return folderCode;
  }
  public void setFolderCode(String folderCode) {
    this.folderCode = folderCode;
  }
}

Agradeço a todos que puderem ajudar e peço que sejam o mais didático possível, pois como falei, sou muito novo na linguagem.

5 Respostas

diegobilhalva

Pessoal… Alguém pode ajudar??? :shock:

Agradeço.

diegobilhalva

up

Paulo_Silveira

Ola Diego

Faca casting do 1o elemento do HashSet para OpenSwingTreeNode. Pra isso precisa ter certeza que ele sera o primeiro elemento do hashset (o que nao deveriamos confiar, por ser um hash):

OpenSwingTreeNode node = (OpenSwingTreeNode) set.iterator().next();

Depois pegue o seu vo (alias, recomendo fortemente mudar o nome dessa classe):

TestVO test = node.getClonedUserObject();

Agora so chamar seus getters e guardar nas Strings.

diegobilhalva

Paulo Silveira:
Ola Diego

Faca casting do 1o elemento do HashSet para OpenSwingTreeNode. Pra isso precisa ter certeza que ele sera o primeiro elemento do hashset (o que nao deveriamos confiar, por ser um hash):

OpenSwingTreeNode node = (OpenSwingTreeNode) set.iterator().next();

Depois pegue o seu vo (alias, recomendo fortemente mudar o nome dessa classe):

TestVO test = node.getClonedUserObject();

Agora so chamar seus getters e guardar nas Strings.

Caro Paulo,

Desde já agradeço pela ajuda, contudo encontrei problemas.

Estou usando o NetBeans 6.9.1. Ele acusa erro na chamada do método node.getClonedUserObject().

Outra coisa, o “set” seria o hashset treeMenu.getCheckedNodes()?

Valeu!

diegobilhalva

Meu amigo… funcionou!!!

Contudo não é getClonedUserObject… apenas getUserObjetct();. E também devo fazer casting da TestVO:

TestVO test = (TestVO) node.getUserObject();

Quanto a renomear a classe, pode deixar… já renomeei…rsrsrsrs

Obrigado. Fico muito grato!!!

Criado 30 de dezembro de 2010
Ultima resposta 3 de jan. de 2011
Respostas 5
Participantes 2