[jbosstools-issues] [JBoss JIRA] (JBIDE-10127) Resolve selector in open-on of style class in VPE

Viacheslav Kabanovich (JIRA) jira-events at lists.jboss.org
Wed Feb 15 18:03:36 EST 2012


    [ https://issues.jboss.org/browse/JBIDE-10127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666914#comment-12666914 ] 

Viacheslav Kabanovich commented on JBIDE-10127:
-----------------------------------------------

1. There can be more than one attributes for node selector.
Rule
{code}
[title="y"][id="3"] p input.styleA {color: #FF0000}
{code}
says that some node should have both attributes title="y" and id="3".
Compare to the rule
{code}
[title="y"] [id="3"] p input.styleA {color: #FF0000}
{code}
that says that node should have title="y" and some its descendent should have id="3".

2. Algorithm that computes the best rule makes errors.
For example, if in stylesheet given in description, two last rules are switched:
{code}
    [title="y"] p input.styleA {color: #00CCFF}
    div p input.styleA {color: #CC00FF}
{code}
then last case in the example html will be incorrectly resolved.

The implemented comparing algorithm assumes that 'longer' CSSAxis[] is always preferable. That is not so. I think that the correct algorithm should compare 'restrictive power' of the first element, then proceed to the second, etc. The 'restrictive power' of the element may be illustrated by these examples
{code}
div[title="y"][id="3] > [title="y"][id="3] > [title="y"] > div
div.styleX > div[title="m"]


{code}
                
> Resolve selector in open-on of style class in VPE
> -------------------------------------------------
>
>                 Key: JBIDE-10127
>                 URL: https://issues.jboss.org/browse/JBIDE-10127
>             Project: Tools (JBoss Tools)
>          Issue Type: Feature Request
>          Components: jsp/jsf/xml source editing
>    Affects Versions: 3.3.0.M3
>            Reporter: Viacheslav Kabanovich
>            Assignee: Viacheslav Kabanovich
>             Fix For: 3.3.0.Beta1
>
>
> EXECUTE: Create style sheet:
> {code}
>     .styleA {color: #FF0000}
>     .styleA .styleB {color: #FF8000}
>     div.styleA {color: #FF0080}
>     div[title="x"].styleA {color: #0000FF}
>     p input.styleA {color: #CCAA00}
>     div p input.styleA {color: #CC00FF}
>     [title="y"] p input.styleA {color: #00CCFF}
> {code}
> EXECUTE: Create html:
> {code}
> <html>
> <head>
> 	<title>Hello!</title> 
> 	<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
> </head>
> <body>	
> 	<p class="styleA">
> 		.styleA {color: #FF0000}
> 	</p>	
> 	<p class="styleA">
> 		.styleA {color: #FF0000}
> 		<br/>
> 		<b class="styleB">.styleA .styleB {color: #FF8000}</b>
> 	</p>
> 	<div class="styleA">
> 		div.styleA {color: #FF0080}
> 	</div>	
> 	<div title="x" class="styleA">
> 		div[title="x"].styleA {color: #0000FF}
> 	</div>	
> 	<p>
> 		<input type="button" class="styleA" value="p input.styleA {color: #CCAA00}"/>
> 	</p>
> 	<div>
> 		<p>
> 			<input type="button" class="styleA" value="div p input.styleA {color: #CC00FF}"/>
> 		</p>
> 	</div>	
> 	<div title="y">
> 	  <div>
> 		<p>
> 			<input type="button" class="styleA" value="[title='y'] div p input.styleA {color: #00CCFF}"/>
> 		</p>
> 	  </div>
> 	</div>	
> </body>
> </html>
> {code}
> ASSERT: Style opened at each class="styleA" should be the same as text value in element.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosstools-issues mailing list