class CapicuaGen::Balthazar::AndySplashActivityFeature
Característica generadora pantalla de bienvenida
Public Class Methods
new(values= {})
click to toggle source
Inicializa la característica
Calls superclass method
# File lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Source/andy_splash_activity_feature.rb, line 40 def initialize(values= {}) super(values) # Configuro los tipos si estos no han sido configurados previamente self.types= [:catalog] if self.types.blank? # Configuro los templates set_template("splash", Template.new(:file => 'splash.erb')) set_template('splash_activity', Template.new(:file => 'splash_activity.erb')) set_template('logo', Template.new(:file => 'logo.png')) end
Public Instance Methods
configure_attributes()
click to toggle source
Configura los atributos personalizados de la característica (antes de establecer el generador)
# File lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Source/andy_splash_activity_feature.rb, line 70 def configure_attributes() self.generation_attributes[:package] = "#{self.generation_attributes[:package]}.activities" unless self.generation_attributes.has_in_self?(:package) self.generation_attributes[:package_out_dir]= get_package_out_dir end
configure_template_targets()
click to toggle source
Configura los objetivos de las platillas (despues de establecer el generador)
# File lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Source/andy_splash_activity_feature.rb, line 55 def configure_template_targets set_template_target("splash", TemplateTarget.new(:out_file => get_package_out_file("SplashActivity.java"))) set_template_target("splash_activity", TemplateTarget.new(:out_file => get_activity_out_file("activity_splash.xml"))) set_template_target("logo", TemplateTarget.new(:out_file => get_drawable_out_file("logo.png"), :copy_only => true)) end
generate()
click to toggle source
Genera la característica
Calls superclass method
# File lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Source/andy_splash_activity_feature.rb, line 77 def generate super() begin message_helper.add_indent generate_configuration ensure message_helper.remove_indent end end
generate_configuration()
click to toggle source
Modifica el archivo Manifest para agregar las actividades.
# File lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Source/andy_splash_activity_feature.rb, line 88 def generate_configuration manifest_file= get_manifest_file return unless manifest_file if not File.exist? manifest_file message_helper.puts_file_modified manifest_file, :ignore return end # Ruta para conseguir el archivo app.config xml= Nokogiri::XML(File.read(manifest_file)) =begin <uses-permission android:name= "android.permission.INTERNET" /> =end xpath = "uses-permission[@android:name= 'android.permission.INTERNET']" node = XMLHelper.get_node_from_xml_document(xml, xpath) # Configuro el nodo node['android:name'] = "android.permission.INTERNET" =begin <application> <activity android:name= ".activities.SplashActivity" android:screenOrientation= "portrait" android:theme= "@android:style/Theme.Holo.Light.NoActionBar"> </activity> </application> =end # Recupero el nodo xpath = "application/activity[@android:name= '.activities.SplashActivity']" node = XMLHelper.get_node_from_xml_document(xml, xpath) # Configuro el nodo node['android:name'] = ".activities.SplashActivity" node['android:screenOrientation']= "portrait" node['android:theme'] = "@android:style/Theme.Holo.Light.NoActionBar" =begin <application> <activity android:name= ".activities.SplashActivity" android:screenOrientation= "portrait" android:theme= "@android:style/Theme.Holo.Light.NoActionBar"> <intent-filter> <action android:name= "android.intent.action.MAIN" /> <category android:name= "android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> =end # Recupero el nodo xpath = "application/activity[@android:name= '.activities.SplashActivity']/intent-filter/action[@android:name= 'android.intent.action.MAIN']" node = XMLHelper.get_node_from_xml_document(xml, xpath) # Configuro el nodo node['android:name'] = "android.intent.action.MAIN" # Recupero el nodo xpath = "application/activity[@android:name= '.activities.SplashActivity']/intent-filter/category[@android:name= 'android.intent.category.LAUNCHER']" node = XMLHelper.get_node_from_xml_document(xml, xpath) # Configuro el nodo node['android:name'] = "android.intent.category.LAUNCHER" # Formateo el texto formatted_xml = XMLHelper.format(xml.to_xml) # Guardo el resultado File.write(manifest_file, formatted_xml) message_helper.puts_file_modified manifest_file, :override end
reset_attributes()
click to toggle source
Resetea los atributos personalizados de la característica (antes de establecer el generador)
# File lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Source/andy_splash_activity_feature.rb, line 64 def reset_attributes self.generation_attributes[:package] = nil self.generation_attributes[:package_out_dir]= nil end