package com.bytezone.diskbrowser.gui;

import java.awt.Desktop;
import java.awt.event.ActionEvent;
import java.io.IOException;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;

// -----------------------------------------------------------------------------------//
class ExecuteDiskAction extends AbstractAction
// -----------------------------------------------------------------------------------//
{
  // should replace this by making the action a listener
  MenuHandler owner;

  // ---------------------------------------------------------------------------------//
  public ExecuteDiskAction (MenuHandler owner)
  // ---------------------------------------------------------------------------------//
  {
    super ("Run current disk");
    putValue (Action.SHORT_DESCRIPTION, "Same as double-clicking on the disk");
    putValue (Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke ("alt X"));
    this.owner = owner;
  }

  // ---------------------------------------------------------------------------------//
  @Override
  public void actionPerformed (ActionEvent e)
  // ---------------------------------------------------------------------------------//
  {
    try
    {
      Desktop.getDesktop ().open (owner.currentDisk.getDisk ().getFile ());
    }
    catch (IOException e1)
    {
      e1.printStackTrace ();
      JOptionPane.showMessageDialog (null,
          "Error opening disk : " + owner.currentDisk.getDisk ().getFile (), "Bugger",
          JOptionPane.INFORMATION_MESSAGE);
    }
  }
}