~divmod-dev/divmod.org/trunk

« back to all changes in this revision

Viewing changes to Nevow/examples/progress/progress.py

  • Committer: Jean-Paul Calderone
  • Date: 2014-06-29 20:33:04 UTC
  • mfrom: (2749.1.1 remove-epsilon-1325289)
  • Revision ID: exarkun@twistedmatrix.com-20140629203304-gdkmbwl1suei4m97
mergeĀ lp:~exarkun/divmod.org/remove-epsilon-1325289

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from twisted.internet import task
2
 
from nevow import loaders, livepage, tags as t
3
 
from nevow.taglibrary.livetags import component, componentGlue
4
 
from nevow.taglibrary.progressbar import progressBar, progressBarGlue
5
 
 
6
 
 
7
 
class Progressbar(livepage.LivePage):
8
 
    addSlash = True
9
 
 
10
 
    progress = {
11
 
        'bar1': 0,
12
 
        'bar2': 20,
13
 
        'bar3': 30,
14
 
        'bar4': 50,
15
 
        }
16
 
    
17
 
    def data_bar1(self, ctx, data):
18
 
        return { 'name': 'bar1' }
19
 
    def data_bar2(self, ctx, data):
20
 
        return { 'name': 'bar2', 'percent': self.progress['bar2'] }
21
 
    def data_bar3(self, ctx, data):
22
 
        return { 'name': 'bar3', 'percent': self.progress['bar3'] }
23
 
    def data_bar4(self, ctx, data):
24
 
        return { 'name': 'bar4', 'percent': self.progress['bar4'] }
25
 
 
26
 
    def goingLive(self, ctx, client):
27
 
        self.progress = self.progress.copy()
28
 
 
29
 
    def handle_click(self, ctx, value):
30
 
        def send():
31
 
            if self.progress[value] >= 100:
32
 
                t.stop()
33
 
            else:
34
 
                self.progress[value] += 1
35
 
                livepage.IClientHandle(ctx).send(component[value].setPercent(str(self.progress[value])))
36
 
        t = task.LoopingCall(send)
37
 
        t.start(1)
38
 
 
39
 
    docFactory = loaders.stan(
40
 
        t.html[
41
 
            t.head[
42
 
                t.title["ProgressBar Example"],
43
 
                livepage.glue,
44
 
                componentGlue.inlineGlue,
45
 
                progressBarGlue.inlineGlue,
46
 
            ],
47
 
            t.body[
48
 
                t.invisible(data=t.directive('bar1'), render=progressBar),
49
 
                t.p[ t.a(href="", onclick=[livepage.server.handle('click', 'bar1'), livepage.stop])['Start meter'] ],
50
 
                t.invisible(data=t.directive('bar2'), render=progressBar),
51
 
                t.p[ t.a(href="", onclick=[livepage.server.handle('click', 'bar2'), livepage.stop])['Start meter'] ],
52
 
                t.invisible(data=t.directive('bar3'), render=progressBar),
53
 
                t.p[ t.a(href="", onclick=[livepage.server.handle('click', 'bar3'), livepage.stop])['Start meter'] ],
54
 
                t.invisible(data=t.directive('bar4'), render=progressBar),
55
 
                t.p[ t.a(href="", onclick=[livepage.server.handle('click', 'bar4'), livepage.stop])['Start meter'] ],
56
 
            ]
57
 
        ]
58
 
    )
59
 
 
60
 
def createResource():
61
 
    return Progressbar()