package org.eclipse.iee.pad.graph.ui;
import org.eclipse.iee.editor.core.bindings.DefaultObservableValue;
import org.eclipse.iee.editor.core.pad.IPadFactory;
import org.eclipse.iee.editor.core.pad.IPadFactoryContext;
import org.eclipse.iee.pad.formula.ui.utils.UIFormulaRenderer;
import org.eclipse.iee.pad.graph.GraphPart;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.annotations.ReferencePolicy;
@Component
public class GraphPadFactory implements IPadFactory<GraphPart> {
private UIFormulaRenderer formulaRenderer;
@Override
public GraphPad create(GraphPart documentPart, IPadFactoryContext factoryContext) {
GraphPad graphPad = new GraphPad(formulaRenderer);
DefaultObservableValue<GraphPart> model = new DefaultObservableValue<GraphPart>();
model.setValue(documentPart);
graphPad.bindDocumentPart(model);
return graphPad;
}
@Reference(unbind = "unbindFormulaRenderer", policy = ReferencePolicy.DYNAMIC)
public void bindFormulaRenderer(UIFormulaRenderer renderer) {
formulaRenderer = renderer;
}
public void unbindFormulaRenderer(UIFormulaRenderer renderer) {
formulaRenderer = null;
}
}