/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.tools.gui.jbands;
import java.util.ArrayList;
import de.cismet.tools.gui.jbands.interfaces.Band;
import de.cismet.tools.gui.jbands.interfaces.BandMember;
/**
* DOCUMENT ME!
*
* @author therter
* @version $Revision$, $Date$
*/
public class PlainBand implements Band {
//~ Instance fields --------------------------------------------------------
protected ArrayList<BandMember> members = new ArrayList<BandMember>();
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
private Double min = null;
private Double max = null;
private boolean enabled = true;
//~ Constructors -----------------------------------------------------------
/**
* Creates a new SimpleBand object.
*/
public PlainBand() {
}
//~ Methods ----------------------------------------------------------------
@Override
public BandMember getMember(final int i) {
assert (i > 0);
assert (i < members.size());
return members.get(i);
}
@Override
public int getNumberOfMembers() {
return members.size();
}
/**
* DOCUMENT ME!
*
* @param m DOCUMENT ME!
*/
public void addMember(final BandMember m) {
assert (m != null);
members.add(m);
min = null;
max = null;
}
/**
* DOCUMENT ME!
*/
public void removeAllMember() {
members.clear();
min = null;
max = null;
}
@Override
public double getMax() {
if (max == null) {
max = 0.0;
for (final BandMember bm : members) {
max = (max < bm.getMax()) ? bm.getMax() : max;
}
}
return max;
}
@Override
public double getMin() {
if (min == null) {
min = Double.MAX_VALUE;
for (final BandMember bm : members) {
min = (min > bm.getMin()) ? bm.getMin() : min;
}
}
return min;
}
@Override
public boolean isEnabled() {
return enabled;
}
/**
* DOCUMENT ME!
*
* @param enabled DOCUMENT ME!
*/
public void setEnabled(final boolean enabled) {
this.enabled = enabled;
}
}