Spezifische Verarbeitung von PropertyChangeEvents

Programming Methodologies, SS11

Ist man beispielsweise mittels


public void registerListeners()
{
listenTo(Turn.PROPERTY_TRUMP, turn);
listenTo(WizardGame.PROPERTY_CURRENT_TURN, turn.getWizardGame());
}

an verschiedenen Objekten und/oder Attributen als Listener angemeldet ist, kann man die einzelnen Events unterschiedlich verarbeiten. Dazu vergleicht man den konstanten Bezeichner für die Attribute (bspw. Turn.PROPERTY_TRUMP) mit dem entsprechenden Wert im PropertyChangeEvent (evt.getPropertyName()). Bsp:


public void propertyChange(PropertyChangeEvent evt)
{
if (WizardGame.PROPERTY_CURRENT_TURN.equals(evt.getPropertyName()))
{
...
} else if (Turn.PROPERTY_TRUMP.equals(evt.getPropertyName()))
{
...
}
}

Dieses Vorgehen ist in HA 6 an einigen Stellen hilfreich, um das gewünschte Verhalten eines Controllers zu erreichen.