001package jmri.jmrit.logixng;
002
003import java.beans.PropertyChangeEvent;
004
005import jmri.NamedBean;
006
007/**
008 * Represent a named table.
009 * A named table is a table that is a NamedBean.
010 *
011 * @author Daniel Bergqvist Copyright (C) 2019
012 */
013public interface NamedTable extends Table, NamedBean {
014
015    static class NamedTablePropertyChangeEvent extends PropertyChangeEvent {
016
017        private final int _row;
018        private final int _column;
019
020        public NamedTablePropertyChangeEvent(
021                Object source, String propertyName,
022                Object oldValue, Object newValue,
023                int row, int column) {
024            super(source, propertyName, oldValue, newValue);
025            this._row = row;
026            this._column = column;
027        }
028
029        public int getRow() { return _row; }
030        public int getColumn() { return _column; }
031    }
032
033    /**
034     * This property tells that a cell in a LogixNG Table has been changed.
035     * The property change event is of the type NamedTablePropertyChangeEvent.
036     */
037    public static final String PROPERTY_CELL_CHANGED = "CELL_CHANGED";
038
039}