/** * Copyright (C) 2001-2017 by RapidMiner and the contributors * * Complete list of developers available at our web site: * * http://rapidminer.com * * This program is free software: you can redistribute it and/or modify it under the terms of the * GNU Affero General Public License as published by the Free Software Foundation, either version 3 * of the License, or (at your option) any later version. * * This program 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 * Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License along with this program. * If not, see http://www.gnu.org/licenses/. */ package com.rapidminer.gui.tools; import java.io.IOException; import javax.swing.JEditorPane; import javax.swing.text.EditorKit; import javax.swing.text.html.HTMLEditorKit; import javax.swing.text.html.StyleSheet; import com.rapidminer.gui.look.Colors; import com.rapidminer.tools.Tools; /** * This class extends the editor pane in a way, so that more than one style sheet for HTML content * can be used. This is done for the price of only supporting HTML. * * @author Sebastian Land */ public class ExtendedHTMLJEditorPane extends JEditorPane { private static final long serialVersionUID = -1169198792942550655L; public ExtendedHTMLJEditorPane() { super(); } public ExtendedHTMLJEditorPane(String url) throws IOException { super(url); } public ExtendedHTMLJEditorPane(String type, String text) { super(type, text); } @Override public EditorKit getEditorKitForContentType(String type) { return new ExtendedHTMLEditorKit(); } public void installDefaultStylesheet() { installDefaultStylesheet(((HTMLEditorKit) getEditorKit()).getStyleSheet()); } public static StyleSheet makeDefaultStylesheet() { StyleSheet css = new StyleSheet(); installDefaultStylesheet(css); return css; } public static void installDefaultStylesheet(StyleSheet css) { css.addRule("body {font-family:Sans;font-size:12pt;}"); css.addRule("h3 {margin:0; padding:0;margin-top:8px;margin-bottom:3px; }"); // String hcolor = // Integer.toHexString(SwingTools.DARKEST_BLUE.darker().darker().darker().getRGB()); // hcolor = hcolor.substring(2, 8); String hcolor = "446699"; css.addRule("h4 {margin-bottom:1px; margin-top:2ex; padding:0; color:#" + hcolor + "; font-size:12px}"); // css.addRule("h2, h3, h4 { border-width:3px; border-style:solid; // border-color:#"+Integer.toHexString(SwingTools.RAPID_I_ORANGE.getRGB())+"; }"); css.addRule("p {margin-top:0; margin-bottom:2ex; padding:0;}"); // css.addRule("ul {margin-top:0; margin-bottom:1ex; list-style-image:url(" + // Tools.getResource("icons/help/circle.png") + "); }"); css.addRule("ul.ports {margin-top:0; margin-bottom:1ex; list-style-image:url(" + Tools.getResource("icons/help/circle.png") + "); }"); css.addRule("ul li {padding-bottom:1ex}"); // css.addRule("li.outPorts {padding-bottom:0px}"); css.addRule("ul.param_dep {margin-top:0; margin-bottom:1ex; list-style-type:none; list-style-image:none; }"); // css.addRule("ul li ul {margin-top:0; margin-bottom:1ex; list-style-type:none; // list-style-image:none; }"); // css.addRule("ul li small ul {margin-top:0; list-style-type:none; list-style-image:none; // }"); css.addRule("li ul li {padding-bottom:0}"); // css.addRule("a {text-decoration:none}"); // css.addRule("a:hover {text-decoration:underline}"); css.addRule("dt {font-weight:bold;}"); // css.addRule("a {text-decoration:underline; font-weight:bold;color:blue;}"); css.addRule("hr {color:red; background-color:red}"); css.addRule("a {color:" + SwingTools.getColorHexValue(Colors.LINKBUTTON_REMOTE) + "}"); } }