Index: topia/src/java/org/codelutin/topia/generators/ui/ObjectModelToEntityUIModel.java diff -u topia/src/java/org/codelutin/topia/generators/ui/ObjectModelToEntityUIModel.java:1.6 topia/src/java/org/codelutin/topia/generators/ui/ObjectModelToEntityUIModel.java:1.7 --- topia/src/java/org/codelutin/topia/generators/ui/ObjectModelToEntityUIModel.java:1.6 Wed Jun 9 10:58:37 2004 +++ topia/src/java/org/codelutin/topia/generators/ui/ObjectModelToEntityUIModel.java Wed Jun 9 16:08:22 2004 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ * - * Mise a jour: $Date: 2004/06/09 10:58:37 $ + * Mise a jour: $Date: 2004/06/09 16:08:22 $ * par : $Author: mazelier $ */ @@ -79,15 +79,16 @@ - }*/ + }*/ int counterArguments =0; for(Iterator i=clazz.getAttributes().iterator(); i.hasNext();) { ObjectModelAttribute att = (ObjectModelAttribute)i.next(); if("public".equals(att.getVisibility())) { - /*{ + + /*{ @@ -129,8 +130,7 @@ - }*/ - + }*/ if(att.referenceClassifier()){ generateEntityEditor(output, att, counterArguments); @@ -144,6 +144,7 @@ counterArguments++; } } + /*{ @@ -368,9 +369,10 @@ * todo faudra peut etre creer un editor * Genere un JTextField (normalement avec 1 char) */ - public void generateCharEditor(Writer output, ObjectModelAttribute att, int counterArguments) - throws IOException { - /*{ + + public void generateCharEditor(Writer output, ObjectModelAttribute att, int counterArguments) + throws IOException { + /*{ @@ -407,8 +409,8 @@ - }*/ - } + }*/ + } } // ObjectModelToEntityUIModel Index: topia/src/java/org/codelutin/topia/generators/ui/UIModelToUICallbackSwingGenerator.java diff -u topia/src/java/org/codelutin/topia/generators/ui/UIModelToUICallbackSwingGenerator.java:1.1 topia/src/java/org/codelutin/topia/generators/ui/UIModelToUICallbackSwingGenerator.java:1.2 --- topia/src/java/org/codelutin/topia/generators/ui/UIModelToUICallbackSwingGenerator.java:1.1 Wed Jun 9 11:00:15 2004 +++ topia/src/java/org/codelutin/topia/generators/ui/UIModelToUICallbackSwingGenerator.java Wed Jun 9 16:08:22 2004 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * - * Mise a jour: $Date: 2004/06/09 11:00:15 $ + * Mise a jour: $Date: 2004/06/09 16:08:22 $ * par : $Author: mazelier $ */ @@ -42,6 +42,11 @@ import java.util.Iterator; import org.codelutin.topia.Util; +/** +* Classe qui permet de generer une interface a partir d'un uimodel +* Cette classe etend le generator present dans lutingenerator +* @see UIModel +*/ public class UIModelToUICallbackSwingGenerator extends UIModelGenerator { // UIModelToUICallbackSwingGenerator /** @@ -49,7 +54,7 @@ */ public String getFilenameForUIModel(UIModel model) { String name = model.getRoot().getName(); - return model.getPackage().replace('.', File.separatorChar) + Util.toUpperCaseFirstLetter(name) + "UICallback.java"; + return model.getPackage().replace('.', File.separatorChar) + File.separatorChar + Util.toUpperCaseFirstLetter(name) + "UICallback.java"; } /** @@ -57,10 +62,16 @@ */ public void generateFromUIModel(Writer output, UIModel model) throws IOException { + // ------------- File Header if (!model.getPackage().equals("")) { /*{ - package <%=model.getPackage()%>; + + package <%=model.getPackage()%>; }*/ } // ------------- Imports @@ -69,6 +80,7 @@ public interface <%= Util.toUpperCaseFirstLetter(model.getRoot().getName()) %>UICallback { }*/ + // generation des signatures des handlers de l'objet for(Iterator o = model.getObjects().iterator(); o.hasNext();) { UIModelObject object = (UIModelObject)o.next(); for(Iterator i = object.getEvents().iterator(); i.hasNext();){ Index: topia/src/java/org/codelutin/topia/generators/ui/UIModelToUISwingGenerator.java diff -u topia/src/java/org/codelutin/topia/generators/ui/UIModelToUISwingGenerator.java:1.1 topia/src/java/org/codelutin/topia/generators/ui/UIModelToUISwingGenerator.java:1.2 --- topia/src/java/org/codelutin/topia/generators/ui/UIModelToUISwingGenerator.java:1.1 Wed Jun 9 11:00:15 2004 +++ topia/src/java/org/codelutin/topia/generators/ui/UIModelToUISwingGenerator.java Wed Jun 9 16:08:22 2004 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin -* @version $Revision: 1.1 $ +* @version $Revision: 1.2 $ * -* Mise a jour: $Date: 2004/06/09 11:00:15 $ +* Mise a jour: $Date: 2004/06/09 16:08:22 $ * par : $Author: mazelier $ */ @@ -43,7 +43,11 @@ import java.util.Collection; import java.util.Iterator; - +/** +* Classe qui permet de generer une classe java a partir d'un uimodel +* Cette classe etend le generator present dans lutingenerator +* @see UIModel +*/ public class UIModelToUISwingGenerator extends UIModelGenerator { //UIModelToUISwingGenerator /** @@ -53,9 +57,13 @@ public String getFilenameForUIModel(UIModel model) { String name = model.getRoot().getName(); return model.getPackage().replace('.', File.separatorChar) - + Util.toUpperCaseFirstLetter(name) + "UI.java"; + + File.separatorChar + Util.toUpperCaseFirstLetter(name) + "UI.java"; } + /** + * Methode qui permet de generer une classe UI a partir de UIModel + * + */ public void generateFromUIModel(Writer output, UIModel model) throws IOException { for(Iterator o = model.getObjects().iterator(); o.hasNext();){ @@ -64,68 +72,73 @@ } } + /** + * Methode qui permet de creer l'entete de classe generee + */ public void generateForRoot(Writer output, UIModelObject object) throws IOException { - // ------------- File Header +// ------------- File Header if (!object.getModel().getPackage().equals("")) { /*{ + package <%=Util.getParentPackageName(object.getModel().getPackage())%>.ui; }*/ } - // ------------- Imports - /*{ - import org.codelutin.topia.TopiaException; - import java.util.ArrayList; - - - public abstract class <%= Util.toUpperCaseFirstLetter(object.getName()) %>UI extends - <%= object.getType() %> implements <%= Util.toUpperCaseFirstLetter(object.getName()) %>UICallback { - - }*/ - - if (object.getType().equals("javax.swing.JDialog")){ - /*{ - public <%=Util.toUpperCaseFirstLetter(object.getName())%>UI(){ - this((Frame)null); - } - - public <%=Util.toUpperCaseFirstLetter(object.getName())%>UI(Dialog owner){ - super(owner, - i18n._("<%= object.getProperty("title").getStringValue() %>"), - <%= object.getProperty("modal").getBooleanValue() %>); - } - - public <%=Util.toUpperCaseFirstLetter(object.getName())%>UI(Frame owner){ - super(owner, - i18n._("<%= object.getProperty("title").getStringValue() %>"), - <%= object.getProperty("modal").getBooleanValue() %>); - } - }*/ - - }else if (object.getType().equals("javax.swing.JFrame")){ - /*{ - public <%=Util.toUpperCaseFirstLetter(object.getName())%>UI(){ - super(i18n._("<%= object.getProperty("title").getStringValue()%>")); - } - }*/ +// ------------- Imports +/*{ - }else{ - /*{ - public <%=Util.toUpperCaseFirstLetter(object.getName())%>UI(){ - super(); - } - }*/ - } + import org.codelutin.topia.TopiaException; + import java.util.ArrayList; - generateChildStatement(output, object); - generateConstraintStatement(output, object); - // accolade de fin de classe - /*{ - } - }*/ + public abstract class <%= Util.toUpperCaseFirstLetter(object.getName()) %>UI extends <%=object.getType()%> implements <%=Util.toUpperCaseFirstLetter(object.getName())%>UICallback { +}*/ + //creation des constructeurs selon le type de l'objet + if (object.getType().equals("javax.swing.JDialog")){ +/*{ + + public <%=Util.toUpperCaseFirstLetter(object.getName())%>UI(){ + this((Frame)null); + } + + public <%=Util.toUpperCaseFirstLetter(object.getName())%>UI(Dialog owner){ + super(owner, i18n._("<%=object.getProperty("title").getStringValue()%>"), <%=object.getProperty("modal").getBooleanValue()%>); + } + + public <%=Util.toUpperCaseFirstLetter(object.getName())%>UI(Frame owner){ + super(owner, i18n._("<%=object.getProperty("title").getStringValue()%>"), <%=object.getProperty("modal").getBooleanValue()%>); + } +}*/ + }else if (object.getType().equals("javax.swing.JFrame")){ +/*{ + + public <%=Util.toUpperCaseFirstLetter(object.getName())%>UI(){ + super(i18n._("<%=object.getProperty("title").getStringValue()%>")); + } +}*/ + }else{ +/*{ + + public <%=Util.toUpperCaseFirstLetter(object.getName())%>UI(){ + super(); + } +}*/ + } + + // creation de la methode qui permettra de recuperer les enfants de cet objet + generateChildStatement(output, object); + // creation de la methode qui permettra de recuperer les constraints des enfants de cet objet + generateConstraintStatement(output, object); + // accolade de fin de classe +/*{ + } +}*/ } /** @@ -136,80 +149,77 @@ throws IOException { if(object.getParent() == null){ + // appel a l'entete de la classe generateForRoot(output, object); }else{ - /*{ - private <%= object.getType() %> __<%= object.getName() %>__ = null; - public <%= object.getType() %> get<%= - Util.toUpperCaseFirstLetter(object.getName()) %>() { - - // test si deja instancier - if(__<%= object.getName() %>__ == null){ - - // creation de l'objet avec les arguments de construction - - }*/ - generateCreationStatement(output, object); - /*{ - // applications des proprietes - }*/ - generateSetStatement(output, object); - /*{ - - // recuperation des differentes donnees concernant l'objet - ArrayList childs = - get<%= Util.toUpperCaseFirstLetter(object.getName()) %>Childs(); - ArrayList constraints = - get<%= Util.toUpperCaseFirstLetter(object.getName()) %>Constraints(); - - // ajout des enfants avec leur contrainte - Iterator iConstraints = constraints.iterator(); - for(Iterator iChilds = childs.iterator(); iChilds.hasNext(); ){ - Component c = (Component)iChilds.next(); - result.add(c, iConstraints.next()); - - }*/ - if (object.getType().equals("javax.swing.JTabbedPane")){ - /*{ - result.setTitleAt(i, c.getName()); - - }*/ - } - /*{ - } - //ajout des events - }*/ - generateHandlerEventStatement(output, object); - /*{ - __<%= object.getName() %>__ = result; - } - return __<%= object.getName() %>__ ; - } + /*{ + // declaration de l'objet + private <%=object.getType()%> __<%=object.getName()%>__ = null; + public <%=object.getType()%> get<%=Util.toUpperCaseFirstLetter(object.getName())%>() { + + // test si deja instancier + if(__<%= object.getName() %>__ == null){ + // creation de l'objet avec les arguments de construction +}*/ + generateCreationStatement(output, object); +/*{ + // applications des proprietes +}*/ + generateSetStatement(output, object); +/*{ + // recuperation des differentes donnees concernant l'objet + ArrayList childs = get<%=Util.toUpperCaseFirstLetter(object.getName())%>Childs(); + + ArrayList constraints = get<%=Util.toUpperCaseFirstLetter(object.getName())%>Constraints(); - }*/ + // ajout des enfants avec leur contrainte + Iterator iConstraints = constraints.iterator(); + for(Iterator iChilds = childs.iterator(); iChilds.hasNext(); ){ + Component c = (Component)iChilds.next(); + result.add(c, iConstraints.next()); +}*/ + if (object.getType().equals("javax.swing.JTabbedPane")){ +/*{ + result.setTitleAt(i, c.getName()); +}*/ + } +/*{ + } +}*/ + generateHandlerEventStatement(output, object); +/*{ + __<%= object.getName() %>__ = result; + } + return __<%= object.getName() %>__ ; + } +}*/ - generateChildStatement(output, object); - generateConstraintStatement(output, object); + // generation de la methode pour recuperer les enfants de cet objet + generateChildStatement(output, object); + // generation de la methode pour recuperer les constraints des enfants de cet objet + generateConstraintStatement(output, object); } } /** - * Methode pour generer les arguments de l'objet + * Methode pour creer l'objet avec les arguments definis dans l'uimodel */ public void generateCreationStatement(Writer output, UIModelObject object) throws IOException { ArrayList args = (ArrayList)object.getArguments(); if (args.size() == 0 ){ - /*{ - <%= object.getType() %> result = new <%= object.getType() %>(); - }*/ +/*{ + + <%= object.getType() %> result = new <%= object.getType() %>(); +}*/ }else{ - /*{ - <%= object.getType() %> result = new <%= object.getType() %>( - }*/ +/*{ + + <%= object.getType() %> result = new <%= object.getType() %>( +}*/ for(Iterator i=args.iterator(); i.hasNext();){ Object arg = i.next(); @@ -218,40 +228,41 @@ UIModelObject objectArg = (UIModelObject)arg; generateForUIModelObject(output, objectArg); - /*{ - __<%= objectArg.getName() %>__ - }*/ +/*{ + __<%= objectArg.getName() %>__ +}*/ }else if (arg instanceof String){ String argString = (String)arg; - /*{ - <%= "argString" %> - }*/ +/*{ + <%= "argString" %> +}*/ }else if (arg instanceof Character){ char argChar = ((Character)arg).charValue(); - /*{ - '<%= argChar %>' - }*/ +/*{ + '<%= argChar %>' +}*/ }else{ - /*{ - <%= arg.toString() %> - }*/ +/*{ + <%= arg.toString() %> +}*/ } if (i.hasNext()){ - /*{ - , - }*/ +/*{ + , +}*/ } } - /*{ - ); - }*/ +/*{ + ); +}*/ } } /** - * Methode pour generer les proprietes de l'objet + * Methode pour modifier les prorpietes de l'objet selon les valeurs definies dans + * l'uimodel */ public void generateSetStatement(Writer output, UIModelObject object) throws IOException { @@ -265,35 +276,33 @@ String propertyName = property.getName(); try{ - - - + // cas ou la propriete est indexee String index = (property.isIndexed()) ? new String(property.getIndex()+", "):""; + // cas ou la propriete est un objet if (arg instanceof UIModelObject){ UIModelObject objectArg = (UIModelObject)arg; generateForUIModelObject(output, objectArg); - /*{ - __<%= object.getName() %>__.set<%= Util.toUpperCaseFirstLetter(propertyName) %>( - - <%=index%>get<%= Util.toUpperCaseFirstLetter(objectArg.getName()) %>()); - }*/ +/*{ + __<%=object.getName()%>__.set<%=Util.toUpperCaseFirstLetter(propertyName)%>(<%=index%>get<%=Util.toUpperCaseFirstLetter(objectArg.getName())%>()); +}*/ + // cas ou la propriete est de type string }else if (arg instanceof String){ - /*{ - __<%= object.getName() %>__.set<%= Util.toUpperCaseFirstLetter(propertyName) %>(<%=index%>"<%= property.getStringValue() %>"); - }*/ +/*{ + __<%=object.getName()%>__.set<%=Util.toUpperCaseFirstLetter(propertyName)%>(<%=index%>"<%=property.getStringValue()%>"); +}*/ + // cas ou la propriete est de type char }else if (arg instanceof Character){ - /*{ - __<%= object.getName() %>__.set<%= Util.toUpperCaseFirstLetter(propertyName) %>(<%=index%>'<%= property.getCharValue() %>'); - }*/ - - }else{ - /*{ - __<%= object.getName() %>__.set<%= Util.toUpperCaseFirstLetter(propertyName) %>(<%=index%><%= property.getValue().toString() %>); - }*/ +/*{ + __<%=object.getName()%>__.set<%=Util.toUpperCaseFirstLetter(propertyName)%>(<%=index%>'<%=property.getCharValue()%>'); +}*/ +}else{ +/*{ + __<%=object.getName()%>__.set<%=Util.toUpperCaseFirstLetter(propertyName)%>(<%=index%><%=property.getValue().toString()%>); +}*/ } }catch(Exception eee){ System.out.println("Impossible d'acceder a l'index de la propriete " + propertyName); @@ -304,7 +313,7 @@ /** - * Methode pour generer les events de l'objet + * Methode pour affecter les events a l'objet */ public void generateHandlerEventStatement(Writer output, UIModelObject object) throws IOException { @@ -313,72 +322,78 @@ for(Iterator i=events.iterator(); i.hasNext();){ UIModelEvent event = (UIModelEvent) i.next(); - /*{ - Object l = EventHandler.create(<%= event.getSource() %>.class, - this, - "<%= event.getHandler() %>", - "<%= event.getArgument() %>", - "<%= event.getAction() %>"); +/*{ - __<%= object.getName() %>__.<%= event.getAddMethod() %>((<%= event.getSource() %>)l); - }*/ + //ajout des events + Object l = EventHandler.create(<%= event.getSource() %>.class, __<%=object.getName()%>__, "<%=event.getHandler()%>", "<%=event.getArgument()%>", "<%=event.getAction()%>"); + + __<%=object.getName()%>__.<%=event.getAddMethod()%>((<%=event.getSource()%>)l); +}*/ } } /** - * Methode pour generer les enfants de l'objet + * Methode pour generer une methode qui permet de retourner les enfants de l'objet */ public void generateChildStatement(Writer output, UIModelObject object) throws IOException { - /*{ - public ArrayList get__<%= object.getName() %>Childs() { - ArrayList children = new ArrayList(); - }*/ - for(Iterator i=object.getChildren().iterator(); i.hasNext();){ - UIModelObject objectChild = (UIModelObject) i.next(); - - generateForUIModelObject(output, objectChild); - /*{ - children.add(__<%= objectChild.getName() %>__); - }*/ - } - /*{ - return children; - } - }*/ +/*{ + + public ArrayList get<%=Util.toUpperCaseFirstLetter(object.getName())%>Childs() { + ArrayList children = new ArrayList(); +}*/ + for(Iterator i=object.getChildren().iterator(); i.hasNext();){ + UIModelObject objectChild = (UIModelObject) i.next(); + + generateForUIModelObject(output, objectChild); +/*{ + children.add(__<%= objectChild.getName() %>__); +}*/ + } +/*{ + return children; + } +}*/ } /** - * Methode pour generer les enfants de l'objet + * Methode pour generer une methode qui permet de retourner les constraints + * enfants de l'objet */ public void generateConstraintStatement(Writer output, UIModelObject object) throws IOException { - /*{ - public ArrayList get__<%= object.getName() %>Constraints() { - ArrayList constraints = new ArrayList(); - }*/ - for(Iterator i=object.getChildren().iterator(); i.hasNext();){ - UIModelObject objectChild = (UIModelObject) i.next(); - UIModelConstraint objectConstraint = objectChild.getConstraint(); - - if (objectConstraint instanceof UIModelObject) { - UIModelObject constraint = (UIModelObject)objectConstraint.getValue(); - generateForUIModelObject(output, constraint); - /*{ - constraints.add(__<%= constraint.getName() %>__); - }*/ - }else{ - /*{ - constraints.add(<%= objectConstraint.getStringValue() %>); - }*/ - } - } - /*{ - return constraints; + +/*{ + + public ArrayList get<%=Util.toUpperCaseFirstLetter(object.getName())%>Constraints() { + + ArrayList constraints = new ArrayList(); +}*/ + for(Iterator i=object.getChildren().iterator(); i.hasNext();){ + // recuperation de l'objet de l'enfant + UIModelObject objectChild = (UIModelObject) i.next(); + // recuperation de la constrainte pour cet objet + UIModelConstraint objectConstraint = objectChild.getConstraint(); + + // la contrainte peut etre de 2 types : un objet ou une string + if (objectConstraint instanceof UIModelObject) { + UIModelObject constraint = (UIModelObject)objectConstraint.getValue(); + generateForUIModelObject(output, constraint); +/*{ + constraints.add(__<%=constraint.getName()%>__); +}*/ + }else{ +/*{ + constraints.add(<%=objectConstraint.getStringValue()%>); +}*/ } - }*/ + } +/*{ + return constraints; + } +}*/ }