src/share/classes/javax/swing/JSlider.java
Print this page
*** 136,146 ****
/**
* {@code Dictionary} of what labels to draw at which values
*/
! private Dictionary labelTable;
/**
* The changeListener (no suffix) is the listener we add to the
* slider's model. This listener is initialized to the
--- 136,146 ----
/**
* {@code Dictionary} of what labels to draw at which values
*/
! private Dictionary<Integer, JComponent> labelTable;
/**
* The changeListener (no suffix) is the listener we add to the
* slider's model. This listener is initialized to the
*** 767,780 ****
if (!isShowing()) {
return false;
}
// Check that there is a label with such image
! Enumeration elements = labelTable.elements();
while (elements.hasMoreElements()) {
! Component component = (Component) elements.nextElement();
if (component instanceof JLabel) {
JLabel label = (JLabel) component;
if (SwingUtilities.doesIconReferenceImage(label.getIcon(), img) ||
--- 767,780 ----
if (!isShowing()) {
return false;
}
// Check that there is a label with such image
! Enumeration<JComponent> elements = labelTable.elements();
while (elements.hasMoreElements()) {
! JComponent component = elements.nextElement();
if (component instanceof JLabel) {
JLabel label = (JLabel) component;
if (SwingUtilities.doesIconReferenceImage(label.getIcon(), img) ||
*** 791,801 ****
* Returns the dictionary of what labels to draw at which values.
*
* @return the <code>Dictionary</code> containing labels and
* where to draw them
*/
! public Dictionary getLabelTable() {
/*
if ( labelTable == null && getMajorTickSpacing() > 0 ) {
setLabelTable( createStandardLabels( getMajorTickSpacing() ) );
}
*/
--- 791,801 ----
* Returns the dictionary of what labels to draw at which values.
*
* @return the <code>Dictionary</code> containing labels and
* where to draw them
*/
! public Dictionary<Integer, JComponent> getLabelTable() {
/*
if ( labelTable == null && getMajorTickSpacing() > 0 ) {
setLabelTable( createStandardLabels( getMajorTickSpacing() ) );
}
*/
*** 824,835 ****
* hidden: true
* bound: true
* attribute: visualUpdate true
* description: Specifies what labels will be drawn for any given value.
*/
! public void setLabelTable( Dictionary labels ) {
! Dictionary oldTable = labelTable;
labelTable = labels;
updateLabelUIs();
firePropertyChange("labelTable", oldTable, labelTable );
if (labels != oldTable) {
revalidate();
--- 824,835 ----
* hidden: true
* bound: true
* attribute: visualUpdate true
* description: Specifies what labels will be drawn for any given value.
*/
! public void setLabelTable( Dictionary<Integer, JComponent> labels ) {
! Dictionary<Integer, JComponent> oldTable = labelTable;
labelTable = labels;
updateLabelUIs();
firePropertyChange("labelTable", oldTable, labelTable );
if (labels != oldTable) {
revalidate();
*** 846,874 ****
*
* @see #setLabelTable
* @see JComponent#updateUI
*/
protected void updateLabelUIs() {
! Dictionary labelTable = getLabelTable();
if (labelTable == null) {
return;
}
! Enumeration labels = labelTable.keys();
while ( labels.hasMoreElements() ) {
! JComponent component = (JComponent) labelTable.get(labels.nextElement());
component.updateUI();
component.setSize(component.getPreferredSize());
}
}
private void updateLabelSizes() {
! Dictionary labelTable = getLabelTable();
if (labelTable != null) {
! Enumeration labels = labelTable.elements();
while (labels.hasMoreElements()) {
! JComponent component = (JComponent) labels.nextElement();
component.setSize(component.getPreferredSize());
}
}
}
--- 846,874 ----
*
* @see #setLabelTable
* @see JComponent#updateUI
*/
protected void updateLabelUIs() {
! Dictionary<Integer, JComponent> labelTable = getLabelTable();
if (labelTable == null) {
return;
}
! Enumeration<Integer> labels = labelTable.keys();
while ( labels.hasMoreElements() ) {
! JComponent component = labelTable.get(labels.nextElement());
component.updateUI();
component.setSize(component.getPreferredSize());
}
}
private void updateLabelSizes() {
! Dictionary<Integer, JComponent> labelTable = getLabelTable();
if (labelTable != null) {
! Enumeration<JComponent> labels = labelTable.elements();
while (labels.hasMoreElements()) {
! JComponent component = labels.nextElement();
component.setSize(component.getPreferredSize());
}
}
}
*** 892,902 ****
* @see #setLabelTable
* @see #setPaintLabels
* @throws IllegalArgumentException if {@code increment} is less than or
* equal to zero
*/
! public Hashtable createStandardLabels( int increment ) {
return createStandardLabels( increment, getMinimum() );
}
/**
--- 892,902 ----
* @see #setLabelTable
* @see #setPaintLabels
* @throws IllegalArgumentException if {@code increment} is less than or
* equal to zero
*/
! public Hashtable<Integer, JComponent> createStandardLabels( int increment ) {
return createStandardLabels( increment, getMinimum() );
}
/**
*** 920,939 ****
* @see #setPaintLabels
* @exception IllegalArgumentException if {@code start} is
* out of range, or if {@code increment} is less than or equal
* to zero
*/
! public Hashtable createStandardLabels( int increment, int start ) {
if ( start > getMaximum() || start < getMinimum() ) {
throw new IllegalArgumentException( "Slider label start point out of range." );
}
if ( increment <= 0 ) {
throw new IllegalArgumentException( "Label incremement must be > 0" );
}
! class SmartHashtable extends Hashtable<Object, Object> implements PropertyChangeListener {
int increment = 0;
int start = 0;
boolean startAtMin = false;
class LabelUIResource extends JLabel implements UIResource {
--- 920,939 ----
* @see #setPaintLabels
* @exception IllegalArgumentException if {@code start} is
* out of range, or if {@code increment} is less than or equal
* to zero
*/
! public Hashtable<Integer, JComponent> createStandardLabels( int increment, int start ) {
if ( start > getMaximum() || start < getMinimum() ) {
throw new IllegalArgumentException( "Slider label start point out of range." );
}
if ( increment <= 0 ) {
throw new IllegalArgumentException( "Label incremement must be > 0" );
}
! class SmartHashtable extends Hashtable<Integer, JComponent> implements PropertyChangeListener {
int increment = 0;
int start = 0;
boolean startAtMin = false;
class LabelUIResource extends JLabel implements UIResource {
*** 976,992 ****
}
if ( e.getPropertyName().equals( "minimum" ) ||
e.getPropertyName().equals( "maximum" ) ) {
! Enumeration keys = getLabelTable().keys();
! Hashtable<Object, Object> hashtable = new Hashtable<Object, Object>();
// Save the labels that were added by the developer
while ( keys.hasMoreElements() ) {
! Object key = keys.nextElement();
! Object value = labelTable.get(key);
if ( !(value instanceof LabelUIResource) ) {
hashtable.put( key, value );
}
}
--- 976,992 ----
}
if ( e.getPropertyName().equals( "minimum" ) ||
e.getPropertyName().equals( "maximum" ) ) {
! Enumeration<Integer> keys = getLabelTable().keys();
! Hashtable<Integer, JComponent> hashtable = new Hashtable<>();
// Save the labels that were added by the developer
while ( keys.hasMoreElements() ) {
! Integer key = keys.nextElement();
! JComponent value = labelTable.get(key);
if ( !(value instanceof LabelUIResource) ) {
hashtable.put( key, value );
}
}
*** 994,1004 ****
createLabels();
// Add the saved labels
keys = hashtable.keys();
while ( keys.hasMoreElements() ) {
! Object key = keys.nextElement();
put( key, hashtable.get( key ) );
}
((JSlider)e.getSource()).setLabelTable( this );
}
--- 994,1004 ----
createLabels();
// Add the saved labels
keys = hashtable.keys();
while ( keys.hasMoreElements() ) {
! Integer key = keys.nextElement();
put( key, hashtable.get( key ) );
}
((JSlider)e.getSource()).setLabelTable( this );
}
*** 1011,1021 ****
}
}
SmartHashtable table = new SmartHashtable( increment, start );
! Dictionary labelTable = getLabelTable();
if (labelTable != null && (labelTable instanceof PropertyChangeListener)) {
removePropertyChangeListener((PropertyChangeListener) labelTable);
}
--- 1011,1021 ----
}
}
SmartHashtable table = new SmartHashtable( increment, start );
! Dictionary<Integer, JComponent> labelTable = getLabelTable();
if (labelTable != null && (labelTable instanceof PropertyChangeListener)) {
removePropertyChangeListener((PropertyChangeListener) labelTable);
}