/* * Code borrowed from PyDev */ /* * @author Fabio Zadrozny * Created: June 2005 * License: Common Public License v1.0 */ package org.erlide.ui.util; import java.io.Reader; import java.io.StringReader; import java.util.List; import javax.swing.text.Document; import javax.swing.text.EditorKit; import javax.swing.text.html.HTMLEditorKit; import org.erlide.util.StringUtils; public final class UIStringUtils { private UIStringUtils() { } public static final Object EMPTY = ""; public static String removeWhitespaceColumnsToLeft(final String hoverInfo) { final StringBuilder buf = new StringBuilder(); int firstCharPosition = Integer.MAX_VALUE; final List<String> splitted = StringUtils.splitLines(hoverInfo); for (final String line : splitted) { if (line.trim().length() > 0) { final int found = ErlideSelection.getFirstCharPosition(line); firstCharPosition = Math.min(found, firstCharPosition); } } if (firstCharPosition != Integer.MAX_VALUE) { for (final String line : splitted) { if (line.length() > firstCharPosition) { buf.append(line.substring(firstCharPosition)); } } return buf.toString(); } return hoverInfo;// return initial } /** * Given some html, extracts its text. */ public static String extractTextFromHTML(final String html) { try { final EditorKit kit = new HTMLEditorKit(); final Document doc = kit.createDefaultDocument(); // The Document class does not yet handle charset's properly. doc.putProperty("IgnoreCharsetDirective", Boolean.TRUE); // Create a reader on the HTML content. final Reader rd = new StringReader(html); // Parse the HTML. kit.read(rd, doc, 0); // The HTML text is now stored in the document return doc.getText(0, doc.getLength()); } catch (final Exception e) { } return ""; } }