home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / JSlider.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  10.2 KB  |  432 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.beans.PropertyChangeListener;
  5. import java.io.IOException;
  6. import java.io.ObjectOutputStream;
  7. import java.util.Dictionary;
  8. import java.util.Enumeration;
  9. import java.util.Hashtable;
  10. import javax.accessibility.Accessible;
  11. import javax.accessibility.AccessibleContext;
  12. import javax.accessibility.AccessibleState;
  13. import javax.swing.event.ChangeEvent;
  14. import javax.swing.event.ChangeListener;
  15. import javax.swing.plaf.SliderUI;
  16.  
  17. public class JSlider extends JComponent implements SwingConstants, Accessible {
  18.    private static final String uiClassID = "SliderUI";
  19.    private boolean paintTicks;
  20.    private boolean paintTrack;
  21.    private boolean paintLabels;
  22.    private boolean isInverted;
  23.    protected BoundedRangeModel sliderModel;
  24.    protected int majorTickSpacing;
  25.    protected int minorTickSpacing;
  26.    protected boolean snapToTicks;
  27.    boolean snapToValue;
  28.    protected int orientation;
  29.    private Dictionary labelTable;
  30.    protected ChangeListener changeListener;
  31.    protected transient ChangeEvent changeEvent;
  32.    // $FF: synthetic field
  33.    static Class class$javax$swing$event$ChangeListener;
  34.  
  35.    public JSlider() {
  36.       this(0, 0, 100, 50);
  37.    }
  38.  
  39.    public JSlider(int var1) {
  40.       this(var1, 0, 100, 50);
  41.    }
  42.  
  43.    public JSlider(int var1, int var2) {
  44.       this(0, var1, var2, 50);
  45.    }
  46.  
  47.    public JSlider(int var1, int var2, int var3) {
  48.       this(0, var1, var2, var3);
  49.    }
  50.  
  51.    public JSlider(int var1, int var2, int var3, int var4) {
  52.       this.paintTicks = false;
  53.       this.paintTrack = true;
  54.       this.paintLabels = false;
  55.       this.isInverted = false;
  56.       this.snapToTicks = false;
  57.       this.snapToValue = true;
  58.       this.changeListener = this.createChangeListener();
  59.       this.changeEvent = null;
  60.       this.checkOrientation(var1);
  61.       this.orientation = var1;
  62.       this.sliderModel = new DefaultBoundedRangeModel(var4, 0, var2, var3);
  63.       this.sliderModel.addChangeListener(this.changeListener);
  64.       this.updateUI();
  65.    }
  66.  
  67.    public JSlider(BoundedRangeModel var1) {
  68.       this.paintTicks = false;
  69.       this.paintTrack = true;
  70.       this.paintLabels = false;
  71.       this.isInverted = false;
  72.       this.snapToTicks = false;
  73.       this.snapToValue = true;
  74.       this.changeListener = this.createChangeListener();
  75.       this.changeEvent = null;
  76.       this.orientation = 0;
  77.       this.setModel(var1);
  78.       this.sliderModel.addChangeListener(this.changeListener);
  79.       this.updateUI();
  80.    }
  81.  
  82.    public void addChangeListener(ChangeListener var1) {
  83.       super.listenerList.add(class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")), var1);
  84.    }
  85.  
  86.    private void checkOrientation(int var1) {
  87.       switch (var1) {
  88.          case 0:
  89.          case 1:
  90.             return;
  91.          default:
  92.             throw new IllegalArgumentException("orientation must be one of: VERTICAL, HORIZONTAL");
  93.       }
  94.    }
  95.  
  96.    // $FF: synthetic method
  97.    static Class class$(String var0) {
  98.       try {
  99.          return Class.forName(var0);
  100.       } catch (ClassNotFoundException var2) {
  101.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  102.       }
  103.    }
  104.  
  105.    protected ChangeListener createChangeListener() {
  106.       return new ModelListener(this);
  107.    }
  108.  
  109.    public Hashtable createStandardLabels(int var1) {
  110.       return this.createStandardLabels(var1, this.getMinimum());
  111.    }
  112.  
  113.    public Hashtable createStandardLabels(int var1, int var2) {
  114.       if (var2 <= this.getMaximum() && var2 >= this.getMinimum()) {
  115.          1.SmartHashtable var3 = new 1.SmartHashtable(this, var1, var2);
  116.          if (this.getLabelTable() != null && this.getLabelTable() instanceof PropertyChangeListener) {
  117.             ((JComponent)this).removePropertyChangeListener((PropertyChangeListener)this.getLabelTable());
  118.          }
  119.  
  120.          ((JComponent)this).addPropertyChangeListener(var3);
  121.          return var3;
  122.       } else {
  123.          throw new IllegalArgumentException("Slider label start point out of range.");
  124.       }
  125.    }
  126.  
  127.    protected void fireStateChanged() {
  128.       Object[] var1 = super.listenerList.getListenerList();
  129.  
  130.       for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
  131.          if (var1[var2] == (class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")))) {
  132.             if (this.changeEvent == null) {
  133.                this.changeEvent = new ChangeEvent(this);
  134.             }
  135.  
  136.             ((ChangeListener)var1[var2 + 1]).stateChanged(this.changeEvent);
  137.          }
  138.       }
  139.  
  140.    }
  141.  
  142.    public AccessibleContext getAccessibleContext() {
  143.       if (super.accessibleContext == null) {
  144.          super.accessibleContext = new AccessibleJSlider(this);
  145.       }
  146.  
  147.       return super.accessibleContext;
  148.    }
  149.  
  150.    public int getExtent() {
  151.       return this.getModel().getExtent();
  152.    }
  153.  
  154.    public boolean getInverted() {
  155.       return this.isInverted;
  156.    }
  157.  
  158.    public Dictionary getLabelTable() {
  159.       return this.labelTable;
  160.    }
  161.  
  162.    public int getMajorTickSpacing() {
  163.       return this.majorTickSpacing;
  164.    }
  165.  
  166.    public int getMaximum() {
  167.       return this.getModel().getMaximum();
  168.    }
  169.  
  170.    public int getMinimum() {
  171.       return this.getModel().getMinimum();
  172.    }
  173.  
  174.    public int getMinorTickSpacing() {
  175.       return this.minorTickSpacing;
  176.    }
  177.  
  178.    public BoundedRangeModel getModel() {
  179.       return this.sliderModel;
  180.    }
  181.  
  182.    public int getOrientation() {
  183.       return this.orientation;
  184.    }
  185.  
  186.    public boolean getPaintLabels() {
  187.       return this.paintLabels;
  188.    }
  189.  
  190.    public boolean getPaintTicks() {
  191.       return this.paintTicks;
  192.    }
  193.  
  194.    public boolean getPaintTrack() {
  195.       return this.paintTrack;
  196.    }
  197.  
  198.    public boolean getSnapToTicks() {
  199.       return this.snapToTicks;
  200.    }
  201.  
  202.    boolean getSnapToValue() {
  203.       return this.snapToValue;
  204.    }
  205.  
  206.    public SliderUI getUI() {
  207.       return (SliderUI)super.ui;
  208.    }
  209.  
  210.    public String getUIClassID() {
  211.       return "SliderUI";
  212.    }
  213.  
  214.    public int getValue() {
  215.       return this.getModel().getValue();
  216.    }
  217.  
  218.    public boolean getValueIsAdjusting() {
  219.       return this.getModel().getValueIsAdjusting();
  220.    }
  221.  
  222.    protected String paramString() {
  223.       String var1 = this.paintTicks ? "true" : "false";
  224.       String var2 = this.paintTrack ? "true" : "false";
  225.       String var3 = this.paintLabels ? "true" : "false";
  226.       String var4 = this.isInverted ? "true" : "false";
  227.       String var5 = this.snapToTicks ? "true" : "false";
  228.       String var6 = this.snapToValue ? "true" : "false";
  229.       String var7 = this.orientation == 0 ? "HORIZONTAL" : "VERTICAL";
  230.       return super.paramString() + ",isInverted=" + var4 + ",majorTickSpacing=" + this.majorTickSpacing + ",minorTickSpacing=" + this.minorTickSpacing + ",orientation=" + var7 + ",paintLabels=" + var3 + ",paintTicks=" + var1 + ",paintTrack=" + var2 + ",snapToTicks=" + var5 + ",snapToValue=" + var6;
  231.    }
  232.  
  233.    public void removeChangeListener(ChangeListener var1) {
  234.       super.listenerList.remove(class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")), var1);
  235.    }
  236.  
  237.    public void setExtent(int var1) {
  238.       this.getModel().setExtent(var1);
  239.    }
  240.  
  241.    public void setInverted(boolean var1) {
  242.       boolean var2 = this.isInverted;
  243.       this.isInverted = var1;
  244.       ((JComponent)this).firePropertyChange("inverted", var2, this.isInverted);
  245.       if (var1 != var2) {
  246.          ((Component)this).repaint();
  247.       }
  248.  
  249.    }
  250.  
  251.    public void setLabelTable(Dictionary var1) {
  252.       Dictionary var2 = this.labelTable;
  253.       this.labelTable = var1;
  254.       this.updateLabelUIs();
  255.       ((JComponent)this).firePropertyChange("labelTable", var2, this.labelTable);
  256.       if (var1 != var2) {
  257.          ((JComponent)this).revalidate();
  258.          ((Component)this).repaint();
  259.       }
  260.  
  261.    }
  262.  
  263.    public void setMajorTickSpacing(int var1) {
  264.       int var2 = this.majorTickSpacing;
  265.       this.majorTickSpacing = var1;
  266.       if (this.labelTable == null && this.getMajorTickSpacing() > 0 && this.getPaintLabels()) {
  267.          this.setLabelTable(this.createStandardLabels(this.getMajorTickSpacing()));
  268.       }
  269.  
  270.       ((JComponent)this).firePropertyChange("majorTickSpacing", var2, this.majorTickSpacing);
  271.       if (this.majorTickSpacing != var2 && this.getPaintTicks()) {
  272.          ((Component)this).repaint();
  273.       }
  274.  
  275.    }
  276.  
  277.    public void setMaximum(int var1) {
  278.       int var2 = this.getModel().getMaximum();
  279.       this.getModel().setMaximum(var1);
  280.       ((JComponent)this).firePropertyChange("maximum", new Integer(var2), new Integer(var1));
  281.    }
  282.  
  283.    public void setMinimum(int var1) {
  284.       int var2 = this.getModel().getMinimum();
  285.       this.getModel().setMinimum(var1);
  286.       ((JComponent)this).firePropertyChange("minimum", new Integer(var2), new Integer(var1));
  287.    }
  288.  
  289.    public void setMinorTickSpacing(int var1) {
  290.       int var2 = this.minorTickSpacing;
  291.       this.minorTickSpacing = var1;
  292.       ((JComponent)this).firePropertyChange("minorTickSpacing", var2, this.minorTickSpacing);
  293.       if (this.minorTickSpacing != var2 && this.getPaintTicks()) {
  294.          ((Component)this).repaint();
  295.       }
  296.  
  297.    }
  298.  
  299.    public void setModel(BoundedRangeModel var1) {
  300.       BoundedRangeModel var2 = this.getModel();
  301.       if (var2 != null) {
  302.          var2.removeChangeListener(this.changeListener);
  303.       }
  304.  
  305.       this.sliderModel = var1;
  306.       if (var1 != null) {
  307.          var1.addChangeListener(this.changeListener);
  308.          if (super.accessibleContext != null) {
  309.             super.accessibleContext.firePropertyChange("AccessibleValue", var2 == null ? null : new Integer(var2.getValue()), var1 == null ? null : new Integer(var1.getValue()));
  310.          }
  311.       }
  312.  
  313.       ((JComponent)this).firePropertyChange("model", var2, this.sliderModel);
  314.    }
  315.  
  316.    public void setOrientation(int var1) {
  317.       this.checkOrientation(var1);
  318.       int var2 = this.orientation;
  319.       this.orientation = var1;
  320.       ((JComponent)this).firePropertyChange("orientation", var2, var1);
  321.       if (var2 != var1 && super.accessibleContext != null) {
  322.          super.accessibleContext.firePropertyChange("AccessibleState", var2 == 1 ? AccessibleState.VERTICAL : AccessibleState.HORIZONTAL, var1 == 1 ? AccessibleState.VERTICAL : AccessibleState.HORIZONTAL);
  323.       }
  324.  
  325.       if (var1 != var2) {
  326.          ((JComponent)this).revalidate();
  327.       }
  328.  
  329.    }
  330.  
  331.    public void setPaintLabels(boolean var1) {
  332.       boolean var2 = this.paintLabels;
  333.       this.paintLabels = var1;
  334.       if (this.labelTable == null && this.getMajorTickSpacing() > 0) {
  335.          this.setLabelTable(this.createStandardLabels(this.getMajorTickSpacing()));
  336.       }
  337.  
  338.       ((JComponent)this).firePropertyChange("paintLabels", var2, this.paintLabels);
  339.       if (this.paintLabels != var2) {
  340.          ((JComponent)this).revalidate();
  341.          ((Component)this).repaint();
  342.       }
  343.  
  344.    }
  345.  
  346.    public void setPaintTicks(boolean var1) {
  347.       boolean var2 = this.paintTicks;
  348.       this.paintTicks = var1;
  349.       ((JComponent)this).firePropertyChange("paintTicks", var2, this.paintTicks);
  350.       if (this.paintTicks != var2) {
  351.          ((JComponent)this).revalidate();
  352.          ((Component)this).repaint();
  353.       }
  354.  
  355.    }
  356.  
  357.    public void setPaintTrack(boolean var1) {
  358.       boolean var2 = this.paintTrack;
  359.       this.paintTrack = var1;
  360.       ((JComponent)this).firePropertyChange("paintTrack", var2, this.paintTrack);
  361.       if (this.paintTrack != var2) {
  362.          ((Component)this).repaint();
  363.       }
  364.  
  365.    }
  366.  
  367.    public void setSnapToTicks(boolean var1) {
  368.       boolean var2 = this.snapToTicks;
  369.       this.snapToTicks = var1;
  370.       ((JComponent)this).firePropertyChange("snapToTicks", var2, this.snapToTicks);
  371.    }
  372.  
  373.    void setSnapToValue(boolean var1) {
  374.       boolean var2 = this.snapToValue;
  375.       this.snapToValue = var1;
  376.       ((JComponent)this).firePropertyChange("snapToValue", var2, this.snapToValue);
  377.    }
  378.  
  379.    public void setUI(SliderUI var1) {
  380.       super.setUI(var1);
  381.    }
  382.  
  383.    public void setValue(int var1) {
  384.       BoundedRangeModel var2 = this.getModel();
  385.       int var3 = var2.getValue();
  386.       var2.setValue(var1);
  387.       if (super.accessibleContext != null) {
  388.          super.accessibleContext.firePropertyChange("AccessibleValue", new Integer(var3), new Integer(var2.getValue()));
  389.       }
  390.  
  391.    }
  392.  
  393.    public void setValueIsAdjusting(boolean var1) {
  394.       BoundedRangeModel var2 = this.getModel();
  395.       boolean var3 = var2.getValueIsAdjusting();
  396.       var2.setValueIsAdjusting(var1);
  397.       if (var3 != var1 && super.accessibleContext != null) {
  398.          super.accessibleContext.firePropertyChange("AccessibleState", var3 ? AccessibleState.BUSY : null, var1 ? AccessibleState.BUSY : null);
  399.       }
  400.  
  401.    }
  402.  
  403.    protected void updateLabelUIs() {
  404.       if (this.getLabelTable() != null) {
  405.          Enumeration var1 = this.getLabelTable().keys();
  406.  
  407.          while(var1.hasMoreElements()) {
  408.             Object var2 = this.getLabelTable().get(var1.nextElement());
  409.             if (var2 instanceof JComponent) {
  410.                JComponent var3 = (JComponent)var2;
  411.                var3.updateUI();
  412.                ((Component)var3).setSize(var3.getPreferredSize());
  413.             }
  414.          }
  415.  
  416.       }
  417.    }
  418.  
  419.    public void updateUI() {
  420.       this.updateLabelUIs();
  421.       this.setUI((SliderUI)UIManager.getUI(this));
  422.    }
  423.  
  424.    private void writeObject(ObjectOutputStream var1) throws IOException {
  425.       var1.defaultWriteObject();
  426.       if (super.ui != null && this.getUIClassID().equals("SliderUI")) {
  427.          super.ui.installUI(this);
  428.       }
  429.  
  430.    }
  431. }
  432.