home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / JSlider.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  9.0 KB  |  322 lines

  1. package com.sun.java.swing;
  2.  
  3. import com.sun.java.accessibility.Accessible;
  4. import com.sun.java.accessibility.AccessibleContext;
  5. import com.sun.java.accessibility.AccessibleState;
  6. import com.sun.java.swing.event.ChangeEvent;
  7. import com.sun.java.swing.event.ChangeListener;
  8. import com.sun.java.swing.plaf.SliderUI;
  9. import java.awt.Component;
  10. import java.util.Dictionary;
  11. import java.util.Enumeration;
  12. import java.util.Hashtable;
  13.  
  14. public class JSlider extends JComponent implements SwingConstants, Accessible {
  15.    protected BoundedRangeModel sliderModel;
  16.    protected int majorTickSpacing;
  17.    protected int minorTickSpacing;
  18.    protected boolean snapToTicks;
  19.    private boolean paintTicks;
  20.    private boolean paintLabels;
  21.    private boolean isInverted;
  22.    protected int orientation;
  23.    private Dictionary labelTable;
  24.    protected ChangeListener changeListener;
  25.    protected transient ChangeEvent changeEvent;
  26.    // $FF: synthetic field
  27.    static Class class$com$sun$java$swing$event$ChangeListener;
  28.  
  29.    private void checkOrientation(int var1) {
  30.       switch (var1) {
  31.          case 0:
  32.          case 1:
  33.             return;
  34.          default:
  35.             throw new IllegalArgumentException("orientation must be one of: VERTICAL, HORIZONTAL");
  36.       }
  37.    }
  38.  
  39.    public JSlider(int var1, int var2, int var3, int var4) {
  40.       this.snapToTicks = true;
  41.       this.paintTicks = false;
  42.       this.paintLabels = false;
  43.       this.isInverted = false;
  44.       this.changeListener = this.createChangeListener();
  45.       this.checkOrientation(var1);
  46.       this.orientation = var1;
  47.       this.sliderModel = new DefaultBoundedRangeModel(var4, 0, var2, var3);
  48.       this.sliderModel.addChangeListener(this.changeListener);
  49.       this.updateUI();
  50.    }
  51.  
  52.    public JSlider() {
  53.       this(0, 0, 100, 50);
  54.    }
  55.  
  56.    public SliderUI getUI() {
  57.       return (SliderUI)super.ui;
  58.    }
  59.  
  60.    public void setUI(SliderUI var1) {
  61.       super.setUI(var1);
  62.    }
  63.  
  64.    public void updateUI() {
  65.       this.updateLabelUIs();
  66.       this.setUI((SliderUI)UIManager.getUI(this));
  67.    }
  68.  
  69.    public String getUIClassID() {
  70.       return "SliderUI";
  71.    }
  72.  
  73.    protected ChangeListener createChangeListener() {
  74.       return new ModelListener(this);
  75.    }
  76.  
  77.    public void addChangeListener(ChangeListener var1) {
  78.       super.listenerList.add(class$com$sun$java$swing$event$ChangeListener != null ? class$com$sun$java$swing$event$ChangeListener : (class$com$sun$java$swing$event$ChangeListener = JComponent.class$("com.sun.java.swing.event.ChangeListener")), var1);
  79.    }
  80.  
  81.    public void removeChangeListener(ChangeListener var1) {
  82.       super.listenerList.remove(class$com$sun$java$swing$event$ChangeListener != null ? class$com$sun$java$swing$event$ChangeListener : (class$com$sun$java$swing$event$ChangeListener = JComponent.class$("com.sun.java.swing.event.ChangeListener")), var1);
  83.    }
  84.  
  85.    protected void fireStateChanged() {
  86.       Object[] var1 = super.listenerList.getListenerList();
  87.  
  88.       for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
  89.          if (var1[var2] == (class$com$sun$java$swing$event$ChangeListener != null ? class$com$sun$java$swing$event$ChangeListener : (class$com$sun$java$swing$event$ChangeListener = JComponent.class$("com.sun.java.swing.event.ChangeListener")))) {
  90.             if (this.changeEvent == null) {
  91.                this.changeEvent = new ChangeEvent(this);
  92.             }
  93.  
  94.             ((ChangeListener)var1[var2 + 1]).stateChanged(this.changeEvent);
  95.          }
  96.       }
  97.  
  98.    }
  99.  
  100.    public BoundedRangeModel getModel() {
  101.       return this.sliderModel;
  102.    }
  103.  
  104.    public void setModel(BoundedRangeModel var1) {
  105.       BoundedRangeModel var2 = this.getModel();
  106.       if (var2 != null) {
  107.          var2.removeChangeListener(this.changeListener);
  108.       }
  109.  
  110.       this.sliderModel = var1;
  111.       if (var1 != null) {
  112.          var1.addChangeListener(this.changeListener);
  113.          if (super.accessibleContext != null) {
  114.             super.accessibleContext.firePropertyChange("AccessibleValue", var2 == null ? null : new Integer(var2.getValue()), var1 == null ? null : new Integer(var1.getValue()));
  115.          }
  116.       }
  117.  
  118.       ((JComponent)this).firePropertyChange("model", var2, this.sliderModel);
  119.    }
  120.  
  121.    public int getValue() {
  122.       return this.getModel().getValue();
  123.    }
  124.  
  125.    public void setValue(int var1) {
  126.       BoundedRangeModel var2 = this.getModel();
  127.       int var3 = var2.getValue();
  128.       var2.setValue(var1);
  129.       if (super.accessibleContext != null) {
  130.          super.accessibleContext.firePropertyChange("AccessibleValue", new Integer(var3), new Integer(var2.getValue()));
  131.       }
  132.  
  133.    }
  134.  
  135.    public int getMinimum() {
  136.       return this.getModel().getMinimum();
  137.    }
  138.  
  139.    public void setMinimum(int var1) {
  140.       this.getModel().setMinimum(var1);
  141.    }
  142.  
  143.    public int getMaximum() {
  144.       return this.getModel().getMaximum();
  145.    }
  146.  
  147.    public void setMaximum(int var1) {
  148.       this.getModel().setMaximum(var1);
  149.    }
  150.  
  151.    public boolean getValueIsAdjusting() {
  152.       return this.getModel().getValueIsAdjusting();
  153.    }
  154.  
  155.    public void setValueIsAdjusting(boolean var1) {
  156.       BoundedRangeModel var2 = this.getModel();
  157.       boolean var3 = var2.getValueIsAdjusting();
  158.       var2.setValueIsAdjusting(var1);
  159.       if (var3 != var1 && super.accessibleContext != null) {
  160.          super.accessibleContext.firePropertyChange("AccessibleState", var3 ? AccessibleState.BUSY : null, var1 ? AccessibleState.BUSY : null);
  161.       }
  162.  
  163.    }
  164.  
  165.    public int getExtent() {
  166.       return this.getModel().getExtent();
  167.    }
  168.  
  169.    public void setExtent(int var1) {
  170.       this.getModel().setExtent(var1);
  171.    }
  172.  
  173.    public int getOrientation() {
  174.       return this.orientation;
  175.    }
  176.  
  177.    public void setOrientation(int var1) {
  178.       this.checkOrientation(var1);
  179.       this.orientation = var1;
  180.       ((JComponent)this).firePropertyChange("orientation", var1, var1);
  181.       if (var1 != var1 && super.accessibleContext != null) {
  182.          super.accessibleContext.firePropertyChange("AccessibleState", var1 == 1 ? AccessibleState.VERTICAL : AccessibleState.HORIZONTAL, var1 == 1 ? AccessibleState.VERTICAL : AccessibleState.HORIZONTAL);
  183.       }
  184.  
  185.    }
  186.  
  187.    public Dictionary getLabelTable() {
  188.       return this.labelTable;
  189.    }
  190.  
  191.    public void setLabelTable(Dictionary var1) {
  192.       Dictionary var2 = this.labelTable;
  193.       this.labelTable = var1;
  194.       this.updateLabelUIs();
  195.       ((JComponent)this).firePropertyChange("labelTable", var2, this.labelTable);
  196.    }
  197.  
  198.    protected void updateLabelUIs() {
  199.       if (this.getLabelTable() != null) {
  200.          Enumeration var1 = this.getLabelTable().keys();
  201.  
  202.          while(var1.hasMoreElements()) {
  203.             Object var2 = this.getLabelTable().get(var1.nextElement());
  204.             if (var2 instanceof JComponent) {
  205.                JComponent var3 = (JComponent)var2;
  206.                var3.updateUI();
  207.                ((Component)var3).setSize(var3.getPreferredSize());
  208.             }
  209.          }
  210.  
  211.       }
  212.    }
  213.  
  214.    public Hashtable createStandardLabels(int var1) {
  215.       return this.createStandardLabels(var1, this.getMinimum());
  216.    }
  217.  
  218.    public Hashtable createStandardLabels(int var1, int var2) {
  219.       if (var2 <= this.getMaximum() && var2 >= this.getMinimum()) {
  220.          Hashtable var3 = new Hashtable();
  221.  
  222.          for(int var4 = var2; var4 <= this.getMaximum(); var4 += var1) {
  223.             var3.put(new Integer(var4), new JLabel(String.valueOf(var4), 0));
  224.          }
  225.  
  226.          return var3;
  227.       } else {
  228.          throw new IllegalArgumentException("Slider label start point out of range.");
  229.       }
  230.    }
  231.  
  232.    public boolean getInverted() {
  233.       return this.isInverted;
  234.    }
  235.  
  236.    public void setInverted(boolean var1) {
  237.       boolean var2 = this.isInverted;
  238.       this.isInverted = var1;
  239.       ((JComponent)this).firePropertyChange("inverted", var2, this.isInverted);
  240.    }
  241.  
  242.    public int getMajorTickSpacing() {
  243.       return this.majorTickSpacing;
  244.    }
  245.  
  246.    public void setMajorTickSpacing(int var1) {
  247.       int var2 = this.majorTickSpacing;
  248.       this.majorTickSpacing = var1;
  249.       if (this.labelTable == null && this.getMajorTickSpacing() > 0 && this.getPaintLabels()) {
  250.          this.setLabelTable(this.createStandardLabels(this.getMajorTickSpacing()));
  251.       }
  252.  
  253.       ((JComponent)this).firePropertyChange("majorTickSpacing", var2, this.majorTickSpacing);
  254.    }
  255.  
  256.    public int getMinorTickSpacing() {
  257.       return this.minorTickSpacing;
  258.    }
  259.  
  260.    public void setMinorTickSpacing(int var1) {
  261.       int var2 = this.minorTickSpacing;
  262.       this.minorTickSpacing = var1;
  263.       ((JComponent)this).firePropertyChange("minorTickSpacing", var2, this.minorTickSpacing);
  264.    }
  265.  
  266.    public boolean getSnapToTicks() {
  267.       return this.snapToTicks;
  268.    }
  269.  
  270.    public void setSnapToTicks(boolean var1) {
  271.       boolean var2 = this.snapToTicks;
  272.       this.snapToTicks = var1;
  273.       ((JComponent)this).firePropertyChange("snapToTicks", var2, this.snapToTicks);
  274.    }
  275.  
  276.    public boolean getPaintTicks() {
  277.       return this.paintTicks;
  278.    }
  279.  
  280.    public void setPaintTicks(boolean var1) {
  281.       boolean var2 = this.paintTicks;
  282.       this.paintTicks = var1;
  283.       ((JComponent)this).firePropertyChange("paintTicks", var2, this.paintTicks);
  284.    }
  285.  
  286.    public boolean getPaintLabels() {
  287.       return this.paintLabels;
  288.    }
  289.  
  290.    public void setPaintLabels(boolean var1) {
  291.       boolean var2 = this.paintLabels;
  292.       this.paintLabels = var1;
  293.       if (this.labelTable == null && this.getMajorTickSpacing() > 0) {
  294.          this.setLabelTable(this.createStandardLabels(this.getMajorTickSpacing()));
  295.       }
  296.  
  297.       ((JComponent)this).firePropertyChange("paintLabels", var2, this.paintLabels);
  298.    }
  299.  
  300.    public String toString() {
  301.       String var1 = "";
  302.       if (!((Component)this).isEnabled() && !((Component)this).isVisible()) {
  303.          var1 = "(not Enabled, not Visible)";
  304.       } else if (!((Component)this).isEnabled()) {
  305.          var1 = "(not Enabled)";
  306.       } else if (!((Component)this).isVisible()) {
  307.          var1 = "(not Visible)";
  308.       }
  309.  
  310.       String var2 = var1 + (this.getOrientation() == 1 ? "vertical" : "horizontal") + ", " + "value=" + this.getValue() + ", " + "adj=" + this.getValueIsAdjusting() + ", " + "min=" + this.getMinimum() + ", " + "max=" + this.getMaximum() + ", " + "majorTickSpacing=" + this.getMajorTickSpacing() + ", " + "minorTickSpacing=" + this.getMinorTickSpacing() + ", " + "snapToTicks=" + this.getSnapToTicks() + ", " + "isInverted=" + this.getInverted() + ", " + "paintLabels=" + this.getPaintLabels() + ", " + "paintTicks=" + this.getPaintTicks();
  311.       return this.getClass().getName() + "[" + var2 + "]";
  312.    }
  313.  
  314.    public AccessibleContext getAccessibleContext() {
  315.       if (super.accessibleContext == null) {
  316.          super.accessibleContext = new AccessibleJSlider(this);
  317.       }
  318.  
  319.       return super.accessibleContext;
  320.    }
  321. }
  322.