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