2
gwt에 트리를 구현해야합니다. TreeItem에 위젯을 설정하는 객체를 구현하고 있습니다.위젯을 TreeItem에 gwt에 설정하십시오.
문제는 내가 트리 (문자열과 정수 필드 만있는)이 개체를 TreeItem에 설정하면 더 이상 트리를 볼 수 없다는 것입니다.
어디에 문제가 있습니까? 나는 그것을 볼 수 없다.
private Tree frontEndTree;
private void buildTree(HashMap<Long, Categoria> categoriaMap) {
for(Categoria categoria : categoriaMap.values()) {
if(categoria.getLevel() != 1) continue;
TreeItem firstLevel = //this.frontEndTree.addTextItem(categoria.getDescription());
this.frontEndTree.addTextItem(categoria.getDescription());
ItemTree itemTree = new ItemTree(categoria);
firstLevel.setWidget((Widget)itemTree);
this.visitaAlbero(firstLevel, categoria.getDescendants());
}
}
private void visitaAlbero(TreeItem parentItem, ArrayList<Categoria> categorie) {
if(categorie == null) return;
if(categorie.isEmpty()) return;
TreeItem node = null;
for(Categoria item : categorie) {
if(node == null) {
node = parentItem.addTextItem(item.getDescription());
node.setWidget(new ItemTree(item));
visitaAlbero(node, item.getDescendants());
continue;
}
node.addTextItem(item.getDescription());
node.setWidget(new ItemTree(item));
visitaAlbero(node, item.getDescendants());
}
}
/**
* Inner class che gestisce il widget principale
* del treeitem
*
* @author Giuseppe Pedullà
*
*/
public class ItemTree extends Widget implements Serializable, IsWidget {
/**
*
*/
private static final long serialVersionUID = 5347332077472260376L;
private Long id;
private String description;
private Integer level;
public ItemTree(Categoria categoria) {
this.id = categoria.getId();
this.description = categoria.getDescription();
this.level = categoria.getLevel();
}
public String getDescription() {
String valueID = "";
if(id < 10) {
valueID = "00" + id;
} else if(id < 100) {
valueID = "0" + id;
} else {
valueID = "" + id;
}
return valueID + " - " + description;
}
//GETTERS
public Long getId() {
return id;
}
public Integer getLevel() {
return level;
}
@Override
public String toString() {
return description;
}
}
고마워, 곧 해보겠습니다. 위젯이 충분하지 않다면 위젯을 확장 할 시점이 무엇인지 알 것입니다. – Peduz
다른 점을 물어보고 싶습니다. 노드에 clickListener를 추가하면 서버 측에서 Composite를 확장하는 Object의 정보를 사용할 수 있습니까? 감사. – Peduz
내가 도울 수있어서 기쁩니다. 제발, 또 다른 질문을 게시하고 우리는 그들에게 대답하려고합니다. – Adam