/*
* SK's Minecraft Launcher
* Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors
* Please see LICENSE.txt for license information.
*/
package com.skcraft.launcher.creator.model.swing;
import com.skcraft.launcher.builder.BuilderConfig;
import com.skcraft.launcher.creator.Creator;
import com.skcraft.launcher.creator.model.creator.Pack;
import com.skcraft.launcher.swing.SwingHelper;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.util.List;
public class PackTableModel extends AbstractTableModel {
private final Icon instanceIcon;
private final Icon warningIcon;
private final List<Pack> packs;
public PackTableModel(List<Pack> packs) {
this.packs = packs;
instanceIcon = SwingHelper.createIcon(Creator.class, "pack_icon.png");
warningIcon = SwingHelper.createIcon(Creator.class, "warning_icon.png");
}
@Override
public String getColumnName(int columnIndex) {
switch (columnIndex) {
case 0:
return "";
case 1:
return "Name";
case 2:
return "Title";
case 3:
return "Game Version";
case 4:
return "Location";
default:
return null;
}
}
@Override
public Class<?> getColumnClass(int columnIndex) {
switch (columnIndex) {
case 0:
return Icon.class;
default:
return String.class;
}
}
@Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public int getRowCount() {
return packs.size();
}
@Override
public int getColumnCount() {
return 5;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Pack pack = packs.get(rowIndex);
BuilderConfig config = pack.getCachedConfig();
switch (columnIndex) {
case 0:
return config != null ? instanceIcon : warningIcon;
case 1:
return config != null ? config.getName() : "<Moved or Deleted>";
case 2:
return config != null ? config.getTitle() : "?";
case 3:
return config != null ? config.getGameVersion() : "?";
case 4:
return pack.getLocation();
default:
return null;
}
}
}