From: <jg...@us...> - 2006-09-20 15:28:40
|
Revision: 70 http://svn.sourceforge.net/surveyforge/?rev=70&view=rev Author: jgongo Date: 2006-09-20 08:28:07 -0700 (Wed, 20 Sep 2006) Log Message: ----------- First (very alpha) version of runner taking data from database Modified Paths: -------------- trunk/surveyforge-runner/pom.xml trunk/surveyforge-runner/src/main/java/org/surveyforge/runner/QuestionnaireFrame.java trunk/surveyforge-runner/src/main/java/org/surveyforge/runner/QuestionnaireRunner.java Added Paths: ----------- trunk/surveyforge-runner/src/main/filters/ trunk/surveyforge-runner/src/main/filters/database.properties trunk/surveyforge-runner/src/main/resources/META-INF/ trunk/surveyforge-runner/src/main/resources/META-INF/persistence.xml trunk/surveyforge-runner/src/main/resources/hibernate-entitymanager.jar trunk/surveyforge-runner/src/main/resources/javassist.jar trunk/surveyforge-runner/src/main/resources/jboss-archive-browsing.jar Modified: trunk/surveyforge-runner/pom.xml =================================================================== --- trunk/surveyforge-runner/pom.xml 2006-09-20 15:26:41 UTC (rev 69) +++ trunk/surveyforge-runner/pom.xml 2006-09-20 15:28:07 UTC (rev 70) @@ -9,6 +9,15 @@ <artifactId>surveyforge-runner</artifactId> <name>SurveyForge questionnaire runner</name> <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + </resources> + <filters> + <filter>src/main/filters/database.properties</filter> + </filters> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> @@ -56,11 +65,17 @@ <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> </dependency> + <!-- <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-annotations</artifactId> + <groupId>hibernate</groupId> + <artifactId>hibernate-entitymanager</artifactId> </dependency> + --> <dependency> + <groupId>postgresql</groupId> + <artifactId>postgresql</artifactId> + </dependency> + <dependency> <groupId>com.jgoodies</groupId> <artifactId>looks</artifactId> </dependency> Added: trunk/surveyforge-runner/src/main/filters/database.properties =================================================================== --- trunk/surveyforge-runner/src/main/filters/database.properties (rev 0) +++ trunk/surveyforge-runner/src/main/filters/database.properties 2006-09-20 15:28:07 UTC (rev 70) @@ -0,0 +1,5 @@ +database.dialect=org.hibernate.dialect.PostgreSQLDialect +database.driver=org.postgresql.Driver +database.url=jdbc:postgresql://localhost/surveyforge +database.username=postgres +database.password=postgres Modified: trunk/surveyforge-runner/src/main/java/org/surveyforge/runner/QuestionnaireFrame.java =================================================================== --- trunk/surveyforge-runner/src/main/java/org/surveyforge/runner/QuestionnaireFrame.java 2006-09-20 15:26:41 UTC (rev 69) +++ trunk/surveyforge-runner/src/main/java/org/surveyforge/runner/QuestionnaireFrame.java 2006-09-20 15:28:07 UTC (rev 70) @@ -151,7 +151,10 @@ } pageSectionPanelBuilder.nextColumn( ); // Needed to place cursor in correct column - pageSectionPanelBuilder.addLabel( element.getQuestion( ).getText( ) ); + if( element.getQuestion( ) != null ) + pageSectionPanelBuilder.addLabel( element.getQuestion( ).getText( ) ); + else + pageSectionPanelBuilder.nextColumn( 1 ); pageSectionPanelBuilder.nextColumn( 2 ); pageSectionPanelBuilder.add( this.createDataEntryComponent( element ) ); } @@ -196,9 +199,9 @@ final ClassificationValueDomain classificationValueDomain = (ClassificationValueDomain) valueDomain; JPanel classificationPanel = new JPanel( new FlowLayout( FlowLayout.LEFT ) ); // JComboBox classificationCombo = new JComboBox( classificationValueDomain.getLevel( ).getItems( ).toArray( ) ); - JComboBox classificationCombo = new JComboBox( - new ComboBoxAdapter( classificationValueDomain.getLevel( ).getItems( ), new QuestionnaireFrame.ClassificationConverter( - classificationValueDomain.getLevel( ), this.dataModel.getModel( propertyName ) ) ) ); + JComboBox classificationCombo = new JComboBox( new ComboBoxAdapter( classificationValueDomain.getLevel( ).getItems( ), + new QuestionnaireFrame.ClassificationConverter( classificationValueDomain.getLevel( ), this.dataModel + .getModel( propertyName ) ) ) ); // JTextField classificationCode = new JTextField( 5 ); final JTextField classificationCode = BasicComponentFactory.createTextField( this.dataModel.getModel( propertyName ) ); @@ -232,10 +235,6 @@ return verify( input ); } } ); - // JFormattedTextField classificationCode = new JFormattedTextField( new QuestionnaireFrame.ClassificationFormatter( - // classificationValueDomain.getLevel( ) ) ); - // PropertyConnector propertyConnector = new PropertyConnector( this.dataModel.getModel( "sexo" ), "value", classificationCode, - // "value" ); classificationPanel.add( classificationCombo ); classificationPanel.add( classificationCode ); Modified: trunk/surveyforge-runner/src/main/java/org/surveyforge/runner/QuestionnaireRunner.java =================================================================== --- trunk/surveyforge-runner/src/main/java/org/surveyforge/runner/QuestionnaireRunner.java 2006-09-20 15:26:41 UTC (rev 69) +++ trunk/surveyforge-runner/src/main/java/org/surveyforge/runner/QuestionnaireRunner.java 2006-09-20 15:28:07 UTC (rev 70) @@ -21,51 +21,21 @@ */ package org.surveyforge.runner; -import java.util.Arrays; -import java.util.GregorianCalendar; - +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.EntityTransaction; +import javax.persistence.Persistence; +import javax.persistence.Query; import javax.swing.JFrame; import javax.swing.UIManager; -import org.surveyforge.classification.Classification; -import org.surveyforge.classification.Family; -import org.surveyforge.classification.Item; -import org.surveyforge.classification.Level; -import org.surveyforge.classification.Version; -import org.surveyforge.core.metadata.Register; -import org.surveyforge.core.metadata.RegisterDataElement; -import org.surveyforge.core.metadata.domain.AbstractValueDomain; -import org.surveyforge.core.metadata.domain.ClassificationValueDomain; -import org.surveyforge.core.metadata.domain.QuantityValueDomain; -import org.surveyforge.core.metadata.domain.StructuredValueDomain; -import org.surveyforge.core.survey.Question; import org.surveyforge.core.survey.Questionnaire; -import org.surveyforge.core.survey.QuestionnaireElement; -import org.surveyforge.core.survey.Study; /** * @author jgonzalez */ public class QuestionnaireRunner { - public static Classification SEXO; - - static - { - GregorianCalendar calendar = new GregorianCalendar( ); - calendar.clear( ); - calendar.set( 2006, 0, 1 ); - - Family ceescat_hivudvp = new Family( "ceescat-hivudvp" ); - - QuestionnaireRunner.SEXO = new Classification( ceescat_hivudvp, "hivudvp-sexo" ); - Version sexoV = new Version( QuestionnaireRunner.SEXO, "sexo V1", calendar.getTime( ) ); - Level sexoL = new Level( sexoV, "sexo L1" ); - new Item( sexoL, null, "1", "Hombre" ); - new Item( sexoL, null, "2", "Mujer" ); - new Item( sexoL, null, "3", "Transexual" ); - } - public static void main( String[] args ) { try @@ -78,128 +48,31 @@ // Likely PlasticXP is not in the class path; ignore. } - QuestionnaireFrame questionnaireFrame = new QuestionnaireFrame( QuestionnaireRunner.getQuestionnaire( ) ); - questionnaireFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); - questionnaireFrame.pack( ); - questionnaireFrame.setVisible( true ); - } - - public static Questionnaire getQuestionnaire( ) - { - Level sexoL = QuestionnaireRunner.SEXO.getCurrentVersion( ).getLevels( ).get( 0 ); - - Register register = new Register( "register" ); - register.setIdentifier( "registroPrueba" ); - - AbstractValueDomain mesNacimientoValueDomain = new QuantityValueDomain( 2, 0 ); - AbstractValueDomain anyoNacimientoValueDomain = new QuantityValueDomain( 4, 0 ); - StructuredValueDomain fechaNacimientoValueDomain = new StructuredValueDomain( ); - fechaNacimientoValueDomain.addSubDomain( mesNacimientoValueDomain ); - fechaNacimientoValueDomain.addSubDomain( anyoNacimientoValueDomain ); - - RegisterDataElement mesNacimiento = new RegisterDataElement( "mesNacimiento", mesNacimientoValueDomain ); - RegisterDataElement anyoNacimiento = new RegisterDataElement( "anyoNacimiento", anyoNacimientoValueDomain ); -// RegisterDataElement fechaNacimiento = new RegisterDataElement( "fechaNacimiento", fechaNacimientoValueDomain ); -// fechaNacimiento.addComponentElement( mesNacimiento ); -// fechaNacimiento.addComponentElement( anyoNacimiento ); - RegisterDataElement sexo = new RegisterDataElement( "sexo", new ClassificationValueDomain( sexoL ) ); - -// register.setComponentElements( Arrays.asList( new RegisterDataElement[] {fechaNacimiento, sexo} ) ); - register.setComponentElements( Arrays.asList( new RegisterDataElement[] {mesNacimiento, anyoNacimiento, sexo} ) ); - - Study study = new Study( "study" ); - Questionnaire questionnaire = new Questionnaire( study, register, "questionnaire" ); - - Question pMesNacimiento = new Question( "pMesNacimiento" ); - pMesNacimiento.setText( "En qué mes naciste?" ); - QuestionnaireElement qMesNacimiento = new QuestionnaireElement( mesNacimiento ); - qMesNacimiento.setQuestion( pMesNacimiento ); - questionnaire.addElement( qMesNacimiento ); - - Question pAnyoNacimiento = new Question( "pAnyoNacimiento" ); - pAnyoNacimiento.setText( "En qué año naciste?" ); - QuestionnaireElement qAnyoNacimiento = new QuestionnaireElement( anyoNacimiento ); - qAnyoNacimiento.setQuestion( pAnyoNacimiento ); - questionnaire.addElement( qAnyoNacimiento ); - - Question pSexo = new Question( "pSexo" ); - pSexo.setText( "Sexo" ); - QuestionnaireElement qSexo = new QuestionnaireElement( sexo ); - qSexo.setQuestion( pSexo ); - questionnaire.addElement( qSexo ); - - return questionnaire; - } - - public static class TempQuestionnaire - { - private int mesNacimiento = 1; - private int anyoNacimiento = 1985; - // private QuestionnaireRunner.TempSexo sexo = new QuestionnaireRunner.TempSexo( ); - - private String sexo = QuestionnaireRunner.SEXO.getCurrentVersion( ).getLevels( ).get( 0 ).getItems( ).get( 2 ).getCode( ); - - public String getSexo( ) + EntityManager entityManager = null; + EntityTransaction transaction = null; + QuestionnaireFrame questionnaireFrame = null; + try { - System.out.println( "Devolviendo valor sexo: " + sexo ); - return sexo; - } + EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory( "hivudvp" ); + entityManager = entityManagerFactory.createEntityManager( ); + transaction = entityManager.getTransaction( ); + transaction.begin( ); - public void setSexo( String sexo ) - { - System.out.println( "Nuevo valor sexo: " + sexo ); - this.sexo = sexo; + Query questionnaireQuery = entityManager.createQuery( "FROM Questionnaire q WHERE q.identifier = :questionnaireIdentifier" ); + questionnaireQuery.setParameter( "questionnaireIdentifier", args[0] ); + if( !questionnaireQuery.getResultList( ).isEmpty( ) ) + { + questionnaireFrame = new QuestionnaireFrame( (Questionnaire) questionnaireQuery.getResultList( ).get( 0 ) ); + questionnaireFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); + questionnaireFrame.pack( ); + } } - - public int getMesNacimiento( ) + finally { - System.out.println( "Devolviendo valor mes: " + mesNacimiento ); - return mesNacimiento; + if( transaction != null ) transaction.commit( ); + if( entityManager != null ) entityManager.close( ); } - public void setMesNacimiento( int mesNacimiento ) - { - System.out.println( "Nuevo valor mes: " + mesNacimiento ); - this.mesNacimiento = mesNacimiento; - } - - public int getAnyoNacimiento( ) - { - System.out.println( "Devolviendo valor anyo: " + anyoNacimiento ); - return anyoNacimiento; - } - - public void setAnyoNacimiento( int anyoNacimiento ) - { - System.out.println( "Nuevo valor anyo: " + anyoNacimiento ); - this.anyoNacimiento = anyoNacimiento; - } - - // public QuestionnaireRunner.TempSexo getSexo( ) - // { - // return sexo; - // } - // - // public void setSexo( QuestionnaireRunner.TempSexo sexo ) - // { - // this.sexo = sexo; - // } + if( questionnaireFrame != null ) questionnaireFrame.setVisible( true ); } - - public static class TempSexo - { - private String sexo = QuestionnaireRunner.SEXO.getCurrentVersion( ).getLevels( ).get( 0 ).getItems( ).get( 2 ).getCode( ); - - public String getSexo( ) - { - System.out.println( "Devolviendo valor sexo: " + sexo ); - return sexo; - } - - public void setSexo( String sexo ) - { - System.out.println( "Nuevo valor sexo: " + sexo ); - this.sexo = sexo; - } - } } Added: trunk/surveyforge-runner/src/main/resources/META-INF/persistence.xml =================================================================== --- trunk/surveyforge-runner/src/main/resources/META-INF/persistence.xml (rev 0) +++ trunk/surveyforge-runner/src/main/resources/META-INF/persistence.xml 2006-09-20 15:28:07 UTC (rev 70) @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8"?> +<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" + version="1.0"> + <persistence-unit name="hivudvp"> + <class>org.surveyforge.util.InternationalizedString</class> + + <class>org.surveyforge.classification.Family</class> + <class>org.surveyforge.classification.Classification</class> + <class>org.surveyforge.classification.Version</class> + <class>org.surveyforge.classification.Level</class> + <class>org.surveyforge.classification.Item</class> + + <class>org.surveyforge.core.survey.Study</class> + <class>org.surveyforge.core.survey.Questionnaire</class> + <class>org.surveyforge.core.survey.QuestionnaireElement</class> + <class>org.surveyforge.core.survey.Question</class> + <class>org.surveyforge.core.survey.Feed</class> + <class>org.surveyforge.core.survey.SectionFeed</class> + + <class>org.surveyforge.core.metadata.ValidationRule</class> + <class>org.surveyforge.core.metadata.Register</class> + <class>org.surveyforge.core.metadata.RegisterDataElement</class> + <class>org.surveyforge.core.metadata.ConceptualDataElement</class> + <class>org.surveyforge.core.metadata.DataElement</class> + <class>org.surveyforge.core.metadata.QuestionDataElement</class> + <class>org.surveyforge.core.metadata.ValueDomain</class> + <class>org.surveyforge.core.metadata.ObjectVariable</class> + <class>org.surveyforge.core.metadata.GlobalVariable</class> + <class>org.surveyforge.core.metadata.VariableFamily</class> + <class>org.surveyforge.core.metadata.StatisticalObjectType</class> + + <class>org.surveyforge.core.metadata.domain.ClassificationValueDomain</class> + <class>org.surveyforge.core.metadata.domain.LogicalValueDomain</class> + <class>org.surveyforge.core.metadata.domain.QuantityValueDomain</class> + <class>org.surveyforge.core.metadata.domain.StringValueDomain</class> + <class>org.surveyforge.core.metadata.domain.StructuredValueDomain</class> + <class>org.surveyforge.core.metadata.domain.AbstractValueDomain</class> + + <class>org.surveyforge.core.data.RegisterData</class> + <class>org.surveyforge.core.data.ObjectData</class> + <class>org.surveyforge.core.data.Data</class> + + <!-- + <properties> + <property name="hibernate.dialect" value="${database.dialect}" /> + <property name="hibernate.connection.driver_class" value="${database.driver}" /> + <property name="hibernate.connection.url" value="${database.url}" /> + <property name="hibernate.connection.username" value="${database.username}" /> + <property name="hibernate.connection.password" value="${database.password}" /> + </properties> + --> + <properties> + <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" /> + <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" /> + <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/surveyforge" /> + <property name="hibernate.connection.username" value="postgres" /> + <property name="hibernate.connection.password" value="postgres" /> + </properties> + </persistence-unit> +</persistence> \ No newline at end of file Property changes on: trunk/surveyforge-runner/src/main/resources/META-INF/persistence.xml ___________________________________________________________________ Name: svn:keywords + Date Revision Author HeadURL Id Added: trunk/surveyforge-runner/src/main/resources/hibernate-entitymanager.jar =================================================================== (Binary files differ) Property changes on: trunk/surveyforge-runner/src/main/resources/hibernate-entitymanager.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/surveyforge-runner/src/main/resources/javassist.jar =================================================================== (Binary files differ) Property changes on: trunk/surveyforge-runner/src/main/resources/javassist.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/surveyforge-runner/src/main/resources/jboss-archive-browsing.jar =================================================================== (Binary files differ) Property changes on: trunk/surveyforge-runner/src/main/resources/jboss-archive-browsing.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |