Class: JLDrill::MergeQuizContext
- Inherits:
-
FileProgressContext
- Object
- Context::Context
- FileProgressContext
- JLDrill::MergeQuizContext
- Defined in:
- lib/jldrill/contexts/MergeQuizContext.rb
Overview
Shows progress while merging two quiz files
Instance Attribute Summary
Attributes inherited from Context::Context
#mainView, #parent, #viewBridge
Instance Method Summary collapse
- #enter(parent, quiz1, quiz2) ⇒ Object
- #exit ⇒ Object
- #getFilename ⇒ Object
-
#initialize(viewBridge) ⇒ MergeQuizContext
constructor
A new instance of MergeQuizContext.
- #isValid?(parent) ⇒ Boolean
- #readFile ⇒ Object
Methods inherited from FileProgressContext
#createViews, #destroyViews, #exitFileProgressContext
Methods inherited from Context::Context
#addView, #createViews, #destroyViews, #isEntered?, #onExit, #peekAtView, #setupViews
Constructor Details
#initialize(viewBridge) ⇒ MergeQuizContext
Returns a new instance of MergeQuizContext.
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 |