class CapicuaGen::Balthazar::AndyMainActivityFeature

Característica generadora para pantalla visualizadora de entidades

Public Class Methods

new(values= {}) click to toggle source

Inicializa la característica

Calls superclass method
# File lib/CapicuaGenBalthazar/GUI/AndyMainActivity/Source/andy_main_activity_feature.rb, line 43
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("main", Template.new(:file => 'main.erb'))
  set_template('main_activity', Template.new(:file => 'main_activity.erb'))

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/AndyMainActivity/Source/andy_main_activity_feature.rb, line 68
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/AndyMainActivity/Source/andy_main_activity_feature.rb, line 56
def configure_template_targets
  set_template_target("main", TemplateTarget.new(:out_file => get_package_out_file("MainActivity.java")))
  set_template_target("main_activity", TemplateTarget.new(:out_file => get_activity_out_file("activity_main.xml")))
end
generate() click to toggle source

Genera el código de la carateristica

Calls superclass method
# File lib/CapicuaGenBalthazar/GUI/AndyMainActivity/Source/andy_main_activity_feature.rb, line 74
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/AndyMainActivity/Source/andy_main_activity_feature.rb, line 87
    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 manifiest.xml

      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.MainActivity"
            android:screenOrientation= "portrait"
            android:theme= "@style/Theme.AppCompat" />
    </application>
=end

      # Recupero el nodo
      xpath                            = "application/activity[@android:name= '.activities.MainActivity']"
      node                             = XMLHelper.get_node_from_xml_document(xml, xpath)

      # Configuro el nodo
      node['android:name']             = ".activities.MainActivity"
      node['android:screenOrientation']= "portrait"
      node['android:theme']            = "@style/Theme.AppCompat"


      # 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/AndyMainActivity/Source/andy_main_activity_feature.rb, line 62
def reset_attributes
  self.generation_attributes[:package]        = nil
  self.generation_attributes[:package_out_dir]= nil
end