package org.rr.jeborker.gui.action; import java.awt.event.ActionEvent; import java.io.File; import java.util.logging.Level; import javax.swing.AbstractAction; import javax.swing.Action; import org.rr.commons.log.LoggerFactory; import org.rr.commons.swing.DesktopUtils; import org.rr.commons.swing.SwingUtils; import org.rr.jeborker.gui.resources.ImageResourceBundle; class OpenFileAction extends AbstractAction { private static final long serialVersionUID = -6464113132395695332L; private String file; OpenFileAction(String text) { this.file = text; String name = Bundle.getString("OpenFileAction.name"); putValue(Action.NAME, SwingUtils.removeMnemonicMarker(name)); putValue(Action.SMALL_ICON, ImageResourceBundle.getResourceAsImageIcon("file_16.png")); putValue(Action.LARGE_ICON_KEY, ImageResourceBundle.getResourceAsImageIcon("file_22.png")); putValue(MNEMONIC_KEY, SwingUtils.getMnemonicKeyCode(name)); } @Override public void actionPerformed(ActionEvent e) { final File fileToOpen = new File(file); boolean sucess = DesktopUtils.openFile(fileToOpen); if(!sucess) { LoggerFactory.getLogger().log(Level.INFO, "Open file in associated application has failed for " + fileToOpen); } } }