package gitj.utils;
import java.awt.Component;
import java.awt.Desktop;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import git.Commit;
import gitj.Main;
public class MenuItemUtils {
public static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
public static JMenuItem getOpenSelectedVersion(final Commit c, final String repopath) {
JMenuItem item = new JMenuItem();
item.setText("Open selected version");
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
try {
String contents = c.getRepository().getFileAt(c, repopath);
File file = FileUtils.writeToTempFile(contents);
Desktop.getDesktop().open(file);
} catch (Exception ex) {
ex.printStackTrace();
Main.displayError(ex);
}
}
});
return item;
}
}