home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 39 / IOPROG_39.ISO / SOFT / sdkjava40.exe / data1.cab / fg_Samples / Samples / afc102 / JTreeVue / Src / JTreeNode.java < prev    next >
Encoding:
Java Source  |  2000-05-04  |  2.3 KB  |  98 lines

  1. //
  2. // (C) Copyright 1995 - 1999 Microsoft Corporation.  All rights reserved.
  3. //
  4. import java.awt.Event;
  5. import java.io.StreamTokenizer;
  6. import java.util.Vector;
  7.  
  8. import com.ms.ui.*;
  9. import com.ms.fx.*;
  10.  
  11. public class JTreeNode extends UIPanel implements JTreeConsts
  12. {
  13.     public JTreeNodeInfo info;
  14.     private JTreeNodeItem item;
  15.  
  16.     private JTCallbacks callback = null;
  17.     private UIMenuList extimpl = null;
  18.     private JTreeMenuBtn btn = null;
  19.     public boolean justchangedfocus = false;
  20.  
  21.     public JTreeNode(String name)
  22.     {
  23.         setLayout(new UIBorderLayout(4,0));
  24.         info = new JTreeNodeInfo(name);
  25.         item = new JTreeNodeItem(name);
  26.         add(item, "Center");
  27.         setHeader(item);
  28.     }
  29.  
  30.     public JTreeNode(StreamTokenizer tokstrm, JTCallbacks callback)
  31.     {
  32.         this.callback = callback;
  33.         this.info = new JTreeNodeInfo(tokstrm);
  34.         setLayout(new UIBorderLayout(4,0));
  35.         item = new JTreeNodeItem(info);
  36.         if ( item.prefix != null )
  37.             add(item.prefix, "West");
  38.         add(item, "Center");
  39.         setHeader(item);
  40.     }
  41.  
  42.     public void addExtImpl(JTreeNodeInfo info)
  43.     {
  44.         // First Time Through add "Implements..." or "Extends..." button
  45.         if ( extimpl == null) {
  46.             extimpl = new UIMenuList();
  47.             
  48.             btn = new JTreeMenuBtn("Implements...", extimpl, this);
  49.             if ( info.type == HTI_IFACE )
  50.                 btn.setName("Extends...");
  51.             btn.setBackground(BaseColor.getColor(new FxColor(202, 202, 212)));
  52.             add(btn, "East");
  53.         }
  54.         extimpl.add(new UIMenuItem(info.name));
  55.     }
  56.  
  57.     public void setSelected(boolean on)
  58.     {
  59.         super.setSelected(on);
  60.         ((JTreeNodeItem)getHeader()).setSelected(on);
  61.     }
  62.  
  63.     public boolean action(Event e, Object arg)
  64.     {
  65.         UIMenuItem item;
  66.  
  67.         if ( arg instanceof UIMenuItem ) {
  68.             item = (UIMenuItem)arg;
  69.             JTreeNode node = (JTreeNode)callback.getHTable().get(item.getName());
  70.             if ( node != null ) {
  71.                 callback.dispatchInfo(node);
  72.                 justchangedfocus = true;
  73.             }
  74.             else 
  75.                 System.out.println("Not in HashTable");
  76.         }
  77.         return super.action(e, arg);
  78.     }
  79.  
  80.     public boolean keyDown(Event  evt, int  key)
  81.     {
  82.         switch(key) {
  83.         // TAB KEY
  84.         case 9:
  85.             if ( btn != null )
  86.                 btn.launch();
  87.             break;
  88.  
  89.         default:
  90.             return super.keyDown(evt, key);
  91.         }
  92.         return true;
  93.     }
  94.  
  95.     public String getFullName() { return item.getFullName(); }
  96.     public String getName() { return item.getName(); }
  97. }
  98.