package com.digiarea.closure.preferences.model.bind;
import javafx.util.Callback;
import com.digiarea.closure.preferences.model.ClosureLibrary;
import com.digiarea.closure.preferences.model.Editor;
import com.digiarea.closure.preferences.model.Editors;
import com.digiarea.closure.preferences.model.Preferences;
import com.digiarea.closure.preferences.model.Variable;
public class ModelFacade {
protected Preferences prefs;
protected Callback<Class<?>, Object> factory;
protected PreferencesSerializer serializer = new PreferencesSerializer();
public ModelFacade() {
}
public void setPrefs(Preferences prefs) {
this.prefs = prefs;
}
public void setFactory(Callback<Class<?>, Object> factory) {
this.factory = factory;
}
public Editors getEditors() {
return prefs.getEditors();
}
public void updateEditorPath(Editor editor, String absolutePath) {
editor.setPath(absolutePath);
}
public void removeVariable(Variable variable) {
prefs.getVariables().removeVariables(variable);
}
public void removeClosureLibrary(ClosureLibrary library) {
prefs.getClosureLibraries().removeLibraries(library);
}
public void saveEditors() {
serializer.write(prefs.getEditors());
}
public void saveVariables() {
serializer.write(prefs.getVariables());
}
public void addVariable(String name, String path) {
prefs.getVariables().addVariables(new Variable(name, path));
}
public Preferences getPrefs() {
return prefs;
}
public void saveClosureLibraries() {
serializer.write(prefs.getClosureLibraries());
}
public void addClosureLibrary(String name, String path) {
prefs.getClosureLibraries()
.addLibraries(new ClosureLibrary(name, path));
}
}