Bonjour,
Je me permets de poster un message concernant le moteur de CSS que je suis en train d'implémenter pour gérer n'importe qu'elle renderer Swing, SWT...
pour mon projet TK-UI.
Le moteur de CSS pourra s'appliquer soit sur un DOM (dans le cas de TK-UI) mais aussi sur du pur Swing ou du pur SWT.
Je sais qu'il existe des classes Swing qui gère les CSS (par contre je ne suis pas sur qu'il puisse lire des fichiers CSS standards), mais l'interet du moteur CSS est qu'il soit générique et surtout il suit les spécification w3c.
Pour parser un fichier CSS en suivant w3c, il faut utiliser un parser SAC ce que j'utilise (flute, batik...).
Concernant les règles de sélection des CSS, pareil j'utilise les recommandations w3c, et on peut par exemple utiliser l'implementations des Selectors du projet batik.
Vous pouvez trouvez deux capures d'ecrans :
swing.css : qui est la copie d'ecran Swing qui se base sur le css suivant :
swt-css.png
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 JLabel { font-style: italic; font-weight:bold; font-family: "Arial"; color:black; } JPanel JPanel JPanel JLabel { font-weight:normal; font-style: normal; } H1, H2 {color: green } JTextField { background-color:rgb(100,100,0); }
qui est la copie d'ecran SWT qui se base sur le css suivant :
Comme vous pouvez voir la regle CSS Composite Composite Label est géré
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Label { font-style: italic; font-weight:bold; font-family: "Arial"; color:black; } Composite Composite Label { font-weight:normal; font-style: normal; } Text { background-color:rgb(100,100,0); }
autrement dit elle s'applique a un Label SWT qui est dans un composite qui est lui meme dans un composite.
Cette règle utilise batik pour gérer ceci, mais il est possible de creer ses propres règles.
Si vous etes interesses pour tester ceci, vous pouvez telecharger le projet Eclipse
org.akrogen.tkui.core.css
et lancer
/test/org/akrogen/tkui/core/css/selectors/swing/TestSwingCSSSelectors.java
pour Swing et
/test/org/akrogen/tkui/core/css/swt/selectors/TestSWTCSSSelectors.java
pour SWT.
Le code peut paraitre tres complique, mais j'ai surtotu travaille sur les selectors et la possibilite d'utiliser n'importe quelle parser SAC.
La je dosi travailler sur les applications des Styles beuacoup plus proprement.
Si vosu etes interesses, n'hesitez pas a me solliciter.
Angelo
Partager