Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Beanifiing the Browser Beans implementieren Serializable.

Ähnliche Präsentationen


Präsentation zum Thema: "Beanifiing the Browser Beans implementieren Serializable."—  Präsentation transkript:

1 Beanifiing the Browser Beans implementieren Serializable

2 PropertyChange Events Der Browser soll PropertyChange- Events erzeugen –Add/removePropertyChangeListener implementieren protected PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); public void addPropertyChangeListener (PropertyChangeListener listener) { thePropertyChangeSupport(). addPropertyChangeListener(listener); }

3 PropertyChange Events (2) –setURL und setHome müssen reimplementiert werden public void setURL(String newURL) { String oldURL = getURL(); super.setURL( newURL ); thePropertyChangeSupport(). firePropertyChange( "URL", oldURL, newURL ); } public void setHome(String newHome) { String oldHome = getHome(); super.setHome(newHome); thePropertyChangeSupport(). firePropertyChange("home", oldHome, newHome); }

4 Events / Listeners / Producers 1. goHome hört auf ein ActionEvent vom home Button 2. propertyChange hört auf ein PropertyChangeEvent 3. updateBrowser hört auf HistoryBrowseEvent 4. moveBackward hört auf ActionEvent 5. moveForward hört auf ActionEvent

5 Go Home Funktionalität Das ActionEvent des Buttons wird mit der Methode goHome() vom BrowserSolution verbunden

6 Die History Wird realisiert durch zwei Stacks Nur das PropertyChangeEvent URL bearbeiten public void propertyChange(PropertyChangeEvent event) { if( event.getPropertyName().equals("URL") ) { String oldURL = (String)event.getOldValue(); String newURL = (String)event.getNewValue(); addURLToHistory( oldURL, newURL ); } public void addURLToHistory( String oldURL, String newURL ) { next.clear(); if( previous.isEmpty() ) previous.push( oldURL ); previous.push( newURL ); }

7 Die History (2) moveBackward(Forward) handlen die ActionEvents der Buttons prev/next public void moveBackward() { if( !previous.isEmpty() ) { next.push( previous.pop() ); fireBrowseHistoryEvent( new BrowseHistoryEvent( this, (String)previous.peek() ) ); } public void moveForward() { if( !next.isEmpty() ) { previous.push( next.pop() ); fireBrowseHistoryEvent( new BrowseHistoryEvent( this, (String)previous.peek() ) ); }

8 Das BrowseHistory Event Wird von der History bei Navigieren ausgelöst Hat neue URL als Attribut Das Interface BrowseHistoryListener hat nur eine Methode public interface BrowseHistoryListener extends EventListener { void updateBrowser(BrowseHistoryEvent event); }

9 Die History und das BrowseHistory Event Die History implementiert add(remove)BrowseHistoryListener Feuert ein BrowseHistoryEvent an alle Listener, wenn navigiert wird

10 Der Browser und das BrowseHistory Event Der Browser implementier BrowseHistoryListener Die neue URL darf nicht über setURL gesetzt werden; sonst rekursion public class BrowserSolution extends browser.Browser implements PropertyChangeListener, Serializable, BrowseHistoryListener {... public void updateBrowser(BrowseHistoryEvent event) { // don't use this.setURL to avoid recursion! super.setURL( event.getNewURL() ); }... }


Herunterladen ppt "Beanifiing the Browser Beans implementieren Serializable."

Ähnliche Präsentationen


Google-Anzeigen