import java.awt.event.*;
import java.awt.*;


public class 
MeinMenu extends MenuBar 
implements ActionListener
{
	
	
      // Extra bezeichnet hier nur die zusätzliche Eigenschaft, dass ein Menushortcut
      // zusätzlich noch dabei ist
	private void 
      addMenuItemExtra(Menu menu, String title, boolean isAvailable, MenuShortcut ms) {
	 MenuItem item = new MenuItem(title, ms);
       item.setActionCommand(title);
       item.setEnabled(isAvailable);
       item.addActionListener (this);
       menu.add(item);
      }

       // Methode ohne Kurzwahlmenue
      private void
	addMenuItem(Menu menu, String title, boolean isAvailable) {
	 MenuItem item = new MenuItem(title);
	 item.setActionCommand(title); 
       item.setEnabled(isAvailable);
       item.addActionListener(this);
       menu.add(item);
      }

     public void
      addFileMenu ( ) {

	Menu fileMenu = new Menu ("File");
	addMenuItem (fileMenu, "about Editor", true);
	fileMenu.addSeparator ( );
	addMenuItemExtra (fileMenu, "Open", true, new MenuShortcut(KeyEvent.VK_O));
	addMenuItem (fileMenu, "Open ...", false);
	fileMenu.addSeparator ( );
	addMenuItem (fileMenu, "Save", true);
	addMenuItem (fileMenu, "Save as ..", false);
	fileMenu.addSeparator ( );
	
	MenuItem close = new MenuItem("Exit Editor", new MenuShortcut(KeyEvent.VK_S));
	close.setActionCommand("Exit Editor");
	close.addActionListener(this);
	fileMenu.add(close);

	this.add (fileMenu); 
    }

	 public void addEditMenu() {
	 
     	    Menu editMenu = new Menu("Edit");
	    addMenuItem(editMenu, "Undo", true);
	    editMenu.addSeparator();
		addMenuItemExtra(editMenu, "Cut", true,new MenuShortcut(KeyEvent.VK_X) );
		addMenuItemExtra(editMenu, "Copy", true,new MenuShortcut(KeyEvent.VK_C));
		addMenuItemExtra(editMenu, "Paste", true, new MenuShortcut(KeyEvent.VK_V));
		addMenuItem(editMenu, "Paste Special..", true);
		addMenuItem(editMenu, "Clear", true);
		addMenuItem(editMenu, "Select all", true);
		editMenu.addSeparator();
		addMenuItem(editMenu, "Find", true);
		
		this.add(editMenu);
	 }

	public void addViewMenu(){

       
      Menu viewMenu = new Menu("View");
      addMenuItem(viewMenu, "Toolbar", true);
	addMenuItem(viewMenu, "Format Bar", true);
	addMenuItem(viewMenu, "Ruler", true);
	addMenuItem(viewMenu, "Status Bar", true);
	viewMenu.addSeparator();
	addMenuItem(viewMenu, "Options...", true);
      this.add(viewMenu);           
	}

 	public void addAllMenu(){
	addFileMenu();
	addEditMenu();
      addViewMenu();
	}



	public void actionPerformed(ActionEvent event)
	{
	String cmd = event.getActionCommand();

	if(cmd.equals("Open"))
	{
	FileDialog f = new FileDialog(Editor.f, "Datei öffnen", FileDialog.LOAD);
	f.setDirectory(Editor.directory); // Default-Verzeichnis einstellen
	f.show();
	Editor.directory = f.getDirectory(); // neues Default Verzeichnis merken
	Editor.f.setFile(Editor.directory, f.getFile()); // laden und anzeigen
	f.dispose();
	}
	if(cmd.equals("Exit Editor"))
	{
	 YesNoDialog ynd = new YesNoDialog(Editor.f, "Moechtest Du es schliessen? ");
	ynd.show();
	if( ynd.getResult() == false)Editor.f.show();    
	else {Editor.f.dispose();System.exit(0);}
	}
	if(cmd.equals("about Editor")){
	   CloseableFrame aboutD = new CloseableFrame("Konstantin");
	   aboutD.setBounds(50,50,70,70);
	   aboutD.setBackground(Color.red);
	   aboutD.setForeground(Color.blue);
	   aboutD.show();
	}
	} // actionPerformed






}