Name | Total Lines | Lines of Code | Total Coverage | Code Coverage |
---|---|---|---|---|
lib/jldrill/views/gtk/widgets/ItemTableWindow.rb | 232 | 199 | 18.10%
|
11.56%
|
Code reported as executed by Ruby looks like this...and this: this line is also marked as covered.Lines considered as run by rcov, but not reported by Ruby, look like this,and this: these lines were inferred by rcov (using simple heuristics).Finally, here's a line marked as not executed.
1 require 'Context/Gtk/Widget' |
2 require 'jldrill/views/gtk/widgets/ItemTable' |
3 require 'gtk2' |
4 |
5 module JLDrill::Gtk |
6 class ItemTableWindow < Gtk::Window |
7 include Context::Gtk::Widget |
8 |
9 def initialize(view) |
10 @view = view |
11 @context = @view.context |
12 @closed = false |
13 super("All Vocabulary") |
14 self.set_default_size(450, 300) |
15 @vbox = Gtk::VBox.new |
16 self.add(@vbox) |
17 @frame = Gtk::HBox.new |
18 @vbox.pack_start(@frame, true, true, 5) |
19 @sideButtons = Gtk::VBox.new |
20 @frame.pack_end(@sideButtons, true, true, 5) |
21 @previewButton = Gtk::Button.new("Preview (P)") |
22 @sideButtons.pack_start(@previewButton, false, false, 5) |
23 @editButton = Gtk::Button.new("Edit (E)") |
24 @sideButtons.pack_start(@editButton, false, false, 5) |
25 @deleteButton = Gtk::Button.new("Delete (D)") |
26 @sideButtons.pack_start(@deleteButton, false, false, 5) |
27 @upButton = Gtk::Button.new("Move Up (Shift-Up)") |
28 @sideButtons.pack_start(@upButton, false, false, 5) |
29 @downButton = Gtk::Button.new("Move Down (Shift-Down)") |
30 @sideButtons.pack_start(@downButton, false, false, 5) |
31 @vocabTable = nil |
32 @buttons = Gtk::HBox.new |
33 @exitButton = Gtk::Button.new("Exit") |
34 @buttons.pack_end(@exitButton, true, true, 5) |
35 @vbox.pack_end(@buttons, false, false) |
36 connectSignals |
37 end |
38 |
39 def connectSignals |
40 @accel = Gtk::AccelGroup.new |
41 @accel.connect(Gdk::Keyval::GDK_Escape, 0, |
42 Gtk::ACCEL_VISIBLE) do |
43 self.close |
44 end |
45 @accel.connect(Gdk::Keyval::GDK_E, 0, |
46 Gtk::ACCEL_VISIBLE) do |
47 if !searching? |
48 self.editCurrentItem |
49 end |
50 end |
51 @accel.connect(Gdk::Keyval::GDK_D, 0, |
52 Gtk::ACCEL_VISIBLE) do |
53 self.deleteCurrentItem |
54 end |
55 @accel.connect(Gdk::Keyval::GDK_P, 0, |
56 Gtk::ACCEL_VISIBLE) do |
57 if !searching? |
58 self.preview |
59 end |
60 end |
61 @accel.connect(Gdk::Keyval::GDK_Up, Gdk::Window::SHIFT_MASK, |
62 Gtk::ACCEL_VISIBLE) do |
63 if !searching? |
64 self.moveCurrentItemUp |
65 end |
66 end |
67 @accel.connect(Gdk::Keyval::GDK_Down, Gdk::Window::SHIFT_MASK, |
68 Gtk::ACCEL_VISIBLE) do |
69 if !searching? |
70 self.moveCurrentItemDown |
71 end |
72 end |
73 |
74 @accel.connect(Gdk::Keyval::GDK_X, Gdk::Window::CONTROL_MASK, |
75 Gtk::ACCEL_VISIBLE) do |
76 if !searching? |
77 self.markCut |
78 end |
79 end |
80 |
81 @accel.connect(Gdk::Keyval::GDK_V, Gdk::Window::CONTROL_MASK, |
82 Gtk::ACCEL_VISIBLE) do |
83 if !searching? |
84 self.markPaste |
85 end |
86 end |
87 |
88 add_accel_group(@accel) |
89 |
90 signal_connect('delete_event') do |
91 # Request that the destroy signal be sent |
92 false |
93 end |
94 |
95 signal_connect('destroy') do |
96 self.close |
97 end |
98 |
99 @exitButton.signal_connect('clicked') do |
100 self.close |
101 end |
102 |
103 @previewButton.signal_connect('clicked') do |
104 self.preview |
105 end |
106 |
107 @editButton.signal_connect('clicked') do |
108 self.editCurrentItem |
109 end |
110 |
111 @deleteButton.signal_connect('clicked') do |
112 self.deleteCurrentItem |
113 end |
114 |
115 |
116 @upButton.signal_connect('clicked') do |
117 self.moveCurrentItemUp |
118 end |
119 |
120 @downButton.signal_connect('clicked') do |
121 self.moveCurrentItemDown |
122 end |
123 end |
124 |
125 def searching? |
126 return !@vocabTable.nil? && @vocabTable.searching? |
127 end |
128 |
129 def close |
130 if !@closed |
131 @view.close |
132 end |
133 end |
134 |
135 # Select the item in the table if it exists |
136 def select(item) |
137 if !item.nil? && !@vocabTable.nil? |
138 @vocabTable.selectItem(item) |
139 end |
140 end |
141 |
142 def updateItem(item) |
143 if !item.nil? && !@vocabTable.nil? |
144 @vocabTable.updateItem(item) |
145 end |
146 end |
147 |
148 def addItem(item) |
149 if !item.nil? |
150 if @vocabTable.nil? |
151 updateTable([item]) |
152 else |
153 @vocabTable.addItem(item) |
154 end |
155 end |
156 end |
157 |
158 def removeItem(item) |
159 if !item.nil? |
160 if @vocabTable.nil? |
161 updateTable([item]) |
162 else |
163 @vocabTable.removeItem(item) |
164 end |
165 end |
166 end |
167 |
168 def editCurrentItem |
169 if !@vocabTable.nil? |
170 item = @vocabTable.getSelectedItem |
171 if !item.nil? |
172 @vocabTable.stopSearching |
173 @context.edit(item) |
174 end |
175 end |
176 end |
177 |
178 def deleteCurrentItem |
179 if !@vocabTable.nil? |
180 item = @vocabTable.getSelectedItem |
181 if !item.nil? |
182 @vocabTable.stopSearching |
183 @context.delete(item) |
184 end |
185 end |
186 end |
187 |
188 def updateTable(items) |
189 if !@vocabTable.nil? |
190 @frame.remove(@vocabTable) |
191 end |
192 if !items.empty? |
193 @vocabTable = ItemTable.new(items) do |item| |
194 @vocabTable.stopSearching |
195 @context.edit(item) |
196 end |
197 @frame.pack_start(@vocabTable, true, true) |
198 @vocabTable.focusTable |
199 end |
200 @vbox.show_all |
201 end |
202 |
203 def preview |
204 item = @vocabTable.getSelectedItem |
205 if !item.nil? |
206 @context.preview(item) |
207 end |
208 end |
209 |
210 def explicitDestroy |
211 @closed = true |
212 self.destroy |
213 end |
214 |
215 def moveCurrentItemUp |
216 @vocabTable.moveUp |
217 end |
218 |
219 def moveCurrentItemDown |
220 @vocabTable.moveDown |
221 end |
222 |
223 def markCut |
224 @vocabTable.markCut |
225 end |
226 |
227 def markPaste |
228 @vocabTable.pasteBefore |
229 end |
230 |
231 end |
232 end |
Generated on Mon May 23 16:17:47 +0900 2011 with rcov 0.9.8