package baf.sci; import com.sun.java.swing.tree.TreeNode; import java.util.Vector; /** This class represents a source of SCI resources. */ class ResourceCollection implements TreeNode { final ResourceDir parent; String name; ResourceCollection(ResourceDir dir, String name) { parent = dir; this.name = name; } ResourceCollection(ResourceDir dir, int resfilenum) { parent = dir; String suffix = ""+resfilenum; while (suffix.length() < 3) suffix = '0'+suffix; name = "RESOURCE."+suffix; } TypedResourceList types[] = new TypedResourceList[Resource.typenames.length]; void addResourceIndex(ResourceIndex idx) { TypedResourceList type = types[idx.restype]; if (type == null) { type = new TypedResourceList(idx.restype, this); types[idx.restype] = type; } idx.parent = type; type.add(idx); } public String toString() { return name; } /* TreeNode mothods */ public TreeNode getChildAt(int idx) { for (int i = 0; i <= idx; i++) { if (types[i] == null) idx++; } return types[idx]; } public int getChildCount() { int count = 0; for (int i = types.length - 1; i >= 0; i--) if (types[i] != null) count++; return count; } public TreeNode getParent() { return parent; } public int getIndex(TreeNode node) { int idx = 0; for (int i = 0; i < types.length; i++) { if (types[i] == node) return idx; idx++; } return -1; } public boolean getAllowsChildren() { return true; } public boolean isLeaf() { return false; } public java.util.Enumeration children() { Vector v = new Vector(); for (int i = 0; i < types.length; i++) if (types[i] != null) v.addElement(types[i]); return v.elements(); } }