public void setToKey(@Nullable StringTableKey key) {
getChildren().clear();
links.clear();
setDisable(key == null);
//force an update to null so that if the Language is the same as the previous in this observer, the listeners will get notified below at comment marked with: ****
chosenLanguageObserver.updateValue(null);
if (key == null) {
return;
}
key.getLanguageTokenMap().addListener(new MapChangeListener<Language, String>() {
@Override
public void onChanged(Change<? extends Language, ? extends String> change) {
if (change.wasAdded()) {
addLanguage(change.getKey());
if (links.size() == 1) {
chosenLanguageObserver.updateValue(null);
chosenLanguageObserver.updateValue(change.getKey());
}
} else if (change.wasRemoved()) {
removeLanguage(change.getKey());
} else {
throw new IllegalStateException("unexpected change type:" + change);
}
}
});
for (Map.Entry<Language, String> token : key.getLanguageTokenMap().entrySet()) {
addLanguage(token.getKey());
}
chosenLanguageObserver.updateValue(defaultLanguage); //**** (see above comment with valueObserver.updateValue(null))
}
LanguageSelectionPane.java 文件源码
java
阅读 22
收藏 0
点赞 0
评论 0
项目:arma-dialog-creator
作者:
评论列表
文章目录