package damp.ekeko.snippets.gui; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.text.TextViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.part.EditorPart; import damp.ekeko.snippets.EkekoSnippetsPlugin; import damp.ekeko.snippets.data.TemplateGroup; public class TransformationOverviewEditor extends EditorPart { private TransformationEditor transformationEditor; private TextViewer textViewerSnippet; @Override public void doSave(IProgressMonitor monitor) { } @Override public void doSaveAs() { } @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { setSite(site); //setPartName(input.getName()); } @Override public boolean isDirty() { return false; } @Override public boolean isSaveAsAllowed() { return true; } @Override public void createPartControl(Composite composite) { composite.setLayout(new FillLayout()); textViewerSnippet = new TextViewer(composite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); StyledText styledText = textViewerSnippet.getTextWidget(); //GridData gd_styledText = new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1); //gd_styledText.heightHint = 100; //styledText.setLayoutData(gd_styledText); textViewerSnippet.setEditable(false); styledText.setFont(EkekoSnippetsPlugin.getEditorFont()); styledText.setCaret(null); } @Override public void setFocus() { //Object cljTransformation = transformationEditor.getTransformation(); TemplateGroup lhs = transformationEditor.getSubjectsEditor().getGroup(); TemplatePrettyPrinter pp = new TemplatePrettyPrinter(lhs); pp.prettyPrint(); pp.prettyPrintArrow(); pp.setTemplateGroup(transformationEditor.getRewritesEditor().getGroup()); String transformationString = pp.prettyPrint(); textViewerSnippet.getTextWidget().setText(transformationString); for(StyleRange range : pp.getStyleRanges()) textViewerSnippet.getTextWidget().setStyleRange(range); textViewerSnippet.getControl().setFocus(); } public void setTransformationEditor(TransformationEditor transformationEditor) { this.transformationEditor = transformationEditor; } }