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,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
|
+
|