package org.eclipse.iee.pad.fem3d.ui; import java.util.Map; import org.eclipse.iee.editor.core.bindings.TextViewerSupport; import org.eclipse.iee.editor.core.pad.CompositePad; import org.eclipse.iee.pad.fem3d.Fem3DPart; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.TextViewer; import org.eclipse.jface.text.TextViewerUndoManager; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; public class Fem3DPad extends CompositePad<Fem3DPart> { private static final long serialVersionUID = 1L; private String modelVariable; private Composite fParent; private Fem3DComposite fComposite; private TextViewer fViewer; public Fem3DPad() { } private Document fDocument; @Override public void createPartControl(final Composite parent) { fParent = parent; parent.setLayout(new FillLayout()); fComposite = new Fem3DComposite(parent, SWT.NONE); fViewer = fComposite.getTextBox(); fDocument = new Document(); fDocument.set(modelVariable); fViewer.setDocument(fDocument); TextViewerUndoManager defaultUndoManager = new TextViewerUndoManager(25); fViewer.setUndoManager(defaultUndoManager); defaultUndoManager.connect(fViewer); new TextViewerSupport(fViewer); if (fDocument.get() != "") { toggleFormulaImage(); } else { toggleInputText(); } setListeners(); } public void setListeners() { } public void save() { processInput(); } public void toggleInputText() { fParent.pack(); fViewer.getControl().forceFocus(); } public void toggleFormulaImage() { fParent.pack(); } public void processInput() { String var = fDocument.get(); modelVariable = var; getDocumentPart().setModelVariable(modelVariable); getContainer().updateDocument(); } @Override public void activate() { toggleInputText(); } @Override public void deactivate() { processInput(); toggleFormulaImage(); } @Override public void updateData(Map<String, String> params, String value) { } @Override public String getType() { return "Threedview"; } @Override public String getTex() { return ""; } @Override protected void onValueChanged(Fem3DPart oldValue, Fem3DPart newValue) { modelVariable = newValue.getModelVariable(); } }