visualruby 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/editor/VR_Document.rb +219 -0
- data/bin/editor/VR_TabSearch.rb +50 -0
- data/bin/editor/VR_Tabs.rb +99 -0
- data/bin/editor/VR_TextShell.rb +83 -0
- data/bin/editor/VR_TextViewCommon.rb +65 -0
- data/bin/editor/glade/VR_Document.glade +160 -0
- data/bin/main/GemTree.rb +23 -0
- data/bin/main/NewProjectGUI.rb +28 -0
- data/bin/main/ProjectChooserGUI.rb +41 -0
- data/bin/main/ProjectChooserView.rb +39 -0
- data/bin/main/RubygemsAPI.rb +93 -0
- data/bin/main/Splash.rb +22 -0
- data/bin/main/VR_ENV.rb +61 -0
- data/bin/main/VR_ENV_GLOBAL.rb +64 -0
- data/bin/main/VR_File_Tree.rb +120 -0
- data/bin/main/VR_Local_Gem_Tree.rb +80 -0
- data/bin/main/VR_Main.rb +313 -0
- data/bin/main/VR_Remote_Gem_Tree.rb +70 -0
- data/bin/main/glade/NewProjectGUI.glade +141 -0
- data/bin/main/glade/ProjectChooserGUI.glade +140 -0
- data/bin/main/glade/RubygemsAPI.glade +130 -0
- data/bin/main/glade/Splash.glade +18 -0
- data/bin/main/glade/VR_ENV.glade +168 -0
- data/bin/main/glade/VR_ENV_GLOBAL.glade +268 -0
- data/bin/main/glade/VR_File_Tree.glade +65 -0
- data/bin/main/glade/VR_Local_Gem_Tree.glade +45 -0
- data/bin/main/glade/VR_Main.glade +707 -0
- data/bin/main/glade/VR_Remote_Gem_Tree.glade +76 -0
- data/bin/tools/VR_Tools.rb +120 -0
- data/img/close.png +0 -0
- data/img/folder.png +0 -0
- data/img/glade.png +0 -0
- data/img/gtk-edit.png +0 -0
- data/img/obj.png +0 -0
- data/img/png.png +0 -0
- data/img/rb.png +0 -0
- data/img/ruby.png +0 -0
- data/img/splash.png +0 -0
- data/img/unknown.png +0 -0
- data/skeleton/document/New.glade +13 -0
- data/skeleton/document/NewWindow.rb +15 -0
- data/skeleton/project/bin/MyClass.rb +15 -0
- data/skeleton/project/bin/glade/MyClass.glade +45 -0
- data/skeleton/project/main.rb +14 -0
- data/visualruby_examples/active_record/.vr_settings.yaml +47 -0
- data/visualruby_examples/active_record/active_record.rb +52 -0
- data/visualruby_examples/active_record/bin/ChoosePerson.rb +17 -0
- data/visualruby_examples/active_record/bin/Person.rb +13 -0
- data/visualruby_examples/active_record/bin/glade/ChoosePerson.glade +61 -0
- data/visualruby_examples/active_record/bin/glade/Person.glade +148 -0
- data/visualruby_examples/active_record/db/development.sqlite3 +0 -0
- data/visualruby_examples/active_record2/.vr_settings.yaml +48 -0
- data/visualruby_examples/active_record2/active_record2.rb +142 -0
- data/visualruby_examples/active_record2/bin/CompanyGUI.rb +54 -0
- data/visualruby_examples/active_record2/bin/Employee.rb +20 -0
- data/visualruby_examples/active_record2/bin/Employer.rb +11 -0
- data/visualruby_examples/active_record2/bin/Paycheck.rb +11 -0
- data/visualruby_examples/active_record2/bin/glade/CompanyGUI.glade +167 -0
- data/visualruby_examples/active_record2/bin/glade/Employee.glade +123 -0
- data/visualruby_examples/active_record2/bin/glade/Employer.glade +147 -0
- data/visualruby_examples/active_record2/bin/glade/Paycheck.glade +145 -0
- data/visualruby_examples/active_record2/db/development.sqlite3 +0 -0
- data/visualruby_examples/all_widgets/.vr_settings.yaml +20 -0
- data/visualruby_examples/all_widgets/all_widgets.rb +13 -0
- data/visualruby_examples/all_widgets/bin/AllWidgets.rb +43 -0
- data/visualruby_examples/all_widgets/bin/glade/AllWidgets.glade +166 -0
- data/visualruby_examples/all_widgets/bin/splash.png +0 -0
- data/visualruby_examples/calculator/.vr_settings.yaml +21 -0
- data/visualruby_examples/calculator/bin/Calculator.rb +63 -0
- data/visualruby_examples/calculator/bin/glade/Calculator.glade +243 -0
- data/visualruby_examples/calculator/main.rb +13 -0
- data/visualruby_examples/child_window/.vr_settings.yaml +46 -0
- data/visualruby_examples/child_window/bin/ChildWindowDemo.rb +41 -0
- data/visualruby_examples/child_window/bin/MyChildClass.rb +42 -0
- data/visualruby_examples/child_window/bin/glade/ChildWindowDemo.glade +101 -0
- data/visualruby_examples/child_window/bin/glade/MyChildClass.glade +58 -0
- data/visualruby_examples/child_window/main.rb +13 -0
- data/visualruby_examples/drag_drop/.vr_settings.yaml +19 -0
- data/visualruby_examples/drag_drop/bin/DragDropDemo.rb +45 -0
- data/visualruby_examples/drag_drop/bin/glade/DragDropDemo.glade +143 -0
- data/visualruby_examples/drag_drop/img/folder.png +0 -0
- data/visualruby_examples/drag_drop/img/glade.png +0 -0
- data/visualruby_examples/drag_drop/img/gtk-edit.png +0 -0
- data/visualruby_examples/drag_drop/img/obj.png +0 -0
- data/visualruby_examples/drag_drop/img/png.png +0 -0
- data/visualruby_examples/drag_drop/img/rb.png +0 -0
- data/visualruby_examples/drag_drop/img/ruby.png +0 -0
- data/visualruby_examples/drag_drop/img/unknown.png +0 -0
- data/visualruby_examples/drag_drop/main.rb +14 -0
- data/visualruby_examples/listview/.vr_settings.yaml +46 -0
- data/visualruby_examples/listview/bin/SongListView.rb +89 -0
- data/visualruby_examples/listview/bin/SongListViewGUI.rb +67 -0
- data/visualruby_examples/listview/bin/audio-x-generic.png +0 -0
- data/visualruby_examples/listview/bin/glade/SongListViewGUI.glade +220 -0
- data/visualruby_examples/listview/main.rb +19 -0
- data/visualruby_examples/listview_objects/.vr_settings.yaml +46 -0
- data/visualruby_examples/listview_objects/bin/DataObject.rb +32 -0
- data/visualruby_examples/listview_objects/bin/DataObjectGUI.rb +41 -0
- data/visualruby_examples/listview_objects/bin/ListViewObjects.rb +34 -0
- data/visualruby_examples/listview_objects/bin/ListViewObjectsGUI.rb +18 -0
- data/visualruby_examples/listview_objects/bin/glade/DataObject.glade +198 -0
- data/visualruby_examples/listview_objects/bin/glade/ListViewObjectsGUI.glade +102 -0
- data/visualruby_examples/listview_objects/main.rb +13 -0
- data/visualruby_examples/simple_ruby_gui/.vr_settings.yaml +45 -0
- data/visualruby_examples/simple_ruby_gui/bin/DataObjectGUI.rb +20 -0
- data/visualruby_examples/simple_ruby_gui/bin/glade/DataObjectGUI.glade +163 -0
- data/visualruby_examples/simple_ruby_gui/simple_ruby_gui +16 -0
- data/visualruby_examples/treeview/.vr_settings.yaml +18 -0
- data/visualruby_examples/treeview/bin/MyClass.rb +28 -0
- data/visualruby_examples/treeview/bin/glade/MyClass.glade +48 -0
- data/visualruby_examples/treeview/main.rb +14 -0
- data/vr +40 -0
- metadata +202 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<interface>
|
|
3
|
+
<requires lib="gtk+" version="2.16"/>
|
|
4
|
+
<!-- interface-naming-policy project-wide -->
|
|
5
|
+
<object class="GtkWindow" id="window1">
|
|
6
|
+
<property name="width_request">450</property>
|
|
7
|
+
<property name="height_request">230</property>
|
|
8
|
+
<property name="visible">True</property>
|
|
9
|
+
<property name="modal">True</property>
|
|
10
|
+
<signal name="destroy" handler="destroy_window"/>
|
|
11
|
+
<child>
|
|
12
|
+
<object class="GtkHBox" id="hbox1">
|
|
13
|
+
<property name="visible">True</property>
|
|
14
|
+
<child>
|
|
15
|
+
<object class="GtkVBox" id="vbox1">
|
|
16
|
+
<property name="width_request">450</property>
|
|
17
|
+
<property name="visible">True</property>
|
|
18
|
+
<child>
|
|
19
|
+
<object class="GtkLabel" id="label5">
|
|
20
|
+
<property name="visible">True</property>
|
|
21
|
+
<property name="yalign">0.4699999988079071</property>
|
|
22
|
+
<property name="label" translatable="yes"><big><big>Person</big></big></property>
|
|
23
|
+
<property name="use_markup">True</property>
|
|
24
|
+
</object>
|
|
25
|
+
<packing>
|
|
26
|
+
<property name="padding">10</property>
|
|
27
|
+
<property name="position">0</property>
|
|
28
|
+
</packing>
|
|
29
|
+
</child>
|
|
30
|
+
<child>
|
|
31
|
+
<object class="GtkTable" id="table1">
|
|
32
|
+
<property name="visible">True</property>
|
|
33
|
+
<property name="n_rows">4</property>
|
|
34
|
+
<property name="n_columns">2</property>
|
|
35
|
+
<property name="column_spacing">5</property>
|
|
36
|
+
<property name="row_spacing">5</property>
|
|
37
|
+
<child>
|
|
38
|
+
<object class="GtkLabel" id="label1">
|
|
39
|
+
<property name="visible">True</property>
|
|
40
|
+
<property name="xalign">1</property>
|
|
41
|
+
<property name="label" translatable="yes">Name:</property>
|
|
42
|
+
</object>
|
|
43
|
+
<packing>
|
|
44
|
+
<property name="x_options">GTK_FILL</property>
|
|
45
|
+
</packing>
|
|
46
|
+
</child>
|
|
47
|
+
<child>
|
|
48
|
+
<object class="GtkLabel" id="label2">
|
|
49
|
+
<property name="visible">True</property>
|
|
50
|
+
<property name="xalign">1</property>
|
|
51
|
+
<property name="label" translatable="yes">Address:</property>
|
|
52
|
+
</object>
|
|
53
|
+
<packing>
|
|
54
|
+
<property name="top_attach">1</property>
|
|
55
|
+
<property name="bottom_attach">2</property>
|
|
56
|
+
<property name="x_options">GTK_FILL</property>
|
|
57
|
+
</packing>
|
|
58
|
+
</child>
|
|
59
|
+
<child>
|
|
60
|
+
<object class="GtkLabel" id="label3">
|
|
61
|
+
<property name="visible">True</property>
|
|
62
|
+
<property name="xalign">1</property>
|
|
63
|
+
<property name="label" translatable="yes">Phone Number:</property>
|
|
64
|
+
</object>
|
|
65
|
+
<packing>
|
|
66
|
+
<property name="top_attach">2</property>
|
|
67
|
+
<property name="bottom_attach">3</property>
|
|
68
|
+
<property name="x_options">GTK_FILL</property>
|
|
69
|
+
</packing>
|
|
70
|
+
</child>
|
|
71
|
+
<child>
|
|
72
|
+
<object class="GtkLabel" id="label4">
|
|
73
|
+
<property name="visible">True</property>
|
|
74
|
+
<property name="xalign">1</property>
|
|
75
|
+
<property name="label" translatable="yes">Email:</property>
|
|
76
|
+
</object>
|
|
77
|
+
<packing>
|
|
78
|
+
<property name="top_attach">3</property>
|
|
79
|
+
<property name="bottom_attach">4</property>
|
|
80
|
+
<property name="x_options">GTK_FILL</property>
|
|
81
|
+
</packing>
|
|
82
|
+
</child>
|
|
83
|
+
<child>
|
|
84
|
+
<object class="GtkEntry" id="Person.name">
|
|
85
|
+
<property name="visible">True</property>
|
|
86
|
+
<property name="can_focus">True</property>
|
|
87
|
+
<property name="invisible_char">•</property>
|
|
88
|
+
</object>
|
|
89
|
+
<packing>
|
|
90
|
+
<property name="left_attach">1</property>
|
|
91
|
+
<property name="right_attach">2</property>
|
|
92
|
+
</packing>
|
|
93
|
+
</child>
|
|
94
|
+
<child>
|
|
95
|
+
<object class="GtkEntry" id="Person.address">
|
|
96
|
+
<property name="visible">True</property>
|
|
97
|
+
<property name="can_focus">True</property>
|
|
98
|
+
<property name="invisible_char">•</property>
|
|
99
|
+
</object>
|
|
100
|
+
<packing>
|
|
101
|
+
<property name="left_attach">1</property>
|
|
102
|
+
<property name="right_attach">2</property>
|
|
103
|
+
<property name="top_attach">1</property>
|
|
104
|
+
<property name="bottom_attach">2</property>
|
|
105
|
+
</packing>
|
|
106
|
+
</child>
|
|
107
|
+
<child>
|
|
108
|
+
<object class="GtkEntry" id="phone">
|
|
109
|
+
<property name="visible">True</property>
|
|
110
|
+
<property name="can_focus">True</property>
|
|
111
|
+
<property name="invisible_char">•</property>
|
|
112
|
+
</object>
|
|
113
|
+
<packing>
|
|
114
|
+
<property name="left_attach">1</property>
|
|
115
|
+
<property name="right_attach">2</property>
|
|
116
|
+
<property name="top_attach">2</property>
|
|
117
|
+
<property name="bottom_attach">3</property>
|
|
118
|
+
</packing>
|
|
119
|
+
</child>
|
|
120
|
+
<child>
|
|
121
|
+
<object class="GtkEntry" id="email">
|
|
122
|
+
<property name="visible">True</property>
|
|
123
|
+
<property name="can_focus">True</property>
|
|
124
|
+
<property name="invisible_char">•</property>
|
|
125
|
+
</object>
|
|
126
|
+
<packing>
|
|
127
|
+
<property name="left_attach">1</property>
|
|
128
|
+
<property name="right_attach">2</property>
|
|
129
|
+
<property name="top_attach">3</property>
|
|
130
|
+
<property name="bottom_attach">4</property>
|
|
131
|
+
</packing>
|
|
132
|
+
</child>
|
|
133
|
+
</object>
|
|
134
|
+
<packing>
|
|
135
|
+
<property name="padding">20</property>
|
|
136
|
+
<property name="position">1</property>
|
|
137
|
+
</packing>
|
|
138
|
+
</child>
|
|
139
|
+
</object>
|
|
140
|
+
<packing>
|
|
141
|
+
<property name="padding">20</property>
|
|
142
|
+
<property name="position">0</property>
|
|
143
|
+
</packing>
|
|
144
|
+
</child>
|
|
145
|
+
</object>
|
|
146
|
+
</child>
|
|
147
|
+
</object>
|
|
148
|
+
</interface>
|
|
Binary file
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
--- !ruby/object:VR_ENV
|
|
2
|
+
backup_path: /home/eric
|
|
3
|
+
browser: firefox
|
|
4
|
+
current_file: /home/eric/vrp/vrx/visualruby_examples/active_record2/active_record2.rb
|
|
5
|
+
font_name: Monospace 10
|
|
6
|
+
glade_path: glade-gtk2
|
|
7
|
+
height: 865
|
|
8
|
+
open_files:
|
|
9
|
+
- /home/eric/vrp/vrx/visualruby_examples/active_record2/active_record2.rb
|
|
10
|
+
- /home/eric/vrp/vrx/visualruby_examples/active_record2/bin/CompanyGUI.rb
|
|
11
|
+
- /home/eric/vrp/vrx/visualruby_examples/active_record2/bin/Employee.rb
|
|
12
|
+
- /home/eric/vrp/vrx/visualruby_examples/active_record2/bin/Paycheck.rb
|
|
13
|
+
- /home/eric/vrp/vrx/visualruby_examples/active_record2/bin/Employer.rb
|
|
14
|
+
open_folders:
|
|
15
|
+
- /home/eric/vrp/vrx/visualruby_examples/active_record2
|
|
16
|
+
- /home/eric/vrp/vrx/visualruby_examples/active_record2/bin
|
|
17
|
+
- /home/eric/vrp/vrx/visualruby_examples/active_record2/bin/glade
|
|
18
|
+
panel_pos: 541
|
|
19
|
+
rdoc_command_line: rdoc -x README
|
|
20
|
+
run_command_line: ruby active_record2.rb
|
|
21
|
+
tab_spaces: 2
|
|
22
|
+
width: 1346
|
|
23
|
+
builder: !ruby/object:Gtk::Builder {}
|
|
24
|
+
glade_box: !ruby/object:VR::SimpleComboBoxEntry {}
|
|
25
|
+
browser_box: !ruby/object:VR::SimpleComboBoxEntry {}
|
|
26
|
+
buttonChooseFolder: ! '...'
|
|
27
|
+
vbox1: !ruby/object:Gtk::VBox {}
|
|
28
|
+
label7: ! 'Editor Font:'
|
|
29
|
+
label3: ! 'Back-up Path:'
|
|
30
|
+
window1: !ruby/object:Gtk::Window {}
|
|
31
|
+
hbuttonbox1: !ruby/object:Gtk::HButtonBox {}
|
|
32
|
+
buttonCancel: Cancel
|
|
33
|
+
label8: ! 'RDoc Command Line: '
|
|
34
|
+
table1: !ruby/object:Gtk::Table {}
|
|
35
|
+
buttonTryBrowser: Try
|
|
36
|
+
buttonSave: Save
|
|
37
|
+
hboxBrowser: !ruby/object:Gtk::HBox {}
|
|
38
|
+
hboxGlade: !ruby/object:Gtk::HBox {}
|
|
39
|
+
label1: <big><big><b>Visual Ruby Settings</b></big></big>
|
|
40
|
+
label2: ! 'Browser Command Line:'
|
|
41
|
+
label4: ! 'Spaces for Each Tab in Editor:'
|
|
42
|
+
label5: ! 'Glade Command Line:'
|
|
43
|
+
label6: ! 'Command Line when "Run" is pressed:'
|
|
44
|
+
hbox1: !ruby/object:Gtk::HBox {}
|
|
45
|
+
hbox2: !ruby/object:Gtk::HBox {}
|
|
46
|
+
hbox3: !ruby/object:Gtk::HBox {}
|
|
47
|
+
hbox4: !ruby/object:Gtk::HBox {}
|
|
48
|
+
buttonTryGlade: Try
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
require 'vrlib.rb'
|
|
2
|
+
require 'active_record'
|
|
3
|
+
|
|
4
|
+
#make program output in real time so errors visible in VR.
|
|
5
|
+
STDOUT.sync = true
|
|
6
|
+
STDERR.sync = true
|
|
7
|
+
|
|
8
|
+
#everything in these directories will be included
|
|
9
|
+
my_path = File.expand_path(File.dirname(__FILE__))
|
|
10
|
+
require_all Dir.glob(my_path + "/bin/**/*.rb")
|
|
11
|
+
|
|
12
|
+
ActiveRecord::Base.establish_connection(
|
|
13
|
+
:adapter => "sqlite3",
|
|
14
|
+
:database => "db/development.sqlite3"
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
CompanyGUI.new.show
|
|
19
|
+
|
|
20
|
+
# This code just populates the database
|
|
21
|
+
|
|
22
|
+
#ActiveRecord::Schema.define do
|
|
23
|
+
# create_table :employers do |table|
|
|
24
|
+
# table.column :name, :string
|
|
25
|
+
# table.column :address, :string
|
|
26
|
+
# table.column :company_type, :string
|
|
27
|
+
# end
|
|
28
|
+
# create_table :employees do |table|
|
|
29
|
+
# table.column :employer_id, :integer
|
|
30
|
+
# table.column :name, :string
|
|
31
|
+
# table.column :address, :string
|
|
32
|
+
# end
|
|
33
|
+
# create_table :paychecks do |table|
|
|
34
|
+
# table.column :employee_id, :integer
|
|
35
|
+
# table.column :date, :date
|
|
36
|
+
# table.column :description, :string
|
|
37
|
+
# table.column :amount, :float
|
|
38
|
+
# end
|
|
39
|
+
#
|
|
40
|
+
#end
|
|
41
|
+
#
|
|
42
|
+
#p = Employer.create
|
|
43
|
+
#p.name = "Hal's Lawnmowers"
|
|
44
|
+
#p.address = "4675 St Bernard Wy, Lincoln, NE 83748"
|
|
45
|
+
#p.company_type = "Home and Garden"
|
|
46
|
+
#p.save
|
|
47
|
+
#
|
|
48
|
+
#e = p.employees.create
|
|
49
|
+
#e.name = "Kenny Arthur"
|
|
50
|
+
#e.address = "11430 W Foothill, San Mateo CA 90054"
|
|
51
|
+
#e.save
|
|
52
|
+
#
|
|
53
|
+
#c = e.paychecks.create
|
|
54
|
+
#c.date = DateTime.new(2011, 12, 18)
|
|
55
|
+
#c.description = "Cash Advance"
|
|
56
|
+
#c.amount = 400
|
|
57
|
+
#c.save
|
|
58
|
+
#
|
|
59
|
+
#c = e.paychecks.create
|
|
60
|
+
#c.date = DateTime.new(2011, 11, 25)
|
|
61
|
+
#c.description = "November Hours"
|
|
62
|
+
#c.amount = -545.56
|
|
63
|
+
#c.save
|
|
64
|
+
#
|
|
65
|
+
#c = e.paychecks.create
|
|
66
|
+
#c.date = DateTime.new(2011, 11, 28)
|
|
67
|
+
#c.description = "Payment"
|
|
68
|
+
#c.amount = 900
|
|
69
|
+
#c.save
|
|
70
|
+
#
|
|
71
|
+
#e = p.employees.create
|
|
72
|
+
#e.name = "Albert Davidson"
|
|
73
|
+
#e.address = "324 Sheffield Blvd, San Francisco CA 90048"
|
|
74
|
+
#e.save
|
|
75
|
+
#
|
|
76
|
+
#c = e.paychecks.create
|
|
77
|
+
#c.date = DateTime.new(2011, 12, 28)
|
|
78
|
+
#c.description = "Payment: Christmas Bonus"
|
|
79
|
+
#c.amount = 500
|
|
80
|
+
#c.save
|
|
81
|
+
#
|
|
82
|
+
#c = e.paychecks.create
|
|
83
|
+
#c.date = DateTime.new(2011, 11, 25)
|
|
84
|
+
#c.description = "November Hours"
|
|
85
|
+
#c.amount = -755.56
|
|
86
|
+
#c.save
|
|
87
|
+
#
|
|
88
|
+
#c = e.paychecks.create
|
|
89
|
+
#c.date = DateTime.new(2011, 11, 28)
|
|
90
|
+
#c.description = "Payment"
|
|
91
|
+
#c.amount = 1000
|
|
92
|
+
#c.save
|
|
93
|
+
#
|
|
94
|
+
#p = Employer.create
|
|
95
|
+
#p.name = "99 cent Supermart"
|
|
96
|
+
#p.address = "222 Cleveland Blvd, Foster City, CA 96858"
|
|
97
|
+
#p.company_type = "Discount Stores"
|
|
98
|
+
#p.save
|
|
99
|
+
#
|
|
100
|
+
#e = p.employees.create
|
|
101
|
+
#e.name = "Richard King"
|
|
102
|
+
#e.address = "490 S Brooks Blvd, San Francisco CA 90044"
|
|
103
|
+
#e.save
|
|
104
|
+
#
|
|
105
|
+
#c = e.paychecks.create
|
|
106
|
+
#c.date = DateTime.new(2011, 9, 18)
|
|
107
|
+
#c.description = "Payment: Overtime"
|
|
108
|
+
#c.amount = 500
|
|
109
|
+
#c.save
|
|
110
|
+
#
|
|
111
|
+
#c = e.paychecks.create
|
|
112
|
+
#c.date = DateTime.new(2011, 11, 25)
|
|
113
|
+
#c.description = "November Hours"
|
|
114
|
+
#c.amount = -485.56
|
|
115
|
+
#c.save
|
|
116
|
+
#
|
|
117
|
+
#c = e.paychecks.create
|
|
118
|
+
#c.date = DateTime.new(2011, 11, 28)
|
|
119
|
+
#c.description = "December Hours"
|
|
120
|
+
#c.amount = -756.56
|
|
121
|
+
#c.save
|
|
122
|
+
#
|
|
123
|
+
#
|
|
124
|
+
#e = p.employees.create
|
|
125
|
+
#e.name = "Angel Cervantes"
|
|
126
|
+
#e.address = "1984 99th Blvd, Sacremento, CA 95558"
|
|
127
|
+
#e.save
|
|
128
|
+
#
|
|
129
|
+
#c = e.paychecks.create
|
|
130
|
+
#c.date = DateTime.new(2011, 11, 28)
|
|
131
|
+
#c.description = "Payment: November"
|
|
132
|
+
#c.amount = 750
|
|
133
|
+
#c.save
|
|
134
|
+
#
|
|
135
|
+
#c = e.paychecks.create
|
|
136
|
+
#c.date = DateTime.new(2011, 11, 25)
|
|
137
|
+
#c.description = "November Hours"
|
|
138
|
+
#c.amount = -855.56
|
|
139
|
+
#c.save
|
|
140
|
+
#
|
|
141
|
+
#
|
|
142
|
+
#
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
|
|
2
|
+
class CompanyGUI
|
|
3
|
+
|
|
4
|
+
include GladeGUI
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def before_show()
|
|
8
|
+
@employer_view = VR::ListView.new(:employer => Employer, :address => String, :company_type => String)
|
|
9
|
+
@builder["scroll_employer"].add(@employer_view)
|
|
10
|
+
@employer_view.selection.signal_connect("changed") { employer_view__changed }
|
|
11
|
+
@employer_view.col_width(:employer => 160, :address => 340, :company_type => 180)
|
|
12
|
+
|
|
13
|
+
@employee_view = VR::ListView.new(:employer => Employer, :employee => Employee, :address => String, :balance => String)
|
|
14
|
+
@builder["scroll_employee"].add(@employee_view)
|
|
15
|
+
@employee_view.selection.signal_connect("changed") { employee_view__changed }
|
|
16
|
+
@employee_view.col_width(:employer => 160, :employee => 150, :address => 320)
|
|
17
|
+
|
|
18
|
+
@paycheck_view = VR::ListView.new(:employee => Employee, :date => DateTime, :description => String, :amt => Paycheck)
|
|
19
|
+
@builder["scroll_paycheck"].add(@paycheck_view)
|
|
20
|
+
@paycheck_view.col_width(:employee => 200, :date => 100, :description => 220, :amt => 100)
|
|
21
|
+
|
|
22
|
+
Employer.all.each do |e|
|
|
23
|
+
row = @employer_view.add_row
|
|
24
|
+
row[:employer] = e
|
|
25
|
+
row.load_object(e)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
@employer_view.select_row(0)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def employer_view__changed
|
|
33
|
+
return unless row = @employer_view.selected_rows[0]
|
|
34
|
+
@employee_view.model.clear
|
|
35
|
+
Employee.where(:employer_id => row[:employer].id).each do |e|
|
|
36
|
+
row = @employee_view.add_row
|
|
37
|
+
row[:employee] = e
|
|
38
|
+
row.load_object(e)
|
|
39
|
+
end
|
|
40
|
+
@employee_view.select_row(0)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def employee_view__changed
|
|
44
|
+
return unless row = @employee_view.selected_rows[0]
|
|
45
|
+
@paycheck_view.model.clear
|
|
46
|
+
Paycheck.where(:employee_id => row[:employee].id).each do |e|
|
|
47
|
+
row = @paycheck_view.add_row
|
|
48
|
+
row.load_object(e) #this loads employee object
|
|
49
|
+
row[:amt] = e
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
|
|
2
|
+
class Employee < ActiveRecord::Base
|
|
3
|
+
has_many :paychecks
|
|
4
|
+
belongs_to :employer
|
|
5
|
+
|
|
6
|
+
include GladeGUI
|
|
7
|
+
|
|
8
|
+
def visual_attributes
|
|
9
|
+
bal = balance().to_f
|
|
10
|
+
hash = { :text => name }
|
|
11
|
+
hash[:foreground] = (bal < 0) ? "white" : "black"
|
|
12
|
+
hash[:background] = (bal < 0) ? "red" : "white"
|
|
13
|
+
return hash
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def balance()
|
|
17
|
+
Paycheck.sum(:amount, :conditions => "employee_id = #{id}").round(2).to_s
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<interface>
|
|
3
|
+
<requires lib="gtk+" version="2.16"/>
|
|
4
|
+
<!-- interface-naming-policy project-wide -->
|
|
5
|
+
<object class="GtkWindow" id="window1">
|
|
6
|
+
<property name="visible">True</property>
|
|
7
|
+
<property name="can_focus">False</property>
|
|
8
|
+
<property name="title" translatable="yes">All Paychecks</property>
|
|
9
|
+
<property name="modal">True</property>
|
|
10
|
+
<property name="default_width">740</property>
|
|
11
|
+
<property name="default_height">700</property>
|
|
12
|
+
<signal name="destroy" handler="destroy_window" swapped="no"/>
|
|
13
|
+
<child>
|
|
14
|
+
<object class="GtkHBox" id="hbox1">
|
|
15
|
+
<property name="visible">True</property>
|
|
16
|
+
<property name="can_focus">False</property>
|
|
17
|
+
<child>
|
|
18
|
+
<object class="GtkVBox" id="vbox1">
|
|
19
|
+
<property name="visible">True</property>
|
|
20
|
+
<property name="can_focus">False</property>
|
|
21
|
+
<child>
|
|
22
|
+
<object class="GtkLabel" id="label1">
|
|
23
|
+
<property name="visible">True</property>
|
|
24
|
+
<property name="can_focus">False</property>
|
|
25
|
+
<property name="label" translatable="yes"><big><big>Paychecks For All Employees</big></big></property>
|
|
26
|
+
<property name="use_markup">True</property>
|
|
27
|
+
</object>
|
|
28
|
+
<packing>
|
|
29
|
+
<property name="expand">True</property>
|
|
30
|
+
<property name="fill">True</property>
|
|
31
|
+
<property name="position">0</property>
|
|
32
|
+
</packing>
|
|
33
|
+
</child>
|
|
34
|
+
<child>
|
|
35
|
+
<object class="GtkLabel" id="label2">
|
|
36
|
+
<property name="visible">True</property>
|
|
37
|
+
<property name="can_focus">False</property>
|
|
38
|
+
<property name="xalign">0.019999999552965164</property>
|
|
39
|
+
<property name="ypad">5</property>
|
|
40
|
+
<property name="label" translatable="yes"><big>Companies:</big></property>
|
|
41
|
+
<property name="use_markup">True</property>
|
|
42
|
+
</object>
|
|
43
|
+
<packing>
|
|
44
|
+
<property name="expand">False</property>
|
|
45
|
+
<property name="fill">True</property>
|
|
46
|
+
<property name="position">1</property>
|
|
47
|
+
</packing>
|
|
48
|
+
</child>
|
|
49
|
+
<child>
|
|
50
|
+
<object class="GtkScrolledWindow" id="scroll_employer">
|
|
51
|
+
<property name="visible">True</property>
|
|
52
|
+
<property name="can_focus">True</property>
|
|
53
|
+
<property name="hscrollbar_policy">automatic</property>
|
|
54
|
+
<property name="vscrollbar_policy">automatic</property>
|
|
55
|
+
<child>
|
|
56
|
+
<placeholder/>
|
|
57
|
+
</child>
|
|
58
|
+
</object>
|
|
59
|
+
<packing>
|
|
60
|
+
<property name="expand">True</property>
|
|
61
|
+
<property name="fill">True</property>
|
|
62
|
+
<property name="position">2</property>
|
|
63
|
+
</packing>
|
|
64
|
+
</child>
|
|
65
|
+
<child>
|
|
66
|
+
<object class="GtkLabel" id="label3">
|
|
67
|
+
<property name="visible">True</property>
|
|
68
|
+
<property name="can_focus">False</property>
|
|
69
|
+
<property name="xalign">0.019999999552965164</property>
|
|
70
|
+
<property name="ypad">5</property>
|
|
71
|
+
<property name="label" translatable="yes"><big>Employees:</big></property>
|
|
72
|
+
<property name="use_markup">True</property>
|
|
73
|
+
</object>
|
|
74
|
+
<packing>
|
|
75
|
+
<property name="expand">False</property>
|
|
76
|
+
<property name="fill">True</property>
|
|
77
|
+
<property name="position">3</property>
|
|
78
|
+
</packing>
|
|
79
|
+
</child>
|
|
80
|
+
<child>
|
|
81
|
+
<object class="GtkScrolledWindow" id="scroll_employee">
|
|
82
|
+
<property name="visible">True</property>
|
|
83
|
+
<property name="can_focus">True</property>
|
|
84
|
+
<property name="hscrollbar_policy">automatic</property>
|
|
85
|
+
<property name="vscrollbar_policy">automatic</property>
|
|
86
|
+
<child>
|
|
87
|
+
<placeholder/>
|
|
88
|
+
</child>
|
|
89
|
+
</object>
|
|
90
|
+
<packing>
|
|
91
|
+
<property name="expand">True</property>
|
|
92
|
+
<property name="fill">True</property>
|
|
93
|
+
<property name="position">4</property>
|
|
94
|
+
</packing>
|
|
95
|
+
</child>
|
|
96
|
+
<child>
|
|
97
|
+
<object class="GtkLabel" id="label4">
|
|
98
|
+
<property name="visible">True</property>
|
|
99
|
+
<property name="can_focus">False</property>
|
|
100
|
+
<property name="xalign">0.019999999552965164</property>
|
|
101
|
+
<property name="ypad">5</property>
|
|
102
|
+
<property name="label" translatable="yes"><big>Paychecks:</big></property>
|
|
103
|
+
<property name="use_markup">True</property>
|
|
104
|
+
</object>
|
|
105
|
+
<packing>
|
|
106
|
+
<property name="expand">False</property>
|
|
107
|
+
<property name="fill">True</property>
|
|
108
|
+
<property name="position">5</property>
|
|
109
|
+
</packing>
|
|
110
|
+
</child>
|
|
111
|
+
<child>
|
|
112
|
+
<object class="GtkScrolledWindow" id="scroll_paycheck">
|
|
113
|
+
<property name="visible">True</property>
|
|
114
|
+
<property name="can_focus">True</property>
|
|
115
|
+
<property name="hscrollbar_policy">automatic</property>
|
|
116
|
+
<property name="vscrollbar_policy">automatic</property>
|
|
117
|
+
<child>
|
|
118
|
+
<placeholder/>
|
|
119
|
+
</child>
|
|
120
|
+
</object>
|
|
121
|
+
<packing>
|
|
122
|
+
<property name="expand">True</property>
|
|
123
|
+
<property name="fill">True</property>
|
|
124
|
+
<property name="position">6</property>
|
|
125
|
+
</packing>
|
|
126
|
+
</child>
|
|
127
|
+
<child>
|
|
128
|
+
<object class="GtkHButtonBox" id="hbuttonbox1">
|
|
129
|
+
<property name="visible">True</property>
|
|
130
|
+
<property name="can_focus">False</property>
|
|
131
|
+
<property name="spacing">20</property>
|
|
132
|
+
<property name="layout_style">end</property>
|
|
133
|
+
<child>
|
|
134
|
+
<object class="GtkButton" id="button2">
|
|
135
|
+
<property name="label" translatable="yes">Done</property>
|
|
136
|
+
<property name="visible">True</property>
|
|
137
|
+
<property name="can_focus">True</property>
|
|
138
|
+
<property name="receives_default">True</property>
|
|
139
|
+
<property name="use_action_appearance">False</property>
|
|
140
|
+
<signal name="clicked" handler="destroy_window" swapped="no"/>
|
|
141
|
+
</object>
|
|
142
|
+
<packing>
|
|
143
|
+
<property name="expand">False</property>
|
|
144
|
+
<property name="fill">False</property>
|
|
145
|
+
<property name="position">0</property>
|
|
146
|
+
</packing>
|
|
147
|
+
</child>
|
|
148
|
+
</object>
|
|
149
|
+
<packing>
|
|
150
|
+
<property name="expand">False</property>
|
|
151
|
+
<property name="fill">True</property>
|
|
152
|
+
<property name="padding">10</property>
|
|
153
|
+
<property name="position">7</property>
|
|
154
|
+
</packing>
|
|
155
|
+
</child>
|
|
156
|
+
</object>
|
|
157
|
+
<packing>
|
|
158
|
+
<property name="expand">True</property>
|
|
159
|
+
<property name="fill">True</property>
|
|
160
|
+
<property name="padding">20</property>
|
|
161
|
+
<property name="position">0</property>
|
|
162
|
+
</packing>
|
|
163
|
+
</child>
|
|
164
|
+
</object>
|
|
165
|
+
</child>
|
|
166
|
+
</object>
|
|
167
|
+
</interface>
|