blob: 4fe30d090daa1d6a8ede4ac5a73fd1cd324c235d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 2013 Original authors and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Original authors and others - initial API and implementation
******************************************************************************/
package org.eclipse.nebula.widgets.nattable.dataset.fixture.data;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.ArrayList;
import java.util.List;
/**
* Bean wired with a property change listener for Glazed lists. See Glazed Lists
* ObservableElementList Screencast for details
*
*/
public class BlinkingRowDataFixture extends RowDataFixture {
private PropertyChangeSupport support = new PropertyChangeSupport(this);
private final PropertyChangeListener changeListener;
public BlinkingRowDataFixture(PropertyChangeListener changeListener, RowDataFixture rowDataFixture) {
super(rowDataFixture.getSecurity_id(),
rowDataFixture.getSecurity_description(),
rowDataFixture.getRating(),
rowDataFixture.getIssue_date(),
rowDataFixture.getPricing_type(),
rowDataFixture.getBid_price(),
rowDataFixture.getAsk_price(),
rowDataFixture.getLot_size(),
rowDataFixture.isPublish_flag(),
rowDataFixture.getHigh52Week(),
rowDataFixture.getLow52Week(),
rowDataFixture.getEps(),
rowDataFixture.getVolume(),
rowDataFixture.getMarketCap(),
rowDataFixture.getInstitutionOwned());
this.changeListener = changeListener;
addPropertyChangeListener(changeListener);
}
public static List<BlinkingRowDataFixture> getList(PropertyChangeListener changeListener) {
List<RowDataFixture> list = RowDataListFixture.getList();
List<BlinkingRowDataFixture> blinkingList = new ArrayList<BlinkingRowDataFixture>();
for (RowDataFixture rowDataFixture : list) {
blinkingList.add(new BlinkingRowDataFixture(changeListener, rowDataFixture));
}
return blinkingList;
}
// Methods invoked by Glazed lists to add/remove property change listeners
public void addPropertyChangeListener(PropertyChangeListener l) {
this.support.addPropertyChangeListener(l);
}
public void removePropertyChangeListener(PropertyChangeListener l) {
this.support.removePropertyChangeListener(l);
this.support.removePropertyChangeListener(this.changeListener);
}
// Accessors modified to fire property change events
@Override
public void setBid_price(double bid_price) {
double oldBidPrice = this.bid_price;
this.bid_price = bid_price;
this.support.firePropertyChange("bid_price", Double.valueOf(oldBidPrice),
Double.valueOf(this.bid_price));
}
@Override
public void setAsk_price(double ask_price) {
double oldAskPrice = this.ask_price;
this.ask_price = ask_price;
this.support.firePropertyChange("ask_price", Double.valueOf(oldAskPrice),
Double.valueOf(this.ask_price));
}
@Override
public String toString() {
return getSecurity_description();
}
}