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.4 lutingenerator/src/java/org/codelutin/generator/models/ui/javaxml/JavaXMLParser.java:1.5 --- lutingenerator/src/java/org/codelutin/generator/models/ui/javaxml/JavaXMLParser.java:1.4 Thu Aug 19 15:25:51 2004 +++ lutingenerator/src/java/org/codelutin/generator/models/ui/javaxml/JavaXMLParser.java Wed Sep 8 15:46:20 2004 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin -* @version $Revision: 1.4 $ +* @version $Revision: 1.5 $ * -* Mise a jour: $Date: 2004/08/19 15:25:51 $ +* Mise a jour: $Date: 2004/09/08 15:46:20 $ * par : $Author: mazelier $ */ @@ -74,6 +74,28 @@ rootElement = document.getRootElement(); UIModelImpl result = parseModel(rootElement); + String urlName = url.getFile(); + // exemple + // urlFileName = /home/mazelier/PROJECT/lutingenerator/src/test/org/codelutin/generator/models/ui/javaxml/org.codelutin.chorem.entities.ui.LoggedPanel.javaxml + // on enleve la premiere partie de l'arborescence + // org.codelutin.chorem.entities.ui.LoggedPanel.javaxml + // on enleve l'extension .javaxml + // org.codelutin.chorem.entities.ui.LoggedPanel + // on enleve le nom du fichier pour obtenir le nom du package + // org.codelutin.chorem.entities.ui + + int indexSlash = urlName.lastIndexOf("/"); + if(indexSlash!=-1){ + indexSlash++; + String name = urlName.substring(indexSlash, + urlName.lastIndexOf(".javaxml")); + + int indexPoint = name.lastIndexOf("."); + if(indexPoint!=-1){ + name = name.substring(0,indexPoint); + } + result.setPackageName(name); + } return result; } @@ -108,7 +130,6 @@ result.setModel(uimodel); result.setParent(parent); - uimodel.addObject(result); String type = current.attributeValue("class"); result.setType(type); @@ -153,6 +174,8 @@ result.addEvent(event); } + uimodel.addObject(result); + return result; } @@ -167,23 +190,32 @@ UIModelArgumentsImpl result = new UIModelArgumentsImpl(); //liste des arguments d'un propriete ou d'un objet. Ils ne sont pas des entites void mais int, double, ... (types primitfs), String - List listPrimitivElement = current.selectNodes("*[not(self::void) and not(self::object)]"); + List listPrimitivElement = current.selectNodes("*[not(self::void)]"); for(Iterator i = listPrimitivElement.iterator(); i.hasNext();){ - Element primitivElement = (Element)i.next(); - Object value = primitivElement.getData(); - result.addArgument(value); - } - - // les arguments peuvent etre aussi des objets mais dans ce cas il faut lui aussi le parser - List listObjectElement = current.selectNodes("object"); - for(Iterator i = listObjectElement.iterator(); i.hasNext();){ - - Element objectElement = (Element)i.next(); - UIModelObjectImpl value = parseObject(objectElement, parent); + Element element = (Element)i.next(); + String type = element.getQualifiedName(); + String valueString = element.getText(); + Object value = valueString; + if(type.equals("int")){ + value = new Integer(valueString); + }else if (type.equals("float")){ + value = new Float(valueString); + }else if (type.equals("double")){ + value = new Double(valueString); + }else if (type.equals("long")){ + value = new Long(valueString); + }else if (type.equals("short")){ + value = new Short(valueString); + }else if (type.equals("boolean")){ + value = new Boolean(valueString); + }else if (type.equals("byte")){ + value = new Byte(valueString); + }else if (type.equals("object")){ + value = parseObject(element, parent); + } result.addArgument(value); } - return result; } @@ -305,7 +337,7 @@ ch.setObject(child); ch.setConstraint(constraint); - child.setConstraint(constraint); + //child.setConstraint(constraint); result.add(ch); }