Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

java / lab7 (1) / lab6 / client / src / table / PeopleTableModel

.java
Скачиваний:
82
Добавлен:
17.04.2018
Размер:
2.74 Кб
Скачать
package table;

import common.People;
import javax.swing.table.DefaultTableModel;
import java.util.ArrayList;
import java.util.List;


public class PeopleTableModel extends DefaultTableModel {
private static final int COLUMN_COUNT = 3;
private List<People> people;
private String[] columnNames;

public PeopleTableModel(ArrayList<People> data, String[] columnNames) {
this.columnNames = columnNames;
this.people = data;
}

public void addMan(People man) {
people.add(man);
fireTableDataChanged();
}

public void editMan(int rowIndex, People man) {
people.set(rowIndex, man);
fireTableDataChanged();
}

public void removeMan(People man) {
people.remove(man);
fireTableDataChanged();
}

public void clearMan() {
if(people != null)
people.clear();
fireTableDataChanged();
}

public void repaint() {
fireTableDataChanged();
}

public List<People> getPeople() {
return new ArrayList<>(people);
}

@Override
public int getRowCount() {
return people == null ? 0 : people.size();
}

@Override
public int getColumnCount() {
return COLUMN_COUNT;
}

@Override
public boolean isCellEditable(int row, int column) {
return false;
}

@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
People man = people.get(rowIndex);
switch (columnIndex) {
case 0:
man.setId((Long) aValue);
break;
case 1:
man.setName(String.valueOf(aValue));
break;
default:
}
fireTableCellUpdated(rowIndex, columnIndex);
}

@Override
public String getColumnName(int column) {
return columnNames[column];
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
String outer;
People man = people.get(rowIndex);
switch (columnIndex) {
case 0:
outer = String.valueOf(man.getId());
break;
case 1:
outer = man.getName();
break;
default:
outer = man.getAdditional();
}
return outer;
}

@Override
public Class<?> getColumnClass(int columnIndex) {
switch (columnIndex) {
case 0:
return Long.class;
case 1:
return String.class;
default:
return String.class;
}
}
}