home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 39 / IOPROG_39.ISO / SOFT / sdkjava40.exe / data1.cab / fg_Samples / Samples / afc11 / JTreeVue / Src / JTreeNode.java < prev    next >
Encoding:
Java Source  |  2000-05-04  |  2.2 KB  |  95 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.  
  20.     public JTreeNode(String name)
  21.     {
  22.         setLayout(new UIBorderLayout(4,0));
  23.         info = new JTreeNodeInfo(name);
  24.         item = new JTreeNodeItem(name);
  25.         add(item, "Center");
  26.         setHeader(item);
  27.     }
  28.  
  29.     public JTreeNode(StreamTokenizer tokstrm, JTCallbacks callback)
  30.     {
  31.         this.callback = callback;
  32.         this.info = new JTreeNodeInfo(tokstrm);
  33.         setLayout(new UIBorderLayout(4,0));
  34.         item = new JTreeNodeItem(info);
  35.         if ( item.prefix != null )
  36.             add(item.prefix, "West");
  37.         add(item, "Center");
  38.         setHeader(item);
  39.     }
  40.  
  41.     public void addExtImpl(JTreeNodeInfo info)
  42.     {
  43.         // First Time Through add "Implements..." or "Extends..." button
  44.         if ( extimpl == null) {
  45.             extimpl = new UIMenuList();
  46.             
  47.             btn = new JTreeMenuBtn("Implements...", extimpl, this);
  48.             if ( info.type == HTI_IFACE )
  49.                 btn.setName("Extends...");
  50.             btn.setBackground(new FxColor(202, 202, 212));
  51.             add(btn, "East");
  52.         }
  53.         extimpl.add(new UIMenuItem(info.name));
  54.     }
  55.  
  56.     public void setSelected(boolean on)
  57.     {
  58.         super.setSelected(on);
  59.         ((JTreeNodeItem)getHeader()).setSelected(on);
  60.     }
  61.  
  62.     public boolean action(Event e, Object arg)
  63.     {
  64.         UIMenuItem item;
  65.  
  66.         if ( arg instanceof UIMenuItem ) {
  67.             item = (UIMenuItem)arg;
  68.             JTreeNode node = (JTreeNode)callback.getHTable().get(item.getName());
  69.             if ( node != null )
  70.                 callback.dispatchInfo(node);
  71.             else 
  72.                 System.out.println("Not in HashTable");
  73.         }
  74.         return super.action(e, arg);
  75.     }
  76.  
  77.     public boolean keyDown(Event  evt, int  key)
  78.     {
  79.         switch(key) {
  80.         // TAB KEY
  81.         case 9:
  82.             if ( btn != null )
  83.                 btn.launch();
  84.             break;
  85.  
  86.         default:
  87.             return super.keyDown(evt, key);
  88.         }
  89.         return true;
  90.     }
  91.  
  92.     public String getFullName() { return item.getFullName(); }
  93.     public String getName() { return item.getName(); }
  94. }
  95.