Ejemplo n.º 1
0
 public void addChild(TreeItem parent) throws Exception {
   boolean childFlag = false;
   TreeItem last = null;
   int index = -1;
   for (int i = this.items.size() - 1; i >= 0; i--) {
     if (this.items.get(i) == parent) {
       index = i;
       break;
     }
   }
   ArrayList list = new ArrayList();
   for (int i = 0; i < this.DataSource.getRowCount(); i++) {
     DataRow dr = this.DataSource.getDataRow(i);
     String pid = dr.getString(this.ParentIdentifierColumnName);
     String id = dr.getString(this.IdentifierColumnName);
     if ((parent.getID().equals(pid)) && (!XString.isEmpty(id)) && (!id.equals(pid))) {
       childFlag = true;
       if ((parent.getLevel() >= this.level) && ((!this.lazyLoad) || (!this.expand))) {
         parent.setLazy(this.lazy);
         parent.setExpanded(false);
         parent.setBranch(childFlag);
         return;
       }
       TreeItem item = new TreeItem();
       item.setData(dr);
       item.parseHtml(getItemInnerHtml(dr));
       item.setAction(this);
       item.setID(dr.getString(this.IdentifierColumnName));
       item.setParentID(parent.getID());
       item.setLevel(parent.getLevel() + 1);
       item.setParent(parent);
       if (this.lazyLoad) {
         item.setLevelStr((String) getParams().get("LevelStr"));
       }
       list.add(item);
       this.items.add(index + list.size(), item);
       last = item;
     }
   }
   for (int i = 0; i < list.size(); i++) {
     addChild((TreeItem) list.get(i));
   }
   if (last != null) {
     last.setLast(true);
   }
   if ((!this.lazy) && (parent.getLevel() + 1 == this.level)) {
     parent.setExpanded(false);
   }
   parent.setBranch(childFlag);
 }