private GraphModel graphModel = null;
public PreviewUIControllerImpl() {
previewController = Lookup.getDefault().lookup(PreviewController.class);
listeners = new ArrayList<PropertyChangeListener>();
ProjectController pc = Lookup.getDefault().lookup(ProjectController.class);
graphController = Lookup.getDefault().lookup(GraphController.class);
pc.addWorkspaceListener(new WorkspaceListener() {
@Override
public void initialize(Workspace workspace) {
workspace.add(new PreviewUIModelImpl());
enableRefresh();
}
@Override
public void select(Workspace workspace) {
graphModel = graphController.getGraphModel(workspace);
model = workspace.getLookup().lookup(PreviewUIModelImpl.class);
if (model == null) {
model = new PreviewUIModelImpl();
workspace.add(model);
}
Float visibilityRatio = previewController.getModel().getProperties().getFloatValue(PreviewProperty.VISIBILITY_RATIO);
if (visibilityRatio != null) {
((PreviewUIModelImpl) model).setVisibilityRatio(visibilityRatio);
}
fireEvent(SELECT, model);
}
@Override
public void unselect(Workspace workspace) {
if (graphModel != null) {
graphModel = null;
}
fireEvent(UNSELECT, model);
}
@Override
public void close(Workspace workspace) {
}
@Override
public void disable() {
if (graphModel != null) {
graphModel = null;
}
fireEvent(SELECT, null);
model = null;
}
});
if (pc.getCurrentWorkspace() != null) {
model = pc.getCurrentWorkspace().getLookup().lookup(PreviewUIModelImpl.class);
if (model == null) {
model = new PreviewUIModelImpl();
pc.getCurrentWorkspace().add(model);
}
Float visibilityRatio = previewController.getModel().getProperties().getFloatValue(PreviewProperty.VISIBILITY_RATIO);
if (visibilityRatio != null) {
((PreviewUIModelImpl) model).setVisibilityRatio(visibilityRatio);
}
graphModel = graphController.getGraphModel(pc.getCurrentWorkspace());
}
//Register editors
//Overriding default Preview API basic editors that don't support CustomEditor
PropertyEditorManager.registerEditor(EdgeColor.class, EdgeColorPropertyEditor.class);