package org.eclipse.iee.pad.formula.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.SymbolicPart; import org.eclipse.iee.pad.formula.ui.utils.UIFormulaRenderer; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import org.osgi.service.component.annotations.ReferencePolicy; /** * {@link IPadFactory} implementation. Creates instance of formula pad. */ @Component public class SymbolicPadFactory implements IPadFactory<SymbolicPart> { private UIFormulaRenderer formulaRenderer; @Override public SymbolicPad create(SymbolicPart part, IPadFactoryContext factoryContext) { SymbolicPad formulaPad = new SymbolicPad(formulaRenderer, factoryContext.getRenderContext()); formulaPad.bindDocumentPart(DefaultObservableValue.fromValue(part)); return formulaPad; } @Reference(unbind = "unbindFormulaRenderer", policy = ReferencePolicy.DYNAMIC) public void bindFormulaRenderer(UIFormulaRenderer renderer) { formulaRenderer = renderer; } public void unbindFormulaRenderer(UIFormulaRenderer renderer) { formulaRenderer = null; } }