home *** CD-ROM | disk | FTP | other *** search
- package sun.awt.motif;
-
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.List;
- import java.awt.peer.ListPeer;
-
- class MListPeer extends MComponentPeer implements ListPeer {
- native void create(MComponentPeer var1);
-
- void initialize() {
- List var1 = (List)super.target;
- int var2 = var1.countItems();
-
- for(int var3 = 0; var3 < var2; ++var3) {
- this.addItem(var1.getItem(var3), -1);
- }
-
- this.setMultipleSelections(var1.allowsMultipleSelections());
- int var4 = var1.getVisibleIndex();
- if (var4 >= 0) {
- this.makeVisible(var4);
- }
-
- int[] var5 = var1.getSelectedIndexes();
-
- for(int var6 = 0; var6 < var5.length; ++var6) {
- this.select(var5[var6]);
- }
-
- super.initialize();
- }
-
- MListPeer(List var1) {
- super(var1);
- }
-
- public native void setMultipleSelections(boolean var1);
-
- public native boolean isSelected(int var1);
-
- public native void addItem(String var1, int var2);
-
- public native void delItems(int var1, int var2);
-
- public native void select(int var1);
-
- public native void deselect(int var1);
-
- public native void makeVisible(int var1);
-
- public void clear() {
- List var1 = (List)super.target;
- this.delItems(0, var1.countItems());
- }
-
- public int[] getSelectedIndexes() {
- List var1 = (List)super.target;
- int var2 = var1.countItems();
- int[] var3 = new int[var2];
- int var4 = 0;
-
- for(int var5 = 0; var5 < var2; ++var5) {
- if (this.isSelected(var5)) {
- var3[var4++] = var5;
- }
- }
-
- int[] var6 = new int[var4];
- System.arraycopy(var3, 0, var6, 0, var4);
- return var6;
- }
-
- public void action(int var1) {
- List var2 = (List)super.target;
- var2.select(var1);
- if (super.applet != null) {
- XEvent var3 = new XEvent(new Event(super.target, 1001, var2.getItem(var1)), this);
- super.applet.sendEvent(var3);
- } else {
- super.target.postEvent(new Event(super.target, 1001, var2.getItem(var1)));
- }
- }
-
- public void handleListChanged(int var1) {
- int[] var3 = ((List)super.target).getSelectedIndexes();
- boolean var4 = false;
-
- for(int var5 = 0; var5 < var3.length; ++var5) {
- if (var1 == var3[var5]) {
- var4 = true;
- break;
- }
- }
-
- Event var2;
- if (var4) {
- var2 = new Event(super.target, 701, new Integer(var1));
- } else {
- var2 = new Event(super.target, 702, new Integer(var1));
- }
-
- if (super.applet != null) {
- XEvent var6 = new XEvent(var2, this);
- super.applet.sendEvent(var6);
- } else {
- super.target.postEvent(var2);
- }
- }
-
- public Dimension minimumSize() {
- return this.minimumSize(4);
- }
-
- public Dimension preferredSize(int var1) {
- return this.minimumSize(var1);
- }
-
- public Dimension minimumSize(int var1) {
- X11FontMetrics var2 = (X11FontMetrics)((MComponentPeer)this).getFontMetrics(super.target.getFont());
- List var3 = (List)super.target;
- int var4 = 0;
- Dimension var5 = new Dimension();
-
- for(int var6 = var3.countItems(); var6-- > 0; var4 = Math.max(var5.height, var4)) {
- var5 = var2.stringExtent(var3.getItem(var6));
- }
-
- if (var4 == 0) {
- var4 = var2.getHeight();
- }
-
- var5.height = (var4 + 2) * var1 + 11;
- var5.width = 20 + var2.stringWidth("0123456789abcde");
- return var5;
- }
- }
-