/* * EquipmentTableModel.java * Copyright 2011 Connor Petty <cpmeister@users.sourceforge.net> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Created on Jan 25, 2011, 1:52:17 PM */ package pcgen.gui2.tabs.equip; import pcgen.facade.core.CharacterFacade; import pcgen.facade.core.EquipmentFacade; import pcgen.facade.core.EquipmentListFacade; import pcgen.facade.core.EquipmentSetFacade; import pcgen.facade.core.EquipmentListFacade.EquipmentListEvent; import pcgen.facade.core.EquipmentListFacade.EquipmentListListener; import pcgen.facade.util.event.ListEvent; import pcgen.gui2.filter.FilteredListFacadeTableModel; /** * The model for the Equip View table. It shows a flat list of the equipment which * is either equipped, unequipped or of all gear owned. Each instance relates to * one type of view. * * <br> * * @author Connor Petty <cpmeister@users.sourceforge.net> */ public class EquipmentTableModel extends FilteredListFacadeTableModel<EquipmentFacade> implements EquipmentListListener { protected EquipmentListFacade equipmentList = null; protected EquipmentSetFacade equipmentSet = null; public EquipmentTableModel(CharacterFacade character) { super(character); } protected void setEquipmentList(EquipmentListFacade equipmentList) { EquipmentListFacade oldList = this.equipmentList; if (oldList != null) { oldList.removeEquipmentListListener(this); } this.equipmentList = equipmentList; if (equipmentList != null) { equipmentList.addEquipmentListListener(this); } super.setDelegate(equipmentList); } protected void setEquipmentSet(EquipmentSetFacade equipmentSet) { this.equipmentSet = equipmentSet; } @Override public int getColumnCount() { return 5; } @Override public Class<?> getColumnClass(int columnIndex) { switch (columnIndex) { case 0: return Object.class; case 1: case 2: return String.class; case 3: return Integer.class; case 4: return Float.class; case 5: return String.class; default: return Object.class; } } @Override public void quantityChanged(EquipmentListEvent e) { for (int i = 0; i < sortedList.getSize(); i++) { if (e.getEquipment() == sortedList.getElementAt(i)) { fireTableCellUpdated(i, 3); return; } } } public EquipmentFacade getValue(int index) { return sortedList.getElementAt(index); } @Override protected Object getValueAt(EquipmentFacade equipment, int column) { switch (column) { case 0: return equipment; case 1: return equipment.getTypes()[0]; case 2: return equipmentSet.getLocation(equipment); case 3: return equipmentList.getQuantity(equipment); case 4: return character.getInfoFactory().getWeight(equipment); case 5: return character.getInfoFactory().getDescription(equipment); default: return null; } } @Override public void elementModified(ListEvent<EquipmentFacade> e) { } }