Jldrill Git C0 Coverage Information - RCov

lib/jldrill/views/gtk/widgets/ItemTableWindow.rb

Name Total Lines Lines of Code Total Coverage Code Coverage
lib/jldrill/views/gtk/widgets/ItemTableWindow.rb 232 199
18.10%
11.56%

Key

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.

Coverage Details

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