view flys-client/src/main/java/de/intevation/flys/client/shared/model/DataList.java @ 3719:e82acd5c86f7

Merged revisions 5495-5496,5509,5514-5515,5521-5526 via svnmerge from file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-client/trunk ........ r5495 | ingo | 2012-09-17 14:55:09 +0200 (Mo, 17 Sep 2012) | 1 line Added missing i18n strings for minfo state description. ........ r5496 | ingo | 2012-09-17 15:47:43 +0200 (Mo, 17 Sep 2012) | 1 line Tagged 'flys-client' as 2.9.1 ........ r5509 | teichmann | 2012-09-18 17:54:37 +0200 (Di, 18 Sep 2012) | 1 line Removed trailing whitespace. ........ r5514 | bricks | 2012-09-19 09:56:42 +0200 (Mi, 19 Sep 2012) | 2 lines Add missing Changelog entry for r5472 ........ r5515 | bricks | 2012-09-19 09:59:35 +0200 (Mi, 19 Sep 2012) | 2 lines Implement a scrolling gauge info tree ........ r5521 | bricks | 2012-09-19 14:41:48 +0200 (Mi, 19 Sep 2012) | 2 lines Add station info to the gauges ........ r5522 | bricks | 2012-09-19 14:43:43 +0200 (Mi, 19 Sep 2012) | 2 lines Improve the handling of the GaugePanel in the ParameterList ........ r5523 | bricks | 2012-09-19 14:51:02 +0200 (Mi, 19 Sep 2012) | 4 lines Improve the GaugePanel Be locale aware and only load the gauge info if the river name changes. ........ r5524 | bricks | 2012-09-19 15:14:46 +0200 (Mi, 19 Sep 2012) | 5 lines Fix a NullPointerException When iterating over a list it must be checked if the reference to the list is valid. ........ r5525 | bricks | 2012-09-19 15:16:24 +0200 (Mi, 19 Sep 2012) | 2 lines Don't display the GaugePanel if no river is selected ........ r5526 | bricks | 2012-09-19 15:18:36 +0200 (Mi, 19 Sep 2012) | 2 lines Use the wstunit from the river as unit for the Pegelnullpunkt ........ flys-client/tags/2.9.1@5528 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 19 Sep 2012 14:42:48 +0000
parents 69a498896c9c
children
line wrap: on
line source
package de.intevation.flys.client.shared.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class DataList implements Serializable, Cloneable {

    /** The list of Data objects managed by this list. */
    protected List<Data> data;

    /** The name of the state that this list belongs to. */
    protected String state;

    /** The name of a UIProvider that is recommended to render this DataList. */
    protected String uiprovider;

    /** The label that should be used to label data objects. */
    protected String label;

    /** The help text (URL) that should be displayed for this data object. */
    protected String helpText;


    /**
     * The default constructor that creates a new DataList without Data objects
     * and no UIProvider.
     */
    public DataList() {
        data = new ArrayList<Data>();
    }


    /**
     * Constructor.
     *
     * @param state The name of the state that this list belongs to.
     * @param size The initial size of the list.
     */
    public DataList(String state, int size) {
        this.state = state;
        this.data  = new ArrayList<Data>(size);
    }


    /**
     * A constructor that creates a new DataList without Data objects and no
     * UIProvider. Size defines the initial size of the list.
     *
     * @param state The name of the state that this list belongs to.
     * @param size The initial size of the list.
     * @param uiprovider The UIProvider that should be used to render this list.
     */
    public DataList(String state, int size, String uiprovider) {
        this(state, size);
        this.uiprovider = uiprovider;
    }


    /**
     * A constructor that creates a new DataList without Data objects and no
     * UIProvider. Size defines the initial size of the list.
     *
     * @param state The name of the state that this list belongs to.
     * @param size The initial size of the list.
     * @param uiprovider The UIProvider that should be used to render this list.
     * @param label The label.
     */
    public DataList(String state, int size, String uiprovider, String label) {
        this(state, size, uiprovider);
        this.label = label;
    }


    /**
     * A constructor that creates a new DataList without Data objects and no
     * UIProvider. Size defines the initial size of the list.
     *
     * @param state The name of the state that this list belongs to.
     * @param size The initial size of the list.
     * @param uiprovider The UIProvider that should be used to render this list.
     * @param label The label.
     * @param helpText The help text (should be an URL).
     */
    public DataList(
        String state,
        int    size,
        String uiprovider,
        String label,
        String helpText
    ) {
        this(state, size, uiprovider, label);
        this.helpText = helpText;
    }


    /**
     * Adds a new Data object to the list.
     *
     * @param obj The Data object.
     */
    public void add(Data obj) {
        if (obj != null) {
            data.add(obj);
        }
    }


    /**
     * Adds a new Data objects to the list.
     *
     * @param obj The Data object.
     */
    public void add(Data[] obj) {
        if (obj != null) {
            for (Data o: obj) {
                data.add(o);
            }
        }
    }


    /**
     * Returns the Data element at position <i>idx</i>.
     *
     * @param idx The position of an element that should be returned.
     *
     * @return the Data element at position <i>idx</i>.
     */
    public Data get(int idx) {
        if (idx < size()) {
            return data.get(idx);
        }

        return null;
    }


    /**
     * Returns the whole list of Data objects.
     *
     * @return the whole list of Data objects.
     */
    public List<Data> getAll() {
        return data;
    }

    /**
     * Returns the number of Data objects in the list.
     *
     * @param the number of Data objects in the list.
     */
    public int size() {
        return data.size();
    }


    /**
     * Returns the name of the state that this list belongs to.
     *
     * @return the name of the state that this list belongs to.
     */
    public String getState() {
        return state;
    }


    /**
     * Returns the label for this list.
     *
     * @return the label of this list.
     */
    public String getLabel() {
        return label;
    }


    /**
     * Retrieves the name of a UIProvider or null if no one is recommended.
     *
     * @return the name of a UIProvider or null if no one is recommended.
     */
    public String getUIProvider() {
        return uiprovider;
    }


    /**
     * Returns the help text which should be an URL.
     *
     * @return the help text.
     */
    public String getHelpText() {
        return helpText;
    }


    public Object clone() {
        DataList clone = new DataList(
            this.state,
            this.data.size(),
            this.uiprovider,
            this.label,
            this.helpText);
        clone.data = (List<Data>) ((ArrayList<Data>)data).clone();

        return clone;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org