Index: lutingenerator/src/java/org/codelutin/generator/models/ui/javaxml/JavaXMLParser.java diff -u lutingenerator/src/java/org/codelutin/generator/models/ui/javaxml/JavaXMLParser.java:1.2 lutingenerator/src/java/org/codelutin/generator/models/ui/javaxml/JavaXMLParser.java:1.3 --- lutingenerator/src/java/org/codelutin/generator/models/ui/javaxml/JavaXMLParser.java:1.2 Wed Aug 11 16:27:42 2004 +++ lutingenerator/src/java/org/codelutin/generator/models/ui/javaxml/JavaXMLParser.java Thu Aug 12 08:21:29 2004 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin -* @version $Revision: 1.2 $ +* @version $Revision: 1.3 $ * -* Mise a jour: $Date: 2004/08/11 16:27:42 $ +* Mise a jour: $Date: 2004/08/12 08:21:29 $ * par : $Author: mazelier $ */ @@ -113,7 +113,17 @@ result.setArguments(arguments); // liste des enfants de l'objet (collection de UIModelChild) - ArrayList children = parseChildren(current); + ArrayList children =null; + + // Cas ou l'objet est une instance de RootPaneContainer, les enfants se trouvent dans le contentPane + Element contentPaneElem = (Element)current.selectSingleNode("void[@property=\"contentPane\"]"); + + if (contentPaneElem!=null){ + children = parseChildren(contentPaneElem); + }else{ + children = parseChildren(current); + } + result.setChildren(children); // liste des properties de l'objet courant, on est sur que le tag des properties est de la forme , ce tag est un enfant de l'objet courant @@ -273,6 +283,11 @@ // avec object ajoute au container avec un idref qui doit etre identique a l'un des enfants vus precedemment (definis dans la methode add) (cet objet est toujours en premiere position // en deuxieme position se trouve la constrainte du premier object (string ou object) Element constraintElem = (Element)parent.selectSingleNode("descendant::void[@property=\"layout\"]/object[(@class)]/void[@method=\"addLayoutComponent\"]/object[1][(@idref=\""+id+"\") or (@id=\""+id+"\")]/../*[2][(self::object) or (self::string)]"); + + // ATTENTION : dans l'expression XPath on trouve deux conditions car dans le cas des panels generes l'argument de la proptriete layout n'apparait pas, nous n'avons pas du determine l'origine de l'erreur + if(constraintElem==null){ + constraintElem = (Element)parent.selectSingleNode("descendant::void[@property=\"layout\"]/void[@method=\"addLayoutComponent\"]/object[1][(@idref=\""+id+"\") or (@id=\""+id+"\")]/../*[2][(self::object) or (self::string)]"); + } UIModelConstraintImpl constraint = null;