Appendix D Elevator Events and Listener Interfaces Outline

  • Slides: 21
Download presentation
Appendix D – Elevator Events and Listener Interfaces Outline D. 1 D. 2 D.

Appendix D – Elevator Events and Listener Interfaces Outline D. 1 D. 2 D. 3 D. 4 Introduction Events Listeners Artifacts Revisited 2001 Prentice Hall, Inc. All rights reserved. 1

2 D. 1 Introduction • Event handling – Object register as “listeners” for events

2 D. 1 Introduction • Event handling – Object register as “listeners” for events • The class of that object must implement a “listener” interface 2001 Prentice Hall, Inc. All rights reserved.

3 D. 2 Events • Figures D. 1 -D. 7 contain system events –

3 D. 2 Events • Figures D. 1 -D. 7 contain system events – Each event inherits from class Elevator. Simulation. Event 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Outline // Elevator. Simulation. Event. java // Basic event packet in Elevator simulation package com. deitel. jhtp 5. elevator. event; // Deitel packages import com. deitel. jhtp 5. elevator. model. *; Class Elevator. Simulation. Event is the superclass for all events in elevator simulation case study public class Elevator. Simulation. Event { // Location where Elevator. Simulation. Event was generated private Location location; // source Object that generated Elevator. Simulation. Event private Object source; Elevator. Simulat Locationion. Event. java object represents Elevator. Simulat where the event was generated ion-Event (e. g. , Floor or Elevator) superclass for events in the elevator simulation model. // Elevator. Simulation. Event constructor sets Location public Elevator. Simulation. Event( Object source, Location location ) Object source the Linerepresents 8 { set. Source( source ); actual Object that generated the set. Location( location ); event Line 11 } Line 14 2001 Prentice Hall, Inc. All rights reserved.

23 24 25 26 27 28 29 30 31 32 33 34 35 36

23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 // set Elevator. Simulation. Event Location public void set. Location( Location event. Location ) { location = event. Location; } // get Elevator. Simulation. Event Location public Location get. Location() { return location; } // set Elevator. Simulation. Event source private void set. Source( Object event. Source ) { source = event. Source; } // get Elevator. Simulation. Event source public Object get. Source() { return source; } Outline Elevator. Simulat ion. Event. java Elevator. Simulat ion-Event superclass for events in the elevator simulation model. } 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // Bell. Event. java // Indicates that Bell has rung package com. deitel. jhtp 5. elevator. event; Outline // Deitel packages import com. deitel. jhtp 5. elevator. model. *; public class Bell. Event extends Elevator. Simulation. Event { // Bell. Event constructor public Bell. Event( Object source, Location location ) { super( source, location ); } } Bell. Event sent when Bell has rung Bell. Event. java Bell. Event Elevator. Simulat ion-Event subclass indicating that the Bell has rung. Lines 8 -15 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // Button. Event. java // Indicates that a Button has changed state package com. deitel. jhtp 5. elevator. event; Outline // Deitel packages import com. deitel. jhtp 5. elevator. model. *; public class Button. Event extends Elevator. Simulation. Event { // Button. Event constructor public Button. Event( Object source, Location location ) { super( source, location ); } } Button. Event sent when Button as been pressed or reset Button. Event. jav a Button. Event Elevator. Simulat ion-Event subclass indicating that a Button has changed state. Lines 8 -15 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // Door. Event. java // Indicates that a Door has changed state package com. deitel. jhtp 5. elevator. event; Outline // Deitel packages import com. deitel. jhtp 5. elevator. model. *; public class Door. Event extends Elevator. Simulation. Event { // Door. Event constructor public Door. Event( Object source, Location location ) { super( source, location ); } } Door. Event sent when Door has opened or closed Door. Event. java Door. Event Elevator. Simulat ion-Event subclass indicating that a Door has changed state. Lines 8 -15 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // Elevator. Move. Event. java // Indicates on which Floor the Elevator arrived or departed package com. deitel. jhtp 5. elevator. event; // Deitel packages import com. deitel. jhtp 5. elevator. model. *; Outline Elevator. Move. Event sent when Elevator arrives at or departs from Floor public class Elevator. Move. Event extends Elevator. Simulation. Event { // Elevator. Move. Event constructor public Elevator. Move. Event( Object source, Location location ) { super( source, location ); } } Elevator. Move. Eve nt. java Elevator. Move. Event Elevator. Model. Event subclass indicating on which Floor the Elevator has either arrived or departed. Lines 8 -15 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // Light. Event. java // Indicates on which Floor the Light has changed state package com. deitel. jhtp 5. elevator. event; Outline // Deitel packages import com. deitel. jhtp 5. elevator. model. *; public class Light. Event extends Elevator. Simulation. Event { // Light. Event constructor public Light. Event( Object source, Location location ) { super( source, location ); } } Light. Event sent when Light has been turned on or off Light. Event. java Light. Event Elevator. Model. Event subclass indicating on which Floor the Light has changed state. Lines 8 -15 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 // Person. Move. Event. java // Indicates that a Person has moved package com. deitel. jhtp 5. elevator. event; Outline // Deitel packages import com. deitel. jhtp 5. elevator. model. *; public class Person. Move. Event extends Elevator. Simulation. Event { // identifier of Person sending Event private int ID; // Person. Move. Event constructor public Person. Move. Event( Object source, Location location, int identifier ) { super( source, location ); ID = identifier; } // return identifier public int get. ID() { return( ID ); } Person. Move. Event sent when Person performs an action in Person. Move. Event. simulation java ID for. Person. Move. Event identifying the Person. Elevator. Modelthat sent the event Event subclass indicating that a Person has moved. Lines 8 -26 Line 11 } 2001 Prentice Hall, Inc. All rights reserved.

12 D. 3 Listeners • Figures D. 8 -D. 14 contain listener interfaces –

12 D. 3 Listeners • Figures D. 8 -D. 14 contain listener interfaces – Interface methods receive as arguments various events 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 Outline // Bell. Listener. java

1 2 3 4 5 6 7 8 9 Outline // Bell. Listener. java // Method invoked when Bell has rung package com. deitel. jhtp 5. elevator. event; public interface Bell. Listener { // invoked when Bell has rungs public void bell. Rang( Bell. Event bell. Event ); } Method invoked when Bell has rung Bell. Listener. ja va Bell. Listener method when Bell has rung. Line 8 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 // Button.

1 2 3 4 5 6 7 8 9 10 11 12 // Button. Listener. java // Methods invoked when Button has been either pressed or reset package com. deitel. jhtp 5. elevator. event; Outline public interface Button. Listener { // invoked when Button has been pressed public void button. Pressed( Button. Event button. Event ); // invoked when Button has been reset public void button. Reset( Button. Event button. Event ); } Button. Listener. Methods javainvoked when Button has been Button. Listener pressed or reset methods when Button has been either pressed or reset. Lines 8 -11 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 // Door.

1 2 3 4 5 6 7 8 9 10 11 12 // Door. Listener. java // Methods invoked when Door has either opened or closed package com. deitel. jhtp 5. elevator. event; Outline public interface Door. Listener { // invoked when Door has opened public void door. Opened( Door. Event door. Event ); // invoked when Door has closed public void door. Closed( Door. Event door. Event ); } Door. Listener. ja Methods invoked va when Door has been Door. Listener opened or closed methods when Door has either opened or closed. Lines 8 -11 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 // Elevator.

1 2 3 4 5 6 7 8 9 10 11 12 // Elevator. Move. Listener. java // Methods invoked when Elevator has either departed or arrived package com. deitel. jhtp 5. elevator. event; Outline public interface Elevator. Move. Listener { // invoked when Elevator has departed public void elevator. Departed( Elevator. Move. Event move. Event ); // invoked when Elevator has arrived public void elevator. Arrived( Elevator. Move. Event move. Event ); } Elevator. Move. Lis tener. java Elevator. Move. Methods invoked when Elevator has arrived atmethods Listener or departed from when a Floor Elevator has either departed from or arrived on a Floor. Lines 8 -11 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 // Light.

1 2 3 4 5 6 7 8 9 10 11 12 // Light. Listener. java // Methods invoked when Light has either turned on or off package com. deitel. jhtp 5. elevator. event; Outline public interface Light. Listener { // invoked when Light has turned on public void light. Turned. On( Light. Event light. Event ); // invoked when Light has turned off public void light. Turned. Off( Light. Event light. Event ); } Methods invoked when Light has been turned on or off Light. Listener. j ava Light. Listener method for when Light has either turned on or off. Lines 8 -11 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 // Person. Move. Listener. java // Methods invoked when Person moved package com. deitel. jhtp 5. elevator. event; Outline public interface Person. Move. Listener { // invoked when Person has been instantiated in model public void person. Created( Person. Move. Event move. Event ); // invoked when Person arrived at elevator public void person. Arrived( Person. Move. Event move. Event ); // invoked when Person departed from elevator public void person. Departed( Person. Move. Event move. Event ); // invoked when Person pressed Button public void person. Pressed. Button( Person. Move. Event move. Event ); // invoked when Person entered Elevator public void person. Entered( Person. Move. Event move. Event ); Person. Move. Liste ner. java Methods invoked when Person. Moveperforms an action Listener methods when Person has moved. Lines 8 -24 // invoked when Person exited simulation public void person. Exited( Person. Move. Event move. Event ); } 2001 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 Outline // Elevator. Simulation. Listener.

1 2 3 4 5 6 7 8 9 Outline // Elevator. Simulation. Listener. java // Listener for Elevator. View from Elevator. Model package com. deitel. jhtp 5. elevator. event; // Elevator. Simulation. Listener inherits all Listener interfaces public interface Elevator. Simulation. Listener extends Bell. Listener, Button. Listener, Door. Listener, Elevator. Move. Listener, Light. Listener, Person. Move. Listener { } Elevator. Simulat ion. Listener. jav Convenience interface that a extends all listener interfaces Elevator. Simulat ion-Listener allows the model to send all events to the view. Lines 6 -9 2001 Prentice Hall, Inc. All rights reserved.

20 D. 4 Artifacts Revisited • Artifacts diagram for events – Artifacts in package

20 D. 4 Artifacts Revisited • Artifacts diagram for events – Artifacts in package event • Each artifact maps to a class in Figure D. 1 -D. 14 – Elevator. View. java aggregates package event • In Java, class Elevator. View imports package event – Package model aggregates package event • In Java, each class in model imports package event 2001 Prentice Hall, Inc. All rights reserved.

21 Fig. D. 15 Artifacts for package event << file>> file << file>> Bell.

21 Fig. D. 15 Artifacts for package event << file>> file << file>> Bell. Event. java Bell. Listener. java << file>> Button. Event. java Button. Listener. java << file>> Door. Event. java Door. Listener. java << file>> Elevator. Move. Event. java Elevator. Move. Listener. java << file>> Elevator. Simulation. Event. java Elevator. Simulation. Listener. java << file>> Light. Event. java Light. Listener. java << file>> Person. Move. Event. java Person. Move. Listener. java 1 1 view model << file>> Elevator. View. java 2001 Prentice Hall, Inc. All rights reserved. 1 1