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.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/CODE_OF_CONDUCT.md +49 -0
  6. data/CapicuaGenBalthazar.gemspec +61 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE +165 -0
  9. data/README.md +41 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/lib/CapicuaGenBalthazar/AndroidLenguaje/AndroContextProvider/Source/andy_context_provider_feature.rb +57 -0
  14. data/lib/CapicuaGenBalthazar/Business/AndySqlEntity/Source/andy_sql_entity_feature.rb +101 -0
  15. data/lib/CapicuaGenBalthazar/Business/AndySqlEntity/Template/table_entity.erb +50 -0
  16. data/lib/CapicuaGenBalthazar/Entities/AndyEntity/Source/entity_field_schema.rb +56 -0
  17. data/lib/CapicuaGenBalthazar/GUI/AndyEntityCardViewFragment/Source/andy_entity_card_view_fragment_feature.rb +114 -0
  18. data/lib/CapicuaGenBalthazar/GUI/AndyEntityCardViewFragment/Template/catalog_cardview.erb +71 -0
  19. data/lib/CapicuaGenBalthazar/GUI/AndyEntityCardViewFragment/Template/catalog_fragment.erb +160 -0
  20. data/lib/CapicuaGenBalthazar/GUI/AndyEntityCardViewFragment/Template/catalog_recyclerview.erb +32 -0
  21. data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Source/andy_ic_launcher_feature.rb +68 -0
  22. data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Template/ic_launcher_mipmap-hdpi.png +0 -0
  23. data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Template/ic_launcher_mipmap-mdpi.png +0 -0
  24. data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Template/ic_launcher_mipmap-xhdpi.png +0 -0
  25. data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Template/ic_launcher_mipmap-xxhdpi.png +0 -0
  26. data/lib/CapicuaGenBalthazar/GUI/AndyIcLauncher/Template/ic_launcher_mipmap-xxxhdpi.png +0 -0
  27. data/lib/CapicuaGenBalthazar/GUI/AndyMainActivity/Source/andy_main_activity_feature.rb +127 -0
  28. data/lib/CapicuaGenBalthazar/GUI/AndyMainActivity/Template/main.erb +123 -0
  29. data/lib/CapicuaGenBalthazar/GUI/AndyMainActivity/Template/main_activity.erb +51 -0
  30. data/lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Source/andy_splash_activity_feature.rb +155 -0
  31. data/lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Template/logo.png +0 -0
  32. data/lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Template/splash.erb +57 -0
  33. data/lib/CapicuaGenBalthazar/GUI/AndySplashActivity/Template/splash_activity.erb +73 -0
  34. data/lib/CapicuaGenBalthazar/Mixins/android_context_provider_mixin.rb +83 -0
  35. data/lib/CapicuaGenBalthazar/Mixins/card_view_fragment_mixin.rb +43 -0
  36. data/lib/CapicuaGenBalthazar/Mixins/java_mixin.rb +57 -0
  37. data/lib/CapicuaGenBalthazar/Web/AndyWebRequest/Source/andy_web_request_feature.rb +67 -0
  38. data/lib/CapicuaGenBalthazar/Web/AndyWebRequest/Template/web_request.erb +80 -0
  39. data/lib/CapicuaGenBalthazar/balthazar.rb +36 -0
  40. data/lib/CapicuaGenBalthazar/version.rb +3 -0
  41. 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
+