// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.widgets; import javax.swing.text.ViewFactory; import javax.swing.text.html.HTMLEditorKit; import javax.swing.text.html.StyleSheet; /** * A subclass of {@link HTMLEditorKit} that fixes an uncommon design choice that shares the set stylesheet between all instances. * This class stores a single stylesheet per instance, as it should have be done by Sun in the first place. * Moreover it allows to display SVG images. * @since 6040 */ public class JosmHTMLEditorKit extends HTMLEditorKit { /** Shared factory for creating HTML Views. */ private static final ViewFactory FACTORY = new JosmHTMLFactory(); private StyleSheet ss = super.getStyleSheet(); /** * Set the set of styles to be used to render the various HTML elements. * These styles are specified in terms of CSS specifications. * Each document produced by the kit will have a copy of the sheet which * it can add the document specific styles to. * * Unlike the base implementation, the StyleSheet specified is NOT shared * by all HTMLEditorKit instances, to provide a finer granularity. * @see #getStyleSheet */ @Override public void setStyleSheet(StyleSheet s) { ss = s; } /** * Get the set of styles currently being used to render the HTML elements. * * Unlike the base implementation, the StyleSheet specified is NOT shared * by all HTMLEditorKit instances, to provide a finer granularity. * * @see #setStyleSheet */ @Override public StyleSheet getStyleSheet() { return ss; } @Override public ViewFactory getViewFactory() { return FACTORY; } }