/*
* 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.google.common.base.Joiner;
import com.skcraft.launcher.creator.model.creator.ManifestEntry;
import javax.swing.table.AbstractTableModel;
import java.util.List;
public class ManifestEntryTableModel extends AbstractTableModel {
private final Joiner GAME_KEY_JOINER = Joiner.on(", ");
private final List<ManifestEntry> entries;
public ManifestEntryTableModel(List<ManifestEntry> entries) {
this.entries = entries;
}
@Override
public String getColumnName(int columnIndex) {
switch (columnIndex) {
case 0:
return "";
case 1:
return "Modpack";
case 2:
return "Version";
case 3:
return "Priority";
case 4:
return "Location";
case 5:
return "Game Keys";
default:
return null;
}
}
@Override
public Class<?> getColumnClass(int columnIndex) {
switch (columnIndex) {
case 0:
return Boolean.class;
case 1:
return String.class;
case 2:
return String.class;
case 3:
return Integer.class;
case 4:
return String.class;
case 5:
return String.class;
default:
return null;
}
}
@Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
entries.get(rowIndex).setSelected((Boolean) value);
break;
default:
break;
}
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return true;
default:
return false;
}
}
@Override
public int getRowCount() {
return entries.size();
}
@Override
public int getColumnCount() {
return 6;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
ManifestEntry entry = entries.get(rowIndex);
switch (columnIndex) {
case 0:
return entry.isSelected();
case 1:
String title = entry.getManifestInfo().getTitle();
if (title != null) {
return title;
} else {
return entry.getManifestInfo().getName();
}
case 2:
return entry.getManifestInfo().getVersion();
case 3:
return entry.getManifestInfo().getPriority();
case 4:
return entry.getManifestInfo().getLocation();
case 5:
List<String> gameKeys = entry.getGameKeys();
return gameKeys != null ? GAME_KEY_JOINER.join(gameKeys) : "";
default:
return null;
}
}
}