/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package app.navigps.gui.svgComponents; import app.navigps.gui.svgComponents.Thumbnail.ThumbnailPanel; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; import javax.swing.Box; import javax.swing.JPanel; import javax.swing.JScrollBar; /** * * @author wara */ public class SVGLayerScrollPane extends SVGScrollPane{ /** * * @param svgCanvasL */ public SVGLayerScrollPane(SVGCanvasLayers svgCanvasL){ this.canvas = svgCanvasL.getSvgCanvas(); canvas.setRecenterOnResize(false); // create components vertical = new JScrollBar(JScrollBar.VERTICAL, 0, 0, 0, 0); horizontal = new JScrollBar(JScrollBar.HORIZONTAL, 0, 0, 0, 0); // create a spacer next to the horizontal bar horizontalPanel = new JPanel(new BorderLayout()); horizontalPanel.add(horizontal, BorderLayout.CENTER); cornerBox = Box.createRigidArea (new Dimension(vertical.getPreferredSize().width, horizontal.getPreferredSize().height)); horizontalPanel.add(cornerBox, BorderLayout.EAST); // listeners hsbListener = createScrollBarListener(false); horizontal.getModel().addChangeListener(hsbListener); vsbListener = createScrollBarListener(true); vertical.getModel().addChangeListener(vsbListener); // by default, scrollbars are not needed updateScrollbarState(false, false); addMouseWheelListener(new WheelListener()); // layout setLayout(new BorderLayout()); add(svgCanvasL, BorderLayout.CENTER); add(vertical, BorderLayout.EAST); add(horizontalPanel, BorderLayout.SOUTH); // inform of ZOOM events (to print sizes, such as in a status bar) canvas.addSVGDocumentLoaderListener(createLoadListener()); // canvas listeners ScrollListener xlistener = createScrollListener(); addComponentListener(xlistener); canvas.addGVTTreeRendererListener(xlistener); canvas.addJGVTComponentListener (xlistener); canvas.addGVTTreeBuilderListener (xlistener); canvas.addUpdateManagerListener (xlistener); } /** * * @param scale */ @Override public void scaleChange(float scale) { super.scaleChange(scale); SVGCanvasLayers parent = (SVGCanvasLayers)canvas.getParent(); Component[] comp = parent.getThumbnailContainer().getComponents(); for (int i = 0; i < comp.length; i++) { Component component = comp[i]; if(component instanceof ThumbnailPanel){ ThumbnailPanel tmp = (ThumbnailPanel)component; tmp.getThumbnail().updateThumbnailRenderingTransform(); } } } }