IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Impossible de charger une feuille de style avec Cobra


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 45
    Par défaut Impossible de charger une feuille de style avec Cobra
    Bonjour,

    J'utilise Cobra pour parser un flux HTML et ensuite afficher les résultats dans le HTMLPanel en appliquant une feuille de style.

    Ci-dessous extrait du code qui crée un document DOM qui va me servir à générer mon code HTML à afficher.
    Si je définis le style directement dans le fichier HTML, pas de problème.

    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
    18
    19
    20
    21
     
            Document dores = builder.newDocument();
            Element racine = dores.createElement("html");
     
            Element head = dores.createElement("head");
            Element body = dores.createElement("body");
            Element style = dores.createElement("style");
            style.setAttribute("type", "text/css");
            Text styleDefined = dores.createTextNode("td {background-color:#339; color:#fff;}");
            style.appendChild(styleDefined);
            head.appendChild(style);
            racine.appendChild(head);
    // ... suite de la création du code HTML de sortie
            racine.appendChild(body);
            dores.appendChild(racine);
            DOMSerializer serializer = new DOMSerializer();
            StringWriter out = new StringWriter();
            serializer.serialize(dores, out);
            String res = out.toString();
            panel.setHtml(res, "", rcontext);
    // C'est ok, le style est appliqué
    En revanche, si j'essaie de faire référence à une feuille de style externe (style.css), le style n'est pas appliqué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            Element racine = dores.createElement("html");
            Element head = dores.createElement("head");
            Element body = dores.createElement("body");
            Element link = dores.createElement("link");
            link.setAttribute("href", "/style.css");
            link.setAttribute("media", "all");
            link.setAttribute("rel", "stylesheet");
            link.setAttribute("type", "text/css");
            head.appendChild(link);
    // reste du code identique...
    Mon fichier style.css est placé dans le même répertoire que ma classe.

    Où est l'erreur dans mon code ?

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 45
    Par défaut
    Help
    Je suis vraiment bloqué sur ce problème

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 45
    Par défaut
    Plus j'y réfléchis, et plus je me ds que la solution passerait par un parsing de la feuille de style afin de récupérer les styles dans les CSSRules...

    Mais, là où ça coince pour moi, c'est que je ne vois pas quoi faire de ces CSSRules ensuite.

    Comment appliquer les CSSRules au Document DOM ? Comment générer ensuite le code HTML correspondant ?
    N'est ce pas là une solution bien compliquée alors que le style défini directement dans le fichier HTML représente une solution bien plus simple à mettre en oeuvre ?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    je suis pas expert là dedans, mais est-ce que tu précise à un seul moment à cobra quelle est l'url de ton document principal? Sans ça, il sera incapable de résoudre "/style.css" puisqu'il ne saura pas par rapport à quoi résoudre cette référence....

  5. #5
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 45
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    je suis pas expert là dedans, mais est-ce que tu précise à un seul moment à cobra quelle est l'url de ton document principal? Sans ça, il sera incapable de résoudre "/style.css" puisqu'il ne saura pas par rapport à quoi résoudre cette référence....
    Je comprends bien, mais comment "affecter" une URL à mon document, sachant qu'il est produit "ex nihilo": je le crée à vide et ajoute ensuite un par un les éléments ?

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le problème, dans ce dernier cas, c'est que à partir de "rien" /style.css ca ne veux rien dire non plus...; Il arrive à charger des images ton document???

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment puis ajouter une feuille de style avec Javascript
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/02/2010, 08h21
  2. charger une feuille de style via javascript
    Par yakusa77 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 05/12/2008, 11h15
  3. Réponses: 1
    Dernier message: 03/06/2008, 14h27
  4. Compatibilité d'une feuille de style avec IE6 et IE7
    Par matimat2k4 dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 18/05/2008, 23h28
  5. Réponses: 1
    Dernier message: 28/04/2006, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo