home *** CD-ROM | disk | FTP | other *** search
/ Popular Software (Premium Edition) / mycd.iso / INTERNET / NETSCAP4.06 / CP32E406.EXE / nav40.z / java40.jar / sun / awt / windows / WListPeer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-08-13  |  3.2 KB  |  146 lines

  1. package sun.awt.windows;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.FontMetrics;
  6. import java.awt.List;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ItemEvent;
  9. import java.awt.peer.ListPeer;
  10.  
  11. class WListPeer extends WComponentPeer implements ListPeer {
  12.    public Dimension minimumSize() {
  13.       return this.minimumSize(4);
  14.    }
  15.  
  16.    public boolean isFocusTraversable() {
  17.       return true;
  18.    }
  19.  
  20.    public int[] getSelectedIndexes() {
  21.       List var1 = (List)super.target;
  22.       int var2 = var1.countItems();
  23.       int[] var3 = new int[var2];
  24.       int var4 = 0;
  25.  
  26.       for(int var5 = 0; var5 < var2; ++var5) {
  27.          if (this.isSelected(var5)) {
  28.             var3[var4++] = var5;
  29.          }
  30.       }
  31.  
  32.       int[] var6 = new int[var4];
  33.       System.arraycopy(var3, 0, var6, 0, var4);
  34.       return var6;
  35.    }
  36.  
  37.    public void add(String var1, int var2) {
  38.       this.addItem(var1, var2);
  39.    }
  40.  
  41.    public void removeAll() {
  42.       this.clear();
  43.    }
  44.  
  45.    public void setMultipleMode(boolean var1) {
  46.       this.setMultipleSelections(var1);
  47.    }
  48.  
  49.    public Dimension getPreferredSize(int var1) {
  50.       return this.preferredSize(var1);
  51.    }
  52.  
  53.    public Dimension getMinimumSize(int var1) {
  54.       return this.minimumSize(var1);
  55.    }
  56.  
  57.    public void addItem(String var1, int var2) {
  58.       FontMetrics var3 = ((WComponentPeer)this).getFontMetrics(((List)super.target).getFont());
  59.       this._addItem(var1, var2, var3.stringWidth(var1));
  60.    }
  61.  
  62.    native void _addItem(String var1, int var2, int var3);
  63.  
  64.    public native void delItems(int var1, int var2);
  65.  
  66.    public void clear() {
  67.       List var1 = (List)super.target;
  68.       this.delItems(0, var1.countItems());
  69.    }
  70.  
  71.    public native void select(int var1);
  72.  
  73.    public native void deselect(int var1);
  74.  
  75.    public native void makeVisible(int var1);
  76.  
  77.    public native void setMultipleSelections(boolean var1);
  78.  
  79.    public Dimension preferredSize(int var1) {
  80.       Dimension var2 = this.minimumSize(var1);
  81.       var2.width = Math.max(var2.width, this.getMaxItemWidth() + 20);
  82.       return var2;
  83.    }
  84.  
  85.    public Dimension minimumSize(int var1) {
  86.       FontMetrics var2 = ((WComponentPeer)this).getFontMetrics(((List)super.target).getFont());
  87.       return new Dimension(20 + var2.stringWidth("0123456789abcde"), var2.getHeight() * var1 + 4);
  88.    }
  89.  
  90.    WListPeer(List var1) {
  91.       super(var1);
  92.    }
  93.  
  94.    native void create(WComponentPeer var1);
  95.  
  96.    void initialize() {
  97.       List var1 = (List)super.target;
  98.       int var2 = var1.countItems();
  99.  
  100.       for(int var3 = 0; var3 < var2; ++var3) {
  101.          this.addItem(var1.getItem(var3), -1);
  102.       }
  103.  
  104.       this.setMultipleSelections(var1.allowsMultipleSelections());
  105.       int var4 = var1.getVisibleIndex();
  106.       if (var4 >= 0) {
  107.          this.makeVisible(var4);
  108.       }
  109.  
  110.       int[] var5 = var1.getSelectedIndexes();
  111.  
  112.       for(int var6 = 0; var6 < var5.length; ++var6) {
  113.          this.select(var5[var6]);
  114.       }
  115.  
  116.       super.initialize();
  117.    }
  118.  
  119.    native boolean isSelected(int var1);
  120.  
  121.    int getMaxItemWidth() {
  122.       List var1 = (List)super.target;
  123.       FontMetrics var2 = ((WComponentPeer)this).getFontMetrics(((Component)var1).getFont());
  124.       int var3 = 0;
  125.       int var4 = var1.countItems();
  126.  
  127.       for(int var5 = 0; var5 < var4; ++var5) {
  128.          String var6 = var1.getItem(var5);
  129.          var3 = Math.max(var3, var2.stringWidth(var6));
  130.       }
  131.  
  132.       return var3;
  133.    }
  134.  
  135.    void handleAction(int var1) {
  136.       List var2 = (List)super.target;
  137.       var2.select(var1);
  138.       WToolkit.postEvent(new ActionEvent(super.target, 1001, var2.getItem(var1)));
  139.    }
  140.  
  141.    void handleListChanged(int var1) {
  142.       List var2 = (List)super.target;
  143.       WToolkit.postEvent(new ItemEvent(var2, 701, new Integer(var1), this.isSelected(var1) ? 1 : 2));
  144.    }
  145. }
  146.