ontomde-uml2-struts 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +5 -0
 - data/Manifest.txt +31 -0
 - data/README.txt +38 -0
 - data/Rakefile +32 -0
 - data/lib/ontomde-uml2-struts/MessageResources.rb +356 -0
 - data/lib/ontomde-uml2-struts/action.rb +886 -0
 - data/lib/ontomde-uml2-struts/blob.rb +11 -0
 - data/lib/ontomde-uml2-struts/exceptionHandling.rb +167 -0
 - data/lib/ontomde-uml2-struts/footer.rb +128 -0
 - data/lib/ontomde-uml2-struts/form.rb +483 -0
 - data/lib/ontomde-uml2-struts/header.rb +37 -0
 - data/lib/ontomde-uml2-struts/header_link.rb +39 -0
 - data/lib/ontomde-uml2-struts/jsp_edit.rb +866 -0
 - data/lib/ontomde-uml2-struts/jsp_edit_field.rb +1 -0
 - data/lib/ontomde-uml2-struts/jsp_edit_js.rb +124 -0
 - data/lib/ontomde-uml2-struts/jsp_index.rb +131 -0
 - data/lib/ontomde-uml2-struts/localeAction.rb +641 -0
 - data/lib/ontomde-uml2-struts/main.rb +140 -0
 - data/lib/ontomde-uml2-struts/mappingForBean.rb +132 -0
 - data/lib/ontomde-uml2-struts/mappingForJsp.rb +272 -0
 - data/lib/ontomde-uml2-struts/mappingToJavaHierarchy.rb +87 -0
 - data/lib/ontomde-uml2-struts/reloadAction.rb +33 -0
 - data/lib/ontomde-uml2-struts/spring.rb +89 -0
 - data/lib/ontomde-uml2-struts/struts-config.rb +232 -0
 - data/lib/ontomde-uml2-struts/validation.rb +116 -0
 - data/lib/ontomde-uml2-struts/validator.rb +341 -0
 - data/lib/ontomde-uml2-struts/version.rb +7 -0
 - data/lib/ontomde-uml2-struts/webXml.rb +165 -0
 - data/lib/ontomde-uml2-struts/xmlForm.rb +308 -0
 - data/lib/ontomde-uml2-struts.rb +34 -0
 - data/test/test_ontomde-uml2-struts.rb +0 -0
 - metadata +112 -0
 
| 
         @@ -0,0 +1,140 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
             
     | 
| 
      
 2 
     | 
    
         
            +
            module Mrdf_Model
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            def struts_allInOneTransform!
         
     | 
| 
      
 5 
     | 
    
         
            +
            	umlx_autoImplementProperty! if context[:withAutoImplementProperty]
         
     | 
| 
      
 6 
     | 
    
         
            +
            	umlx_autoImplementOperation! if context[:withAutoImplementOperation]
         
     | 
| 
      
 7 
     | 
    
         
            +
                    java_addEnumAssignable! if context[:withEnumAssignable]
         
     | 
| 
      
 8 
     | 
    
         
            +
            	#
         
     | 
| 
      
 9 
     | 
    
         
            +
            	#Usefull in case of Flex integration
         
     | 
| 
      
 10 
     | 
    
         
            +
            	java_addEnumCompatibilityLayerProperties! if context[:withEnumAsString]
         
     | 
| 
      
 11 
     | 
    
         
            +
            	umlx_MarkAllAsbusinessMethod!
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            	umlx_makeCompositionNavigable!
         
     | 
| 
      
 14 
     | 
    
         
            +
            	struts_addReloadDefinitionsAction
         
     | 
| 
      
 15 
     | 
    
         
            +
            	struts_addAllOperationAggregateParameterClass!
         
     | 
| 
      
 16 
     | 
    
         
            +
            	java_transform!
         
     | 
| 
      
 17 
     | 
    
         
            +
            	db_addPersistence!
         
     | 
| 
      
 18 
     | 
    
         
            +
            	struts_addActionLocaleForm!
         
     | 
| 
      
 19 
     | 
    
         
            +
            	struts_addPerClassElement!
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            	db_addTestImplementations! if context[:simulateNotImplementedMethods]
         
     | 
| 
      
 23 
     | 
    
         
            +
            	struts_messageCheck if context[:messageCheck]
         
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            def struts_viewableClassifier(ignoreAbstract=true)
         
     | 
| 
      
 27 
     | 
    
         
            +
            		ret=Array.new
         
     | 
| 
      
 28 
     | 
    
         
            +
            		uml_Class_all.each { |c|
         
     | 
| 
      
 29 
     | 
    
         
            +
            			next unless (c.kind_of?(Muml_Class) && c.umlx_isReallyAClass?) #TODO: for jdo || c.kind_of?(Muml_Interface)
         
     | 
| 
      
 30 
     | 
    
         
            +
            			next if c.java_ignoreMe?
         
     | 
| 
      
 31 
     | 
    
         
            +
            			next if c.struts_isForm?
         
     | 
| 
      
 32 
     | 
    
         
            +
            			#next if c.java_isATestFile?
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  #TODO: Hack for  human task (bug if MPC in name)!
         
     | 
| 
      
 35 
     | 
    
         
            +
                  if context[:db_useStereotypeMarker] && !"#{c.uml_name}".include?("MPC")
         
     | 
| 
      
 36 
     | 
    
         
            +
                     next if c.db_isTransient?
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            			next if c.db_isDAO?
         
     | 
| 
      
 40 
     | 
    
         
            +
            			next unless c.umlx_businessMethod?
         
     | 
| 
      
 41 
     | 
    
         
            +
            			#no struts for abstract classes
         
     | 
| 
      
 42 
     | 
    
         
            +
            			next if c.uml_isAbstract? && ignoreAbstract
         
     | 
| 
      
 43 
     | 
    
         
            +
            			ret<< c
         
     | 
| 
      
 44 
     | 
    
         
            +
            		}
         
     | 
| 
      
 45 
     | 
    
         
            +
            		return ret
         
     | 
| 
      
 46 
     | 
    
         
            +
            end
         
     | 
| 
      
 47 
     | 
    
         
            +
            def struts_addPerClassElement!
         
     | 
| 
      
 48 
     | 
    
         
            +
            	struts_viewableClassifier.each { |c|
         
     | 
| 
      
 49 
     | 
    
         
            +
            		c.struts_addActionForm!
         
     | 
| 
      
 50 
     | 
    
         
            +
            	}
         
     | 
| 
      
 51 
     | 
    
         
            +
            	struts_viewableClassifier.each { |c|
         
     | 
| 
      
 52 
     | 
    
         
            +
            		next if c.struts_actionForm_one0.nil?
         
     | 
| 
      
 53 
     | 
    
         
            +
            		c.struts_addAction!
         
     | 
| 
      
 54 
     | 
    
         
            +
            	}
         
     | 
| 
      
 55 
     | 
    
         
            +
            end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            def struts_allInOneGenerate
         
     | 
| 
      
 58 
     | 
    
         
            +
            	struts_generate_webxml
         
     | 
| 
      
 59 
     | 
    
         
            +
            	struts_struts_config_generate
         
     | 
| 
      
 60 
     | 
    
         
            +
            	struts_validator_generate
         
     | 
| 
      
 61 
     | 
    
         
            +
            	struts_validation_generate
         
     | 
| 
      
 62 
     | 
    
         
            +
            	struts_copyReloadDefinitionsActionClass
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            	struts_index_generate
         
     | 
| 
      
 65 
     | 
    
         
            +
            	struts_edit_generate
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            	java_generate
         
     | 
| 
      
 68 
     | 
    
         
            +
            	struts_messageResources_generate
         
     | 
| 
      
 69 
     | 
    
         
            +
            	#struts_servlet_generate
         
     | 
| 
      
 70 
     | 
    
         
            +
            	#umlx_getOrCreateClass("org.apache.struts.action.ActionForm")
         
     | 
| 
      
 71 
     | 
    
         
            +
            	#struts_servlet_generate
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            	db_generateConfiguration
         
     | 
| 
      
 74 
     | 
    
         
            +
            	struts_messageResources_generate
         
     | 
| 
      
 75 
     | 
    
         
            +
            end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
            def struts_installRessources
         
     | 
| 
      
 78 
     | 
    
         
            +
            	log.info "struts_installRessources disabled"
         
     | 
| 
      
 79 
     | 
    
         
            +
            	return
         
     | 
| 
      
 80 
     | 
    
         
            +
            	mtk_writeSession("#{context[:targetDir]}/.ontomde_java_res") {
         
     | 
| 
      
 81 
     | 
    
         
            +
            		write("ontomde_java_res=#{Mrdf_Model::JAVALIB_DIR.gsub(/\\/,'/')}\n")
         
     | 
| 
      
 82 
     | 
    
         
            +
            	}
         
     | 
| 
      
 83 
     | 
    
         
            +
            	return
         
     | 
| 
      
 84 
     | 
    
         
            +
            	build=context[:webContentDir]
         
     | 
| 
      
 85 
     | 
    
         
            +
            	zipdir=Mrdf_Model::JAVALIB_DIR
         
     | 
| 
      
 86 
     | 
    
         
            +
            	src1="#{zipdir}/JavaProject-WEB-INF.zip"
         
     | 
| 
      
 87 
     | 
    
         
            +
            	tg1="#{context[:webContentDir]}/WEB-INF/"
         
     | 
| 
      
 88 
     | 
    
         
            +
            	cmd1="unzip -q -n #{src1} -d #{tg1}"
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            	tg2="#{context[:webContentDir]}"
         
     | 
| 
      
 91 
     | 
    
         
            +
            	src2="#{zipdir}/JavaProject-WebContent.zip"
         
     | 
| 
      
 92 
     | 
    
         
            +
            	cmd2="unzip -q -n #{src2} -d #{tg2}/ "
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
            	tg3="#{context[:javaDir]}"
         
     | 
| 
      
 95 
     | 
    
         
            +
            	src3="#{zipdir}/JavaProject-java.zip"
         
     | 
| 
      
 96 
     | 
    
         
            +
            	cmd3="unzip -q -n #{src3} -d #{tg3} "
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
            	tg4="#{context[:javaDir]}"
         
     | 
| 
      
 99 
     | 
    
         
            +
            	src4="#{zipdir}/rootZip.zip"
         
     | 
| 
      
 100 
     | 
    
         
            +
            	cmd4="unzip -q -n #{src4} -d #{tg4} "
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
            	if (! File.exists?(src1))
         
     | 
| 
      
 104 
     | 
    
         
            +
            		log.info("libraries not included in this distribution. You will have to download and unzip this file in the webapp directory (#{src1},#{src2},#{src3} )")
         
     | 
| 
      
 105 
     | 
    
         
            +
            		return
         
     | 
| 
      
 106 
     | 
    
         
            +
            	end
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
            	if File.exists?("#{build}/WEB-INF/lib/")
         
     | 
| 
      
 110 
     | 
    
         
            +
            		log.info "UNZIP skipped"
         
     | 
| 
      
 111 
     | 
    
         
            +
            	else
         
     | 
| 
      
 112 
     | 
    
         
            +
            		FileUtils.mkdir_p(build)
         
     | 
| 
      
 113 
     | 
    
         
            +
            		if(context[:useUnzip,false])
         
     | 
| 
      
 114 
     | 
    
         
            +
            			log.info "UNZIP !!!"
         
     | 
| 
      
 115 
     | 
    
         
            +
            			[cmd1,cmd2,cmd3].each { |cmd|
         
     | 
| 
      
 116 
     | 
    
         
            +
            				raise "****\nERROR running unzip\n#{cmd}\n*****" unless system(cmd)
         
     | 
| 
      
 117 
     | 
    
         
            +
            			}
         
     | 
| 
      
 118 
     | 
    
         
            +
            		else
         
     | 
| 
      
 119 
     | 
    
         
            +
            			#no unzip
         
     | 
| 
      
 120 
     | 
    
         
            +
            			log.info "copy #{src1} to #{tg1}"
         
     | 
| 
      
 121 
     | 
    
         
            +
            			FileUtils.cp(src1,tg1)
         
     | 
| 
      
 122 
     | 
    
         
            +
            			log.info "copy #{src2} to #{tg2}"
         
     | 
| 
      
 123 
     | 
    
         
            +
            			FileUtils.cp(src2,tg2)
         
     | 
| 
      
 124 
     | 
    
         
            +
            			log.info "copy #{src3} to #{tg3}"
         
     | 
| 
      
 125 
     | 
    
         
            +
            			FileUtils.cp(src3,tg3)
         
     | 
| 
      
 126 
     | 
    
         
            +
            			log.info "copy #{src4} to #{tg4}"
         
     | 
| 
      
 127 
     | 
    
         
            +
            			FileUtils.cp(src4,tg4)
         
     | 
| 
      
 128 
     | 
    
         
            +
            			puts("************")
         
     | 
| 
      
 129 
     | 
    
         
            +
            			puts("************")
         
     | 
| 
      
 130 
     | 
    
         
            +
            			puts("PLEASE UNZIP #{tg1}/#{File.basename(src1)}")
         
     | 
| 
      
 131 
     | 
    
         
            +
            			puts("PLEASE UNZIP #{tg2}/#{File.basename(src2)}")
         
     | 
| 
      
 132 
     | 
    
         
            +
            			puts("PLEASE UNZIP #{tg3}/#{File.basename(src3)}")
         
     | 
| 
      
 133 
     | 
    
         
            +
            			puts("PLEASE UNZIP #{tg4}/#{File.basename(src4)}")
         
     | 
| 
      
 134 
     | 
    
         
            +
            			puts("************")
         
     | 
| 
      
 135 
     | 
    
         
            +
            			puts("************")
         
     | 
| 
      
 136 
     | 
    
         
            +
            		end
         
     | 
| 
      
 137 
     | 
    
         
            +
            	end
         
     | 
| 
      
 138 
     | 
    
         
            +
            end
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,132 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #defines mapping between struts bean types (string,boolean,...) and strings
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            class JavaMapping
         
     | 
| 
      
 5 
     | 
    
         
            +
              #returns code to be inserted in struts form copyTo
         
     | 
| 
      
 6 
     | 
    
         
            +
              #def getFormCopyTo(field)
         
     | 
| 
      
 7 
     | 
    
         
            +
              #	# inheriting class should redefine this method
         
     | 
| 
      
 8 
     | 
    
         
            +
              #	log.error %{getFormCopyTo not implemented for #{self.class}}
         
     | 
| 
      
 9 
     | 
    
         
            +
              #	return %{/* TODO: implement ruby getFormCopyTo for #{self.class}*/}
         
     | 
| 
      
 10 
     | 
    
         
            +
              #end
         
     | 
| 
      
 11 
     | 
    
         
            +
              #returns code to be inserted in struts form initFrom
         
     | 
| 
      
 12 
     | 
    
         
            +
              #def getFormInitFrom(field)
         
     | 
| 
      
 13 
     | 
    
         
            +
              #	# inheriting class should redefine this method
         
     | 
| 
      
 14 
     | 
    
         
            +
              #	log.error %{getFormInitFrom not implemented for #{self.class}}
         
     | 
| 
      
 15 
     | 
    
         
            +
              #	return %{/* TODO: implement ruby getFormInitFrom for #{self.class}*/}
         
     | 
| 
      
 16 
     | 
    
         
            +
              #end
         
     | 
| 
      
 17 
     | 
    
         
            +
              def getFormCopyTo(field)
         
     | 
| 
      
 18 
     | 
    
         
            +
                return %{_to.set#{field.java_NameBean}(#{getJavaParse(%{this.get#{field.java_NameBean}()})});\n}
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
              def getFormInitFrom(field)
         
     | 
| 
      
 21 
     | 
    
         
            +
                return %{this.set#{field.java_NameBean}(#{getJavaToString(%{_from.get#{field.java_NameBean}()})});\n}
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
              def getFormType(field)
         
     | 
| 
      
 24 
     | 
    
         
            +
                return field.umlx_dataType_string
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            class JavaMappingText < JavaMapping
         
     | 
| 
      
 30 
     | 
    
         
            +
              def getJavaToString(jsrc)
         
     | 
| 
      
 31 
     | 
    
         
            +
                return jsrc
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
              def getJavaParse(jsrc)
         
     | 
| 
      
 34 
     | 
    
         
            +
                return jsrc
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
            end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            class JavaMappingInteger < JavaMappingOrdinal
         
     | 
| 
      
 39 
     | 
    
         
            +
              def getJavaToString(jsrc)
         
     | 
| 
      
 40 
     | 
    
         
            +
                return "Integer.toString(#{jsrc})"
         
     | 
| 
      
 41 
     | 
    
         
            +
              end
         
     | 
| 
      
 42 
     | 
    
         
            +
              def getJavaParse(jsrc)
         
     | 
| 
      
 43 
     | 
    
         
            +
                return "Integer.parseInt(#{jsrc})"
         
     | 
| 
      
 44 
     | 
    
         
            +
              end
         
     | 
| 
      
 45 
     | 
    
         
            +
            end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            class JavaMappingLong < JavaMappingOrdinal
         
     | 
| 
      
 48 
     | 
    
         
            +
              def getJavaToString(jsrc)
         
     | 
| 
      
 49 
     | 
    
         
            +
                return "Long.toString(#{jsrc})"
         
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
              def getJavaParse(jsrc)
         
     | 
| 
      
 52 
     | 
    
         
            +
                return "Long.parseLong(#{jsrc})"
         
     | 
| 
      
 53 
     | 
    
         
            +
              end
         
     | 
| 
      
 54 
     | 
    
         
            +
            end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
            class JavaMappingLongObject < JavaMappingOrdinal
         
     | 
| 
      
 57 
     | 
    
         
            +
              def getJavaToString(jsrc)
         
     | 
| 
      
 58 
     | 
    
         
            +
                # cast is to make sure we have a Long and avoid difficult debugging
         
     | 
| 
      
 59 
     | 
    
         
            +
                return "((Long)#{jsrc}).toString()"
         
     | 
| 
      
 60 
     | 
    
         
            +
              end
         
     | 
| 
      
 61 
     | 
    
         
            +
              def getJavaParse(jsrc)
         
     | 
| 
      
 62 
     | 
    
         
            +
                return "((Long)Long.parseLong(#{jsrc}))"
         
     | 
| 
      
 63 
     | 
    
         
            +
              end
         
     | 
| 
      
 64 
     | 
    
         
            +
            end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            class JavaMappingFile < JavaMapping
         
     | 
| 
      
 67 
     | 
    
         
            +
              def getFormCopyTo(field)
         
     | 
| 
      
 68 
     | 
    
         
            +
                "/* not implemented #{field} */\n"
         
     | 
| 
      
 69 
     | 
    
         
            +
                #super # TODO
         
     | 
| 
      
 70 
     | 
    
         
            +
                # /*TPL:9004*/"
         
     | 
| 
      
 71 
     | 
    
         
            +
              end
         
     | 
| 
      
 72 
     | 
    
         
            +
              def getFormInitFrom(field)
         
     | 
| 
      
 73 
     | 
    
         
            +
                "/* not implemented #{field} */\n"
         
     | 
| 
      
 74 
     | 
    
         
            +
                #super # TODO
         
     | 
| 
      
 75 
     | 
    
         
            +
                # /*TPL:9004*/"
         
     | 
| 
      
 76 
     | 
    
         
            +
              end
         
     | 
| 
      
 77 
     | 
    
         
            +
            end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            class JavaMappingBoolean < JavaMapping
         
     | 
| 
      
 80 
     | 
    
         
            +
              def getJavaToString(jsrc)
         
     | 
| 
      
 81 
     | 
    
         
            +
                return %{((#{jsrc}) ? "true" : "false")}
         
     | 
| 
      
 82 
     | 
    
         
            +
              end
         
     | 
| 
      
 83 
     | 
    
         
            +
              def getJavaParse(jsrc)
         
     | 
| 
      
 84 
     | 
    
         
            +
                return %{((#{jsrc}).compareTo("true")==0)}
         
     | 
| 
      
 85 
     | 
    
         
            +
              end
         
     | 
| 
      
 86 
     | 
    
         
            +
            end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            class JavaMappingTimeStamp < JavaMapping
         
     | 
| 
      
 89 
     | 
    
         
            +
              def getFormCopyTo(field)
         
     | 
| 
      
 90 
     | 
    
         
            +
                return %{
         
     | 
| 
      
 91 
     | 
    
         
            +
                    if(get#{field.java_NameBean}().length()>0) { try {
         
     | 
| 
      
 92 
     | 
    
         
            +
                        java.util.Date local=#{::Muml_Classifier::STRUTS_TIMESTAMP_FORMATER_INSTANCE}.parse(get#{field.java_NameBean}());
         
     | 
| 
      
 93 
     | 
    
         
            +
                java.util.Date gmt = xmda.struts.FormHelper.transformFromCurrentTZToGMT(currentTimeZone, local);
         
     | 
| 
      
 94 
     | 
    
         
            +
                // the date is saved in the GMT timeZone
         
     | 
| 
      
 95 
     | 
    
         
            +
                _to.set#{field.java_NameBean}(gmt);
         
     | 
| 
      
 96 
     | 
    
         
            +
                } catch(java.text.ParseException e) { log.error(e);}/*TPL:9006b*/\n
         
     | 
| 
      
 97 
     | 
    
         
            +
                }}
         
     | 
| 
      
 98 
     | 
    
         
            +
              end
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
              def getFormInitFrom(field)
         
     | 
| 
      
 101 
     | 
    
         
            +
                return "this.set#{field.java_NameBean}(_from.get#{field.java_NameBean}()==null?null:#{::Muml_Classifier::STRUTS_TIMESTAMP_FORMATER_INSTANCE}.format(xmda.struts.FormHelper.transformFromGMTToCurrentTZ(currentTimeZone,_from.get#{field.java_NameBean}())));\n"
         
     | 
| 
      
 102 
     | 
    
         
            +
              end
         
     | 
| 
      
 103 
     | 
    
         
            +
            end
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
            class JavaMappingCalendar < JavaMapping
         
     | 
| 
      
 106 
     | 
    
         
            +
              def getFormCopyTo(field)
         
     | 
| 
      
 107 
     | 
    
         
            +
                return "if(get#{field.java_NameBean}().length()>0){try {_to.set#{field.java_NameBean}(#{::Muml_Classifier::STRUTS_DATE_FORMATER_INSTANCE}.parse(get#{field.java_NameBean}()));\n} catch(java.text.ParseException e) {log.error(e);}}/*TPL:9006a*/\n"
         
     | 
| 
      
 108 
     | 
    
         
            +
              end
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
              def getFormInitFrom(field)
         
     | 
| 
      
 111 
     | 
    
         
            +
                return "this.set#{field.java_NameBean}(_from.get#{field.java_NameBean}()==null?null:#{::Muml_Classifier::STRUTS_DATE_FORMATER_INSTANCE}.format(_from.get#{field.java_NameBean}()));\n"
         
     | 
| 
      
 112 
     | 
    
         
            +
              end
         
     | 
| 
      
 113 
     | 
    
         
            +
            end
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
            class JavaMappingBLOB < JavaMapping
         
     | 
| 
      
 116 
     | 
    
         
            +
              def getFormType(field)
         
     | 
| 
      
 117 
     | 
    
         
            +
                return field.umlx_getOrCreateClass("org.apache.struts.upload.FormFile")
         
     | 
| 
      
 118 
     | 
    
         
            +
              end
         
     | 
| 
      
 119 
     | 
    
         
            +
              def getFormCopyTo(field)
         
     | 
| 
      
 120 
     | 
    
         
            +
                return "try {_to.set#{field.java_NameBean}(get#{field.java_NameBean}().getFileData());\n} catch(java.io.FileNotFoundException e) {log.error(e);} catch(java.io.IOException e2){log.error(e2);}\n"
         
     | 
| 
      
 121 
     | 
    
         
            +
              end
         
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
              def getFormInitFrom(field)
         
     | 
| 
      
 124 
     | 
    
         
            +
                return ""
         
     | 
| 
      
 125 
     | 
    
         
            +
                #return "this.set#{field.java_NameBean}(_from.get#{field.java_NameBean}()==null?null:#{::Muml_Classifier::STRUTS_DATE_FORMATER_INSTANCE}.format(_from.get#{field.java_NameBean}()));\n"
         
     | 
| 
      
 126 
     | 
    
         
            +
              end
         
     | 
| 
      
 127 
     | 
    
         
            +
            end
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
            class JavaMappingGRAPHVIZ < JavaMappingLargeText
         
     | 
| 
      
 130 
     | 
    
         
            +
            end
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
         @@ -0,0 +1,272 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # JSP mapping for data types, enums and classes
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            class JavaMapping
         
     | 
| 
      
 5 
     | 
    
         
            +
              #returns true if this templates applies to datatype
         
     | 
| 
      
 6 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 7 
     | 
    
         
            +
                # inheriting class should redefine this method
         
     | 
| 
      
 8 
     | 
    
         
            +
                log.error %{getJSP not implemented for #{self.class}}
         
     | 
| 
      
 9 
     | 
    
         
            +
                return %{<!-- TODO: implement ruby getJSP for #{self.class} --!>}
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              #adds special action for this type
         
     | 
| 
      
 13 
     | 
    
         
            +
              def addActionFieldMethod!(field,action,form)
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            class JavaMappingText < JavaMapping
         
     | 
| 
      
 20 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 21 
     | 
    
         
            +
                n=datatype.java_Name.downcase #TODO
         
     | 
| 
      
 22 
     | 
    
         
            +
                return %{<html:text property="#{field.java_Name}" size="20%" maxlength="#{self.maxStringLength}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            class JavaMappingLargeText < JavaMappingText
         
     | 
| 
      
 27 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 28 
     | 
    
         
            +
                n=datatype.java_Name.downcase #TODO
         
     | 
| 
      
 29 
     | 
    
         
            +
                #maxlength not supported by textarea
         
     | 
| 
      
 30 
     | 
    
         
            +
                return %{<html:textarea property="#{field.java_Name}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
            end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            class JavaMappingURL < JavaMappingText
         
     | 
| 
      
 35 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 36 
     | 
    
         
            +
                # cf: http://www.osix.net/modules/article/?id=586
         
     | 
| 
      
 37 
     | 
    
         
            +
                n=datatype.java_Name.downcase #TODO
         
     | 
| 
      
 38 
     | 
    
         
            +
                return <<END
         
     | 
| 
      
 39 
     | 
    
         
            +
            		 <html:text property="#{field.java_Name}" size="20%" maxlength="#{self.maxStringLength}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}  value="http://www.exemple.com"  disabled="true"/>
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            		<a onclick="javascript:document.getElementById('#{n}').disabled=false;document.getElementById('#{n}').value='';;">
         
     | 
| 
      
 42 
     | 
    
         
            +
            		<img  src="res//orange/image/edit.gif" />
         
     | 
| 
      
 43 
     | 
    
         
            +
            		</a> <a onclick="javascript:window.open(document.forms[0].#{field.java_Name}.value);return false">
         
     | 
| 
      
 44 
     | 
    
         
            +
            		<img  src="res//orange/image/go.gif" />
         
     | 
| 
      
 45 
     | 
    
         
            +
            		</a>
         
     | 
| 
      
 46 
     | 
    
         
            +
            END
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
            end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            class JavaMappingInteger < JavaMappingOrdinal
         
     | 
| 
      
 52 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 53 
     | 
    
         
            +
                super
         
     | 
| 
      
 54 
     | 
    
         
            +
              end
         
     | 
| 
      
 55 
     | 
    
         
            +
            end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            class JavaMappingLong < JavaMappingOrdinal
         
     | 
| 
      
 58 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 59 
     | 
    
         
            +
                super
         
     | 
| 
      
 60 
     | 
    
         
            +
              end
         
     | 
| 
      
 61 
     | 
    
         
            +
            end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            class JavaMappingFile < JavaMapping
         
     | 
| 
      
 64 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 65 
     | 
    
         
            +
                n=datatype.java_Name.downcase #TODO
         
     | 
| 
      
 66 
     | 
    
         
            +
                return %{<html:file property="#{field.java_Name}" size="20%" maxlength="30" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
         
     | 
| 
      
 67 
     | 
    
         
            +
              end
         
     | 
| 
      
 68 
     | 
    
         
            +
            end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            class JavaMappingBoolean < JavaMapping
         
     | 
| 
      
 71 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 72 
     | 
    
         
            +
                if field.context[:jspUseXmdaTaglib]
         
     | 
| 
      
 73 
     | 
    
         
            +
                  return %{<xmda:checkbox property="#{field.java_Name}"/>\n}
         
     | 
| 
      
 74 
     | 
    
         
            +
                else
         
     | 
| 
      
 75 
     | 
    
         
            +
                  return %{
         
     | 
| 
      
 76 
     | 
    
         
            +
            <html:hidden property="#{field.java_Name}" />
         
     | 
| 
      
 77 
     | 
    
         
            +
            <logic:equal value="true" property="#{field.java_Name}" name="#{STRUTS_BEAN_KEY}" >
         
     | 
| 
      
 78 
     | 
    
         
            +
            	<input type="checkbox" name="#{field.java_Name}_tmp" onClick='document.forms[0].#{field.java_Name}.value=this.checked;' checked />
         
     | 
| 
      
 79 
     | 
    
         
            +
            </logic:equal>
         
     | 
| 
      
 80 
     | 
    
         
            +
            <logic:notEqual value="true" property="#{field.java_Name}" name="#{STRUTS_BEAN_KEY}" >
         
     | 
| 
      
 81 
     | 
    
         
            +
            	<input type="checkbox" name="#{field.java_Name}_tmp" onClick='document.forms[0].#{field.java_Name}.value=this.checked;' />
         
     | 
| 
      
 82 
     | 
    
         
            +
            </logic:notEqual>
         
     | 
| 
      
 83 
     | 
    
         
            +
                  }
         
     | 
| 
      
 84 
     | 
    
         
            +
                end
         
     | 
| 
      
 85 
     | 
    
         
            +
              end
         
     | 
| 
      
 86 
     | 
    
         
            +
            end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            class JavaMappingTimeStamp < JavaMapping
         
     | 
| 
      
 89 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 90 
     | 
    
         
            +
                n="string"
         
     | 
| 
      
 91 
     | 
    
         
            +
                #TODO: provide nicer html template
         
     | 
| 
      
 92 
     | 
    
         
            +
                #xmda:dateText isCalendar defaults to "false"
         
     | 
| 
      
 93 
     | 
    
         
            +
                return <<END
         
     | 
| 
      
 94 
     | 
    
         
            +
             <xmda:dateText property="#{field.java_Name}" size="20%" maxlength="30" styleId="#{field.java_Name}Id" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>
         
     | 
| 
      
 95 
     | 
    
         
            +
             <script type="text/javascript">
         
     | 
| 
      
 96 
     | 
    
         
            +
                function formatDate(cal) {
         
     | 
| 
      
 97 
     | 
    
         
            +
                    var date = cal.date;
         
     | 
| 
      
 98 
     | 
    
         
            +
                    var field = document.getElementById("#{field.java_Name}");
         
     | 
| 
      
 99 
     | 
    
         
            +
                    var locale = document.getElementById("#{field.java_Name}Locale").value;
         
     | 
| 
      
 100 
     | 
    
         
            +
                    field.value = transformToServerFormat(date, field, locale);
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
                }
         
     | 
| 
      
 103 
     | 
    
         
            +
            	 Calendar.setup(\{
         
     | 
| 
      
 104 
     | 
    
         
            +
            		 inputField     :    "#{field.java_Name}Id",   // id of the input field
         
     | 
| 
      
 105 
     | 
    
         
            +
            		 localeField	  :	   "#{field.java_Name}Locale", //field containing locale (hidden)
         
     | 
| 
      
 106 
     | 
    
         
            +
            		 showsTime      :    true,
         
     | 
| 
      
 107 
     | 
    
         
            +
            		 timeFormat     :    "24",
         
     | 
| 
      
 108 
     | 
    
         
            +
            		 onUpdate       :    formatDate
         
     | 
| 
      
 109 
     | 
    
         
            +
            	 \});
         
     | 
| 
      
 110 
     | 
    
         
            +
             </script>
         
     | 
| 
      
 111 
     | 
    
         
            +
            END
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
              end
         
     | 
| 
      
 114 
     | 
    
         
            +
            end
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
            class JavaMappingCalendar < JavaMapping
         
     | 
| 
      
 117 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 118 
     | 
    
         
            +
                n="string"
         
     | 
| 
      
 119 
     | 
    
         
            +
                #TODO: provide nicer html template
         
     | 
| 
      
 120 
     | 
    
         
            +
                #isCalendar="true"
         
     | 
| 
      
 121 
     | 
    
         
            +
                return <<END
         
     | 
| 
      
 122 
     | 
    
         
            +
             <xmda:dateText isCalendar="true" property="#{field.java_Name}" size="20%" maxlength="#{self.maxStringLength}" styleId="#{field.java_Name}Id" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>
         
     | 
| 
      
 123 
     | 
    
         
            +
             <script type="text/javascript">
         
     | 
| 
      
 124 
     | 
    
         
            +
              function formatDate(cal) {
         
     | 
| 
      
 125 
     | 
    
         
            +
                    var date = cal.date;
         
     | 
| 
      
 126 
     | 
    
         
            +
                    var field = document.getElementById("#{field.java_Name}");
         
     | 
| 
      
 127 
     | 
    
         
            +
                    var locale = document.getElementById("#{field.java_Name}Locale").value;
         
     | 
| 
      
 128 
     | 
    
         
            +
                    field.value = transformToServerFormat(date, field, locale);
         
     | 
| 
      
 129 
     | 
    
         
            +
                }
         
     | 
| 
      
 130 
     | 
    
         
            +
            	 Calendar.setup(\{
         
     | 
| 
      
 131 
     | 
    
         
            +
            		 inputField     :    "#{field.java_Name}Id",  // id of the input field
         
     | 
| 
      
 132 
     | 
    
         
            +
            		 localeField    :	   "#{field.java_Name}Locale", //field containing locale (hidden)
         
     | 
| 
      
 133 
     | 
    
         
            +
            		 onUpdate       :    formatDate
         
     | 
| 
      
 134 
     | 
    
         
            +
            	 \});
         
     | 
| 
      
 135 
     | 
    
         
            +
             </script>
         
     | 
| 
      
 136 
     | 
    
         
            +
            END
         
     | 
| 
      
 137 
     | 
    
         
            +
              end
         
     | 
| 
      
 138 
     | 
    
         
            +
            end
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
            #Template used when no correct was found.
         
     | 
| 
      
 141 
     | 
    
         
            +
            class JavaMappingerror # <
         
     | 
| 
      
 142 
     | 
    
         
            +
              include Singleton
         
     | 
| 
      
 143 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 144 
     | 
    
         
            +
                return %{<!-- TODO: fallback template used for datatype #{datatype} -->}
         
     | 
| 
      
 145 
     | 
    
         
            +
              end
         
     | 
| 
      
 146 
     | 
    
         
            +
            end
         
     | 
| 
      
 147 
     | 
    
         
            +
             
     | 
| 
      
 148 
     | 
    
         
            +
            class JavaMappingGenericClass < JavaMapping
         
     | 
| 
      
 149 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 150 
     | 
    
         
            +
                return "<!-- TODO:JSP #{self.class.name} -->"
         
     | 
| 
      
 151 
     | 
    
         
            +
              end
         
     | 
| 
      
 152 
     | 
    
         
            +
            end
         
     | 
| 
      
 153 
     | 
    
         
            +
             
     | 
| 
      
 154 
     | 
    
         
            +
            class JavaMappingGenericEnum < JavaMapping
         
     | 
| 
      
 155 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 156 
     | 
    
         
            +
                if field.context[:jspUseXmdaTaglib]
         
     | 
| 
      
 157 
     | 
    
         
            +
                  return getJSP_XmdaTagLib(datatype,field,owner)
         
     | 
| 
      
 158 
     | 
    
         
            +
                else
         
     | 
| 
      
 159 
     | 
    
         
            +
                  return getJSP_StrutsOnly(datatype,field,owner)
         
     | 
| 
      
 160 
     | 
    
         
            +
                end
         
     | 
| 
      
 161 
     | 
    
         
            +
              end
         
     | 
| 
      
 162 
     | 
    
         
            +
             
     | 
| 
      
 163 
     | 
    
         
            +
              def getJSP_XmdaTagLib(datatype,field,owner)
         
     | 
| 
      
 164 
     | 
    
         
            +
                return %{
         
     | 
| 
      
 165 
     | 
    
         
            +
            <html:select property="#{field.java_Name}" >
         
     | 
| 
      
 166 
     | 
    
         
            +
              <xmda:i18noptionsCollection name="#{owner.java_Name}StrutsForm" property="#{field.java_Name}Sug" label="label" value="value"/>
         
     | 
| 
      
 167 
     | 
    
         
            +
            </html:select>
         
     | 
| 
      
 168 
     | 
    
         
            +
                }
         
     | 
| 
      
 169 
     | 
    
         
            +
              end
         
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
              def getJSP_StrutsOnly(datatype,field,owner)
         
     | 
| 
      
 172 
     | 
    
         
            +
                return <<END
         
     | 
| 
      
 173 
     | 
    
         
            +
            <html:select property="#{field.java_Name}" >
         
     | 
| 
      
 174 
     | 
    
         
            +
             <logic:iterate id="_#{field.java_Name}" name="#{owner.java_Name}StrutsForm" property="#{field.java_Name}Sug" >
         
     | 
| 
      
 175 
     | 
    
         
            +
              <option value="<bean:write name="_#{field.java_Name}" property="value" />" >
         
     | 
| 
      
 176 
     | 
    
         
            +
               <bean:define id="_id">
         
     | 
| 
      
 177 
     | 
    
         
            +
                 <bean:write name="_#{field.java_Name}" property="label" />
         
     | 
| 
      
 178 
     | 
    
         
            +
               </bean:define>
         
     | 
| 
      
 179 
     | 
    
         
            +
               <%-- TODO: eviter entrelacement balises XML --%>
         
     | 
| 
      
 180 
     | 
    
         
            +
               <bean:message key="<%= _id %>"/>
         
     | 
| 
      
 181 
     | 
    
         
            +
              </option>
         
     | 
| 
      
 182 
     | 
    
         
            +
             </logic:iterate>
         
     | 
| 
      
 183 
     | 
    
         
            +
            </html:select>
         
     | 
| 
      
 184 
     | 
    
         
            +
            <SCRIPT> <%-- TODO : supprimer javascript --%>
         
     | 
| 
      
 185 
     | 
    
         
            +
            document.forms[0].#{field.java_Name}.value="<bean:write name="#{owner.java_Name}StrutsForm" property="#{field.java_Name}" />";
         
     | 
| 
      
 186 
     | 
    
         
            +
            </SCRIPT>
         
     | 
| 
      
 187 
     | 
    
         
            +
            END
         
     | 
| 
      
 188 
     | 
    
         
            +
              end
         
     | 
| 
      
 189 
     | 
    
         
            +
            end
         
     | 
| 
      
 190 
     | 
    
         
            +
             
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
      
 192 
     | 
    
         
            +
            class JavaMappingBLOB < JavaMapping
         
     | 
| 
      
 193 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 194 
     | 
    
         
            +
                n=datatype.java_Name.downcase #TODO
         
     | 
| 
      
 195 
     | 
    
         
            +
                return %{<html:file property="#{field.java_Name}" size="20%" maxlength="30" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
         
     | 
| 
      
 196 
     | 
    
         
            +
              end
         
     | 
| 
      
 197 
     | 
    
         
            +
            end
         
     | 
| 
      
 198 
     | 
    
         
            +
            class JavaMappingIMG < JavaMappingBLOB
         
     | 
| 
      
 199 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 200 
     | 
    
         
            +
                n=datatype.java_Name.downcase #TODO
         
     | 
| 
      
 201 
     | 
    
         
            +
                return %{
         
     | 
| 
      
 202 
     | 
    
         
            +
            #{super}
         
     | 
| 
      
 203 
     | 
    
         
            +
            <br/>
         
     | 
| 
      
 204 
     | 
    
         
            +
            <html:img action="#{owner.context[:strutsActionName]}?#{Muml_Classifier::STRUTS_DISPATCH_FIELD_NAME}=#{actionMethName(field)}" />  
         
     | 
| 
      
 205 
     | 
    
         
            +
                }
         
     | 
| 
      
 206 
     | 
    
         
            +
             
     | 
| 
      
 207 
     | 
    
         
            +
              end
         
     | 
| 
      
 208 
     | 
    
         
            +
             
     | 
| 
      
 209 
     | 
    
         
            +
              def actionMethName(field)
         
     | 
| 
      
 210 
     | 
    
         
            +
                return "#{field.java_Name}_img"
         
     | 
| 
      
 211 
     | 
    
         
            +
              end
         
     | 
| 
      
 212 
     | 
    
         
            +
             
     | 
| 
      
 213 
     | 
    
         
            +
             
     | 
| 
      
 214 
     | 
    
         
            +
              #adds special action for this type
         
     | 
| 
      
 215 
     | 
    
         
            +
              def addActionFieldMethod!(field,action,form)
         
     | 
| 
      
 216 
     | 
    
         
            +
                # generate method returning gif image
         
     | 
| 
      
 217 
     | 
    
         
            +
                m=action.struts_createAndAddExecuteOperation(actionMethName(field))
         
     | 
| 
      
 218 
     | 
    
         
            +
                m.java_code=<<END
         
     | 
| 
      
 219 
     | 
    
         
            +
                   #{action.struts_formCastJavaCode(form)}
         
     | 
| 
      
 220 
     | 
    
         
            +
                   return #{action.struts_getActionHelper.java_qualifiedName}.writeGif(mapping,response, form.getReference().get#{field.java_NameBean}());
         
     | 
| 
      
 221 
     | 
    
         
            +
            END
         
     | 
| 
      
 222 
     | 
    
         
            +
             
     | 
| 
      
 223 
     | 
    
         
            +
             
     | 
| 
      
 224 
     | 
    
         
            +
              end
         
     | 
| 
      
 225 
     | 
    
         
            +
            end
         
     | 
| 
      
 226 
     | 
    
         
            +
             
     | 
| 
      
 227 
     | 
    
         
            +
            class JavaMappingGRAPHVIZ < JavaMappingLargeText
         
     | 
| 
      
 228 
     | 
    
         
            +
              def actionMethName(field)
         
     | 
| 
      
 229 
     | 
    
         
            +
                return "#{field.java_Name}_img"
         
     | 
| 
      
 230 
     | 
    
         
            +
              end
         
     | 
| 
      
 231 
     | 
    
         
            +
              def actionMapMethName(field)
         
     | 
| 
      
 232 
     | 
    
         
            +
                return "#{field.java_Name}_map"
         
     | 
| 
      
 233 
     | 
    
         
            +
              end
         
     | 
| 
      
 234 
     | 
    
         
            +
              def actionMapUrl(datatype,field,owner)
         
     | 
| 
      
 235 
     | 
    
         
            +
                return "/webapp/GraphVizDemoall-submit.do?#{Muml_Classifier::STRUTS_DISPATCH_FIELD_NAME}=#{actionMapMethName(field)}#myMap"
         
     | 
| 
      
 236 
     | 
    
         
            +
              end
         
     | 
| 
      
 237 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 238 
     | 
    
         
            +
                s=field.uml_isReadOnly? ? "" : super(datatype,field,owner)
         
     | 
| 
      
 239 
     | 
    
         
            +
             
     | 
| 
      
 240 
     | 
    
         
            +
                return %{#{s}#{s.empty? ? "" : "<br>" }<html:img action="#{owner.context[:strutsActionName]}?#{Muml_Classifier::STRUTS_DISPATCH_FIELD_NAME}=#{actionMethName(field)}" usemap="#{actionMapUrl(datatype,field,owner)}"/>}
         
     | 
| 
      
 241 
     | 
    
         
            +
              end
         
     | 
| 
      
 242 
     | 
    
         
            +
             
     | 
| 
      
 243 
     | 
    
         
            +
              #adds special action for this type
         
     | 
| 
      
 244 
     | 
    
         
            +
              def addActionFieldMethod!(field,action,form)
         
     | 
| 
      
 245 
     | 
    
         
            +
                m=action.struts_createAndAddExecuteOperation(actionMethName(field))
         
     | 
| 
      
 246 
     | 
    
         
            +
                m.java_code=<<END
         
     | 
| 
      
 247 
     | 
    
         
            +
                   #{action.struts_formCastJavaCode(form)}
         
     | 
| 
      
 248 
     | 
    
         
            +
                   return #{action.struts_getActionHelper.java_qualifiedName}.writeGraphviz(mapping,response, form.getReference().get#{field.java_NameBean}());
         
     | 
| 
      
 249 
     | 
    
         
            +
            END
         
     | 
| 
      
 250 
     | 
    
         
            +
             
     | 
| 
      
 251 
     | 
    
         
            +
                # generate method returning map (clickable zones)
         
     | 
| 
      
 252 
     | 
    
         
            +
                m2=action.struts_createAndAddExecuteOperation(actionMapMethName(field))
         
     | 
| 
      
 253 
     | 
    
         
            +
                m2.java_code=<<END
         
     | 
| 
      
 254 
     | 
    
         
            +
                   #{action.struts_formCastJavaCode(form)}
         
     | 
| 
      
 255 
     | 
    
         
            +
                   return #{action.struts_getActionHelper.java_qualifiedName}.writeGraphvizMap(mapping,response, form.getReference().get#{field.java_NameBean}());
         
     | 
| 
      
 256 
     | 
    
         
            +
            END
         
     | 
| 
      
 257 
     | 
    
         
            +
              end
         
     | 
| 
      
 258 
     | 
    
         
            +
             
     | 
| 
      
 259 
     | 
    
         
            +
            end
         
     | 
| 
      
 260 
     | 
    
         
            +
            class JavaMappingEmailAddress < JavaMappingText
         
     | 
| 
      
 261 
     | 
    
         
            +
            end
         
     | 
| 
      
 262 
     | 
    
         
            +
             
     | 
| 
      
 263 
     | 
    
         
            +
            class JavaMappingPassword < JavaMappingText
         
     | 
| 
      
 264 
     | 
    
         
            +
              def getJSP(datatype,field,owner)
         
     | 
| 
      
 265 
     | 
    
         
            +
                n=datatype.java_Name.downcase #TODO
         
     | 
| 
      
 266 
     | 
    
         
            +
                return %{<html:password property="#{field.java_Name}" size="20%" maxlength="#{self.maxStringLength}" styleId="#{n}" #{::Muml_DataType::STRUTS_ERROR_STYLE}/>}
         
     | 
| 
      
 267 
     | 
    
         
            +
              end
         
     | 
| 
      
 268 
     | 
    
         
            +
            end
         
     | 
| 
      
 269 
     | 
    
         
            +
             
     | 
| 
      
 270 
     | 
    
         
            +
             
     | 
| 
      
 271 
     | 
    
         
            +
             
     | 
| 
      
 272 
     | 
    
         
            +
             
     | 
| 
         @@ -0,0 +1,87 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
             
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Mrdf_Model
         
     | 
| 
      
 4 
     | 
    
         
            +
            	def struts_createDataTypeHelpers!
         
     | 
| 
      
 5 
     | 
    
         
            +
            		JavaMapping.instance.getMappings.each { |m|
         
     | 
| 
      
 6 
     | 
    
         
            +
            			m.struts_generateHelper(self)
         
     | 
| 
      
 7 
     | 
    
         
            +
            		}
         
     | 
| 
      
 8 
     | 
    
         
            +
            	end
         
     | 
| 
      
 9 
     | 
    
         
            +
            end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            class JavaMapping
         
     | 
| 
      
 12 
     | 
    
         
            +
            	def java_Name
         
     | 
| 
      
 13 
     | 
    
         
            +
            		return self.class.name
         
     | 
| 
      
 14 
     | 
    
         
            +
            	end
         
     | 
| 
      
 15 
     | 
    
         
            +
            	def java_qualifiedName
         
     | 
| 
      
 16 
     | 
    
         
            +
            		return rdf_uri
         
     | 
| 
      
 17 
     | 
    
         
            +
            	end
         
     | 
| 
      
 18 
     | 
    
         
            +
            	def rdf_uri
         
     | 
| 
      
 19 
     | 
    
         
            +
            		return "xmda.datatypes.#{java_Name}"
         
     | 
| 
      
 20 
     | 
    
         
            +
            	end
         
     | 
| 
      
 21 
     | 
    
         
            +
            	def struts_generateHelper(model)
         
     | 
| 
      
 22 
     | 
    
         
            +
            		return unless self.respond_to?("getJavaType")
         
     | 
| 
      
 23 
     | 
    
         
            +
            		c=model.umlx_reserved_model.umlx_getOrCreateClass(java_qualifiedName)
         
     | 
| 
      
 24 
     | 
    
         
            +
            		return c unless c.umlx_external?
         
     | 
| 
      
 25 
     | 
    
         
            +
            		c.umlx_external=RDF_FALSE
         
     | 
| 
      
 26 
     | 
    
         
            +
            		c.db_isTransient=RDF_TRUE
         
     | 
| 
      
 27 
     | 
    
         
            +
            		c.struts_isForm=RDF_FALSE
         
     | 
| 
      
 28 
     | 
    
         
            +
            		c.umlx_businessMethod=RDF_FALSE
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            		c.umlx_createAndAddGeneralization(self.class.superclass.instance.struts_generateHelper(model)) if self.class.superclass.respond_to?("instance")
         
     | 
| 
      
 31 
     | 
    
         
            +
            		c.java_customCode=java_helper_customCode
         
     | 
| 
      
 32 
     | 
    
         
            +
            		java_helper_addMethods!(c)
         
     | 
| 
      
 33 
     | 
    
         
            +
            		return c
         
     | 
| 
      
 34 
     | 
    
         
            +
            	end
         
     | 
| 
      
 35 
     | 
    
         
            +
            	def java_helper_customCode
         
     | 
| 
      
 36 
     | 
    
         
            +
            		return if self.class==JavaMapping
         
     | 
| 
      
 37 
     | 
    
         
            +
            		return <<END
         
     | 
| 
      
 38 
     | 
    
         
            +
            protected #{java_Name}() {};
         
     | 
| 
      
 39 
     | 
    
         
            +
            private static #{java_Name} instance=new #{java_Name}();
         
     | 
| 
      
 40 
     | 
    
         
            +
            public #{java_Name} getInstance() {
         
     | 
| 
      
 41 
     | 
    
         
            +
            	return instance;
         
     | 
| 
      
 42 
     | 
    
         
            +
            	}
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
            public #{getJavaType} parse(final String str,final #{getJavaType} nullCast ) {
         
     | 
| 
      
 45 
     | 
    
         
            +
            	#{if respond_to?(:getJavaParse)
         
     | 
| 
      
 46 
     | 
    
         
            +
            	 	"return #{getJavaParse("str")};"
         
     | 
| 
      
 47 
     | 
    
         
            +
            	else
         
     | 
| 
      
 48 
     | 
    
         
            +
            		%{throw new java.lang.RuntimeException("Method not implemented");}
         
     | 
| 
      
 49 
     | 
    
         
            +
            	end
         
     | 
| 
      
 50 
     | 
    
         
            +
            	}
         
     | 
| 
      
 51 
     | 
    
         
            +
            }
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            public String toString(final #{getJavaType} elt) {
         
     | 
| 
      
 54 
     | 
    
         
            +
            	#{if respond_to?(:getJavaToString)
         
     | 
| 
      
 55 
     | 
    
         
            +
            	 	"return #{getJavaToString("elt")};"
         
     | 
| 
      
 56 
     | 
    
         
            +
            	else
         
     | 
| 
      
 57 
     | 
    
         
            +
            		%{throw new java.lang.RuntimeException("Method not implemented");}
         
     | 
| 
      
 58 
     | 
    
         
            +
            	end
         
     | 
| 
      
 59 
     | 
    
         
            +
            	}
         
     | 
| 
      
 60 
     | 
    
         
            +
            }
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
            END
         
     | 
| 
      
 63 
     | 
    
         
            +
            	end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
            	def java_helper_addMethods!(c)
         
     | 
| 
      
 66 
     | 
    
         
            +
            		return
         
     | 
| 
      
 67 
     | 
    
         
            +
            		m=c.umlx_createAndAddOperation(self.rdf_uri+"_parse","parse")
         
     | 
| 
      
 68 
     | 
    
         
            +
            		r=m.umlx_createAndAddReturnParameter(m.rdf_uri+"ret")
         
     | 
| 
      
 69 
     | 
    
         
            +
            		r.uml_type=c.umlx_getOrCreateClass("java.lang.Object") #TODO
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            		r=m.umlx_createAndAddParameter(m.rdf_uri+"tr","tr")
         
     | 
| 
      
 72 
     | 
    
         
            +
            		r.uml_type=c.umlx_dataType_string
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            		m=c.umlx_createAndAddOperation(self.rdf_uri+"_parse","to_s")
         
     | 
| 
      
 75 
     | 
    
         
            +
            		r=m.umlx_createAndAddReturnParameter(m.rdf_uri+"ret")
         
     | 
| 
      
 76 
     | 
    
         
            +
            		r.uml_type=c.umlx_getOrCreateClass("java.lang.Object") #TODO
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            		r=m.umlx_createAndAddParameter(m.rdf_uri+"elt","elt")
         
     | 
| 
      
 79 
     | 
    
         
            +
            		r.uml_type=c.umlx_dataType_string
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
            	end
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
            end
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            class JavaMapping
         
     | 
| 
      
 86 
     | 
    
         
            +
            end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Helpers to add
         
     | 
| 
      
 2 
     | 
    
         
            +
            #Reload action
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Mrdf_Model
         
     | 
| 
      
 5 
     | 
    
         
            +
            	rdf_safe_attr_reader_many :struts_reloadDefinitionsActionUri
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            # Calling this method will setup a struts reload action.
         
     | 
| 
      
 8 
     | 
    
         
            +
            # This action will be accessible with a browser using the provided uri.
         
     | 
| 
      
 9 
     | 
    
         
            +
            # Calling the action will trigger a struts configuration reload, usefull for developpment.
         
     | 
| 
      
 10 
     | 
    
         
            +
            #
         
     | 
| 
      
 11 
     | 
    
         
            +
            # Note:
         
     | 
| 
      
 12 
     | 
    
         
            +
            # *This method should be called before code generation and before setup generation.
         
     | 
| 
      
 13 
     | 
    
         
            +
            # *Action is extracted from ruby
         
     | 
| 
      
 14 
     | 
    
         
            +
            # *Thanks to Stephane Coutant for pointing out this feature.
         
     | 
| 
      
 15 
     | 
    
         
            +
            def struts_addReloadDefinitionsAction(uri="/admin/reload")
         
     | 
| 
      
 16 
     | 
    
         
            +
            	self.struts_reloadDefinitionsActionUri=uri
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            #internal use
         
     | 
| 
      
 20 
     | 
    
         
            +
            #copys required java source files to project
         
     | 
| 
      
 21 
     | 
    
         
            +
            def struts_copyReloadDefinitionsActionClass()
         
     | 
| 
      
 22 
     | 
    
         
            +
            	#return if self.struts_reloadDefinitionsActionUri.empty?
         
     | 
| 
      
 23 
     | 
    
         
            +
            	#FileUtils.cp("#{File.dirname(__FILE__)}/ReloadDefinitionsAction.java","#{context[:build]}/WEB-INF/src/java/xmda/struts/ReloadDefinitionsAction.java")
         
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            #internal use
         
     | 
| 
      
 27 
     | 
    
         
            +
            #inserts required configuration item in struts configuration file.
         
     | 
| 
      
 28 
     | 
    
         
            +
            def struts_getReloadDefinitionsActionConfig
         
     | 
| 
      
 29 
     | 
    
         
            +
            	return "<!-- no reload definition action -->" if struts_reloadDefinitionsActionUri.empty?
         
     | 
| 
      
 30 
     | 
    
         
            +
            	return %{<action path="#{struts_reloadDefinitionsActionUri}" type="org.apache.struts.tiles.actions.ReloadDefinitionsAction"/>}
         
     | 
| 
      
 31 
     | 
    
         
            +
            end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     |