package edu.mbl.jif.gui.imaging; import edu.mbl.jif.gui.imaging.zoom.core.ZoomScrollPane; import java.awt.*; import javax.swing.*; import edu.mbl.jif.utils.ResourceManager; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.text.DecimalFormat; import java.text.NumberFormat; /** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author not attributable * @version 1.0 */ public class ZoomControl extends JPanel { JButton buttonZoomIn = new JButton(); JButton buttonZoomOne = new JButton(); JButton buttonZoomOut = new JButton(); JButton buttonZoomRoi = new JButton(); JButton buttonFitWindow = new JButton(); JLabel zFactor = new JLabel(); ZoomScrollPane zsp; public ZoomControl (ZoomScrollPane zsp) { this.zsp = zsp; try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); } } void jbInit () throws Exception { setLayout(new BoxLayout(this, BoxLayout.X_AXIS)); ResourceManager rm = new ResourceManager("edu/mbl/jif/gui/imaging/icons"); buttonZoomIn.setToolTipText("Zoom In"); buttonZoomIn.setIcon(rm.getImageIcon("zoomIn24.gif")); buttonZoomIn.setMargin(new Insets(0, 0, 0, 0)); buttonZoomOne.setMargin(new Insets(0, 0, 0, 0)); buttonZoomOne.setToolTipText("Zoom 1:1"); buttonZoomOne.setIcon(rm.getImageIcon("zoomOne24.gif")); buttonZoomOut.setMargin(new Insets(0, 0, 0, 0)); buttonZoomOut.setToolTipText("Zoom Out"); buttonZoomOut.setIcon(rm.getImageIcon("zoomOut24.gif")); /** @todo Zoom to ROI... */ buttonZoomRoi.setMargin(new Insets(0, 0, 0, 0)); buttonZoomRoi.setToolTipText("Zoom Out"); buttonZoomRoi.setIcon(rm.getImageIcon("zoomRoi24.gif")); buttonFitWindow.setMargin(new Insets(0, 0, 0, 0)); buttonFitWindow.setToolTipText("Zoom Out"); buttonFitWindow.setIcon(rm.getImageIcon("zoomFitWindow24.gif")); buttonZoomIn.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent ae) { zsp.getBounds(); zsp.zoom(0, 0, zsp.getZoomFactorX() + 1, zsp.getZoomFactorY() + 1); updateZoomPanel(); } }); buttonZoomOut.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent ae) { zsp.zoom(0, 0, zsp.getZoomFactorX() / 1.5, zsp.getZoomFactorY() / 1.5); updateZoomPanel(); } }); buttonZoomOne.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent ae) { zsp.restore(); zsp.repaint(); updateZoomPanel(); } }); buttonFitWindow.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent ae) { zsp.fitToScreen(); updateZoomPanel(); } }); this.add(buttonZoomIn, null); this.add(buttonZoomOne, null); this.add(buttonZoomOut, null); //this.add(buttonZoomRoi, null); this.add(buttonFitWindow, null); zFactor.setHorizontalAlignment(JLabel.CENTER); zFactor.setPreferredSize(new Dimension(24, 16)); zFactor.setFont(new Font( "Dialog", Font.PLAIN, 10 )); this.add(zFactor, null); updateZoomPanel (); } NumberFormat formatter = new DecimalFormat("#.##"); void updateZoomPanel () { zFactor.setText(formatter.format(zsp.getZoomFactorX())); } }