Class: JLDrill::LoadQuizFromEdictContext

Inherits:
FileProgressContext show all
Defined in:
lib/jldrill/contexts/LoadQuizFromEdictContext.rb

Overview

Loads a file displaying a progress bar as it is loading.

Instance Attribute Summary

Attributes inherited from Context::Context

#mainView, #parent, #viewBridge

Instance Method Summary collapse

Methods inherited from FileProgressContext

#createViews, #destroyViews, #exitFileProgressContext

Methods inherited from Context::Context

#addView, #createViews, #destroyViews, #isEntered?, #onExit, #peekAtView, #setupViews

Constructor Details

#initialize(viewBridge) ⇒ LoadQuizFromEdictContext

Returns a new instance of LoadQuizFromEdictContext.



12
13
14
15
16
# File 'lib/jldrill/contexts/LoadQuizFromEdictContext.rb', line 12

def initialize(viewBridge)
	super(viewBridge)
          @quiz = nil
          @edict = nil
end

Instance Method Details

#enter(parent, quiz, edict) ⇒ Object



56
57
58
59
60
# File 'lib/jldrill/contexts/LoadQuizFromEdictContext.rb', line 56

def enter(parent, quiz, edict)
    @quiz = quiz
    @edict = edict
    super(parent)
end

#exitObject



66
67
68
69
# File 'lib/jldrill/contexts/LoadQuizFromEdictContext.rb', line 66

def exit
    @quiz.name = @edict.shortFilename
    super
end

#exitLoadQuizFromEdictContextObject



62
63
64
# File 'lib/jldrill/contexts/LoadQuizFromEdictContext.rb', line 62

def exitLoadQuizFromEdictContext
    self.exit
end

#getFilenameObject



18
19
20
# File 'lib/jldrill/contexts/LoadQuizFromEdictContext.rb', line 18

def getFilename
    return "data from #{@edict.shortFilename}"
end

#isValid?(parent) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/jldrill/contexts/LoadQuizFromEdictContext.rb', line 44

def isValid?(parent)
    return !parent.nil? && !@quiz.nil? && !@edict.nil?
end

#readFileObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/jldrill/contexts/LoadQuizFromEdictContext.rb', line 22

def readFile
    @quiz.reset
    size = @edict.length
    pos = 0
    @mainView.idle_add do
        limit = pos + @quiz.stepSize
        if limit > size then limit = size end
        while (pos < limit)
            vocab = @edict.vocab(pos)
            if !vocab.nil?
                @quiz.contents.add(@edict.vocab(pos), 0)
            end
            pos += 1
            @mainView.update(pos.to_f / size.to_f)
        end
        if pos >= size
            exitLoadQuizFromEdictContext
        end
        pos >= size
    end
end

#startLongEventObject



48
49
50
# File 'lib/jldrill/contexts/LoadQuizFromEdictContext.rb', line 48

def startLongEvent()
    @parent.startLongEvent()
end

#stopLongEventObject



52
53
54
# File 'lib/jldrill/contexts/LoadQuizFromEdictContext.rb', line 52

def stopLongEvent()
    @parent.stopLongEvent()
end