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());