Revision: 658
Author: heuermh
Date: Thu Aug 6 10:18:47 2009
Log: Issue 111 ; API and javadoc improvements to PHtmlView, html --> text,
htmlColor --> textColor, clickedAddress --> linkAddressAt, etc.
http://code.google.com/p/piccolo2d/source/detail?r=658
Modified:
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PHtmlView.java
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/nodes/PHtmlViewTest.java
/piccolo2d.java/trunk/examples/src/main/java/edu/umd/cs/piccolo/examples/HtmlViewExample.java
=======================================
---
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PHtmlView.java
Thu Aug 6 09:14:02 2009
+++
/piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/nodes/PHtmlView.java
Thu Aug 6 10:18:47 2009
@@ -36,7 +36,6 @@
import java.awt.geom.Rectangle2D;
import javax.swing.JLabel;
-import javax.swing.JTextField;
import javax.swing.plaf.basic.BasicHTML;
import javax.swing.text.Position;
import javax.swing.text.View;
@@ -45,8 +44,8 @@
import edu.umd.cs.piccolo.util.PPaintContext;
/**
- * PHtml is a Piccolo node for rendering HTML text. It uses a JLabel under
the
- * hood so you have the same restrictions regarding html as you have when
using
+ * PHtmlView is a Piccolo node for rendering HTML text. It uses a JLabel
under the
+ * hood so you have the same restrictions regarding HTML as you have when
using
* standard Swing components (HTML 3.2 + subset of CSS 1.0).
*
* @author Chris Malley ([email protected])
@@ -55,13 +54,15 @@
*/
public class PHtmlView extends PNode {
+ /** Default serial version UID. */
private static final long serialVersionUID = 1L;
- /** Default font to use if not overridden in the HTML markup. */
- private static final Font DEFAULT_FONT = new JTextField().getFont();
-
- /** Default font color to use if not overridden in the HTML markup. */
- private static final Color DEFAULT_HTML_COLOR = Color.BLACK;
+ /** Default font if not otherwise specified in the HTML text, 12 point
<code>"SansSerif"</code>. */
+ // public static final Font DEFAULT_FONT = new Font(Font.SANS_SERIF,
Font.PLAIN, 12); jdk 1.6+
+ public static final Font DEFAULT_FONT = new Font("SansSerif",
Font.PLAIN, 12);
+
+ /** Default text color if not otherwise specified in the HTML text,
<code>Color.BLACK</code>. */
+ public static final Color DEFAULT_TEXT_COLOR = Color.BLACK;
/**
* The property name that identifies a change of this node's font (see
@@ -78,35 +79,35 @@
public static final int PROPERTY_CODE_FONT = 1 << 20;
/**
- * The property name that identifies a change of this node's HTML (see
+ * The property name that identifies a change of this node's HTML text
(see
* {...@link #getHTML getHTML}). Both old and new value will be set in any
* property change event.
*/
- public static final String PROPERTY_HTML = "html";
+ public static final String PROPERTY_TEXT = "text";
/**
- * The property code that identifies a change of this node's HTML (see
+ * The property code that identifies a change of this node's HTML text
(see
* {...@link #getHTML getHTML}). Both old and new value will be set in any
* property change event.
*/
- public static final int PROPERTY_CODE_HTML = 1 << 21;
+ public static final int PROPERTY_CODE_TEXT = 1 << 21;
/**
- * The property name that identifies a change of this node's HTML
color (see
+ * The property name that identifies a change of this node's HTML text
color (see
* {...@link #getHtml getHTMLColor}). Both old and new value will be set
in any
* property change event.
*/
- public static final String PROPERTY_HTML_COLOR = "html color";
+ public static final String PROPERTY_TEXT_COLOR = "text color";
/**
- * The property code that identifies a change of this node's HTML
color (see
+ * The property code that identifies a change of this node's HTML text
color (see
* {...@link #getHtml getHTMLColor}). Both old and new value will be set
in any
* property change event.
*/
- public static final int PROPERTY_CODE_HTML_COLOR = 1 << 22;
+ public static final int PROPERTY_CODE_TEXT_COLOR = 1 << 22;
/** Underlying JLabel used to handle the rendering logic. */
- private final JLabel htmlLabel;
+ private final JLabel label;
/** Object that encapsulates the HTML rendering logic. */
private View htmlView;
@@ -115,124 +116,114 @@
private final Rectangle htmlBounds;
/**
- * Creates an empty PHtml node with default font and color.
+ * Create an empty HTML text node with the default font and text color.
*/
public PHtmlView() {
- this(null, DEFAULT_FONT, DEFAULT_HTML_COLOR);
+ this(null, DEFAULT_FONT, DEFAULT_TEXT_COLOR);
}
/**
- * Creates a PHtml node that contains the provided HTML. It will have
- * default font and color.
+ * Create a HTML text node with the specified HTML text and the
default font and text color.
*
- * @param html markup label should contain
+ * @param text HTML text for this HTML text node
*/
- public PHtmlView(final String html) {
- this(html, DEFAULT_FONT, DEFAULT_HTML_COLOR);
+ public PHtmlView(final String text) {
+ this(text, DEFAULT_FONT, DEFAULT_TEXT_COLOR);
}
/**
- * Creates a PHtml node with the given markup and default html color.
+ * Create a HTML text node with the specified HTML text, font, and
text color. The font
+ * and text color are used to render the HTML text if not otherwise
specified via CSS.
*
- * @param html markup label should contain
- * @param htmlColor color that will be used unless overridden by the
markup
+ * @param text HTML text for this HTML text node
+ * @param font font for this HTML text node
+ * @param textColor text color for this HTML text node
*/
- public PHtmlView(final String html, final Color htmlColor) {
- this(html, DEFAULT_FONT, htmlColor);
- }
-
- /**
- * Creates a PHtml node with the given markup and default HTML color.
- *
- * @param html markup label should contain
- * @param font font that will be used unless overriden by the markup
- * @param htmlColor color that will be used unless overridden by the
markup
- */
- public PHtmlView(final String html, final Font font, final Color
htmlColor) {
- htmlLabel = new JLabel(html);
- htmlLabel.setFont(font);
- htmlLabel.setForeground(htmlColor);
+ public PHtmlView(final String text, final Font font, final Color
textColor) {
+ label = new JLabel(text);
+ label.setFont(font);
+ label.setForeground(textColor);
htmlBounds = new Rectangle();
update();
}
/**
- * @return HTML being rendered by this node
+ * Return the HTML text for this HTML text node.
+ *
+ * @return the HTML text for this HTML text node
*/
- public String getHtml() {
- return htmlLabel.getText();
+ public String getText() {
+ return label.getText();
}
/**
- * Changes the HTML being rendered by this node.
+ * Set the HTML text for this HTML text node to <code>text</code>.
*
- * @param newHtml markup to swap with existing HTML
+ * <p>
+ * This is a <b>bound</b> property.
+ * </p>
+ *
+ * @param text HTML text for this HTML text node
*/
- public void setHtml(final String newHtml) {
- if (isNewHtml(newHtml)) {
- final String oldHtml = htmlLabel.getText();
- htmlLabel.setText(newHtml);
- update();
- firePropertyChange(PROPERTY_CODE_HTML, PROPERTY_HTML, oldHtml,
newHtml);
- }
- }
-
- private boolean isNewHtml(final String html) {
- if (html == null && getHtml() == null) {
- return false;
- }
- else if (html == null || getHtml() == null) {
- return true;
- }
- else {
- return !htmlLabel.getText().equals(html);
- }
+ public void setText(final String text) {
+ final String oldText = label.getText();
+ label.setText(text);
+ update();
+ firePropertyChange(PROPERTY_CODE_TEXT, PROPERTY_TEXT, oldText,
label.getText());
}
/**
- * Returns the default font being used when not overridden in the
markup.
+ * Return the font for this HTML text node. This font is used to
render the
+ * HTML text if not otherwise specified via CSS. Defaults to {...@link
#DEFAULT_FONT}.
*
- * @return font being used when not overridden by the markup
+ * @return the font for this HTML text node
*/
public Font getFont() {
- return htmlLabel.getFont();
+ return label.getFont();
}
/**
- * Set the font of this PHtml. This may be overridden by the markup
using
- * either styles or the font tag.
+ * Set the font for this HTML text node to <code>font</code>. This
font is
+ * used to render the HTML text if not otherwise specified via CSS.
*
- * @param newFont font to set as the default
+ * <p>
+ * This is a <b>bound</b> property.
+ * </p>
+ *
+ * @param font font for this HTML text node
*/
- public void setFont(final Font newFont) {
- final Font oldFont = htmlLabel.getFont();
- htmlLabel.setFont(newFont);
+ public void setFont(final Font font) {
+ final Font oldFont = label.getFont();
+ label.setFont(font);
update();
-
- firePropertyChange(PROPERTY_CODE_FONT, PROPERTY_FONT, oldFont,
newFont);
+ firePropertyChange(PROPERTY_CODE_FONT, PROPERTY_FONT, oldFont,
label.getFont());
}
/**
- * Gets the color used to render the HTML. If you want to get the
paint used
- * for the node, use getPaint.
- *
- * @return the color used to render the HTML.
- */
- public Color getHtmlColor() {
- return htmlLabel.getForeground();
+ * Return the text color for this HTML text node. This text color is
used to render the
+ * HTML text if not otherwise specified via CSS. Defaults to {...@link
#DEFAULT_TEXT_COLOR}.
+ *
+ * @return the text color for this HTML text node
+ */
+ public Color getTextColor() {
+ return label.getForeground();
}
/**
- * Sets the color used to render the HTML. If you want to set the
paint used
- * for the node, use setPaint.
+ * Set the text color for this HTML text node to
<code>textColor</code>. This text color is
+ * used to render the HTML text if not otherwise specified via CSS.
*
- * @param newColor new color to use when rendering HTML
+ * <p>
+ * This is a <b>bound</b> property.
+ * </p>
+ *
+ * @param textColor text color for this HTML text node
*/
- public void setHtmlColor(final Color newColor) {
- final Color oldColor = htmlLabel.getForeground();
- htmlLabel.setForeground(newColor);
+ public void setTextColor(final Color color) {
+ final Color oldColor = label.getForeground();
+ label.setForeground(color);
repaint();
- firePropertyChange(PROPERTY_CODE_HTML_COLOR, PROPERTY_HTML_COLOR,
oldColor, newColor);
+ firePropertyChange(PROPERTY_CODE_TEXT_COLOR, PROPERTY_TEXT_COLOR,
oldColor, label.getForeground());
}
/**
@@ -240,14 +231,14 @@
* updates bounds.
*/
private void update() {
- htmlLabel.setSize(htmlLabel.getPreferredSize());
-
- String htmlContent = htmlLabel.getText();
+ label.setSize(label.getPreferredSize());
+
+ String htmlContent = label.getText();
if (htmlContent == null) {
htmlContent = "";
}
- htmlView = BasicHTML.createHTMLView(htmlLabel, htmlContent);
+ htmlView = BasicHTML.createHTMLView(label, htmlContent);
final Rectangle2D bounds = getBounds();
htmlBounds.setRect(0, 0, bounds.getWidth(), bounds.getHeight());
@@ -269,15 +260,16 @@
}
/**
- * Paints the node. The HTML string is painted last, so it appears on
top of
- * any child nodes.
+ * {...@inheritdoc}
*
- * @param paintContext the context in which painting is occurring
+ * <p>
+ * The HTML text is painted last, so it will appear on top of any
child nodes.
+ * </p>
*/
protected void paint(final PPaintContext paintContext) {
super.paint(paintContext);
- if (htmlLabel.getWidth() != 0 && htmlLabel.getHeight() != 0) {
+ if (label.getWidth() != 0 && label.getHeight() != 0) {
final Graphics2D g2 = paintContext.getGraphics();
htmlView.paint(g2, htmlBounds);
@@ -285,40 +277,44 @@
}
/**
- * Returns the address specified in the link under the given point.
+ * Return the address specified in the HTML link at the specified
point in
+ * this node's local coordinate system, if any.
*
- * @param clickedPoint point under which a link might be
- * @return String containing value of href for clicked link, or null
if no
- * link clicked
+ * @param point point in this node's local coordinate system
+ * @return the address specified in the HTML link at the specified
point in
+ * this node's local coordinate system, or <code>null</code> if no
such
+ * HTML link exists
*/
- public String getClickedAddress(final Point2D clickedPoint) {
- return getClickedAddress(clickedPoint.getX(), clickedPoint.getY());
+ public String getLinkAddressAt(final Point2D point) {
+ return getLinkAddressAt(point.getX(), point.getY());
}
/**
- * Returns the address specified in the link under the given point.
+ * Return the address specified in the HTML link at the specified x
and y coordinates in
+ * this node's local coordinate system, if any.
*
- * @param x x component of point under which link may be
- * @param y y component of point under which link may be
- * @return String containing value of href for clicked link, or null
if no
- * link clicked
+ * @param x x coordinate in this node's local coordinate system
+ * @param y y coordinate in this node's local coordinate system
+ * @return the address specified in the HTML link at the specified x
and y coordinates in
+ * this node's local coordinate system, or <code>null</code> if no
such
+ * HTML link exists
*/
- public String getClickedAddress(final double x, final double y) {
+ public String getLinkAddressAt(final double x, final double y) {
int position = pointToModelIndex(x, y);
- final String html = htmlLabel.getText();
+ final String text = label.getText();
String address = null;
int currentPos = 0;
- while (currentPos < html.length()) {
- currentPos = html.indexOf('<', currentPos);
+ while (currentPos < text.length()) {
+ currentPos = text.indexOf('<', currentPos);
if (currentPos == -1 || position < currentPos) {
break;
}
final int tagStart = currentPos;
- final int tagEnd = findTagEnd(html, currentPos);
+ final int tagEnd = findTagEnd(text, currentPos);
if (tagEnd == -1) {
return null;
@@ -326,7 +322,7 @@
currentPos = tagEnd + 1;
- final String tag = html.substring(tagStart, currentPos);
+ final String tag = text.substring(tagStart, currentPos);
position += tag.length();
@@ -342,12 +338,13 @@
}
/**
- * Returns the index into the raw text (without HTML) that the click
- * occurred.
+ * Return the index into the raw text at the specified x and y
coordinates in
+ * this node's local coordinate system.
*
- * @param x x component of the point clicked
- * @param y y component of the point clicked
- * @return index into the raw text (without HTML) that the click
occurred
+ * @param x x coordinate in this node's local coordinate system
+ * @param y y coordinate in this node's local coordinate system
+ * @return the index into the raw text at the specified x and y
coordinates in
+ * this node's local coordinate system
*/
private int pointToModelIndex(final double x, final double y) {
final Position.Bias[] biasReturn = new Position.Bias[1];
@@ -355,30 +352,30 @@
}
/**
- * Starting from the startPos, it finds the position at which the
given tag
- * ends. Returns -1 if the end of the string was encountered before
the end
- * of the tag was encountered.
+ * Starting from the startPos, find the position at which the given tag
+ * ends. Returns <code>-1</code> if the end of the string was
encountered
+ * before the end of the tag was encountered.
*
- * @param html raw HTML string being searched
+ * @param text HTML text being searched
* @param startPos where in the string to start searching for ">"
* @return index after the ">" character
*/
- private int findTagEnd(final String html, final int startPos) {
+ private int findTagEnd(final String text, final int startPos) {
int currentPos = startPos;
currentPos++;
- while (currentPos > 0 && currentPos < html.length() &&
html.charAt(currentPos) != '>') {
- if (html.charAt(currentPos) == '\"') {
- currentPos = html.indexOf('\"', currentPos + 1);
- }
- else if (html.charAt(currentPos) == '\'') {
- currentPos = html.indexOf('\'', currentPos + 1);
+ while (currentPos > 0 && currentPos < text.length() &&
text.charAt(currentPos) != '>') {
+ if (text.charAt(currentPos) == '\"') {
+ currentPos = text.indexOf('\"', currentPos + 1);
+ }
+ else if (text.charAt(currentPos) == '\'') {
+ currentPos = text.indexOf('\'', currentPos + 1);
}
currentPos++;
}
- if (currentPos == 0 || currentPos >= html.length()) {
+ if (currentPos == 0 || currentPos >= text.length()) {
return -1;
}
@@ -386,11 +383,11 @@
}
/**
- * Given a tag, extracts the value of the href attribute, returns null
if
+ * Given a tag, extracts the value of the href attribute or returns
null if
* none was found.
*
* @param tag from which to extract the href value
- * @return href value without quotes or null if not found
+ * @return href value without quotes or <code>null</code> if not found
*/
private String extractHref(final String tag) {
int currentPos = 0;
@@ -410,8 +407,8 @@
* Starting at the character after the equal sign of an href=..., it
extract
* the value. Handles single, double, and no quotes.
*
- * @param tag
- * @param startPos
+ * @param tag tag
+ * @param startPos start position
* @return value of href or null if not found.
*/
private String extractHrefValue(final String tag, final int startPos) {
@@ -451,7 +448,6 @@
*
* @param tag html code of the tag
* @param equalPos the index of the assignment
- *
* @return true if to left of assignment is href
*/
private boolean isHrefAttributeAssignment(final String tag, final int
equalPos) {
=======================================
---
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/nodes/PHtmlViewTest.java
Thu Aug 6 09:58:59 2009
+++
/piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/nodes/PHtmlViewTest.java
Thu Aug 6 10:18:47 2009
@@ -35,6 +35,9 @@
import edu.umd.cs.piccolo.MockPropertyChangeListener;
import edu.umd.cs.piccolo.util.PBounds;
+/**
+ * Unit test for PHtmlView.
+ */
public class PHtmlViewTest extends TestCase {
private MockPropertyChangeListener mockListener;
@@ -43,82 +46,145 @@
mockListener = new MockPropertyChangeListener();
}
+ public void testConstructor() {
+ PHtmlView html0 = new PHtmlView();
+ assertNotNull(html0);
+ assertEquals(null, html0.getText());
+ assertEquals(PHtmlView.DEFAULT_FONT, html0.getFont());
+ assertEquals(PHtmlView.DEFAULT_TEXT_COLOR, html0.getTextColor());
+
+ PHtmlView html1 = new PHtmlView(null);
+ assertNotNull(html1);
+ assertEquals(null, html1.getText());
+ assertEquals(PHtmlView.DEFAULT_FONT, html1.getFont());
+ assertEquals(PHtmlView.DEFAULT_TEXT_COLOR, html1.getTextColor());
+
+ PHtmlView html2 = new PHtmlView("not html");
+ assertNotNull(html2);
+ assertEquals("not html", html2.getText());
+ assertEquals(PHtmlView.DEFAULT_FONT, html2.getFont());
+ assertEquals(PHtmlView.DEFAULT_TEXT_COLOR, html2.getTextColor());
+
+ PHtmlView html3 = new PHtmlView("<html><body><p>html
text</p></body></html>");
+ assertNotNull(html3);
+ assertEquals("<html><body><p>html text</p></body></html>",
html3.getText());
+ assertEquals(PHtmlView.DEFAULT_FONT, html3.getFont());
+ assertEquals(PHtmlView.DEFAULT_TEXT_COLOR, html3.getTextColor());
+
+ Font font = new Font("Serif", Font.PLAIN, 12);
+ PHtmlView html4 = new PHtmlView("not html", font, Color.RED);
+ assertNotNull(html4);
+ assertEquals("not html", html4.getText());
+ assertEquals(font, html4.getFont());
+ assertEquals(Color.RED, html4.getTextColor());
+
+ PHtmlView html5 = new PHtmlView("<html><body><p>html
text</p></body></html>", font, Color.RED);
+ assertNotNull(html5);
+ assertEquals("<html><body><p>html text</p></body></html>",
html5.getText());
+ assertEquals(font, html5.getFont());
+ assertEquals(Color.RED, html5.getTextColor());
+
+ PHtmlView html6 = new PHtmlView("<html><body><p
style=\"font-family: sans-serif; font-color: blue\">html
text</p></body></html>", font, Color.RED);
+ assertNotNull(html6);
+ assertEquals("<html><body><p style=\"font-family: sans-serif;
font-color: blue\">html text</p></body></html>", html6.getText());
+ assertEquals(font, html6.getFont());
+ assertEquals(Color.RED, html6.getTextColor());
+
+ PHtmlView html7 = new PHtmlView("not html", null, Color.RED);
+ assertNotNull(html7);
+ assertEquals("not html", html7.getText());
+ assertEquals(null, html7.getFont());
+ assertEquals(Color.RED, html7.getTextColor());
+
+ PHtmlView html8 = new PHtmlView("not html", font, null);
+ assertNotNull(html8);
+ assertEquals("not html", html8.getText());
+ assertEquals(font, html8.getFont());
+ assertEquals(null, html8.getTextColor());
+
+ PHtmlView html9 = new PHtmlView("not html", null, null);
+ assertNotNull(html9);
+ assertEquals("not html", html9.getText());
+ assertEquals(null, html9.getFont());
+ assertEquals(null, html9.getTextColor());
+ }
+
public void testGetClickedAddressReturnsSingleQuotedAddress() {
PHtmlView html = new PHtmlView("<a
href='http://www.testing.com'>testing</a>");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertEquals("http://www.testing.com",
html.getClickedAddress(5,5));
+ assertEquals("http://www.testing.com", html.getLinkAddressAt(5,5));
}
public void testGetClickedAddressReturnsDoubleQuotedAddress() {
PHtmlView html = new PHtmlView("<a
href=\"http://www.testing.com\">testing</a>");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertEquals("http://www.testing.com",
html.getClickedAddress(5,5));
+ assertEquals("http://www.testing.com", html.getLinkAddressAt(5,5));
}
public void testBracketsAreValidInHrefs() {
PHtmlView html = new PHtmlView("<a href='a>b'>testing</a>");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertEquals("a>b", html.getClickedAddress(5,5));
+ assertEquals("a>b", html.getLinkAddressAt(5,5));
}
public void testGetClickedAddressReturnsNullWhenInvalid() {
PHtmlView html = new PHtmlView("<a ='a>b'>testing</a>");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertNull(html.getClickedAddress(5,5));
+ assertNull(html.getLinkAddressAt(5,5));
}
public void testGetClickedAddressReturnsHrefWhenMissingEndAnchorTag() {
PHtmlView html = new PHtmlView("<a href='testing.com'>testing");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertEquals("testing.com", html.getClickedAddress(5,5));
+ assertEquals("testing.com", html.getLinkAddressAt(5,5));
}
public void testHandlesTricksyTitles() {
PHtmlView html = new PHtmlView("<a href=\"where to go\"
title=\"this is not the href='gotcha!' \">testing</a>");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertEquals("where to go", html.getClickedAddress(5,5));
+ assertEquals("where to go", html.getLinkAddressAt(5,5));
}
public void testHandlesHrefWithoutQuotes() {
PHtmlView html = new PHtmlView("<a href=testing.com>testing</a>");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertEquals("testing.com", html.getClickedAddress(5,5));
+ assertEquals("testing.com", html.getLinkAddressAt(5,5));
}
public void testUnclosedTagsCauseIgnoreOfTag() {
PHtmlView html = new PHtmlView("<a href='testing.com' ");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertNull(html.getClickedAddress(5,5));
+ assertNull(html.getLinkAddressAt(5,5));
}
public void testMissingEndTagCausesRemainderOfHtmlToBeLinkTarget() {
PHtmlView html = new PHtmlView("<a href='testing.com'>Missing End
TAg ");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertEquals("testing.com", html.getClickedAddress(5,5));
+ assertEquals("testing.com", html.getLinkAddressAt(5,5));
}
public void testUnclosedQuotesCauseIgnoreOfLink() {
PHtmlView html = new PHtmlView("<a href='testing.com>testing");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertNull(html.getClickedAddress(5,5));
+ assertNull(html.getLinkAddressAt(5,5));
}
public void testEmptyAddressReturnsEmptyString() {
PHtmlView html = new PHtmlView("<a href=''>testing");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertEquals("", html.getClickedAddress(5,5));
+ assertEquals("", html.getLinkAddressAt(5,5));
}
public void testReturnsNullWhenClickOutsideLink() {
PHtmlView html = new PHtmlView("0123456789 <a href=#>testing</a>");
html.setBounds(new PBounds(0, 0, 100, 100));
- assertNull(html.getClickedAddress(5,5));
+ assertNull(html.getLinkAddressAt(5,5));
}
public void testSetHtmlColorPersists() {
PHtmlView html = new PHtmlView();
- html.setHtmlColor(Color.RED);
- assertEquals(Color.RED, html.getHtmlColor());
+ html.setTextColor(Color.RED);
+ assertEquals(Color.RED, html.getTextColor());
}
public void testFontIsNotNullByDefault() {
@@ -128,23 +194,23 @@
public void testHtmlColorIsNotNullByDefault() {
PHtmlView html = new PHtmlView();
- assertNotNull(html.getHtmlColor());
+ assertNotNull(html.getTextColor());
}
public void testSetHtmlFiresEventOnChangeOnly() {
PHtmlView html = new PHtmlView();
html.addPropertyChangeListener(mockListener);
- html.setHtml("testing");
+ html.setText("testing");
assertEquals(1, mockListener.getPropertyChangeCount());
- assertEquals(PHtmlView.PROPERTY_HTML,
mockListener.getPropertyChange(0).getPropertyName());
- html.setHtml("testing");
+ assertEquals(PHtmlView.PROPERTY_TEXT,
mockListener.getPropertyChange(0).getPropertyName());
+ html.setText("testing");
assertEquals(1, mockListener.getPropertyChangeCount());
}
public void testSetHtmlToNullIsAllowed() {
PHtmlView html = new PHtmlView();
- html.setHtml(null);
- assertNull(html.getHtml());
+ html.setText(null);
+ assertNull(html.getText());
}
public void testSetFontPerists() {
=======================================
---
/piccolo2d.java/trunk/examples/src/main/java/edu/umd/cs/piccolo/examples/HtmlViewExample.java
Thu Aug 6 09:14:02 2009
+++
/piccolo2d.java/trunk/examples/src/main/java/edu/umd/cs/piccolo/examples/HtmlViewExample.java
Thu Aug 6 10:18:47 2009
@@ -73,7 +73,7 @@
final Point2D clickPoint =
event.getPositionRelativeTo(clickedNode);
final PHtmlView htmlNode = (PHtmlView) clickedNode;
- final String url =
htmlNode.getClickedAddress(clickPoint.getX(), clickPoint.getY());
+ final String url =
htmlNode.getLinkAddressAt(clickPoint.getX(), clickPoint.getY());
JOptionPane.showMessageDialog(null, url);
}
});
--~--~---------~--~----~------------~-------~--~----~
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en
-~----------~----~----~----~------~----~------~--~---