home *** CD-ROM | disk | FTP | other *** search
- import com.sun.java.swing.AbstractListModel;
- import com.sun.java.swing.ComboBoxModel;
- import com.sun.java.swing.JComboBox;
- import com.sun.java.swing.event.TreeModelEvent;
- import com.sun.java.swing.event.TreeModelListener;
- import com.sun.java.swing.tree.TreeModel;
- import java.util.Vector;
-
- class TreeCombo$TreeToListModel extends AbstractListModel implements ComboBoxModel, TreeModelListener {
- // $FF: synthetic field
- private final TreeCombo this$0;
- TreeModel source;
- boolean invalid;
- Object currentValue;
- Vector cache;
-
- public TreeCombo$TreeToListModel(TreeCombo var1, TreeModel var2) {
- this.this$0 = var1;
- this.this$0 = var1;
- this.invalid = true;
- this.cache = new Vector();
- this.source = var2;
- var2.addTreeModelListener(this);
- var1.getClass();
- ((JComboBox)var1).setRenderer(new TreeCombo$ListEntryRenderer(var1));
- }
-
- public void setSelectedItem(Object var1) {
- this.currentValue = var1;
- ((AbstractListModel)this).fireContentsChanged(this, -1, -1);
- }
-
- public Object getSelectedItem() {
- return this.currentValue;
- }
-
- public int getSize() {
- this.validate();
- return this.cache.size();
- }
-
- public Object getElementAt(int var1) {
- return this.cache.elementAt(var1);
- }
-
- public void treeNodesChanged(TreeModelEvent var1) {
- this.invalid = true;
- }
-
- public void treeNodesInserted(TreeModelEvent var1) {
- this.invalid = true;
- }
-
- public void treeNodesRemoved(TreeModelEvent var1) {
- this.invalid = true;
- }
-
- public void treeStructureChanged(TreeModelEvent var1) {
- this.invalid = true;
- }
-
- void validate() {
- if (this.invalid) {
- this.cache = new Vector();
- this.cacheTree(this.source.getRoot(), 0);
- if (this.cache.size() > 0) {
- this.currentValue = this.cache.elementAt(0);
- }
-
- this.invalid = false;
- ((AbstractListModel)this).fireContentsChanged(this, 0, 0);
- }
-
- }
-
- void cacheTree(Object var1, int var2) {
- if (this.source.isLeaf(var1)) {
- this.addListEntry(var1, var2, false);
- } else {
- int var3 = this.source.getChildCount(var1);
- this.addListEntry(var1, var2, true);
- ++var2;
-
- for(int var4 = 0; var4 < var3; ++var4) {
- Object var5 = this.source.getChild(var1, var4);
- this.cacheTree(var5, var2);
- }
-
- --var2;
- }
- }
-
- void addListEntry(Object var1, int var2, boolean var3) {
- this.cache.addElement(new TreeCombo$ListEntry(this.this$0, var1, var2, var3));
- }
- }
-