home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 January / PCO0198.ISO / browser / net_linx / java40.jar / sun / awt / motif / MListPeer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  2.6 KB  |  138 lines

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