Index: modules/swing/src/main/java/common/javax/swing/plaf/basic/BasicSliderUI.java
===================================================================
--- modules/swing/src/main/java/common/javax/swing/plaf/basic/BasicSliderUI.java (revision 490147)
+++ modules/swing/src/main/java/common/javax/swing/plaf/basic/BasicSliderUI.java (working copy)
@@ -14,18 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-/**
- * @author Sergey Burlak
- * @version $Revision$
- */
-
package javax.swing.plaf.basic;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
+import java.awt.IllegalComponentStateException;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
@@ -59,16 +54,23 @@
import org.apache.harmony.x.swing.StringConstants;
import org.apache.harmony.x.swing.Utilities;
-
+/**
+ * Note: serialVersionUID fields are added as
+ * a performance optimization only but not as a guarantee of correct
+ * deserialization.
+ */
public class BasicSliderUI extends SliderUI {
public class ActionScroller extends AbstractAction {
+ private static final long serialVersionUID = -3454576988589353120L;
+
public ActionScroller(final JSlider slider, final int dir, final boolean block) {
}
public void actionPerformed(final ActionEvent e) {
}
+ @Override
public boolean isEnabled() {
return false;
}
@@ -89,6 +91,7 @@
}
public class ComponentHandler extends ComponentAdapter {
+ @Override
public void componentResized(final ComponentEvent e) {
calculateGeometry();
slider.repaint();
@@ -175,6 +178,7 @@
});
}
+ @Override
public void mouseReleased(final MouseEvent e) {
if (trackTimer.isRunning()) {
trackTimer.stop();
@@ -200,6 +204,7 @@
slider.repaint();
}
+ @Override
public void mousePressed(final MouseEvent e) {
if (!slider.isFocusOwner()) {
slider.requestFocus();
@@ -239,6 +244,7 @@
return false;
}
+ @Override
public void mouseDragged(final MouseEvent e) {
mousePoint = e.getPoint();
if (inThumb && SwingUtilities.isLeftMouseButton(e)) {
@@ -272,6 +278,7 @@
}
}
+ @Override
public void mouseMoved(final MouseEvent e) {
}
@@ -369,6 +376,12 @@
private Color focusColor;
private boolean isDragging;
+
+ private ChangeListener changeHandler;
+ private ComponentListener componentHandler;
+ private FocusListener focusHandler;
+ private PropertyChangeListener propertyChangeHandler;
+
private static final int THUMB_WIDTH = 11;
private static final int THUMB_HEIGHT = 20;
private static final int TRACK_SIZE = 2;
@@ -378,8 +391,6 @@
private static final int UNIT_INCREMENT = 1;
public BasicSliderUI(final JSlider slider) {
- this.slider = slider;
-
focusRect = new Rectangle();
contentRect = new Rectangle();
labelRect = new Rectangle();
@@ -408,6 +419,7 @@
return new BasicSliderUI((JSlider)c);
}
+ @Override
public void installUI(final JComponent c) {
slider = (JSlider)c;
@@ -418,9 +430,12 @@
calculateGeometry();
}
+ @Override
public void uninstallUI(final JComponent c) {
- slider = (JSlider)c;
-
+ if (c != slider) {
+ // TODO Perform i18n after HARMONY-1320 is applied
+ throw new IllegalComponentStateException(this + " was asked to deinstall() " + c + " when it only knows about " + slider);
+ }
uninstallListeners(slider);
uninstallKeyboardActions(slider);
}
@@ -436,33 +451,41 @@
}
protected TrackListener createTrackListener(final JSlider slider) {
- this.slider = slider;
return new TrackListener();
}
protected ChangeListener createChangeListener(final JSlider slider) {
- this.slider = slider;
- return new ChangeHandler();
+ if (changeHandler == null) {
+ changeHandler = new ChangeHandler();
+ }
+ return changeHandler;
}
protected ComponentListener createComponentListener(final JSlider slider) {
- this.slider = slider;
- return new ComponentHandler();
+ if (componentHandler == null) {
+ componentHandler = new ComponentHandler();
+ }
+ return componentHandler;
}
protected FocusListener createFocusListener(final JSlider slider) {
- this.slider = slider;
- return new FocusHandler();
+ if (focusHandler == null) {
+ focusHandler = new FocusHandler();
+ }
+ return focusHandler;
}
protected ScrollListener createScrollListener(final JSlider slider) {
- this.slider = slider;
- return new ScrollListener(slider.getOrientation(), slider.getSnapToTicks());
+ return slider != null
+ ? new ScrollListener(slider.getOrientation(), slider.getSnapToTicks())
+ : new ScrollListener();
}
protected PropertyChangeListener createPropertyChangeListener(final JSlider slider) {
- this.slider = slider;
- return new PropertyChangeHandler();
+ if (propertyChangeHandler == null) {
+ propertyChangeHandler = new PropertyChangeHandler();
+ }
+ return propertyChangeHandler;
}
protected void installListeners(final JSlider slider) {
@@ -558,6 +581,7 @@
return new Dimension(width, DEFAULT_SLIDER_MIN_SIZE);
}
+ @Override
public Dimension getPreferredSize(final JComponent c) {
if (slider.getOrientation() == JSlider.HORIZONTAL) {
return getPreferredHorizontalSize();
@@ -566,6 +590,7 @@
}
}
+ @Override
public Dimension getMinimumSize(final JComponent c) {
if (slider.getOrientation() == JSlider.HORIZONTAL) {
return getMinimumHorizontalSize();
@@ -574,6 +599,7 @@
}
}
+ @Override
public Dimension getMaximumSize(final JComponent c) {
if (slider.getOrientation() == JSlider.HORIZONTAL) {
return new Dimension(Short.MAX_VALUE, getPreferredHorizontalSize().height);
@@ -811,6 +837,7 @@
return result;
}
+ @Override
public void paint(final Graphics g, final JComponent c) {
Color oldColor = g.getColor();
@@ -1063,6 +1090,8 @@
private Action newMaxScrollAction() {
return new AbstractAction() {
+ private static final long serialVersionUID = -3822301141065864044L;
+
public void actionPerformed(final ActionEvent e) {
if (drawInverted()) {
slider.setValue(slider.getMinimum());
@@ -1076,6 +1105,8 @@
private Action newMinScrollAction() {
return new AbstractAction() {
+ private static final long serialVersionUID = 703565386507416752L;
+
public void actionPerformed(final ActionEvent e) {
if (drawInverted()) {
slider.setValue(slider.getMaximum());
@@ -1089,6 +1120,8 @@
private Action newNegativeBlockIncrementAction() {
return new AbstractAction() {
+ private static final long serialVersionUID = 7818668169396841520L;
+
public void actionPerformed(final ActionEvent e) {
scrollByBlock(NEGATIVE_SCROLL);
}
@@ -1097,6 +1130,8 @@
private Action newNegativeUnitIncrementAction() {
return new AbstractAction() {
+ private static final long serialVersionUID = -4366059737366026435L;
+
public void actionPerformed(final ActionEvent e) {
scrollByUnit(NEGATIVE_SCROLL);
}
@@ -1105,6 +1140,8 @@
private Action newPositiveBlockIncrementAction() {
return new AbstractAction() {
+ private static final long serialVersionUID = -5999323396935662487L;
+
public void actionPerformed(final ActionEvent e) {
scrollByBlock(POSITIVE_SCROLL);
}
@@ -1113,6 +1150,8 @@
private Action newPositiveUnitIncrementAction() {
return new AbstractAction() {
+ private static final long serialVersionUID = 5166413389559469128L;
+
public void actionPerformed(final ActionEvent e) {
scrollByUnit(POSITIVE_SCROLL);
}