package database;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import gui.ItemListEditUI;
public class ItemListDatabaseProperty extends DatabaseProperty {
private List<String> _itemNames;
public ItemListDatabaseProperty(String name)
{
_name = name;
_type = "Item List";
_itemNames = new ArrayList<String>();
_editUI = new ItemListEditUI();
}
public void addItemName(String name) {
_itemNames.add(name);
}
@Override
public void update(DatabaseModel model)
{
((ItemListEditUI)_editUI).setItemSelect(model.getItemList());
}
@Override
public Object getTableElement() {
return this;
}
@Override
public void setTableElement(Object value) {
}
@Override
public boolean isTableElementEditable() {
return false;
}
@Override
public DatabaseProperty initializeInstance() {
return new ItemListDatabaseProperty(_name);
}
@Override
public void resolveNamesToItems(Map<String, DatabaseItem> itemMap)
{
DatabaseItem[] items = new DatabaseItem[_itemNames.size()];
for (int i = 0 ; i < items.length; i++) {
items[i] = itemMap.get(_itemNames.get(i));
}
((ItemListEditUI)_editUI).setItemList(items);
}
@Override
public String toXML() {
String xml = "<ItemListProperty name=\"" + _name + "\">\n";
DatabaseItem[] items = ((ItemListEditUI)_editUI).getItemList();
for (DatabaseItem item : items) {
xml += "<ItemReference name=\"" + item.getName() + "\"/>\n";
}
xml += "</ItemListProperty>";
return xml;
}
}