Example #1
0
        public static void Main(String[] args)
        {
            // get the singleton only instance of the remote control
            RemoteControl remoteControl = RemoteControl.getInstance();

            // create all the receiver devices in their proper locations
            Light      livingRoomLight = new Light("Living Room");
            Light      kitchenLight    = new Light("Kitchen");
            CeilingFan ceilingFan      = new CeilingFan("Living Room");
            GarageDoor garageDoor      = new GarageDoor("");
            Stereo <string, string, object, int> stereo = new Stereo <string, string, object, int>("Living Room");

            // create all the light command objects
            LightOnCommand  livingRoomLightOn  = new LightOnCommand(livingRoomLight);
            LightOffCommand livingRoomLightOff = new LightOffCommand(livingRoomLight);
            LightOnCommand  kitchenLightOn     = new LightOnCommand(kitchenLight);
            LightOffCommand kitchenLightOff    = new LightOffCommand(kitchenLight);

            // create the on and off commands for the ceiling fan
            CeilingFanOnCommand  ceilingFanOn  = new CeilingFanOnCommand(ceilingFan);
            CeilingFanOffCommand ceilingFanOff = new CeilingFanOffCommand(ceilingFan);

            // create the up and down commands for the garage door
            GarageDoorUpCommand   garageDoorUp   = new GarageDoorUpCommand(garageDoor);
            GarageDoorDownCommand garageDoorDown = new GarageDoorDownCommand(garageDoor);

            // create the stereo on and off commands
            StereoOnWithCDCommand stereoOnWithCD = new StereoOnWithCDCommand(stereo);
            StereoOffCommand      stereoOff      = new StereoOffCommand(stereo);

            // load commands into the remote slots
            remoteControl.SetCommand(0, livingRoomLightOn, livingRoomLightOff);
            remoteControl.SetCommand(1, kitchenLightOn, kitchenLightOff);
            remoteControl.SetCommand(2, ceilingFanOn, ceilingFanOff);
            remoteControl.SetCommand(3, stereoOnWithCD, stereoOff);

            // print each remote slot and the command that it is assigned to
            Console.WriteLine(remoteControl);

            // push on and off button through each slot
            remoteControl.OnButtonWasPushed(0);
            remoteControl.OffButtonWasPushed(0);
            remoteControl.OnButtonWasPushed(1);
            remoteControl.OffButtonWasPushed(1);
            remoteControl.OnButtonWasPushed(2);
            remoteControl.OffButtonWasPushed(2);
            remoteControl.OnButtonWasPushed(3);
            remoteControl.OffButtonWasPushed(3);
            for (int i = 0; i < remoteControl.OnCommands.Length; i++)
            {
                remoteControl.UndoButtonWasPushed();
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            RemoteControl remoteControl = new RemoteControl();

            Light      livingRoomLight      = new Light("Living Room");
            Light      kitchenLight         = new Light("Kitchen");
            CeilingFan livingRoomCeilingFan = new CeilingFan("Living Room");
            GarageDoor garageDoor           = new GarageDoor();
            Stereo     livingRoomStereo     = new Stereo("Living Room");

            LightOnCommand  livingRoomLightOnCommand  = new LightOnCommand(livingRoomLight);
            LightOffCommand livingRoomLightOffCommand = new LightOffCommand(livingRoomLight);
            LightOnCommand  kitchenLightOnCommand     = new LightOnCommand(kitchenLight);
            LightOffCommand kitchenLightOffCommand    = new LightOffCommand(kitchenLight);

            CeilingFanOnCommand  livingRoomCeilingFanOnCommand  = new CeilingFanOnCommand(livingRoomCeilingFan);
            CeilingFanOffCommand livingRoomCeilingFanOffCommand = new CeilingFanOffCommand(livingRoomCeilingFan);

            GarageDoorUpCommand   garageDoorUpCommand   = new GarageDoorUpCommand(garageDoor);
            GarageDoorDownCommand garageDoorDownCommand = new GarageDoorDownCommand(garageDoor);

            StereoWithCDCommand livingRoomStereoWithCDCommand = new StereoWithCDCommand(livingRoomStereo);
            StereoOffCommand    livingRoomStereoOffCommand    = new StereoOffCommand(livingRoomStereo);

            // MAIN
            //remoteControl.SetCommand(0, livingRoomLightOnCommand, livingRoomLightOffCommand);
            //remoteControl.SetCommand(1, kitchenLightOnCommand, kitchenLightOffCommand);
            //remoteControl.SetCommand(2, livingRoomCeilingFanOnCommand, livingRoomCeilingFanOffCommand);
            //remoteControl.SetCommand(3, livingRoomStereoWithCDCommand, livingRoomStereoOffCommand);

            //Console.WriteLine(remoteControl.ToString());

            //Console.ReadLine();

            //remoteControl.OnButtonWasPushed(0);
            //remoteControl.OffButtonWasPushed(0);
            //remoteControl.OnButtonWasPushed(1);
            //remoteControl.OffButtonWasPushed(1);
            //remoteControl.OnButtonWasPushed(2);
            //remoteControl.OffButtonWasPushed(2);
            //remoteControl.OnButtonWasPushed(3);
            //remoteControl.OffButtonWasPushed(3);

            //Console.ReadLine();

            // UNDO
            //remoteControl.SetCommand(0, livingRoomLightOnCommand, livingRoomLightOffCommand);
            //remoteControl.OnButtonWasPushed(0);
            //remoteControl.OffButtonWasPushed(0);
            //Console.WriteLine(remoteControl.ToString());
            //remoteControl.UndoButtonWasPushed();
            //remoteControl.OffButtonWasPushed(0);
            //remoteControl.OnButtonWasPushed(0);
            //Console.WriteLine(remoteControl.ToString());
            //remoteControl.UndoButtonWasPushed();

            //CeilingFanMediumCommand ceilingFanMedium = new CeilingFanMediumCommand(livingRoomCeilingFan);
            //CeilingFanHighCommand ceilingFanHigh = new CeilingFanHighCommand(livingRoomCeilingFan);
            //CeilingFanOffCommand ceilingFanOff = new CeilingFanOffCommand(livingRoomCeilingFan);

            //remoteControl.SetCommand(0, ceilingFanMedium, ceilingFanOff);
            //remoteControl.SetCommand(1, ceilingFanHigh, ceilingFanOff);
            //remoteControl.OnButtonWasPushed(0);
            //remoteControl.OffButtonWasPushed(0);
            //remoteControl.UndoButtonWasPushed();
            //remoteControl.OnButtonWasPushed(1);
            //remoteControl.UndoButtonWasPushed();
            //Console.ReadLine();

            // MACRO COMMAND
            ICommand[] partyOn  = new ICommand[] { livingRoomLightOnCommand, garageDoorUpCommand };
            ICommand[] partyOff = new ICommand[] { livingRoomLightOffCommand, garageDoorDownCommand };

            MacroCommand partyOnMacro  = new MacroCommand(partyOn);
            MacroCommand partyOffMacro = new MacroCommand(partyOff);

            remoteControl.SetCommand(0, partyOnMacro, partyOffMacro);
            remoteControl.OnButtonWasPushed(0);
            remoteControl.OffButtonWasPushed(0);
            remoteControl.UndoButtonWasPushed();

            Console.ReadLine();
        }