D:\NewZebra\JavaApplications\DesignPatternsProject\src\behavior_patterns\simple_command_pattern\SimpleCommandPattern.java
  1 /*
  2  * SimpleCommandPattern.java
  3 *
  4  * Disclaimer:
  5  */
  6 
  7 package behavior_patterns.simple_command_pattern;
  8 
  9 /**
 10  *
 11  * @author Sam Eldin
 12  */
 13 
 14 import java.text.*;
 15 import java.util.*;
 16 import java.awt.event.*;
 17 import java.awt.*;
 18 import javax.swing.*;
 19 
 20 
 21 public class SimpleCommandPattern extends JFrame implements Command {
 22 
 23     final int                X_STARTING_POSITION         = 50;
 24     final int                Y_STARTING_POSITION         = 50;
 25     //=======================================================
 26     final int                RED_BACKGROUND              = 0;
 27     final int                GRAY_BACKGROUND             = 1;
 28     final int                BLUE_BACKGROUND             = 2;
 29     //=======================================================
 30     int     local_X_position = X_STARTING_POSITION;
 31     int     local_Y_position = Y_STARTING_POSITION;
 32 
 33     JButton                    aJButton    = null;
 34     JPanel                     aJPanel     = null;
 35     int                        whichOne    =  BLUE_BACKGROUND;
 36     
 37     /** Creates a new instance of SimpleCommandPattern */
 38     public SimpleCommandPattern() {
 39         
 40         setSize(800, 600);
 41         setTitle("Simple Command Pattern JFrame");
 42         setLayout(null);
 43         //---------------------------------------
 44         aJPanel = new JPanel();
 45         aJPanel.setBounds(0,0,800,600);
 46         aJPanel.setBackground(Color.lightGray);
 47         aJPanel.setLayout(null);
 48         add(aJPanel);
 49         //---------------------------------------
 50         addButton("Red", 0,  RED_BACKGROUND);
 51         addButton("Gray", 40, GRAY_BACKGROUND);
 52         addButton("Blue", 80, BLUE_BACKGROUND);
 53         setVisible(true);
 54     }
 55     /**
 56      *
 57      */
 58    public void execute(){
 59        switch(whichOne)
 60        {
 61            case RED_BACKGROUND:
 62                 aJPanel.setBackground(Color.red);
 63                break;
 64            case GRAY_BACKGROUND:
 65                 aJPanel.setBackground(Color.gray);
 66                break;
 67            case BLUE_BACKGROUND:
 68                 aJPanel.setBackground(Color.blue);
 69                break;
 70            default:
 71                 aJPanel.setBackground(Color.red);
 72        }
 73    }
 74     /**
 75      *
 76      */
 77     public void addButton(String buttonName, int verticalPosition, int bColor){
 78 
 79         final int   localColor =  bColor;
 80         local_Y_position += 40 + verticalPosition;
 81         //===================================
 82         Cursor handCursor = new Cursor(Cursor.HAND_CURSOR);
 83         //===============================================     
 84         aJButton = new JButton(buttonName);
 85         aJButton.setCursor(handCursor);
 86         aJButton.setBackground(Color.blue);
 87         aJButton.setBounds(local_X_position, local_Y_position, 100, 20);
 88         aJPanel.add(aJButton);
 89         aJButton.addActionListener(new ActionListener()
 90         {
 91             public void actionPerformed(ActionEvent PassedActionEvent)
 92             {
 93                 whichOne    =  localColor;
 94                 execute();
 95             }
 96         });
 97     }   
 98     /**
 99      *
100      */
101      public static void main (String[] args) {
102          SimpleCommandPattern simpleCommandPatternHandle = new SimpleCommandPattern();
103     }
104     
105 }
106 
107