001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.plugins.eventbus.gui.dialogs;
003
004import java.util.EventObject;
005import java.util.Objects;
006
007import org.openstreetmap.josm.gui.layer.Layer;
008
009/**
010 * Event fired when a layer becomes visible.
011 */
012public class LayerVisibleEvent extends EventObject {
013
014    private static final long serialVersionUID = 1L;
015
016    private final int index;
017    private final Layer layer;
018
019    /**
020     * Constructs a new {@code LayerVisibleEvent}.
021     * @param source object on which the Event initially occurred
022     * @param index layer index
023     * @param layer layer
024     */
025    public LayerVisibleEvent(Object source, int index, Layer layer) {
026        super(source);
027        this.index = index;
028        this.layer = Objects.requireNonNull(layer);
029    }
030
031    /**
032     * Returns the layer index.
033     * @return the layer index
034     */
035    public final int getIndex() {
036        return index;
037    }
038
039    /**
040     * Returns the layer.
041     * @return the layer
042     */
043    public final Layer getLayer() {
044        return layer;
045    }
046}