@Override public void actionPerformed(ActionEvent e) { if (SHEET_COMMAND.equals(e.getActionCommand())) { new PreviewLoader((URI) sheetBox.getSelectedItem()).execute(); } else if (PAGE_COMMAND.equals(e.getActionCommand())) { previewPanel.setPage(pageBox.getSelectedIndex()); } else if (ZOOM_COMMAND.equals(e.getActionCommand())) { Double zoom = (Double) zoomBox.getSelectedItem(); previewPanel.setScaleFactor(zoom); } else if (ZOOM_IN_COMMAND.equals(e.getActionCommand())) { Double zoom = (Double) zoomBox.getSelectedItem(); zoomBox.setSelectedItem(zoom * ZOOM_MULTIPLIER); } else if (ZOOM_OUT_COMMAND.equals(e.getActionCommand())) { Double zoom = (Double) zoomBox.getSelectedItem(); zoomBox.setSelectedItem(zoom / ZOOM_MULTIPLIER); } else if (PRINT_COMMAND.equals(e.getActionCommand())) { PrinterJob printerJob = PrinterJob.getPrinterJob(); printerJob.setPageable(pageable); if (printerJob.printDialog()) { try { printerJob.print(); dispose(); } catch (PrinterException ex) { String message = "Could not print " + character.getNameRef().get(); Logging.errorPrint(message, ex); frame.showErrorMessage(Constants.APPLICATION_NAME, message); } } } else if (CANCEL_COMMAND.equals(e.getActionCommand())) { dispose(); } }