home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / JSlider.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  8.9 KB  |  457 lines

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