com.opendoorlogistics.studio.components.map.LayeredDrawables.java Source code

Java tutorial

Introduction

Here is the source code for com.opendoorlogistics.studio.components.map.LayeredDrawables.java

Source

/*******************************************************************************
 * Copyright (c) 2014 Open Door Logistics (www.opendoorlogistics.com)
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Lesser Public License 3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/lgpl.html
 * 
 ******************************************************************************/
package com.opendoorlogistics.studio.components.map;

import java.util.ArrayList;
import java.util.Iterator;

import org.apache.commons.collections.iterators.IteratorChain;

import com.opendoorlogistics.codefromweb.IteratorChainApacheCollections440;
import com.opendoorlogistics.core.gis.map.data.DrawableObject;

public class LayeredDrawables implements Iterable<DrawableObject> {
    private final Iterable<? extends DrawableObject> inactiveBackground;
    private final Iterable<? extends DrawableObject> active;
    private final Iterable<? extends DrawableObject> inactiveForeground;

    public LayeredDrawables(Iterable<? extends DrawableObject> inactiveBackground,
            Iterable<? extends DrawableObject> active, Iterable<? extends DrawableObject> inactiveForeground) {
        this.inactiveBackground = inactiveBackground;
        this.active = active;
        this.inactiveForeground = inactiveForeground;
    }

    public Iterable<? extends DrawableObject> getInactiveBackground() {
        return inactiveBackground;
    }

    public Iterable<? extends DrawableObject> getActive() {
        return active;
    }

    public Iterable<? extends DrawableObject> getInactiveForeground() {
        return inactiveForeground;
    }

    @Override
    public Iterator<DrawableObject> iterator() {
        ArrayList<Iterator<? extends DrawableObject>> its = new ArrayList<>();
        if (inactiveBackground != null) {
            its.add(inactiveBackground.iterator());
        }
        if (active != null) {
            its.add(active.iterator());
        }
        if (inactiveForeground != null) {
            its.add(inactiveForeground.iterator());
        }

        return new IteratorChainApacheCollections440<DrawableObject>(its);

    }

}