CapicuaGenBalthazar 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|