harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey A. Ivanov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-4662) [classlib][swing][html] CSS is used to specify HTML tag behavior
Date Wed, 22 Aug 2007 06:00:31 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-4662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12521694

Alexey A. Ivanov commented on HARMONY-4662:

Vasily I don't see any problem here. And, IMHO, it doesn't contradict to the specification
in any way. The links you provided just list the elements available in HTML 4.01 (most of
them are supported) and sample CSS style sheet which can be used as default. If I remember
correctly specification doesn't restrict how a document looks if there's no default style
sheet loaded.

Any browser - be it Internet Explorer, Firefox, or Opera - has a default style sheet which
specifies the default look for all HTML elements. The only difference is that it is very difficult
to make browser abandon its default style sheet loading. (However, all of them provide a way
to use a user-defined one.) Since Swing is targeted to developers of application, I think
the ability to remove the default style sheet may be appreciated. For example, you can provide
your own one from scratch and don't waste time and memory for managing that default one shipped
with Swing.

Moreover Harmony behaves the same way as RI does.

> [classlib][swing][html] CSS is used to specify HTML tag behavior
> ----------------------------------------------------------------
>                 Key: HARMONY-4662
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4662
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Vasily Zakharov
>         Attachments: Harmony.jpg, RI.jpg
> For now Harmony uses modules/swing/src/main/java/common/javax/swing/text/html/default.css
file to specify behavior for many HTML tags, like <center>, <b>, and some others.
Moreover, it seems that RI does the same for many tags. This is quite comfortable and efficient,
but is not quite compliant to HTML specification because default CSS may be replaced and tags
start to behave incompatibly to the specification.
> The following test shows how the tags operate by default and with default CSS replaced
with empty stylesheet:
> import java.awt.Container;
> import javax.swing.*;
> import javax.swing.border.*;
> import javax.swing.text.html.*;
> public class Test {
>     static final String testHTML =
>             "<h1>Heading 1</h1><h2>Heading 2</h2><h3>Heading
>           + "<h4>Heading 4</h4><h5>Heading 5</h5><h6>Heading
>           + "<p>paragraph</p><pre>  pre\n   pre</pre><center>center</center>"
>           + "<p><b>bold</b> <strong>strong</strong> <i>italic</i>
>           + "<p><small>small</small> normal <big>big</big></p>"
>           + "<a>aaa</a> <a href=\"\">href</a> <code>code</code>
>     public static void main(String argv[]) {
>         try {
>             JFrame frame = new JFrame("Test");
>             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>             Container pane = frame.getContentPane();
>             pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS));
>             Border border = new BevelBorder(BevelBorder.LOWERED);
>             JEditorPane defaultPane = new JEditorPane("text/html", testHTML);
>             defaultPane.setBorder(new TitledBorder(border, "Default CSS",
>                     TitledBorder.LEFT, TitledBorder.ABOVE_TOP));
>             JEditorPane replacedPane = new JEditorPane("text/html", "");
>             replacedPane.setBorder(new TitledBorder(border, "Empty CSS",
>                     TitledBorder.LEFT, TitledBorder.ABOVE_TOP));
>             HTMLEditorKit editorKit = new HTMLEditorKit();
>             StyleSheet styleSheet = new StyleSheet();
>             editorKit.setStyleSheet(styleSheet);
>             replacedPane.setEditorKit(editorKit);
>             replacedPane.setText(testHTML);
>             pane.add(defaultPane);
>             pane.add(replacedPane);
>             frame.pack();
>             frame.setVisible(true);
>         } catch (Exception e) {
>             e.printStackTrace(System.out);
>         }
>     }
> }
> The attached screenshots demonstrate the behavior of RI and Harmony.
> As one may see, on both RI and Harmony only <b> and <i> tags operate normally
with empty stylesheet, and also <pre> tag retains part of its functionality (spaces
are not merged).

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message