Class: CapicuaGen::Balthazar::AndyMainActivityFeature

Inherits:
TemplateFeature
  • Object
show all
Includes:
CapicuaGen, CapicuaGen::Balthazar, Melchior
Defined in:
lib/CapicuaGenBalthazar/GUI/AndyMainActivity/Source/andy_main_activity_feature.rb

Overview

Caracteristica generadora para pantalla visualizadora de entidades

Instance Method Summary collapse

Constructor Details

#initialize(values = {}) ⇒ AndyMainActivityFeature

Inicializa la caracteristica



43
44
45
46
47
48
49
50
51
52
53
# 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

Instance Method Details

#configure_attributesObject

Configura los atributos personalizados de la caracteristica (antes de establecer el generador)



68
69
70
71
# 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_targetsObject

Configura los objetivos de las platillas (despues de establecer el generador)



56
57
58
59
# 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

#generateObject

Genera el codigo de la carateristica



74
75
76
77
# File 'lib/CapicuaGenBalthazar/GUI/AndyMainActivity/Source/andy_main_activity_feature.rb', line 74

def generate
  super()
  generate_configuration
end

#generate_configurationObject

Modifica el archivo Manifest para agregar las actividades.



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/CapicuaGenBalthazar/GUI/AndyMainActivity/Source/andy_main_activity_feature.rb', line 81

def generate_configuration

  manifest_file= get_manifest_file

  return unless manifest_file

  # 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)

end

#reset_attributesObject

Resetea los atributos personalizados de la caracteristica (antes de establecer el generador)



62
63
64
65
# 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