Class: JLDrill::MergeQuizContext
Overview
Shows progress while merging two quiz files
Instance Attribute Summary
#mainView, #parent, #viewBridge
Instance Method Summary
collapse
#createViews, #destroyViews, #exitFileProgressContext
#addView, #createViews, #destroyViews, #isEntered?, #onExit, #peekAtView, #setupViews
Constructor Details
12
13
14
15
16
|
# File 'lib/jldrill/contexts/MergeQuizContext.rb', line 12
def initialize(viewBridge)
super(viewBridge)
@quiz1 = nil
@quiz2 = nil
end
|
Instance Method Details
#enter(parent, quiz1, quiz2) ⇒ Object
47
48
49
50
51
|
# File 'lib/jldrill/contexts/MergeQuizContext.rb', line 47
def enter(parent, quiz1, quiz2)
@quiz1 = quiz1
@quiz2 = quiz2
super(parent)
end
|
#exit ⇒ Object
53
54
55
56
|
# File 'lib/jldrill/contexts/MergeQuizContext.rb', line 53
def exit
@quiz1.updateLoad
super
end
|
#getFilename ⇒ Object
18
19
20
|
# File 'lib/jldrill/contexts/MergeQuizContext.rb', line 18
def getFilename
return "Merging #{@quiz1.name} with #{@quiz2.name} data"
end
|
#isValid?(parent) ⇒ Boolean
43
44
45
|
# File 'lib/jldrill/contexts/MergeQuizContext.rb', line 43
def isValid?(parent)
return !parent.nil? && !@quiz1.nil? && !@quiz2.nil?
end
|
#readFile ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/jldrill/contexts/MergeQuizContext.rb', line 22
def readFile
size = @quiz2.length
pos = 0
sortedItems = @quiz1.contents.getSortedItems
appendedItems = @quiz2.contents.allItems
@mainView.idle_add do
limit = pos + @quiz1.stepSize
if limit > size then limit = size end
while (pos < limit)
item = appendedItems[pos]
if !sortedItems.binarySearch(item)
item.position = -1
@quiz1.contents.addItem(item, item.bin)
end
pos += 1
@mainView.update(pos.to_f / size.to_f)
end
pos >= size
end
end
|