* @param treeNode
*/
private void refreshConfig(IConfig oldConfigModel, IDirectory loadRootDirectory) {
Integer configId = oldConfigModel.getId();
if (configId != null) {
IConfig newConfigImpl = searchConfig(configId, loadRootDirectory);
if (newConfigImpl == null) {
// The config has been removed.
if (oldConfigModel.isModified()) {
if (view.askRefreshConfigDeleted(oldConfigModel.getName())) {
oldConfigModel.getDirectory().getConfigList().remove(oldConfigModel);
if (oldConfigModel.equals(currentConfig)) {
currentConfig = null;
applicationController.setConfig(null);
}
}
else {
// The config no longer exist on the database, so it no longer has an id.
oldConfigModel.setId(null);
}
}
else {
oldConfigModel.getDirectory().getConfigList().remove(oldConfigModel);
if (oldConfigModel.equals(currentConfig)) {
currentConfig = null;
applicationController.setConfig(null);
}
}
}
else {
if (!newConfigImpl.getTimestamp().equals(oldConfigModel.getTimestamp())) {
if (oldConfigModel.isModified()) {
if (view.askRefreshConfigModified(oldConfigModel.getName())) {
doRefreshConfig(oldConfigModel, newConfigImpl);
}
else {
oldConfigModel.setTimestamp(newConfigImpl.getTimestamp());
}
}
else {
doRefreshConfig(oldConfigModel, newConfigImpl);
}