Class: CapicuaGen::Balthazar::AndySplashActivityFeature

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

Overview

Caracteristica generadora pantalla de bienvenida

Instance Method Summary collapse

Constructor Details

#initialize(values = {}) ⇒ AndySplashActivityFeature

Inicializa la caracteristica



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

Instance Method Details

#configure_attributesObject

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



70
71
72
73
# 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_targetsObject

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



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

#generateObject

Genera la caracteristica



77
78
79
80
# File 'lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Source/andy_splash_activity_feature.rb', line 77

def generate
  super()
  generate_configuration
end

#generate_configurationObject

Modifica el archivo Manifest para agregar las actividades.



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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# File 'lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Source/andy_splash_activity_feature.rb', line 83

def generate_configuration

  manifest_file= get_manifest_file

  return unless manifest_file

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

end

#reset_attributesObject

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



64
65
66
67
# 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