Java tutorial
/******************************************************************************* * Copyright (c) 2008 Scott Stanchfield, based on ANTLR-Eclipse plugin * by Torsten Juergeleit. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors * Torsten Juergeleit - original ANTLR Eclipse plugin * Scott Stanchfield - modifications for ANTXR *******************************************************************************/ package com.javadude.antxr.eclipse.ui.editor; import java.io.Reader; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IDocumentPartitioner; import org.eclipse.jface.text.rules.FastPartitioner; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import com.javadude.antxr.eclipse.core.parser.AntxrOverviewParser; import com.javadude.antxr.eclipse.ui.editor.text.PartitionScanner; /** * Read-only text editor displaying ANTXR grammar overview (only terminals and * non-terminals; no actions, comments and type information). */ public class AntxrOverview extends SourceViewer { /** * Create an instance of AntxrOverview. * @param aParent */ public AntxrOverview(Composite aParent) { super(aParent, null, SWT.V_SCROLL | SWT.H_SCROLL); EditorEnvironment.connect(); // Configure source viewer configure(new AntxrConfiguration(null)); getTextWidget().setEditable(false); getTextWidget().setFont(JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT)); // Create document with attached partitioner IDocument document = new Document(); IDocumentPartitioner partitioner = new FastPartitioner(new PartitionScanner(), PartitionScanner.PARTITION_TYPES); partitioner.connect(document); document.setDocumentPartitioner(partitioner); // Attach document to source viewer AFTER configuring source viewer // Otherwise syntax highlighting will not work setDocument(document); } protected void handleDispose() { EditorEnvironment.disconnect(); } /** * @return is save on close needed? */ public boolean isSaveOnCloseNeeded() { return false; } /** * Parses given reader for an ANTXR grammar overview and sets this source * viewer's document to the parsed text. * @param aReader */ public void show(Reader aReader) { getDocument().set(new AntxrOverviewParser().parse(aReader)); } }