CapicuaGenBalthazar 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/CapicuaGenBalthazar.gemspec +61 -0
- data/Gemfile +4 -0
- data/LICENSE +165 -0
- data/README.md +41 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/CapicuaGenBalthazar/AndroidLenguaje/AndroContextProvider/Source/andy_context_provider_feature.rb +57 -0
- data/lib/CapicuaGenBalthazar/Business/AndySqlEntity/Source/andy_sql_entity_feature.rb +101 -0
- data/lib/CapicuaGenBalthazar/Business/AndySqlEntity/Template/table_entity.erb +50 -0
- data/lib/CapicuaGenBalthazar/Entities/AndyEntity/Source/entity_field_schema.rb +56 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyEntityCardViewFragment/Source/andy_entity_card_view_fragment_feature.rb +114 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyEntityCardViewFragment/Template/catalog_cardview.erb +71 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyEntityCardViewFragment/Template/catalog_fragment.erb +160 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyEntityCardViewFragment/Template/catalog_recyclerview.erb +32 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Source/andy_ic_launcher_feature.rb +68 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Template/ic_launcher_mipmap-hdpi.png +0 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Template/ic_launcher_mipmap-mdpi.png +0 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Template/ic_launcher_mipmap-xhdpi.png +0 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Template/ic_launcher_mipmap-xxhdpi.png +0 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Template/ic_launcher_mipmap-xxxhdpi.png +0 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyMainActivity/Source/andy_main_activity_feature.rb +127 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyMainActivity/Template/main.erb +123 -0
- data/lib/CapicuaGenBalthazar/GUI/AndyMainActivity/Template/main_activity.erb +51 -0
- data/lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Source/andy_splash_activity_feature.rb +155 -0
- data/lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Template/logo.png +0 -0
- data/lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Template/splash.erb +57 -0
- data/lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Template/splash_activity.erb +73 -0
- data/lib/CapicuaGenBalthazar/Mixins/android_context_provider_mixin.rb +83 -0
- data/lib/CapicuaGenBalthazar/Mixins/card_view_fragment_mixin.rb +43 -0
- data/lib/CapicuaGenBalthazar/Mixins/java_mixin.rb +57 -0
- data/lib/CapicuaGenBalthazar/Web/AndyWebRequest/Source/andy_web_request_feature.rb +67 -0
- data/lib/CapicuaGenBalthazar/Web/AndyWebRequest/Template/web_request.erb +80 -0
- data/lib/CapicuaGenBalthazar/balthazar.rb +36 -0
- data/lib/CapicuaGenBalthazar/version.rb +3 -0
- metadata +174 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
<%
|
2
|
+
#encoding: UTF-8
|
3
|
+
|
4
|
+
=begin
|
5
|
+
|
6
|
+
CapicuaGen
|
7
|
+
|
8
|
+
CapicuaGen es un software que ayuda a la creación automática de
|
9
|
+
sistemas empresariales a través de la definición y ensamblado de
|
10
|
+
diversos generadores de características.
|
11
|
+
|
12
|
+
El proyecto fue iniciado por José Luis Bautista Martin, el 6 de enero
|
13
|
+
del 2016.
|
14
|
+
|
15
|
+
Puede modificar y distribuir este software, según le plazca, y usarlo
|
16
|
+
para cualquier fin ya sea comercial, personal, educativo, o de cualquier
|
17
|
+
índole, siempre y cuando incluya este mensaje, y se permita acceso el
|
18
|
+
código fuente.
|
19
|
+
|
20
|
+
Este software es código libre, y se licencia bajo LGPL.
|
21
|
+
|
22
|
+
Para más información consultar http://www.gnu.org/licenses/lgpl.html
|
23
|
+
=end
|
24
|
+
%><android.support.v7.widget.RecyclerView
|
25
|
+
xmlns:android="http://schemas.android.com/apk/res/android"
|
26
|
+
android:id="@+id/recyclerview_<%=template_target.entity_schema.name.downcase%>"
|
27
|
+
android:layout_height="match_parent"
|
28
|
+
android:layout_width="match_parent"
|
29
|
+
android:scrollbars="vertical"
|
30
|
+
android:scrollbarStyle="outsideOverlay"
|
31
|
+
/>
|
32
|
+
|
@@ -0,0 +1,68 @@
|
|
1
|
+
=begin
|
2
|
+
|
3
|
+
CapicuaGen
|
4
|
+
|
5
|
+
CapicuaGen es un software que ayuda a la creación automática de
|
6
|
+
sistemas empresariales a través de la definición y ensamblado de
|
7
|
+
diversos generadores de características.
|
8
|
+
|
9
|
+
El proyecto fue iniciado por José Luis Bautista Martin, el 6 de enero
|
10
|
+
del 2016.
|
11
|
+
|
12
|
+
Puede modificar y distribuir este software, según le plazca, y usarlo
|
13
|
+
para cualquier fin ya sea comercial, personal, educativo, o de cualquier
|
14
|
+
índole, siempre y cuando incluya este mensaje, y se permita acceso el
|
15
|
+
código fuente.
|
16
|
+
|
17
|
+
Este software es código libre, y se licencia bajo LGPL.
|
18
|
+
|
19
|
+
Para más información consultar http://www.gnu.org/licenses/lgpl.html
|
20
|
+
=end
|
21
|
+
|
22
|
+
require 'active_support/core_ext/object/blank'
|
23
|
+
|
24
|
+
require_relative '../../../balthazar'
|
25
|
+
require_relative '../../../Mixins/java_mixin'
|
26
|
+
require_relative '../../../Mixins/android_context_provider_mixin'
|
27
|
+
|
28
|
+
|
29
|
+
module CapicuaGen::Balthazar
|
30
|
+
|
31
|
+
# Caracteristica generadora para crear los iconos de una aplicación Android
|
32
|
+
class AndyIcLauncherFeature < CapicuaGen::TemplateFeature
|
33
|
+
include CapicuaGen
|
34
|
+
include CapicuaGen::Balthazar
|
35
|
+
|
36
|
+
public
|
37
|
+
|
38
|
+
# Inicializa la caracteristica
|
39
|
+
def initialize(values= {})
|
40
|
+
super(values)
|
41
|
+
|
42
|
+
# Configuro los tipos si estos no han sido configurados previamente
|
43
|
+
self.types= [:catalog] if self.types.blank?
|
44
|
+
|
45
|
+
set_template('ic_launcher_mipmap-xhdpi', Template.new(:file => 'ic_launcher_mipmap-xhdpi.png'))
|
46
|
+
set_template('ic_launcher_mipmap-xxhdpi', Template.new(:file => 'ic_launcher_mipmap-xxhdpi.png'))
|
47
|
+
set_template('ic_launcher_mipmap-xxxhdpi', Template.new(:file => 'ic_launcher_mipmap-xxxhdpi.png'))
|
48
|
+
set_template('ic_launcher_mipmap-hdpi', Template.new(:file => 'ic_launcher_mipmap-hdpi.png'))
|
49
|
+
set_template('ic_launcher_mipmap-mdpi', Template.new(:file => 'ic_launcher_mipmap-mdpi.png'))
|
50
|
+
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
# Configura los objetivos de las platillas (despues de establecer el generador)
|
55
|
+
def configure_template_targets
|
56
|
+
|
57
|
+
set_template_target('ic_launcher_mipmap-mdpi', TemplateTarget.new(:out_file => get_mipmap_out_file('mdpi', 'ic_launcher.png'), :copy_only => true))
|
58
|
+
set_template_target('ic_launcher_mipmap-hdpi', TemplateTarget.new(:out_file => get_mipmap_out_file('hdpi', 'ic_launcher.png'), :copy_only => true))
|
59
|
+
set_template_target('ic_launcher_mipmap-xhdpi', TemplateTarget.new(:out_file => get_mipmap_out_file('xhdpi', 'ic_launcher.png'), :copy_only => true))
|
60
|
+
set_template_target('ic_launcher_mipmap-xxhdpi', TemplateTarget.new(:out_file => get_mipmap_out_file('xxhdpi', 'ic_launcher.png'), :copy_only => true))
|
61
|
+
set_template_target('ic_launcher_mipmap-xxxhdpi', TemplateTarget.new(:out_file => get_mipmap_out_file('xxxhdpi', 'ic_launcher.png'), :copy_only => true))
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,127 @@
|
|
1
|
+
=begin
|
2
|
+
|
3
|
+
CapicuaGen
|
4
|
+
|
5
|
+
CapicuaGen es un software que ayuda a la creación automática de
|
6
|
+
sistemas empresariales a través de la definición y ensamblado de
|
7
|
+
diversos generadores de características.
|
8
|
+
|
9
|
+
El proyecto fue iniciado por José Luis Bautista Martin, el 6 de enero
|
10
|
+
del 2016.
|
11
|
+
|
12
|
+
Puede modificar y distribuir este software, según le plazca, y usarlo
|
13
|
+
para cualquier fin ya sea comercial, personal, educativo, o de cualquier
|
14
|
+
índole, siempre y cuando incluya este mensaje, y se permita acceso el
|
15
|
+
código fuente.
|
16
|
+
|
17
|
+
Este software es código libre, y se licencia bajo LGPL.
|
18
|
+
|
19
|
+
Para más información consultar http://www.gnu.org/licenses/lgpl.html
|
20
|
+
=end
|
21
|
+
|
22
|
+
require 'active_support/core_ext/object/blank'
|
23
|
+
|
24
|
+
|
25
|
+
require_relative '../../../balthazar'
|
26
|
+
require_relative '../../..//Mixins/card_view_fragment_mixin'
|
27
|
+
require 'CapicuaGenMelchior/Mixins/entity_sql_table_mixin'
|
28
|
+
require_relative '../../../Mixins/android_context_provider_mixin'
|
29
|
+
require_relative '../../../Mixins/java_mixin'
|
30
|
+
|
31
|
+
|
32
|
+
module CapicuaGen::Balthazar
|
33
|
+
|
34
|
+
# Caracteristica generadora para pantalla visualizadora de entidades
|
35
|
+
class AndyMainActivityFeature < CapicuaGen::TemplateFeature
|
36
|
+
include CapicuaGen
|
37
|
+
include CapicuaGen::Balthazar
|
38
|
+
include CapicuaGen::Melchior
|
39
|
+
|
40
|
+
public
|
41
|
+
|
42
|
+
# Inicializa la caracteristica
|
43
|
+
def initialize(values= {})
|
44
|
+
super(values)
|
45
|
+
|
46
|
+
# Configuro los tipos si estos no han sido configurados previamente
|
47
|
+
self.types= [:catalog] if self.types.blank?
|
48
|
+
|
49
|
+
# Configuro los templates
|
50
|
+
set_template("main", Template.new(:file => 'main.erb'))
|
51
|
+
set_template('main_activity', Template.new(:file => 'main_activity.erb'))
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
# Configura los objetivos de las platillas (despues de establecer el generador)
|
56
|
+
def configure_template_targets
|
57
|
+
set_template_target("main", TemplateTarget.new(:out_file => get_package_out_file("MainActivity.java")))
|
58
|
+
set_template_target("main_activity", TemplateTarget.new(:out_file => get_activity_out_file("activity_main.xml")))
|
59
|
+
end
|
60
|
+
|
61
|
+
# Resetea los atributos personalizados de la caracteristica (antes de establecer el generador)
|
62
|
+
def reset_attributes
|
63
|
+
self.generation_attributes[:package] = nil
|
64
|
+
self.generation_attributes[:package_out_dir]= nil
|
65
|
+
end
|
66
|
+
|
67
|
+
# Configura los atributos personalizados de la caracteristica (antes de establecer el generador)
|
68
|
+
def configure_attributes()
|
69
|
+
self.generation_attributes[:package] = "#{self.generation_attributes[:package]}.activities" unless self.generation_attributes.has_in_self?(:package)
|
70
|
+
self.generation_attributes[:package_out_dir]= get_package_out_dir
|
71
|
+
end
|
72
|
+
|
73
|
+
# Genera el codigo de la carateristica
|
74
|
+
def generate
|
75
|
+
super()
|
76
|
+
generate_configuration
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
# Modifica el archivo Manifest para agregar las actividades.
|
81
|
+
def generate_configuration
|
82
|
+
|
83
|
+
manifest_file= get_manifest_file
|
84
|
+
|
85
|
+
return unless manifest_file
|
86
|
+
|
87
|
+
# Ruta para conseguir el archivo manifiest.xml
|
88
|
+
|
89
|
+
xml= Nokogiri::XML(File.read(manifest_file))
|
90
|
+
=begin
|
91
|
+
<uses-permission android:name= "android.permission.INTERNET" />
|
92
|
+
=end
|
93
|
+
xpath = "uses-permission[@android:name= 'android.permission.INTERNET']"
|
94
|
+
node = XMLHelper.get_node_from_xml_document(xml, xpath)
|
95
|
+
|
96
|
+
# Configuro el nodo
|
97
|
+
node['android:name'] = "android.permission.INTERNET"
|
98
|
+
=begin
|
99
|
+
<application>
|
100
|
+
<activity
|
101
|
+
android:name= ".activities.MainActivity"
|
102
|
+
android:screenOrientation= "portrait"
|
103
|
+
android:theme= "@style/Theme.AppCompat" />
|
104
|
+
</application>
|
105
|
+
=end
|
106
|
+
|
107
|
+
# Recupero el nodo
|
108
|
+
xpath = "application/activity[@android:name= '.activities.MainActivity']"
|
109
|
+
node = XMLHelper.get_node_from_xml_document(xml, xpath)
|
110
|
+
|
111
|
+
# Configuro el nodo
|
112
|
+
node['android:name'] = ".activities.MainActivity"
|
113
|
+
node['android:screenOrientation']= "portrait"
|
114
|
+
node['android:theme'] = "@style/Theme.AppCompat"
|
115
|
+
|
116
|
+
|
117
|
+
# Formateo el texto
|
118
|
+
formatted_xml = XMLHelper.format(xml.to_xml)
|
119
|
+
|
120
|
+
# Guardo el resultado
|
121
|
+
File.write(manifest_file, formatted_xml)
|
122
|
+
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|
@@ -0,0 +1,123 @@
|
|
1
|
+
<%
|
2
|
+
#encoding: UTF-8
|
3
|
+
|
4
|
+
=begin
|
5
|
+
|
6
|
+
CapicuaGen
|
7
|
+
|
8
|
+
CapicuaGen es un software que ayuda a la creación automática de
|
9
|
+
sistemas empresariales a través de la definición y ensamblado de
|
10
|
+
diversos generadores de características.
|
11
|
+
|
12
|
+
El proyecto fue iniciado por José Luis Bautista Martin, el 6 de enero
|
13
|
+
del 2016.
|
14
|
+
|
15
|
+
Puede modificar y distribuir este software, según le plazca, y usarlo
|
16
|
+
para cualquier fin ya sea comercial, personal, educativo, o de cualquier
|
17
|
+
índole, siempre y cuando incluya este mensaje, y se permita acceso el
|
18
|
+
código fuente.
|
19
|
+
|
20
|
+
Este software es código libre, y se licencia bajo LGPL.
|
21
|
+
|
22
|
+
Para más información consultar http://www.gnu.org/licenses/lgpl.html
|
23
|
+
=end
|
24
|
+
%>package <%=generation_attributes[:package]%>;
|
25
|
+
|
26
|
+
import android.app.ActionBar;
|
27
|
+
import android.app.FragmentTransaction;
|
28
|
+
import android.os.Bundle;
|
29
|
+
import android.support.v4.app.Fragment;
|
30
|
+
import android.support.v4.app.FragmentManager;
|
31
|
+
import android.support.v4.app.FragmentPagerAdapter;
|
32
|
+
import android.support.v4.view.ViewPager;
|
33
|
+
import android.support.v7.app.ActionBarActivity;
|
34
|
+
import android.view.Menu;
|
35
|
+
|
36
|
+
import <%=get_r_full_name%>;
|
37
|
+
|
38
|
+
public class MainActivity extends ActionBarActivity implements ActionBar.TabListener {
|
39
|
+
|
40
|
+
|
41
|
+
SectionPagerAdapter adapter;
|
42
|
+
ViewPager viewPager;
|
43
|
+
|
44
|
+
@Override
|
45
|
+
protected void onCreate(Bundle savedInstanceState) {
|
46
|
+
super.onCreate(savedInstanceState);
|
47
|
+
setContentView(R.layout.activity_main);
|
48
|
+
adapter = new SectionPagerAdapter(getSupportFragmentManager());
|
49
|
+
viewPager = (ViewPager) findViewById(R.id.activity_main_pager);
|
50
|
+
viewPager.setAdapter(adapter);
|
51
|
+
}
|
52
|
+
|
53
|
+
@Override
|
54
|
+
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
|
55
|
+
viewPager.setCurrentItem(tab.getPosition());
|
56
|
+
}
|
57
|
+
|
58
|
+
@Override
|
59
|
+
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
|
60
|
+
|
61
|
+
}
|
62
|
+
|
63
|
+
@Override
|
64
|
+
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
|
65
|
+
|
66
|
+
}
|
67
|
+
|
68
|
+
public class SectionPagerAdapter extends FragmentPagerAdapter {
|
69
|
+
public SectionPagerAdapter(FragmentManager fm) {
|
70
|
+
super(fm);
|
71
|
+
}
|
72
|
+
|
73
|
+
@Override
|
74
|
+
public CharSequence getPageTitle(int position) {
|
75
|
+
|
76
|
+
switch (position) {
|
77
|
+
<%
|
78
|
+
entities_count=0
|
79
|
+
get_tables do |e|
|
80
|
+
|
81
|
+
%>
|
82
|
+
case <%=entities_count%>:
|
83
|
+
return "<%=e.name%>";
|
84
|
+
<%entities_count+=1
|
85
|
+
end%>
|
86
|
+
|
87
|
+
}
|
88
|
+
return null;
|
89
|
+
}
|
90
|
+
|
91
|
+
@Override
|
92
|
+
public Fragment getItem(int position) {
|
93
|
+
switch (position) {
|
94
|
+
<%
|
95
|
+
entities_count=0
|
96
|
+
get_tables do |e|
|
97
|
+
%>
|
98
|
+
case <%=entities_count%>:
|
99
|
+
return new <%=get_entity_fragment_full_name(e.name)%>();
|
100
|
+
<%entities_count+=1
|
101
|
+
end%>
|
102
|
+
|
103
|
+
default:
|
104
|
+
return null;
|
105
|
+
|
106
|
+
}
|
107
|
+
}
|
108
|
+
|
109
|
+
@Override
|
110
|
+
public int getCount() {
|
111
|
+
return <%=entities_count%>;
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
@Override
|
116
|
+
public boolean onCreateOptionsMenu(Menu menu) {
|
117
|
+
|
118
|
+
return false;
|
119
|
+
}
|
120
|
+
|
121
|
+
|
122
|
+
}
|
123
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<%
|
2
|
+
#encoding: UTF-8
|
3
|
+
|
4
|
+
=begin
|
5
|
+
|
6
|
+
CapicuaGen
|
7
|
+
|
8
|
+
CapicuaGen es un software que ayuda a la creación automática de
|
9
|
+
sistemas empresariales a través de la definición y ensamblado de
|
10
|
+
diversos generadores de características.
|
11
|
+
|
12
|
+
El proyecto fue iniciado por José Luis Bautista Martin, el 6 de enero
|
13
|
+
del 2016.
|
14
|
+
|
15
|
+
Puede modificar y distribuir este software, según le plazca, y usarlo
|
16
|
+
para cualquier fin ya sea comercial, personal, educativo, o de cualquier
|
17
|
+
índole, siempre y cuando incluya este mensaje, y se permita acceso el
|
18
|
+
código fuente.
|
19
|
+
|
20
|
+
Este software es código libre, y se licencia bajo LGPL.
|
21
|
+
|
22
|
+
Para más información consultar http://www.gnu.org/licenses/lgpl.html
|
23
|
+
=end
|
24
|
+
%><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
25
|
+
xmlns:tools="http://schemas.android.com/tools"
|
26
|
+
android:layout_width="match_parent"
|
27
|
+
android:layout_height="match_parent"
|
28
|
+
tools:context=".MainActivity">
|
29
|
+
|
30
|
+
<android.support.v4.view.ViewPager
|
31
|
+
android:id="@+id/activity_main_pager"
|
32
|
+
android:layout_width="match_parent"
|
33
|
+
android:layout_height="match_parent">
|
34
|
+
|
35
|
+
<android.support.v4.view.PagerTabStrip
|
36
|
+
android:id="@+id/activity_main_tab"
|
37
|
+
android:layout_width="match_parent"
|
38
|
+
android:layout_height="wrap_content"
|
39
|
+
android:background="#2196F3"
|
40
|
+
android:textColor="@android:color/white"
|
41
|
+
android:layout_gravity="top"
|
42
|
+
android:paddingTop="5dp"
|
43
|
+
android:paddingBottom="5dp"
|
44
|
+
>
|
45
|
+
|
46
|
+
</android.support.v4.view.PagerTabStrip>
|
47
|
+
|
48
|
+
</android.support.v4.view.ViewPager>
|
49
|
+
|
50
|
+
</RelativeLayout>
|
51
|
+
|
@@ -0,0 +1,155 @@
|
|
1
|
+
=begin
|
2
|
+
|
3
|
+
CapicuaGen
|
4
|
+
|
5
|
+
CapicuaGen es un software que ayuda a la creación automática de
|
6
|
+
sistemas empresariales a través de la definición y ensamblado de
|
7
|
+
diversos generadores de características.
|
8
|
+
|
9
|
+
El proyecto fue iniciado por José Luis Bautista Martin, el 6 de enero
|
10
|
+
del 2016.
|
11
|
+
|
12
|
+
Puede modificar y distribuir este software, según le plazca, y usarlo
|
13
|
+
para cualquier fin ya sea comercial, personal, educativo, o de cualquier
|
14
|
+
índole, siempre y cuando incluya este mensaje, y se permita acceso el
|
15
|
+
código fuente.
|
16
|
+
|
17
|
+
Este software es código libre, y se licencia bajo LGPL.
|
18
|
+
|
19
|
+
Para más información consultar http://www.gnu.org/licenses/lgpl.html
|
20
|
+
=end
|
21
|
+
|
22
|
+
require 'active_support/core_ext/object/blank'
|
23
|
+
|
24
|
+
require_relative '../../../balthazar'
|
25
|
+
require 'CapicuaGenMelchior/Mixins/entity_sql_table_mixin'
|
26
|
+
require_relative '../../../Mixins/android_context_provider_mixin'
|
27
|
+
require_relative '../../../Mixins/java_mixin'
|
28
|
+
|
29
|
+
|
30
|
+
module CapicuaGen::Balthazar
|
31
|
+
|
32
|
+
# Caracteristica generadora pantalla de bienvenida
|
33
|
+
class AndySplashActivityFeature < CapicuaGen::TemplateFeature
|
34
|
+
include CapicuaGen
|
35
|
+
include CapicuaGen::Balthazar
|
36
|
+
|
37
|
+
public
|
38
|
+
|
39
|
+
# Inicializa la caracteristica
|
40
|
+
def initialize(values= {})
|
41
|
+
super(values)
|
42
|
+
|
43
|
+
# Configuro los tipos si estos no han sido configurados previamente
|
44
|
+
self.types= [:catalog] if self.types.blank?
|
45
|
+
|
46
|
+
|
47
|
+
# Configuro los templates
|
48
|
+
set_template("splash", Template.new(:file => 'splash.erb'))
|
49
|
+
set_template('splash_activity', Template.new(:file => 'splash_activity.erb'))
|
50
|
+
set_template('logo', Template.new(:file => 'logo.png'))
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
# Configura los objetivos de las platillas (despues de establecer el generador)
|
55
|
+
def configure_template_targets
|
56
|
+
|
57
|
+
set_template_target("splash", TemplateTarget.new(:out_file => get_package_out_file("SplashActivity.java")))
|
58
|
+
set_template_target("splash_activity", TemplateTarget.new(:out_file => get_activity_out_file("activity_splash.xml")))
|
59
|
+
set_template_target("logo", TemplateTarget.new(:out_file => get_drawable_out_file("logo.png"), :copy_only => true))
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
# Resetea los atributos personalizados de la caracteristica (antes de establecer el generador)
|
64
|
+
def reset_attributes
|
65
|
+
self.generation_attributes[:package] = nil
|
66
|
+
self.generation_attributes[:package_out_dir]= nil
|
67
|
+
end
|
68
|
+
|
69
|
+
# Configura los atributos personalizados de la caracteristica (antes de establecer el generador)
|
70
|
+
def configure_attributes()
|
71
|
+
self.generation_attributes[:package] = "#{self.generation_attributes[:package]}.activities" unless self.generation_attributes.has_in_self?(:package)
|
72
|
+
self.generation_attributes[:package_out_dir]= get_package_out_dir
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
# Genera la caracteristica
|
77
|
+
def generate
|
78
|
+
super()
|
79
|
+
generate_configuration
|
80
|
+
end
|
81
|
+
|
82
|
+
# Modifica el archivo Manifest para agregar las actividades.
|
83
|
+
def generate_configuration
|
84
|
+
|
85
|
+
manifest_file= get_manifest_file
|
86
|
+
|
87
|
+
return unless manifest_file
|
88
|
+
|
89
|
+
# Ruta para conseguir el archivo app.config
|
90
|
+
|
91
|
+
xml= Nokogiri::XML(File.read(manifest_file))
|
92
|
+
=begin
|
93
|
+
<uses-permission android:name= "android.permission.INTERNET" />
|
94
|
+
=end
|
95
|
+
xpath = "uses-permission[@android:name= 'android.permission.INTERNET']"
|
96
|
+
node = XMLHelper.get_node_from_xml_document(xml, xpath)
|
97
|
+
|
98
|
+
# Configuro el nodo
|
99
|
+
node['android:name'] = "android.permission.INTERNET"
|
100
|
+
=begin
|
101
|
+
<application>
|
102
|
+
<activity
|
103
|
+
android:name= ".activities.SplashActivity"
|
104
|
+
android:screenOrientation= "portrait"
|
105
|
+
android:theme= "@android:style/Theme.Holo.Light.NoActionBar">
|
106
|
+
</activity>
|
107
|
+
</application>
|
108
|
+
=end
|
109
|
+
|
110
|
+
# Recupero el nodo
|
111
|
+
xpath = "application/activity[@android:name= '.activities.SplashActivity']"
|
112
|
+
node = XMLHelper.get_node_from_xml_document(xml, xpath)
|
113
|
+
|
114
|
+
# Configuro el nodo
|
115
|
+
node['android:name'] = ".activities.SplashActivity"
|
116
|
+
node['android:screenOrientation']= "portrait"
|
117
|
+
node['android:theme'] = "@android:style/Theme.Holo.Light.NoActionBar"
|
118
|
+
=begin
|
119
|
+
<application>
|
120
|
+
<activity
|
121
|
+
android:name= ".activities.SplashActivity"
|
122
|
+
android:screenOrientation= "portrait"
|
123
|
+
android:theme= "@android:style/Theme.Holo.Light.NoActionBar">
|
124
|
+
<intent-filter>
|
125
|
+
<action android:name= "android.intent.action.MAIN" />
|
126
|
+
<category android:name= "android.intent.category.LAUNCHER" />
|
127
|
+
</intent-filter>
|
128
|
+
</activity>
|
129
|
+
</application>
|
130
|
+
=end
|
131
|
+
|
132
|
+
# Recupero el nodo
|
133
|
+
xpath = "application/activity[@android:name= '.activities.SplashActivity']/intent-filter/action[@android:name= 'android.intent.action.MAIN']"
|
134
|
+
node = XMLHelper.get_node_from_xml_document(xml, xpath)
|
135
|
+
|
136
|
+
# Configuro el nodo
|
137
|
+
node['android:name'] = "android.intent.action.MAIN"
|
138
|
+
|
139
|
+
# Recupero el nodo
|
140
|
+
xpath = "application/activity[@android:name= '.activities.SplashActivity']/intent-filter/category[@android:name= 'android.intent.category.LAUNCHER']"
|
141
|
+
node = XMLHelper.get_node_from_xml_document(xml, xpath)
|
142
|
+
|
143
|
+
# Configuro el nodo
|
144
|
+
node['android:name'] = "android.intent.category.LAUNCHER"
|
145
|
+
|
146
|
+
# Formateo el texto
|
147
|
+
formatted_xml = XMLHelper.format(xml.to_xml)
|
148
|
+
|
149
|
+
# Guardo el resultado
|
150
|
+
File.write(manifest_file, formatted_xml)
|
151
|
+
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|