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,101 @@
|
|
1
|
+
|
2
|
+
=begin
|
3
|
+
|
4
|
+
CapicuaGen
|
5
|
+
|
6
|
+
CapicuaGen es un software que ayuda a la creación automática de
|
7
|
+
sistemas empresariales a través de la definición y ensamblado de
|
8
|
+
diversos generadores de características.
|
9
|
+
|
10
|
+
El proyecto fue iniciado por José Luis Bautista Martin, el 6 de enero
|
11
|
+
del 2016.
|
12
|
+
|
13
|
+
Puede modificar y distribuir este software, según le plazca, y usarlo
|
14
|
+
para cualquier fin ya sea comercial, personal, educativo, o de cualquier
|
15
|
+
índole, siempre y cuando incluya este mensaje, y se permita acceso el
|
16
|
+
código fuente.
|
17
|
+
|
18
|
+
Este software es código libre, y se licencia bajo LGPL.
|
19
|
+
|
20
|
+
Para más información consultar http://www.gnu.org/licenses/lgpl.html
|
21
|
+
=end
|
22
|
+
|
23
|
+
|
24
|
+
require 'active_support/core_ext/object/blank'
|
25
|
+
|
26
|
+
require_relative '../../../balthazar'
|
27
|
+
require 'CapicuaGenMelchior/Mixins/entity_sql_table_mixin'
|
28
|
+
require_relative '../../../Mixins/java_mixin'
|
29
|
+
|
30
|
+
|
31
|
+
module CapicuaGen::Balthazar
|
32
|
+
|
33
|
+
# Caracteristica generadora para crear entidades de negocio
|
34
|
+
# a traves de entidades extraidas un archivo .sql
|
35
|
+
class AndySqlEntityFeature < CapicuaGen::TemplateFeature
|
36
|
+
include CapicuaGen
|
37
|
+
include CapicuaGen::Balthazar
|
38
|
+
include CapicuaGen::Melchior
|
39
|
+
|
40
|
+
attr_accessor :class_accessor
|
41
|
+
|
42
|
+
public
|
43
|
+
|
44
|
+
# Inicializa la caracteristica
|
45
|
+
def initialize(values= {})
|
46
|
+
super(values)
|
47
|
+
|
48
|
+
self.types= [:business_entities] if self.types.blank?
|
49
|
+
|
50
|
+
# Configuro los templates
|
51
|
+
set_template("table_entity", Template.new(:file => 'table_entity.erb'))
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
# Configura los objetivos de las platillas (despues de establecer el generador)
|
57
|
+
def configure_template_targets
|
58
|
+
|
59
|
+
# Busco las caracteristicas que contiene entidades de SQL para una table
|
60
|
+
get_tables do |e|
|
61
|
+
set_template_target("table_entity/#{get_entity_name(e.name)}",
|
62
|
+
TemplateTarget.new(
|
63
|
+
:out_file => get_package_out_file("#{get_entity_name(e.name)}.java"),
|
64
|
+
:types => :proyect_file,
|
65
|
+
:class_name => get_entity_name(e.name),
|
66
|
+
:entity_schema => e,
|
67
|
+
:class_accessor => @class_accessor,
|
68
|
+
)
|
69
|
+
)
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
# Resetea los atributos personalizados de la caracteristica (antes de establecer el generador)
|
76
|
+
def reset_attributes
|
77
|
+
self.generation_attributes[:package] = nil
|
78
|
+
self.generation_attributes[:package_out_dir]= nil
|
79
|
+
end
|
80
|
+
|
81
|
+
# Configura los atributos personalizados de la caracteristica (antes de establecer el generador)
|
82
|
+
def configure_attributes()
|
83
|
+
self.generation_attributes[:package] = "#{self.generation_attributes[:package]}.beans" unless self.generation_attributes.has_in_self?(:package)
|
84
|
+
self.generation_attributes[:package_out_dir]= get_package_out_dir
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
# Obtiene el nombre de la entidad (como clase de Java)
|
89
|
+
def get_entity_name(entity_name)
|
90
|
+
return entity_name
|
91
|
+
end
|
92
|
+
|
93
|
+
# Obtiene el nombre completo de la entidad (como clase de Java)
|
94
|
+
def get_entity_full_name(entity_name)
|
95
|
+
return "#{self.generation_attributes[:package]}.#{get_entity_name(entity_name)}"
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
|
@@ -0,0 +1,50 @@
|
|
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
|
+
/*
|
27
|
+
Entidad de <%=template_target.class_name%>
|
28
|
+
*/
|
29
|
+
public class <%=template_target.class_name%> {
|
30
|
+
|
31
|
+
<%template_target.entity_schema.fields.each { |field| %>
|
32
|
+
/*
|
33
|
+
Nombre: <%=field.name%>
|
34
|
+
Tipo: <%=field.type%>
|
35
|
+
Permite Nulos: <%=field.allow_null%>
|
36
|
+
Valor por Defecto: <%=field.default_value%>
|
37
|
+
Llave Primaria: <%=field.primary_key%>
|
38
|
+
*/
|
39
|
+
private <%=field.java_type%> <%=field.name%>;
|
40
|
+
|
41
|
+
public <%=field.java_type%> get<%=field.name%>() {
|
42
|
+
return <%=field.name%>;
|
43
|
+
}
|
44
|
+
|
45
|
+
public void set<%=field.name%>(<%=field.java_type%> value) {
|
46
|
+
this.<%=field.name%> = value;
|
47
|
+
}
|
48
|
+
<%}%>
|
49
|
+
}
|
50
|
+
|
@@ -0,0 +1,56 @@
|
|
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
|
+
|
26
|
+
module CapicuaGen::Melchior
|
27
|
+
|
28
|
+
# Extiende la clase Entity field Schema que representa una entidad
|
29
|
+
# de negocio con funcionalidad para convertirse sus propiedades
|
30
|
+
# a tipos simples de Java.
|
31
|
+
class EntityFieldSchema
|
32
|
+
|
33
|
+
def java_type
|
34
|
+
|
35
|
+
case @type.upcase
|
36
|
+
when "SMALLINT"
|
37
|
+
return "Int16"
|
38
|
+
when "INTEGER", "INT"
|
39
|
+
return "int"
|
40
|
+
when "DECIMAL", "REAL", "MONEY"
|
41
|
+
return "decimal"
|
42
|
+
when "CHAR", "VARCHAR", "NCHAR", "NVARCHAR"
|
43
|
+
return "String"
|
44
|
+
when "DATE", "DATETIME"
|
45
|
+
return "DateTime"
|
46
|
+
when "BIT"
|
47
|
+
return "bool"
|
48
|
+
else
|
49
|
+
return "object"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -0,0 +1,114 @@
|
|
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/java_mixin'
|
27
|
+
require_relative '../../../Mixins/android_context_provider_mixin'
|
28
|
+
|
29
|
+
|
30
|
+
module CapicuaGen::Balthazar
|
31
|
+
|
32
|
+
# Caracteristica generadora para crear las vistas, fragmentos y clases necesarias
|
33
|
+
# para mostrar entidades en las pantalla de un disposito Android
|
34
|
+
class AndyEntityCardViewFragmentFeature < CapicuaGen::TemplateFeature
|
35
|
+
include CapicuaGen
|
36
|
+
include CapicuaGen::Balthazar
|
37
|
+
include CapicuaGen::Melchior
|
38
|
+
|
39
|
+
public
|
40
|
+
|
41
|
+
# Inicializa la caracteristica
|
42
|
+
def initialize(values= {})
|
43
|
+
super(values)
|
44
|
+
|
45
|
+
# Configuro los tipos si estos no han sido configurados previamente
|
46
|
+
self.types= [:fragment] if self.types.blank?
|
47
|
+
|
48
|
+
# Configuro los templates
|
49
|
+
set_template("catalog_cardview", Template.new(:file => 'catalog_cardview.erb'))
|
50
|
+
set_template('catalog_fragment', Template.new(:file => 'catalog_fragment.erb'))
|
51
|
+
set_template('catalog_recyclerview', Template.new(:file => 'catalog_recyclerview.erb'))
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
# Configura los objetivos de las platillas (despues de establecer el generador)
|
56
|
+
def configure_template_targets
|
57
|
+
|
58
|
+
# Busco las caracteristicas que contiene entidades de SQL para una table
|
59
|
+
get_tables do |e|
|
60
|
+
|
61
|
+
set_template_target("catalog_fragment/#{e.name}Fragment",
|
62
|
+
TemplateTarget.new(
|
63
|
+
:out_file => get_package_out_file("#{e.name}Fragment.java"),
|
64
|
+
:types => :proyect_file,
|
65
|
+
:entity_schema => e
|
66
|
+
)
|
67
|
+
)
|
68
|
+
|
69
|
+
|
70
|
+
set_template_target("catalog_cardview/cardview_#{e.name}",
|
71
|
+
TemplateTarget.new(
|
72
|
+
:out_file => "#{get_activity_out_file("cardview_#{e.name}".downcase)}.xml",
|
73
|
+
:types => :proyect_file,
|
74
|
+
:entity_schema => e
|
75
|
+
)
|
76
|
+
)
|
77
|
+
|
78
|
+
|
79
|
+
set_template_target("catalog_recyclerview/catalog_recyclerview_#{e.name}",
|
80
|
+
TemplateTarget.new(
|
81
|
+
:out_file => "#{get_activity_out_file("recyclerview_#{e.name}".downcase)}.xml",
|
82
|
+
:types => :proyect_file,
|
83
|
+
:entity_schema => e
|
84
|
+
)
|
85
|
+
|
86
|
+
)
|
87
|
+
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
# Resetea los atributos personalizados de la caracteristica (antes de establecer el generador)
|
94
|
+
def reset_attributes
|
95
|
+
self.generation_attributes[:package] = nil
|
96
|
+
self.generation_attributes[:package_out_dir]= nil
|
97
|
+
end
|
98
|
+
|
99
|
+
# Configura los atributos personalizados de la caracteristica (antes de establecer el generador)
|
100
|
+
def configure_attributes()
|
101
|
+
self.generation_attributes[:package] = "#{self.generation_attributes[:package]}.fragments" unless self.generation_attributes.has_in_self?(:package)
|
102
|
+
self.generation_attributes[:package_out_dir]= get_package_out_dir
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
# Obtiene del la clase fragment, en base al nombre de una entidad
|
107
|
+
def get_entity_fragment_full_name(entity_name)
|
108
|
+
return "#{self.generation_attributes[:package]}.#{entity_name}Fragment"
|
109
|
+
end
|
110
|
+
|
111
|
+
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
@@ -0,0 +1,71 @@
|
|
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
|
+
%><?xml version="1.0" encoding="utf-8"?>
|
25
|
+
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
26
|
+
android:id="@+id/card_view"
|
27
|
+
android:layout_width="match_parent"
|
28
|
+
android:layout_height="300dp"
|
29
|
+
android:orientation="vertical">
|
30
|
+
|
31
|
+
|
32
|
+
<LinearLayout
|
33
|
+
android:layout_width="match_parent"
|
34
|
+
android:layout_height="match_parent"
|
35
|
+
android:orientation="vertical">
|
36
|
+
|
37
|
+
<TextView
|
38
|
+
android:id="@+id/cardview_<%=template_target.entity_schema.name%>_title"
|
39
|
+
android:layout_width="match_parent"
|
40
|
+
android:layout_height="wrap_content"
|
41
|
+
android:background="#66000000"
|
42
|
+
android:gravity="center"
|
43
|
+
android:textColor="@android:color/white"
|
44
|
+
android:textSize="20sp"
|
45
|
+
android:textStyle="bold" android:layout_marginBottom="10dp" />
|
46
|
+
|
47
|
+
<%template_target.entity_schema.fields.each do |field|%>
|
48
|
+
|
49
|
+
<TextView
|
50
|
+
android:layout_width="match_parent"
|
51
|
+
android:layout_height="wrap_content"
|
52
|
+
android:text="<%=field.name%>:"
|
53
|
+
android:textColor="@android:color/black"
|
54
|
+
android:textStyle="bold"
|
55
|
+
android:paddingLeft="5dp" />
|
56
|
+
|
57
|
+
<TextView
|
58
|
+
android:id="@+id/cardview_<%=template_target.entity_schema.name%>_<%=field.name%>"
|
59
|
+
android:layout_width="match_parent"
|
60
|
+
android:layout_height="wrap_content"
|
61
|
+
android:text="<%=field.name%>"
|
62
|
+
android:textColor="@android:color/black"
|
63
|
+
android:padding="10dp" />
|
64
|
+
|
65
|
+
<%end%>
|
66
|
+
|
67
|
+
</LinearLayout>
|
68
|
+
|
69
|
+
|
70
|
+
</android.support.v7.widget.CardView>
|
71
|
+
|
@@ -0,0 +1,160 @@
|
|
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.content.Context;
|
27
|
+
import android.os.AsyncTask;
|
28
|
+
import android.os.Bundle;
|
29
|
+
import android.support.v4.app.Fragment;
|
30
|
+
import android.support.v7.widget.LinearLayoutManager;
|
31
|
+
import android.support.v7.widget.RecyclerView;
|
32
|
+
import android.view.LayoutInflater;
|
33
|
+
import android.view.View;
|
34
|
+
import android.view.ViewGroup;
|
35
|
+
import android.widget.TextView;
|
36
|
+
|
37
|
+
import <%=get_r_full_name%>;
|
38
|
+
import <%=get_base_package%>.beans.<%=template_target.entity_schema.name%>;
|
39
|
+
import <%=get_base_package%>.tools.WebRequest;
|
40
|
+
import com.google.gson.Gson;
|
41
|
+
|
42
|
+
import java.io.Reader;
|
43
|
+
import java.util.ArrayList;
|
44
|
+
import java.util.Arrays;
|
45
|
+
import java.util.logging.Level;
|
46
|
+
|
47
|
+
import static java.util.logging.Logger.getLogger;
|
48
|
+
|
49
|
+
|
50
|
+
/**
|
51
|
+
* A simple {@link Fragment} subclass.
|
52
|
+
*/
|
53
|
+
public class <%=template_target.entity_schema.name%>Fragment extends Fragment {
|
54
|
+
|
55
|
+
|
56
|
+
static final String URL = "<%=generation_attributes[:remote_url]%>/<%=template_target.entity_schema.name%>";
|
57
|
+
private <%=template_target.entity_schema.name%>Adapter adapter;
|
58
|
+
private RecyclerView.LayoutManager layoutManager;
|
59
|
+
|
60
|
+
public <%=template_target.entity_schema.name%>Fragment() {
|
61
|
+
// Required empty public constructor
|
62
|
+
}
|
63
|
+
|
64
|
+
@Override
|
65
|
+
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
66
|
+
View v = inflater.inflate(R.layout.recyclerview_<%=template_target.entity_schema.name.downcase%>, container, false);
|
67
|
+
RecyclerView recycler = (RecyclerView) v.findViewById(R.id.recyclerview_<%=template_target.entity_schema.name.downcase%>);
|
68
|
+
recycler.setHasFixedSize(true);
|
69
|
+
|
70
|
+
layoutManager = new LinearLayoutManager(getActivity());
|
71
|
+
recycler.setLayoutManager(layoutManager);
|
72
|
+
|
73
|
+
ArrayList<<%=template_target.entity_schema.name%>> myDataSet = new ArrayList<<%=template_target.entity_schema.name%>>();
|
74
|
+
|
75
|
+
adapter = new <%=template_target.entity_schema.name%>Adapter(getActivity(), myDataSet);
|
76
|
+
recycler.setAdapter(adapter);
|
77
|
+
|
78
|
+
GetJson getJson = new GetJson();
|
79
|
+
getJson.execute();
|
80
|
+
|
81
|
+
|
82
|
+
return v;
|
83
|
+
}
|
84
|
+
|
85
|
+
public class GetJson extends AsyncTask<Void, Void, Void> {
|
86
|
+
|
87
|
+
|
88
|
+
@Override
|
89
|
+
protected Void doInBackground(Void... params) {
|
90
|
+
WebRequest webRequest = new WebRequest();
|
91
|
+
try {
|
92
|
+
|
93
|
+
String reader = webRequest.getResponseText(URL);
|
94
|
+
Gson gson = new Gson();
|
95
|
+
final <%=template_target.entity_schema.name%>[] jsonElements = gson.fromJson(reader, <%=template_target.entity_schema.name%>[].class);
|
96
|
+
|
97
|
+
if (jsonElements != null) {
|
98
|
+
|
99
|
+
getActivity().runOnUiThread(new Runnable() {
|
100
|
+
@Override
|
101
|
+
public void run() {
|
102
|
+
adapter.<%=template_target.entity_schema.name%> = new ArrayList(Arrays.asList(jsonElements));
|
103
|
+
adapter.notifyDataSetChanged();
|
104
|
+
}
|
105
|
+
});
|
106
|
+
}
|
107
|
+
|
108
|
+
} catch (Exception e) {
|
109
|
+
getLogger(getClass().getName()).log(Level.SEVERE, null, e);
|
110
|
+
}
|
111
|
+
return null;
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
public class <%=template_target.entity_schema.name%>Adapter extends RecyclerView.Adapter<<%=template_target.entity_schema.name%>Fragment.ViewHolder> {
|
116
|
+
|
117
|
+
public ArrayList<<%=template_target.entity_schema.name%>> <%=template_target.entity_schema.name%>;
|
118
|
+
private Context context;
|
119
|
+
|
120
|
+
public <%=template_target.entity_schema.name%>Adapter(Context context, ArrayList<<%=template_target.entity_schema.name%>> product) {
|
121
|
+
this.context = context;
|
122
|
+
this.<%=template_target.entity_schema.name%> = product;
|
123
|
+
}
|
124
|
+
|
125
|
+
@Override
|
126
|
+
public <%=template_target.entity_schema.name%>Fragment.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
|
127
|
+
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cardview_<%=template_target.entity_schema.name.downcase%>, viewGroup, false);
|
128
|
+
ViewHolder vh = new ViewHolder(v);
|
129
|
+
return vh;
|
130
|
+
}
|
131
|
+
|
132
|
+
@Override
|
133
|
+
public void onBindViewHolder(<%=template_target.entity_schema.name%>Fragment.ViewHolder viewHolder, final int position) {
|
134
|
+
<%template_target.entity_schema.fields.each do |field|%>
|
135
|
+
viewHolder.<%=field.name%>.setText("" + <%=template_target.entity_schema.name%>.get(position).get<%=field.name%>());
|
136
|
+
<%end%>
|
137
|
+
}
|
138
|
+
|
139
|
+
@Override
|
140
|
+
public int getItemCount() {
|
141
|
+
return <%=template_target.entity_schema.name%>.size();
|
142
|
+
}
|
143
|
+
|
144
|
+
}
|
145
|
+
|
146
|
+
public static class ViewHolder extends RecyclerView.ViewHolder {
|
147
|
+
|
148
|
+
<%template_target.entity_schema.fields.each do |field|%>
|
149
|
+
public TextView <%=field.name%>;
|
150
|
+
<%end%>
|
151
|
+
|
152
|
+
public ViewHolder(View v) {
|
153
|
+
super(v);
|
154
|
+
<%template_target.entity_schema.fields.each do |field|%>
|
155
|
+
<%=field.name%> = (TextView) v.findViewById(R.id.cardview_<%=template_target.entity_schema.name%>_<%=field.name%>);
|
156
|
+
<%end%>
|
157
|
+
}
|
158
|
+
}
|
159
|
+
}
|
160
|
+
|