package org.limewire.ui.swing.library.table; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import org.jdesktop.swingx.decorator.SortKey; import org.jdesktop.swingx.decorator.SortOrder; import org.limewire.core.api.library.FileItem; import org.limewire.ui.swing.settings.TablesHandler; import org.limewire.ui.swing.table.AbstractColumnStateFormat; import org.limewire.ui.swing.table.ColumnStateInfo; import org.limewire.ui.swing.util.EventListTableSortFormat; /** * Abstract table format for columns for local file items */ public abstract class AbstractLibraryFormat<T extends FileItem> extends AbstractColumnStateFormat<T> implements EventListTableSortFormat { private final String sortID; private final int sortedColumn; private final boolean isAscending; private final int actionIndex; public AbstractLibraryFormat(int actionIndex, String sortID, int sortedColumn, boolean isAscending, ColumnStateInfo... columnInfo) { super(columnInfo); this.sortID = sortID; this.sortedColumn = sortedColumn; this.isAscending = isAscending; this.actionIndex = actionIndex; } @Override public boolean equals(Object obj) { return getClass().equals(obj.getClass()); } @Override public T setColumnValue(T baseObject, Object editedValue, int column) { return baseObject; } @Override public boolean isEditable(T baseObject, int column) { return column == actionIndex; } public int getActionColumn() { return actionIndex; } @Override public Class getColumnClass(int column) { return String.class; } @Override public List<SortKey> getPreSortColumns() { return Collections.emptyList(); } @Override public boolean getSortOrder() { return isAscending; } @Override public String getSortOrderID() { return sortID; } @Override public int getSortedColumn() { return sortedColumn; } @Override public List<SortKey> getDefaultSortKeys() { return Arrays.asList( new SortKey(((TablesHandler.getSortedOrder(getSortOrderID(), getSortOrder()).getValue() == true) ? SortOrder.ASCENDING : SortOrder.DESCENDING ), TablesHandler.getSortedColumn(getSortOrderID(), getSortedColumn()).getValue())); } @Override public Comparator getColumnComparator(int column) { return getLimeComparator(); } }