CapicuaGenBalthazar 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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
+