/** * Copyright 2004-2016 Riccardo Solmi. All rights reserved. * This file is part of the Whole Platform. * * The Whole Platform is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * The Whole Platform is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with the Whole Platform. If not, see <http://www.gnu.org/licenses/>. */ package org.whole.lang.grammars.ui.figures; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.Label; import org.eclipse.draw2d.MarginBorder; import org.eclipse.draw2d.PositionConstants; import org.whole.lang.ui.figures.ContentPaneFigure; import org.whole.lang.ui.figures.HeadersTableFigure; import org.whole.lang.ui.figures.TableFigure; import org.whole.lang.ui.figures.TableRowFigure; import org.whole.lang.ui.layout.ColumnLayout; /** * @author Riccardo Solmi */ public class GrammarFigure extends ContentPaneFigure { public GrammarFigure() { initContentPanes(12); setLayoutManager(new ColumnLayout().withSpacing(10).withMargin(16, 16, 10, 16)); IFigure headersFigure = new HeadersTableFigure(); TableRowFigure uriRowFigure = new TableRowFigure(); uriRowFigure.addContentLighter("URI"); uriRowFigure.add(createContentPane(0)); headersFigure.add(uriRowFigure); TableRowFigure namespaceRowFigure = new TableRowFigure(); namespaceRowFigure.addContentLighter("Namespace"); namespaceRowFigure.add(createContentPane(1)); headersFigure.add(namespaceRowFigure); TableRowFigure grammarRowFigure = new TableRowFigure(); grammarRowFigure.addContentLighter("Grammar Name"); grammarRowFigure.add(createContentPane(2)); headersFigure.add(grammarRowFigure); TableRowFigure versionRowFigure = new TableRowFigure(); versionRowFigure.addContentLighter("Version"); versionRowFigure.add(createContentPane(3)); headersFigure.add(versionRowFigure); TableRowFigure targetLanguageRowFigure = new TableRowFigure(); targetLanguageRowFigure.addContentLighter("Target Language"); targetLanguageRowFigure.add(createContentPane(4)); headersFigure.add(targetLanguageRowFigure); TableRowFigure startSymbolRowFigure = new TableRowFigure(); startSymbolRowFigure.addContentLighter("Start Symbol"); startSymbolRowFigure.add(createContentPane(5)); headersFigure.add(startSymbolRowFigure); add(headersFigure); Label l1 = (Label) addKeyword("Phrase Structure"); l1.setBorder(new MarginBorder(20,0,0,0)); l1.setTextAlignment(PositionConstants.TOP); add(createContentPane(7, new MarginBorder(0,4,0,0))); Label l2 = (Label) addKeyword("Lexical Structure"); l2.setBorder(new MarginBorder(20,0,0,0)); l2.setTextAlignment(PositionConstants.TOP); IFigure lexicalTableFigure = new TableFigure(2); TableRowFigure delimiterRowFigure = new TableRowFigure(); delimiterRowFigure.addContentLighter("Delimiter"); delimiterRowFigure.add(createContentPane(6)); lexicalTableFigure.add(delimiterRowFigure); TableRowFigure spaceLiteralRowFigure = new TableRowFigure(); spaceLiteralRowFigure.addContentLighter("Space Literal"); spaceLiteralRowFigure.add(createContentPane(9)); lexicalTableFigure.add(spaceLiteralRowFigure); TableRowFigure indentLiteralRowFigure = new TableRowFigure(); indentLiteralRowFigure.addContentLighter("Indent Literal"); indentLiteralRowFigure.add(createContentPane(10)); lexicalTableFigure.add(indentLiteralRowFigure); TableRowFigure newLineLiteralRowFigure = new TableRowFigure(); newLineLiteralRowFigure.addContentLighter("New Line Literal"); newLineLiteralRowFigure.add(createContentPane(11)); lexicalTableFigure.add(newLineLiteralRowFigure); add(lexicalTableFigure); add(createContentPane(8, new MarginBorder(0,4,0,0))); } }