/** * */ package org.hyperdata.scute.syntax; import javax.swing.text.*; public class ScuteEditorKit extends StyledEditorKit { private String syntax = "Turtle"; public ScuteEditorKit(String syntax){ this.syntax = syntax; } public ViewFactory getViewFactory() { ScuteViewFactory scuteViewFactory = new ScuteViewFactory(); scuteViewFactory.setSyntax(syntax); return scuteViewFactory; } class ScuteViewFactory implements ViewFactory { private String syntax; public void setSyntax(String syntax) { this.syntax = syntax; } public View create(Element element) { String kind = element.getName(); if (kind != null) { if (kind.equals(AbstractDocument.ContentElementName)) { return new LabelView(element); } else if (kind.equals(AbstractDocument.ParagraphElementName)) { return getSyntaxView(element); // return new ParagraphView(elem); } else if (kind.equals(AbstractDocument.SectionElementName)) { return getSyntaxView(element); } else if (kind.equals(StyleConstants.ComponentElementName)) { return new ComponentView(element); } else if (kind.equals(StyleConstants.IconElementName)) { return new IconView(element); } } // default to text display return new LabelView(element); } /** * @return */ private View getSyntaxView(Element elem) { if (syntax.equals("Turtle")) { System.out.println("returning turtleview"); return new TurtleView(elem); } if (syntax.equals("XML")) { return new XmlView(elem); } if (syntax.equals("SPARQL")) { return new SparqlView(elem); } return new ParagraphView(elem); } /** * Sets the syntax. * * @param syntax * the new syntax */ } /** * @param string */ public void setSyntax(String string) { this.syntax = syntax; } }