Package org.open2jam.gui

Source Code of org.open2jam.gui.ChartTableModel

package org.open2jam.gui;

import java.util.ArrayList;
import java.util.List;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
import org.open2jam.parsers.Chart;
import org.open2jam.parsers.ChartList;

/**
*
* @author fox
*/
public class ChartTableModel implements TableModel
{
    private final List<Chart> items;
    private final String[] col_names = new String[] { "Level", "Notes", "Keys" };
    private ChartList chartlist;
   
    private final List<TableModelListener> listeners;

    public ChartTableModel()
    {
        listeners = new ArrayList<TableModelListener>();
        items = new ArrayList<Chart>();
    }
   
    public void clear()
    {
        items.clear();
    }

    public void addRow(Chart h)
    {
        items.add(h);
        fireListeners();
    }

    public void setChartList(ChartList c)
    {
        this.chartlist = c;
        for(Chart h : this.chartlist)addRow(h);
        fireListeners();
    }

    public ChartList getChartList(){
        return chartlist;
    }

    public Chart getRow(int row)
    {
        return items.get(row);
    }

    public int getRowCount() {
        return items.size();
    }

    public int getColumnCount() {
       return col_names.length;
    }

    public String getColumnName(int columnIndex) {
        return col_names[columnIndex];
    }

    public Class<?> getColumnClass(int columnIndex) {
       switch(columnIndex)
        {
            case 0:return Integer.class;
            case 1:return Integer.class;
            case 2:return Integer.class;
        }
       return Object.class;
    }

    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
        Chart c = items.get(rowIndex);
        switch(columnIndex)
        {
            case 0:return c.getLevel();
            case 1:return c.getNoteCount();
            case 2:return c.getKeys();
        }
        return null;
    }

    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
        throw new UnsupportedOperationException("Can't do that cowboy");
    }

    public void addTableModelListener(TableModelListener l) {
        listeners.add(l);
    }

    public void removeTableModelListener(TableModelListener l) {
       listeners.remove(l);
    }

    private void fireListeners() {
        TableModelEvent e = new TableModelEvent(this);
        fireListeners(e);
    }

    private void fireListeners(TableModelEvent e) {
        for(TableModelListener l : listeners)l.tableChanged(e);
    }
}
TOP

Related Classes of org.open2jam.gui.ChartTableModel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.