src/macosx/classes/sun/lwawt/LWScrollPanePeer.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 31,49 ****
import java.awt.*;
import java.awt.event.MouseWheelEvent;
import java.awt.peer.ScrollPanePeer;
import java.util.List;
final class LWScrollPanePeer extends LWContainerPeer<ScrollPane, JScrollPane>
implements ScrollPanePeer, ChangeListener {
LWScrollPanePeer(final ScrollPane target,
final PlatformComponent platformComponent) {
super(target, platformComponent);
}
! protected JScrollPane createDelegate() {
final JScrollPane sp = new JScrollPane();
final JPanel panel = new JPanel();
panel.setOpaque(false);
panel.setVisible(false);
sp.getViewport().setView(panel);
--- 31,54 ----
import java.awt.*;
import java.awt.event.MouseWheelEvent;
import java.awt.peer.ScrollPanePeer;
import java.util.List;
+ /**
+ * Lightweight implementation of {@link ScrollPanePeer}. Delegates most of the
+ * work to the {@link JScrollPane}.
+ */
final class LWScrollPanePeer extends LWContainerPeer<ScrollPane, JScrollPane>
implements ScrollPanePeer, ChangeListener {
LWScrollPanePeer(final ScrollPane target,
final PlatformComponent platformComponent) {
super(target, platformComponent);
}
! @Override
! JScrollPane createDelegate() {
final JScrollPane sp = new JScrollPane();
final JPanel panel = new JPanel();
panel.setOpaque(false);
panel.setVisible(false);
sp.getViewport().setView(panel);
*** 70,80 ****
@Override
public void stateChanged(final ChangeEvent e) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
! final LWComponentPeer viewPeer = getViewPeer();
if (viewPeer != null) {
final Rectangle r;
synchronized (getDelegateLock()) {
r = getDelegate().getViewport().getView().getBounds();
}
--- 75,85 ----
@Override
public void stateChanged(final ChangeEvent e) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
! final LWComponentPeer<?, ?> viewPeer = getViewPeer();
if (viewPeer != null) {
final Rectangle r;
synchronized (getDelegateLock()) {
r = getDelegate().getViewport().getView().getBounds();
}
*** 94,120 ****
getDelegate().setVerticalScrollBarPolicy(convertVPolicy(policy));
getDelegate().setHorizontalScrollBarPolicy(convertHPolicy(policy));
}
}
! LWComponentPeer getViewPeer() {
! List<LWComponentPeer> peerList = getChildren();
return peerList.isEmpty() ? null : peerList.get(0);
}
-
@Override
! protected Rectangle getContentSize() {
! Rectangle viewRect = getDelegate().getViewport().getViewRect();
return new Rectangle(viewRect.width, viewRect.height);
}
@Override
public void layout() {
super.layout();
synchronized (getDelegateLock()) {
! LWComponentPeer viewPeer = getViewPeer();
if (viewPeer != null) {
Component view = getDelegate().getViewport().getView();
view.setBounds(viewPeer.getBounds());
view.setPreferredSize(viewPeer.getPreferredSize());
view.setMinimumSize(viewPeer.getMinimumSize());
--- 99,127 ----
getDelegate().setVerticalScrollBarPolicy(convertVPolicy(policy));
getDelegate().setHorizontalScrollBarPolicy(convertHPolicy(policy));
}
}
! LWComponentPeer<?, ?> getViewPeer() {
! final List<LWComponentPeer<?, ?>> peerList = getChildren();
return peerList.isEmpty() ? null : peerList.get(0);
}
@Override
! Rectangle getContentSize() {
! final Rectangle viewRect;
! synchronized (getDelegateLock()) {
! viewRect = getDelegate().getViewport().getViewRect();
! }
return new Rectangle(viewRect.width, viewRect.height);
}
@Override
public void layout() {
super.layout();
synchronized (getDelegateLock()) {
! final LWComponentPeer<?, ?> viewPeer = getViewPeer();
if (viewPeer != null) {
Component view = getDelegate().getViewport().getView();
view.setBounds(viewPeer.getBounds());
view.setPreferredSize(viewPeer.getPreferredSize());
view.setMinimumSize(viewPeer.getMinimumSize());