clevic 0.12.0 → 0.13.0.b1
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.
- data/History.txt +10 -0
- data/Manifest.txt +209 -30
- data/README.txt +16 -20
- data/Rakefile +8 -8
- data/TODO +6 -7
- data/bin/clevic +12 -73
- data/lib/clevic/action_builder.rb +168 -0
- data/lib/clevic/ar_methods.rb +120 -0
- data/lib/clevic/attribute_list.rb +56 -0
- data/lib/clevic/cache_table.rb +60 -37
- data/lib/clevic/default_view.rb +3 -16
- data/lib/clevic/delegate.rb +46 -0
- data/lib/clevic/emitter.rb +38 -0
- data/lib/clevic/extensions.rb +61 -114
- data/lib/clevic/field.rb +159 -228
- data/lib/clevic/field_valuer.rb +165 -0
- data/lib/clevic/filter_command.rb +2 -6
- data/lib/clevic/generic_format.rb +52 -0
- data/lib/clevic/{ui → icons}/icon.png +0 -0
- data/lib/clevic/many_field.rb +7 -0
- data/lib/clevic/model_builder.rb +234 -146
- data/lib/clevic/model_column.rb +61 -13
- data/lib/clevic/order_attribute.rb +10 -0
- data/lib/clevic/qt.rb +35 -0
- data/lib/clevic/qt/action_builder.rb +47 -0
- data/lib/clevic/qt/boolean_delegate.rb +8 -0
- data/lib/clevic/{browser.rb → qt/browser.rb} +35 -14
- data/lib/clevic/qt/clipboard.rb +35 -0
- data/lib/clevic/qt/combo_delegate.rb +198 -0
- data/lib/clevic/qt/delegates.rb +1 -0
- data/lib/clevic/qt/distinct_delegate.rb +35 -0
- data/lib/clevic/qt/extensions.rb +52 -0
- data/lib/clevic/qt/field.rb +18 -0
- data/lib/clevic/{item_delegate.rb → qt/item_delegate.rb} +8 -4
- data/lib/clevic/qt/relational_delegate.rb +87 -0
- data/lib/clevic/{search_dialog.rb → qt/search_dialog.rb} +1 -11
- data/lib/clevic/qt/set_delegate.rb +44 -0
- data/lib/clevic/qt/table_model.rb +331 -0
- data/lib/clevic/qt/table_view.rb +344 -0
- data/lib/clevic/qt/text_area_delegate.rb +8 -0
- data/lib/clevic/{text_delegate.rb → qt/text_delegate.rb} +6 -4
- data/lib/clevic/{ui → qt/ui}/.gitignore +0 -0
- data/lib/clevic/{ui → qt/ui}/browser.ui +0 -0
- data/lib/clevic/{ui → qt/ui}/search_dialog.ui +0 -0
- data/lib/clevic/rails_models_loaders.rb +56 -0
- data/lib/clevic/record.rb +2 -17
- data/lib/clevic/sampler.rb +81 -0
- data/lib/clevic/sequel_ar_adapter.rb +215 -0
- data/lib/clevic/sequel_length_validation.rb +23 -0
- data/lib/clevic/sequel_meta.rb +65 -0
- data/lib/clevic/sequel_naked.rb +30 -0
- data/lib/clevic/swing.rb +38 -0
- data/lib/clevic/swing/action.rb +125 -0
- data/lib/clevic/swing/action_builder.rb +47 -0
- data/lib/clevic/swing/boolean_delegate.rb +26 -0
- data/lib/clevic/swing/browser.rb +282 -0
- data/lib/clevic/swing/cell_editor.rb +95 -0
- data/lib/clevic/swing/cell_renderer.rb +44 -0
- data/lib/clevic/swing/clipboard.rb +135 -0
- data/lib/clevic/swing/combo_delegate.rb +336 -0
- data/lib/clevic/swing/confirm_dialog.rb +57 -0
- data/lib/clevic/swing/delegate.rb +40 -0
- data/lib/clevic/swing/distinct_delegate.rb +30 -0
- data/lib/clevic/swing/extensions.rb +274 -0
- data/lib/clevic/swing/field.rb +35 -0
- data/lib/clevic/swing/relational_delegate.rb +48 -0
- data/lib/clevic/swing/row_header.rb +210 -0
- data/lib/clevic/swing/search_dialog.rb +230 -0
- data/lib/clevic/swing/selection_model.rb +90 -0
- data/lib/clevic/swing/set_delegate.rb +41 -0
- data/lib/clevic/swing/swing_table_index.rb +43 -0
- data/lib/clevic/swing/table_model.rb +200 -0
- data/lib/clevic/swing/table_view.rb +385 -0
- data/lib/clevic/swing/table_view_focus.rb +47 -0
- data/lib/clevic/swing/tag_delegate.rb +127 -0
- data/lib/clevic/swing/tag_editor.rb +101 -0
- data/lib/clevic/swing/text_area_delegate.rb +46 -0
- data/lib/clevic/swing/text_delegate.rb +31 -0
- data/lib/clevic/swing/ui/build.xml +74 -0
- data/lib/clevic/swing/ui/dist/README.TXT +33 -0
- data/lib/clevic/swing/ui/dist/lib/swing-layout-1.0.3.jar +0 -0
- data/lib/clevic/swing/ui/manifest.mf +3 -0
- data/lib/clevic/swing/ui/nbproject/build-impl.xml +731 -0
- data/lib/clevic/swing/ui/nbproject/genfiles.properties +8 -0
- data/lib/clevic/swing/ui/nbproject/private/config.properties +0 -0
- data/lib/clevic/swing/ui/nbproject/private/private.properties +6 -0
- data/lib/clevic/swing/ui/nbproject/private/private.xml +4 -0
- data/lib/clevic/swing/ui/nbproject/project.properties +70 -0
- data/lib/clevic/swing/ui/nbproject/project.xml +14 -0
- data/lib/clevic/swing/ui/src/SearchDialog.form +158 -0
- data/lib/clevic/swing/ui/src/SearchDialog.java +163 -0
- data/lib/clevic/swing/ui/src/TagEditor.form +106 -0
- data/lib/clevic/swing/ui/src/TagEditor.java +108 -0
- data/lib/clevic/swing/ui/src/resources/SearchDialog.properties +0 -0
- data/lib/clevic/table_index.rb +100 -0
- data/lib/clevic/table_model.rb +54 -425
- data/lib/clevic/table_searcher.rb +113 -116
- data/lib/clevic/table_view.rb +171 -399
- data/lib/clevic/table_view_paste.rb +199 -0
- data/lib/clevic/version.rb +3 -2
- data/lib/clevic/view.rb +94 -43
- data/models/accounts_models.rb +13 -13
- data/models/minimal_models.rb +5 -9
- data/models/times_models.rb +19 -14
- data/models/times_psql_models.rb +10 -0
- data/models/times_sqlite_models.rb +1 -8
- data/models/values_models.rb +2 -8
- data/tasks/clevic.rake +1 -1
- data/tasks/rdoc.rake +1 -5
- data/tasks/website.rake +1 -1
- data/test/test_cache_table.rb +15 -29
- data/test/test_helper.rb +14 -83
- data/test/test_order_attribute.rb +1 -1
- data/test/test_table_model.rb +0 -21
- data/test/test_table_searcher.rb +67 -61
- metadata +262 -78
- data/lib/clevic.rb +0 -4
- data/lib/clevic/db_options.rb +0 -112
- data/lib/clevic/delegates.rb +0 -386
data/History.txt
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
== 0.13.0
|
|
2
|
+
* Now has Java Swing support with JRuby
|
|
3
|
+
* new code works with qt4-qtruby-2.0.3
|
|
4
|
+
* All models must now use Sequel. There is some code to ease porting
|
|
5
|
+
from ActiveRecord
|
|
6
|
+
* preliminary and not yet working support for one_to_many fields in the UI
|
|
7
|
+
|
|
8
|
+
== 0.12.3
|
|
9
|
+
* fix closeEditor not moving to the cursor to the correct place
|
|
10
|
+
|
|
1
11
|
== 0.12.0
|
|
2
12
|
* fix some breakage from Qt-4.5.x
|
|
3
13
|
* paste single value to multiple cells
|
data/Manifest.txt
CHANGED
|
@@ -4,38 +4,10 @@ README.txt
|
|
|
4
4
|
Rakefile
|
|
5
5
|
TODO
|
|
6
6
|
bin/clevic
|
|
7
|
-
lib/clevic/dirty.rb
|
|
8
|
-
lib/clevic.rb
|
|
9
|
-
lib/clevic/browser.rb
|
|
10
|
-
lib/clevic/cache_table.rb
|
|
11
|
-
lib/clevic/db_options.rb
|
|
12
|
-
lib/clevic/default_view.rb
|
|
13
|
-
lib/clevic/delegates.rb
|
|
14
|
-
lib/clevic/extensions.rb
|
|
15
|
-
lib/clevic/field.rb
|
|
16
|
-
lib/clevic/filter_command.rb
|
|
17
|
-
lib/clevic/item_delegate.rb
|
|
18
|
-
lib/clevic/model_builder.rb
|
|
19
|
-
lib/clevic/model_column.rb
|
|
20
|
-
lib/clevic/order_attribute.rb
|
|
21
|
-
lib/clevic/record.rb
|
|
22
|
-
lib/clevic/search_dialog.rb
|
|
23
|
-
lib/clevic/sql_dialects.rb
|
|
24
|
-
lib/clevic/table_model.rb
|
|
25
|
-
lib/clevic/table_searcher.rb
|
|
26
|
-
lib/clevic/table_view.rb
|
|
27
|
-
lib/clevic/text_delegate.rb
|
|
28
|
-
lib/clevic/view.rb
|
|
29
|
-
lib/clevic/ui/.gitignore
|
|
30
|
-
lib/clevic/ui/browser.ui
|
|
31
|
-
lib/clevic/ui/browser_ui.rb
|
|
32
|
-
lib/clevic/ui/icon.png
|
|
33
|
-
lib/clevic/ui/search_dialog.ui
|
|
34
|
-
lib/clevic/ui/search_dialog_ui.rb
|
|
35
|
-
lib/clevic/version.rb
|
|
36
7
|
models/accounts_models.rb
|
|
37
8
|
models/minimal_models.rb
|
|
38
9
|
models/times_models.rb
|
|
10
|
+
models/times_psql_models.rb
|
|
39
11
|
models/times_sqlite_models.rb
|
|
40
12
|
models/values_models.rb
|
|
41
13
|
script/console
|
|
@@ -45,12 +17,219 @@ script/txt2html
|
|
|
45
17
|
sql/accounts.sql
|
|
46
18
|
sql/times.sql
|
|
47
19
|
sql/times_sqlite.sql
|
|
48
|
-
tasks/website.rake
|
|
49
20
|
tasks/clevic.rake
|
|
50
21
|
tasks/rdoc.rake
|
|
22
|
+
tasks/website.rake
|
|
51
23
|
test/test_cache_table.rb
|
|
52
24
|
test/test_helper.rb
|
|
53
25
|
test/test_model_index_extensions.rb
|
|
54
26
|
test/test_order_attribute.rb
|
|
55
27
|
test/test_sql_dialects.rb
|
|
28
|
+
test/test_table_model.rb
|
|
56
29
|
test/test_table_searcher.rb
|
|
30
|
+
lib/clevic/qt/ui/browser.ui
|
|
31
|
+
lib/clevic/qt/ui/search_dialog_ui.rb
|
|
32
|
+
lib/clevic/qt/ui/search_dialog.ui
|
|
33
|
+
lib/clevic/qt/ui/browser_ui.rb
|
|
34
|
+
lib/clevic/qt/table_model.rb
|
|
35
|
+
lib/clevic/qt/text_area_delegate.rb
|
|
36
|
+
lib/clevic/qt/browser.rb
|
|
37
|
+
lib/clevic/qt/action_builder.rb
|
|
38
|
+
lib/clevic/qt/field.rb
|
|
39
|
+
lib/clevic/qt/set_delegate.rb
|
|
40
|
+
lib/clevic/qt/item_delegate.rb
|
|
41
|
+
lib/clevic/qt/clipboard.rb
|
|
42
|
+
lib/clevic/qt/text_delegate.rb
|
|
43
|
+
lib/clevic/qt/distinct_delegate.rb
|
|
44
|
+
lib/clevic/qt/boolean_delegate.rb
|
|
45
|
+
lib/clevic/qt/table_view.rb
|
|
46
|
+
lib/clevic/qt/search_dialog.rb
|
|
47
|
+
lib/clevic/qt/combo_delegate.rb
|
|
48
|
+
lib/clevic/qt/extensions.rb
|
|
49
|
+
lib/clevic/qt/delegates.rb
|
|
50
|
+
lib/clevic/qt/relational_delegate.rb
|
|
51
|
+
lib/clevic/table_view_paste.rb
|
|
52
|
+
lib/clevic/sequel_ar_adapter.rb
|
|
53
|
+
lib/clevic/model_builder.rb
|
|
54
|
+
lib/clevic/rails_models_loaders.rb
|
|
55
|
+
lib/clevic/sequel_length_validation.rb
|
|
56
|
+
lib/clevic/cache_table.rb
|
|
57
|
+
lib/clevic/table_model.rb
|
|
58
|
+
lib/clevic/icons
|
|
59
|
+
lib/clevic/icons/icon.png
|
|
60
|
+
lib/clevic/qt.rb
|
|
61
|
+
lib/clevic/swing
|
|
62
|
+
lib/clevic/swing/ui
|
|
63
|
+
lib/clevic/swing/ui/src
|
|
64
|
+
lib/clevic/swing/ui/src/SearchDialog.form
|
|
65
|
+
lib/clevic/swing/ui/src/SearchDialog.java
|
|
66
|
+
lib/clevic/swing/ui/src/resources
|
|
67
|
+
lib/clevic/swing/ui/src/resources/SearchDialog.properties
|
|
68
|
+
lib/clevic/swing/ui/src/TagEditor.form
|
|
69
|
+
lib/clevic/swing/ui/src/TagEditor.java
|
|
70
|
+
lib/clevic/swing/ui/dist
|
|
71
|
+
lib/clevic/swing/ui/dist/lib
|
|
72
|
+
lib/clevic/swing/ui/dist/lib/swing-layout-1.0.3.jar
|
|
73
|
+
lib/clevic/swing/ui/dist/README.TXT
|
|
74
|
+
lib/clevic/swing/ui/nbproject
|
|
75
|
+
lib/clevic/swing/ui/nbproject/genfiles.properties
|
|
76
|
+
lib/clevic/swing/ui/nbproject/build-impl.xml
|
|
77
|
+
lib/clevic/swing/ui/nbproject/project.xml
|
|
78
|
+
lib/clevic/swing/ui/nbproject/project.properties
|
|
79
|
+
lib/clevic/swing/ui/nbproject/private
|
|
80
|
+
lib/clevic/swing/ui/nbproject/private/private.properties
|
|
81
|
+
lib/clevic/swing/ui/nbproject/private/config.properties
|
|
82
|
+
lib/clevic/swing/ui/nbproject/private/private.xml
|
|
83
|
+
lib/clevic/swing/ui/build.xml
|
|
84
|
+
lib/clevic/swing/ui/manifest.mf
|
|
85
|
+
lib/clevic/swing/table_model.rb
|
|
86
|
+
lib/clevic/swing/text_area_delegate.rb
|
|
87
|
+
lib/clevic/swing/browser.rb
|
|
88
|
+
lib/clevic/swing/cell_renderer.rb
|
|
89
|
+
lib/clevic/swing/tag_editor.rb
|
|
90
|
+
lib/clevic/swing/action_builder.rb
|
|
91
|
+
lib/clevic/swing/field.rb
|
|
92
|
+
lib/clevic/swing/set_delegate.rb
|
|
93
|
+
lib/clevic/swing/clipboard.rb
|
|
94
|
+
lib/clevic/swing/text_delegate.rb
|
|
95
|
+
lib/clevic/swing/tag_delegate.rb
|
|
96
|
+
lib/clevic/swing/selection_model.rb
|
|
97
|
+
lib/clevic/swing/distinct_delegate.rb
|
|
98
|
+
lib/clevic/swing/boolean_delegate.rb
|
|
99
|
+
lib/clevic/swing/confirm_dialog.rb
|
|
100
|
+
lib/clevic/swing/table_view.rb
|
|
101
|
+
lib/clevic/swing/search_dialog.rb
|
|
102
|
+
lib/clevic/swing/combo_delegate.rb
|
|
103
|
+
lib/clevic/swing/swing_table_index.rb
|
|
104
|
+
lib/clevic/swing/table_view_focus.rb
|
|
105
|
+
lib/clevic/swing/cell_editor.rb
|
|
106
|
+
lib/clevic/swing/extensions.rb
|
|
107
|
+
lib/clevic/swing/delegate.rb
|
|
108
|
+
lib/clevic/swing/action.rb
|
|
109
|
+
lib/clevic/swing/relational_delegate.rb
|
|
110
|
+
lib/clevic/swing/row_header.rb
|
|
111
|
+
lib/clevic/ar_methods.rb
|
|
112
|
+
lib/clevic/swing.rb
|
|
113
|
+
lib/clevic/action_builder.rb
|
|
114
|
+
lib/clevic/order_attribute.rb
|
|
115
|
+
lib/clevic/dirty.rb
|
|
116
|
+
lib/clevic/field.rb
|
|
117
|
+
lib/clevic/attribute_list.rb
|
|
118
|
+
lib/clevic/record.rb
|
|
119
|
+
lib/clevic/sampler.rb
|
|
120
|
+
lib/clevic/model_column.rb
|
|
121
|
+
lib/clevic/table_searcher.rb
|
|
122
|
+
lib/clevic/table_view.rb
|
|
123
|
+
lib/clevic/field_valuer.rb
|
|
124
|
+
lib/clevic/sequel_naked.rb
|
|
125
|
+
lib/clevic/table_index.rb
|
|
126
|
+
lib/clevic/view.rb
|
|
127
|
+
lib/clevic/sequel_meta.rb
|
|
128
|
+
lib/clevic/extensions.rb
|
|
129
|
+
lib/clevic/delegate.rb
|
|
130
|
+
lib/clevic/sql_dialects.rb
|
|
131
|
+
lib/clevic/default_view.rb
|
|
132
|
+
lib/clevic/many_field.rb
|
|
133
|
+
lib/clevic/filter_command.rb
|
|
134
|
+
lib/clevic/version.rb
|
|
135
|
+
lib/clevic/generic_format.rb
|
|
136
|
+
lib/clevic/emitter.rb
|
|
137
|
+
lib/clevic/qt/ui/browser.ui
|
|
138
|
+
lib/clevic/qt/ui/.gitignore
|
|
139
|
+
lib/clevic/qt/ui/search_dialog_ui.rb
|
|
140
|
+
lib/clevic/qt/ui/search_dialog.ui
|
|
141
|
+
lib/clevic/qt/ui/browser_ui.rb
|
|
142
|
+
lib/clevic/qt/table_model.rb
|
|
143
|
+
lib/clevic/qt/text_area_delegate.rb
|
|
144
|
+
lib/clevic/qt/browser.rb
|
|
145
|
+
lib/clevic/qt/action_builder.rb
|
|
146
|
+
lib/clevic/qt/field.rb
|
|
147
|
+
lib/clevic/qt/set_delegate.rb
|
|
148
|
+
lib/clevic/qt/item_delegate.rb
|
|
149
|
+
lib/clevic/qt/clipboard.rb
|
|
150
|
+
lib/clevic/qt/text_delegate.rb
|
|
151
|
+
lib/clevic/qt/distinct_delegate.rb
|
|
152
|
+
lib/clevic/qt/boolean_delegate.rb
|
|
153
|
+
lib/clevic/qt/table_view.rb
|
|
154
|
+
lib/clevic/qt/search_dialog.rb
|
|
155
|
+
lib/clevic/qt/combo_delegate.rb
|
|
156
|
+
lib/clevic/qt/extensions.rb
|
|
157
|
+
lib/clevic/qt/delegates.rb
|
|
158
|
+
lib/clevic/qt/relational_delegate.rb
|
|
159
|
+
lib/clevic/table_view_paste.rb
|
|
160
|
+
lib/clevic/sequel_ar_adapter.rb
|
|
161
|
+
lib/clevic/model_builder.rb
|
|
162
|
+
lib/clevic/rails_models_loaders.rb
|
|
163
|
+
lib/clevic/sequel_length_validation.rb
|
|
164
|
+
lib/clevic/cache_table.rb
|
|
165
|
+
lib/clevic/table_model.rb
|
|
166
|
+
lib/clevic/icons/icon.png
|
|
167
|
+
lib/clevic/qt.rb
|
|
168
|
+
lib/clevic/swing/ui/src/SearchDialog.form
|
|
169
|
+
lib/clevic/swing/ui/src/SearchDialog.java
|
|
170
|
+
lib/clevic/swing/ui/src/resources/SearchDialog.properties
|
|
171
|
+
lib/clevic/swing/ui/src/TagEditor.form
|
|
172
|
+
lib/clevic/swing/ui/src/TagEditor.java
|
|
173
|
+
lib/clevic/swing/ui/dist/lib/swing-layout-1.0.3.jar
|
|
174
|
+
lib/clevic/swing/ui/dist/README.TXT
|
|
175
|
+
lib/clevic/swing/ui/nbproject/genfiles.properties
|
|
176
|
+
lib/clevic/swing/ui/nbproject/build-impl.xml
|
|
177
|
+
lib/clevic/swing/ui/nbproject/project.xml
|
|
178
|
+
lib/clevic/swing/ui/nbproject/project.properties
|
|
179
|
+
lib/clevic/swing/ui/nbproject/private/private.properties
|
|
180
|
+
lib/clevic/swing/ui/nbproject/private/config.properties
|
|
181
|
+
lib/clevic/swing/ui/nbproject/private/private.xml
|
|
182
|
+
lib/clevic/swing/ui/build.xml
|
|
183
|
+
lib/clevic/swing/ui/manifest.mf
|
|
184
|
+
lib/clevic/swing/table_model.rb
|
|
185
|
+
lib/clevic/swing/text_area_delegate.rb
|
|
186
|
+
lib/clevic/swing/browser.rb
|
|
187
|
+
lib/clevic/swing/cell_renderer.rb
|
|
188
|
+
lib/clevic/swing/tag_editor.rb
|
|
189
|
+
lib/clevic/swing/action_builder.rb
|
|
190
|
+
lib/clevic/swing/field.rb
|
|
191
|
+
lib/clevic/swing/set_delegate.rb
|
|
192
|
+
lib/clevic/swing/clipboard.rb
|
|
193
|
+
lib/clevic/swing/text_delegate.rb
|
|
194
|
+
lib/clevic/swing/tag_delegate.rb
|
|
195
|
+
lib/clevic/swing/selection_model.rb
|
|
196
|
+
lib/clevic/swing/distinct_delegate.rb
|
|
197
|
+
lib/clevic/swing/boolean_delegate.rb
|
|
198
|
+
lib/clevic/swing/confirm_dialog.rb
|
|
199
|
+
lib/clevic/swing/table_view.rb
|
|
200
|
+
lib/clevic/swing/search_dialog.rb
|
|
201
|
+
lib/clevic/swing/combo_delegate.rb
|
|
202
|
+
lib/clevic/swing/swing_table_index.rb
|
|
203
|
+
lib/clevic/swing/table_view_focus.rb
|
|
204
|
+
lib/clevic/swing/cell_editor.rb
|
|
205
|
+
lib/clevic/swing/extensions.rb
|
|
206
|
+
lib/clevic/swing/delegate.rb
|
|
207
|
+
lib/clevic/swing/action.rb
|
|
208
|
+
lib/clevic/swing/relational_delegate.rb
|
|
209
|
+
lib/clevic/swing/row_header.rb
|
|
210
|
+
lib/clevic/ar_methods.rb
|
|
211
|
+
lib/clevic/swing.rb
|
|
212
|
+
lib/clevic/action_builder.rb
|
|
213
|
+
lib/clevic/order_attribute.rb
|
|
214
|
+
lib/clevic/dirty.rb
|
|
215
|
+
lib/clevic/field.rb
|
|
216
|
+
lib/clevic/attribute_list.rb
|
|
217
|
+
lib/clevic/record.rb
|
|
218
|
+
lib/clevic/sampler.rb
|
|
219
|
+
lib/clevic/model_column.rb
|
|
220
|
+
lib/clevic/table_searcher.rb
|
|
221
|
+
lib/clevic/table_view.rb
|
|
222
|
+
lib/clevic/field_valuer.rb
|
|
223
|
+
lib/clevic/sequel_naked.rb
|
|
224
|
+
lib/clevic/table_index.rb
|
|
225
|
+
lib/clevic/view.rb
|
|
226
|
+
lib/clevic/sequel_meta.rb
|
|
227
|
+
lib/clevic/extensions.rb
|
|
228
|
+
lib/clevic/delegate.rb
|
|
229
|
+
lib/clevic/sql_dialects.rb
|
|
230
|
+
lib/clevic/default_view.rb
|
|
231
|
+
lib/clevic/many_field.rb
|
|
232
|
+
lib/clevic/filter_command.rb
|
|
233
|
+
lib/clevic/version.rb
|
|
234
|
+
lib/clevic/generic_format.rb
|
|
235
|
+
lib/clevic/emitter.rb
|
data/README.txt
CHANGED
|
@@ -4,13 +4,14 @@ http://clevic.rubyforge.org
|
|
|
4
4
|
|
|
5
5
|
== DESCRIPTION:
|
|
6
6
|
|
|
7
|
-
Database framework and
|
|
8
|
-
editing of tables in a pre-existing relational DBMS.
|
|
7
|
+
Database framework and Model/View GUI for data capture and
|
|
8
|
+
editing of tables in a pre-existing relational DBMS. Works with Qt
|
|
9
|
+
and Java Swing.
|
|
9
10
|
|
|
10
|
-
Using
|
|
11
|
+
Using Sequel means Clevic supports Postgresql, Mysql and so on. It's been tested with Postgres and sqlite.
|
|
11
12
|
|
|
12
|
-
Using Qt means it runs on Linux, Windows and OSX.
|
|
13
|
-
in Linux, slightly tested in Windows and OSX.
|
|
13
|
+
Using Qt and Swing means it runs on Linux, Windows and OSX. Qt is thoroughly tested
|
|
14
|
+
in Linux, slightly tested in Windows and OSX. Swing is tested in Linux and OSX.
|
|
14
15
|
|
|
15
16
|
== FEATURES:
|
|
16
17
|
|
|
@@ -23,7 +24,6 @@ in Linux, slightly tested in Windows and OSX.
|
|
|
23
24
|
* Filter by current field.
|
|
24
25
|
* search by field contents.
|
|
25
26
|
* cut and paste in CSV format
|
|
26
|
-
* point Clevic at a Rails project and see your models in a GUI
|
|
27
27
|
|
|
28
28
|
=== Shortcuts:
|
|
29
29
|
|
|
@@ -37,7 +37,7 @@ in Linux, slightly tested in Windows and OSX.
|
|
|
37
37
|
|
|
38
38
|
=== Model definition:
|
|
39
39
|
|
|
40
|
-
Models and their UI representation must be defined in Ruby. A descendant of
|
|
40
|
+
Models and their UI representation must be defined in Ruby. A descendant of Sequel::Model
|
|
41
41
|
that includes the Clevic::Record module will provide a minimally functional UI.
|
|
42
42
|
|
|
43
43
|
Beyond that, the framework provides a DSL for defining more complex and useful behaviour
|
|
@@ -54,7 +54,7 @@ For implementation and more extensive comments, see Clevic::ModelBuilder.
|
|
|
54
54
|
* use blocks to format values for particular fields.
|
|
55
55
|
* sensible caching to handle large data sets without unnecessary memory and cpu usage
|
|
56
56
|
* extensions to various Qt classes to make db programming easier.
|
|
57
|
-
* uses
|
|
57
|
+
* uses Sequel for data access.
|
|
58
58
|
* leverages SQL whenever possible to handle large datasets, sorting, filtering
|
|
59
59
|
etc. So it's probably not suitable for talking to a remote db across a slow link.
|
|
60
60
|
|
|
@@ -64,25 +64,21 @@ See TODO file.
|
|
|
64
64
|
|
|
65
65
|
== SYNOPSIS:
|
|
66
66
|
|
|
67
|
-
clevic model_definition_file.rb
|
|
67
|
+
clevic [ --qt | --swing ] model_definition_file.rb
|
|
68
68
|
|
|
69
|
-
OR
|
|
70
|
-
|
|
71
|
-
clevic path_to_rails_project [model_tweaks.rb]
|
|
72
|
-
|
|
73
69
|
== REQUIREMENTS:
|
|
74
70
|
|
|
75
71
|
=== Gems
|
|
72
|
+
* Sequel
|
|
76
73
|
* fastercsv
|
|
77
|
-
* ruby-qt4
|
|
78
74
|
* qtext
|
|
79
|
-
*
|
|
80
|
-
|
|
81
|
-
=== Other
|
|
75
|
+
* hashery
|
|
76
|
+
* gather
|
|
82
77
|
|
|
78
|
+
=== Libraries
|
|
79
|
+
* qtruby4 >= 2.0.3
|
|
83
80
|
* bsearch (http://0xcc.net/ruby-bsearch)
|
|
84
|
-
*
|
|
85
|
-
* db driver (ie postgres-pr)
|
|
81
|
+
* db driver (ie pg)
|
|
86
82
|
* rdbms (ie postgres)
|
|
87
83
|
|
|
88
84
|
== INSTALL:
|
|
@@ -97,7 +93,7 @@ See TODO file.
|
|
|
97
93
|
|
|
98
94
|
(The GPL-2 License)
|
|
99
95
|
|
|
100
|
-
Copyright (C) 2008 John Anderson
|
|
96
|
+
Copyright (C) 2008-2011 John Anderson
|
|
101
97
|
|
|
102
98
|
This program is free software; you can redistribute it and/or
|
|
103
99
|
modify it under the terms of the GNU Library General Public License
|
data/Rakefile
CHANGED
|
@@ -7,14 +7,17 @@ $hoe = Hoe.new('clevic', Clevic::VERSION::STRING) do |p|
|
|
|
7
7
|
p.developer('John Anderson', 'panic@semiosix.com')
|
|
8
8
|
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
|
9
9
|
p.rubyforge_name = p.name # TODO this is default value
|
|
10
|
-
p.description = "SQL table GUI with Qt"
|
|
10
|
+
p.description = "SQL table GUI with Qt, Swing, Sequel"
|
|
11
11
|
p.extra_deps = [
|
|
12
12
|
['activesupport','>= 2.0.2'],
|
|
13
|
-
['qtext', '>=0.6.5'],
|
|
14
|
-
['activerecord', '>=2.0.2'],
|
|
15
13
|
['fastercsv', '>=1.2.3'],
|
|
16
|
-
['gather', '>=0.0.
|
|
17
|
-
['
|
|
14
|
+
['gather', '>=0.0.6'],
|
|
15
|
+
['qtext', '>=0.6.6'],
|
|
16
|
+
['hashery', '>=1.3.0'],
|
|
17
|
+
['andand', '>= 1.3.0'],
|
|
18
|
+
['sequel', '>= 3.8.0'],
|
|
19
|
+
['hpricot', '>= 0.8.1'],
|
|
20
|
+
['io-like', '>= 0.3.0']
|
|
18
21
|
# This isn't always installed from gems
|
|
19
22
|
#~ ['qtruby4', '>=1.4.9']
|
|
20
23
|
# bsearch can't be installed from gems
|
|
@@ -31,6 +34,3 @@ end
|
|
|
31
34
|
|
|
32
35
|
require 'newgem/tasks' # load /tasks/*.rake
|
|
33
36
|
Dir['tasks/**/*.rake'].each { |t| load t }
|
|
34
|
-
|
|
35
|
-
# TODO - want other tests/tasks run by default? Add them to the list
|
|
36
|
-
# task :default => [:spec, :features]
|
data/TODO
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
use Sequel::Dataset for filtering instead of find options
|
|
2
|
+
|
|
3
|
+
export to CSV
|
|
4
|
+
Accounts not landing after Ditto with auto-fill-in
|
|
2
5
|
cut'n'paste in text/plain, text/csv, text/yml and application/clevic
|
|
3
|
-
HasFinder gem for complex reusable sql
|
|
4
6
|
provide for easier directories for a setup.
|
|
5
7
|
ModelBuilder#modify_field to override default_ui definitions. Or a better way to reuse field definitions.
|
|
6
8
|
use rubigen for creating model definition files?
|
|
@@ -14,11 +16,8 @@ Add additional :filter record sets that can be selected from menus?
|
|
|
14
16
|
|
|
15
17
|
filter and search by virtual fields
|
|
16
18
|
|
|
17
|
-
tests. Use ZenTest to generate tests
|
|
18
|
-
|
|
19
|
-
make sure ActiveRecord doesn't keep updating column definitions. ie production mode.
|
|
20
|
-
caching of repeated related entity lookups. Possibly ActiveRecord::QueryCache
|
|
21
|
-
Ramen http://ramen.rubyforge.org/ for metadata. MySQL and MSSQL only right now.
|
|
19
|
+
tests. Use ZenTest to generate tests?
|
|
20
|
+
caching of repeated related entity lookups.
|
|
22
21
|
|
|
23
22
|
metadata for virtual fields. Add a member to Field for class_name.constantize
|
|
24
23
|
consolidate metadata across TableModel, and Field. Would like to have it all in Field.
|
data/bin/clevic
CHANGED
|
@@ -2,10 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require 'pathname'
|
|
4
4
|
|
|
5
|
-
require 'clevic.rb'
|
|
6
|
-
require 'clevic/browser.rb'
|
|
7
5
|
require 'optparse'
|
|
8
|
-
require 'active_support'
|
|
9
6
|
|
|
10
7
|
$options = {}
|
|
11
8
|
oparser = OptionParser.new
|
|
@@ -24,6 +21,10 @@ oparser.on( '-p', '--pass PASSWORD', String ) { |o| $options[:password] = o }
|
|
|
24
21
|
oparser.on( '-P', '--profile PROFILE', String ) { |o| $options[:profile] = o }
|
|
25
22
|
oparser.on( '-t', '--table TABLE', 'Table to display', String ) { |o| $options[:table] = o }
|
|
26
23
|
oparser.on( '-d', '--database DATABASE', 'Database name', String ) { |o| $options[:database] = o }
|
|
24
|
+
|
|
25
|
+
oparser.on( '-s', '--swing', 'Use JRuby Swing' ) { |o| require 'clevic/swing.rb' }
|
|
26
|
+
oparser.on( '-q', '--qt', 'Use Qt-Ruby' ) { |o| require 'clevic/qt.rb' }
|
|
27
|
+
|
|
27
28
|
oparser.on( '-D', '--debug' ) { |o| $options[:debug] = true }
|
|
28
29
|
oparser.on( '-v', '--verbose' ) { |o| $options[:verbose] = true }
|
|
29
30
|
oparser.on( '-V', '--version' ) do
|
|
@@ -64,7 +65,7 @@ def subclasses( base )
|
|
|
64
65
|
ObjectSpace.each_object( Class ) do |x|
|
|
65
66
|
if x.ancestors.include?( base )
|
|
66
67
|
case
|
|
67
|
-
when x ==
|
|
68
|
+
when x == Clevic.base_entity_class; # don't include this
|
|
68
69
|
else; classes << x
|
|
69
70
|
end
|
|
70
71
|
end
|
|
@@ -72,50 +73,13 @@ def subclasses( base )
|
|
|
72
73
|
classes.sort{|a,b| a.name <=> b.name}
|
|
73
74
|
end
|
|
74
75
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
load config / 'environment.rb'
|
|
78
|
-
require 'initializer.rb'
|
|
79
|
-
Rails::Initializer.run do |config|
|
|
80
|
-
config.frameworks -= [ :action_mailer, :action_pack, :active_resource ]
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
# load lib/ files for the rails project
|
|
84
|
-
$: << ( root / 'lib' ).realpath.to_s
|
|
85
|
-
( root / 'lib' ).children.each do |filename|
|
|
86
|
-
load filename if filename.file?
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
# include Dirty if it isn't already
|
|
90
|
-
begin
|
|
91
|
-
ActiveRecord::Dirty
|
|
92
|
-
rescue NameError
|
|
93
|
-
ActiveRecord::Base.send(:include, ActiveRecord::Dirty)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
# load models
|
|
97
|
-
models.find do |dir_entry|
|
|
98
|
-
# don't load directory entries
|
|
99
|
-
next unless dir_entry.file?
|
|
100
|
-
# only load .rb files
|
|
101
|
-
next unless dir_entry.basename.to_s =~ /\.rb$/
|
|
102
|
-
begin
|
|
103
|
-
load dir_entry
|
|
104
|
-
rescue Exception => e
|
|
105
|
-
puts "Error loading #{dir_entry.basename.to_s}: #{e.message}"
|
|
106
|
-
puts e.backtrace
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
# include the Clevic::Record module in each descendant of
|
|
111
|
-
# ActiveRecord::Base so that the default views will be created.
|
|
112
|
-
subclasses( ActiveRecord::Base ).each do |model|
|
|
113
|
-
if model.table_exists?
|
|
114
|
-
model.send :include, Clevic::Record unless model.abstract_class?
|
|
115
|
-
end
|
|
116
|
-
end
|
|
76
|
+
# do nothing ...
|
|
77
|
+
def maybe_load_rails_models
|
|
117
78
|
end
|
|
118
79
|
|
|
80
|
+
# ... unless this is included
|
|
81
|
+
# require 'clevic/rails_models_loader.rb'
|
|
82
|
+
|
|
119
83
|
def load_single_model_file( pathname )
|
|
120
84
|
( pathname + '.rb' ).require_if_exists
|
|
121
85
|
pathname.require_if_exists
|
|
@@ -125,14 +89,7 @@ end
|
|
|
125
89
|
|
|
126
90
|
def load_models( pathname )
|
|
127
91
|
if pathname.directory?
|
|
128
|
-
|
|
129
|
-
app = pathname / 'app'
|
|
130
|
-
models = app / 'models'
|
|
131
|
-
# check if this is a Rails directory
|
|
132
|
-
if config.exist? && app.exist? && models.exist?
|
|
133
|
-
# this is probably a Rails project"
|
|
134
|
-
load_rails_models( pathname, config, models )
|
|
135
|
-
end
|
|
92
|
+
maybe_load_rails_models
|
|
136
93
|
else
|
|
137
94
|
# assume we have a single file, and try some variations
|
|
138
95
|
load_single_model_file( pathname )
|
|
@@ -140,25 +97,7 @@ def load_models( pathname )
|
|
|
140
97
|
end
|
|
141
98
|
|
|
142
99
|
begin
|
|
143
|
-
|
|
144
|
-
raise "no model definition file specified" if args.empty?
|
|
145
|
-
args.each { |arg| load_models( Pathname.new( arg ) ) }
|
|
146
|
-
|
|
147
|
-
app = Qt::Application.new( args )
|
|
148
|
-
|
|
149
|
-
# show UI
|
|
150
|
-
main_window = Qt::MainWindow.new
|
|
151
|
-
browser = Clevic::Browser.new( main_window )
|
|
152
|
-
# this must come after Clevic::Browser.new
|
|
153
|
-
main_window.show
|
|
154
|
-
# make sure any partially edited records are saved when the window is closed
|
|
155
|
-
app.connect( SIGNAL('lastWindowClosed()') ) { browser.save_all }
|
|
156
|
-
begin
|
|
157
|
-
app.exec
|
|
158
|
-
rescue
|
|
159
|
-
puts $!.message
|
|
160
|
-
puts $!.backtrace
|
|
161
|
-
end
|
|
100
|
+
Clevic::Browser.run( args )
|
|
162
101
|
rescue Exception => e
|
|
163
102
|
puts e.message
|
|
164
103
|
puts e.backtrace
|