20 package net.sf.gridarta.gui.dialog.findarchetypes;
22 import java.util.ArrayList;
23 import java.util.Arrays;
24 import java.util.Comparator;
25 import java.util.List;
26 import javax.swing.table.AbstractTableModel;
32 import net.
sf.japi.swing.action.ActionBuilder;
33 import net.
sf.japi.swing.action.ActionBuilderFactory;
34 import org.jetbrains.annotations.NotNull;
35 import org.jetbrains.annotations.Nullable;
59 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
93 private final Comparator<Integer>
comparator =
new Comparator<Integer>() {
96 public int compare(
final Integer o1,
final Integer o2) {
101 if (cmpBestName != 0) {
106 if (cmpArchetypeName != 0) {
107 return cmpArchetypeName;
135 public void add(@NotNull
final R archetype) {
145 public R
get(
final int index) {
161 public Object
getValueAt(
final int rowIndex,
final int columnIndex) {
163 switch (columnIndex) {
177 throw new IllegalArgumentException(
"invalid column index: " + columnIndex);
185 }
catch (
final ArrayIndexOutOfBoundsException ignored) {
186 return super.getColumnName(column);
195 for (
int i = 0; i <
sorting.length; i++) {
210 throw new IllegalStateException(
"archetypes are not sorted");
213 fireTableDataChanged();
223 if (archetype !=
null) {
224 final int archetypeIndex =
archetypes.indexOf(archetype);
225 if (archetypeIndex != -1) {
226 for (
final Integer index :
sorting) {
227 if (archetypeIndex ==
sorting[index]) {