package open.dolphin.impl.schema;
import java.beans.PropertyChangeListener;
import open.dolphin.client.SchemaEditor;
import open.dolphin.infomodel.SchemaModel;
import open.dolphin.project.Project;
/**
*
* @author kazushi
*/
public class SchemaEditorProxy implements SchemaEditor {
private SchemaEditor editor;;
@Override
public void setEditable(boolean b) {
getEditor().setEditable(b);
}
@Override
public void setSchema(SchemaModel model) {
getEditor().setSchema(model);
}
@Override
public void start() {
getEditor().start();
}
@Override
public void addPropertyChangeListener(PropertyChangeListener l) {
getEditor().addPropertyChangeListener(l);
}
@Override
public void removePropertyChangeListener(PropertyChangeListener l) {
getEditor().removePropertyChangeListener(l);
}
// Factory
private SchemaEditor getEditor() {
if (editor==null) {
// Projectに指定されているブラウザを生成する
String name = Project.getString("schema.editor.name");
if (name==null || name.equals("cool")) {
editor = (SchemaEditor)create("open.dolphin.impl.scheam.SchemaEditorImpl"); // Scheam
} else {
editor = (SchemaEditor)create("open.dolphin.impl.schema.SchemaEditorImpl"); // Schema
}
}
return editor;
}
private Object create(String clsName) {
try {
return Class.forName(clsName).newInstance();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException ex) {
ex.printStackTrace(System.err);
}
return null;
}
}