1
0
mirror of https://github.com/mitb-archive/filebot synced 2025-03-09 22:09:47 -04:00

* fix that caused "All Languages" to be restored as "undefined"

This commit is contained in:
Reinhard Pointner 2012-07-13 12:51:51 +00:00
parent d496a97ac8
commit 7fa0d86a7d

View File

@ -24,13 +24,13 @@ public class LanguageComboBoxModel extends AbstractListModel implements ComboBox
private List<Language> values = availableLanguages(); private List<Language> values = availableLanguages();
public LanguageComboBoxModel(boolean requireSpecificLanguage, Language initialSelection) { public LanguageComboBoxModel(boolean requireSpecificLanguage, Language initialSelection) {
this.requireSpecificLanguage = requireSpecificLanguage; this.requireSpecificLanguage = requireSpecificLanguage;
this.selection = initialSelection; this.selection = initialSelection;
} }
@Override @Override
public Language getElementAt(int index) { public Language getElementAt(int index) {
// "All Languages" // "All Languages"
@ -52,78 +52,79 @@ public class LanguageComboBoxModel extends AbstractListModel implements ComboBox
return values.get(index); return values.get(index);
} }
@Override @Override
public int getSize() { public int getSize() {
// "All Languages" : favorites[] : values[] // "All Languages" : favorites[] : values[]
return (requireSpecificLanguage ? 0 : 1) + favorites.size() + values.size(); return (requireSpecificLanguage ? 0 : 1) + favorites.size() + values.size();
} }
public List<Language> favorites() { public List<Language> favorites() {
return favorites; return favorites;
} }
@Override @Override
public Language getSelectedItem() { public Language getSelectedItem() {
return selection; return selection;
} }
@Override @Override
public void setSelectedItem(Object value) { public void setSelectedItem(Object value) {
if (value instanceof Language) { if (value instanceof Language) {
selection = (Language) value; Language language = (Language) value;
selection = ALL_LANGUAGES.getCode().equals(language.getCode()) ? ALL_LANGUAGES : language;
} }
} }
protected int convertFavoriteIndexToModel(int favoriteIndex) { protected int convertFavoriteIndexToModel(int favoriteIndex) {
return (requireSpecificLanguage ? 0 : 1) + favoriteIndex; return (requireSpecificLanguage ? 0 : 1) + favoriteIndex;
} }
protected void fireFavoritesAdded(int from, int to) { protected void fireFavoritesAdded(int from, int to) {
fireIntervalAdded(this, convertFavoriteIndexToModel(from), convertFavoriteIndexToModel(to)); fireIntervalAdded(this, convertFavoriteIndexToModel(from), convertFavoriteIndexToModel(to));
} }
protected void fireFavoritesRemoved(int from, int to) { protected void fireFavoritesRemoved(int from, int to) {
fireIntervalRemoved(this, convertFavoriteIndexToModel(from), convertFavoriteIndexToModel(to)); fireIntervalRemoved(this, convertFavoriteIndexToModel(from), convertFavoriteIndexToModel(to));
} }
private class Favorites extends AbstractList<Language> implements Set<Language> { private class Favorites extends AbstractList<Language> implements Set<Language> {
private final List<Language> data; private final List<Language> data;
private final int capacity; private final int capacity;
public Favorites(int capacity) { public Favorites(int capacity) {
this.data = new ArrayList<Language>(capacity); this.data = new ArrayList<Language>(capacity);
this.capacity = capacity; this.capacity = capacity;
} }
@Override @Override
public Language get(int index) { public Language get(int index) {
return data.get(index); return data.get(index);
} }
public boolean add(Language element) { public boolean add(Language element) {
// add first // add first
return addIfAbsent(0, element); return addIfAbsent(0, element);
} }
public void add(int index, Language element) { public void add(int index, Language element) {
addIfAbsent(index, element); addIfAbsent(index, element);
} }
public boolean addIfAbsent(int index, Language element) { public boolean addIfAbsent(int index, Language element) {
// 1. ignore null values // 1. ignore null values
// 2. ignore ALL_LANGUAGES // 2. ignore ALL_LANGUAGES
@ -149,7 +150,7 @@ public class LanguageComboBoxModel extends AbstractListModel implements ComboBox
return true; return true;
} }
@Override @Override
public boolean contains(Object obj) { public boolean contains(Object obj) {
// check via language code, because data consists of clones // check via language code, because data consists of clones
@ -165,7 +166,7 @@ public class LanguageComboBoxModel extends AbstractListModel implements ComboBox
return false; return false;
} }
@Override @Override
public Language remove(int index) { public Language remove(int index) {
Language old = data.remove(index); Language old = data.remove(index);
@ -176,7 +177,7 @@ public class LanguageComboBoxModel extends AbstractListModel implements ComboBox
return old; return old;
} }
@Override @Override
public int size() { public int size() {
return data.size(); return data.size();