Command pattern in Java 2 : Command Pattern « Design Pattern « Java






Command pattern in Java 2

Command pattern in Java 2
/*
The Design Patterns Java Companion

Copyright (C) 1998, by James W. Cooper

IBM Thomas J. Watson Research Center

*/


import java.awt.Button;
import java.awt.Color;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

interface Command {
  public void Execute();
}

public class TestCommand extends Frame implements ActionListener {
  Menu mnuFile;

  fileOpenCommand mnuOpen;

  fileExitCommand mnuExit;

  btnRedCommand btnRed;

  Panel p;

  Frame fr;

  //-----------------------------------------
  public TestCommand() {
    super("Frame without commands");
    fr = this; //save frame object
    MenuBar mbar = new MenuBar();
    setMenuBar(mbar);

    mnuFile = new Menu("File", true);
    mbar.add(mnuFile);

    mnuOpen = new fileOpenCommand("Open...");
    mnuFile.add(mnuOpen);
    mnuExit = new fileExitCommand("Exit");
    mnuFile.add(mnuExit);

    mnuOpen.addActionListener(this);
    mnuExit.addActionListener(this);

    btnRed = new btnRedCommand("Red");
    p = new Panel();
    add(p);
    p.add(btnRed);

    btnRed.addActionListener(this);
    setBounds(100, 100, 200, 100);
    setVisible(true);
  }

  //-----------------------------------------
  public void actionPerformed(ActionEvent e) {
    Command obj = (Command) e.getSource();
    obj.Execute();
  }

  //-----------------------------------------
  static public void main(String argv[]) {
    new TestCommand();
  }

  //====----====-----inner class----=====----
  class btnRedCommand extends Button implements Command {
    public btnRedCommand(String caption) {
      super(caption);
    }

    public void Execute() {
      p.setBackground(Color.red);
    }
  }

  //------------------------------------------
  class fileOpenCommand extends MenuItem implements Command {
    public fileOpenCommand(String caption) {
      super(caption);
    }

    public void Execute() {
      FileDialog fDlg = new FileDialog(fr, "Open file");
      fDlg.show();
    }
  }

  //-------------------------------------------
  class fileExitCommand extends MenuItem implements Command {
    public fileExitCommand(String caption) {
      super(caption);
    }

    public void Execute() {
      System.exit(0);
    }
  }
}
//==========================================


           
       








Related examples in the same category

1.Command pattern in Java 1Command pattern in Java 1
2.Command pattern in Java 3Command pattern in Java 3
3.Command pattern in Java 4Command pattern in Java 4
4.Command Pattern 2 in Java
5.Command Pattern - Example: FTP GUICommand Pattern - Example: FTP GUI
6.Command pattern: Shopping