def __init__(self, ): self.__init__._super() """ Create showcase client. """ History.addValueChangeHandler(self) self.outer.getElement().setId(u"ShowcaseClient") self.showcaseWrapper.getElement().setId(u"ShowcaseWrapper") self.horizontalSplit.setSpacing(10) self.showcaseWrapper.setWidth(u"700px") self.showcaseWrapper.addStyleName(u"showcaseWrapper") self.treeMenu.addStyleName(u"treeMenu") token = Window.Location.getHash() if token == None or u"".equals(token): self.doDisplayShowcase(self.__class__.DEFAULT_SHOW) self.showcaseWrapper.insert(self.createDefaultFrontpage(), 0) else: self.doDisplayShowcase(token) treeMenuWrapper = VerticalPanel() treeMenuWrapper.addStyleName(u"treeMenuWrapper") treeMenuWrapper.add(HTML(u"<h4>Methods: </h4>")) treeMenuWrapper.add(self.treeMenu) self.horizontalSplit.add(treeMenuWrapper) # Add left + right column self.horizontalSplit.add(self.decorate(self.showcaseWrapper)) self.outer.add(self.horizontalSplit) Xfbml.parse(self.outer) self.initWidget(self.outer)
def onModuleLoad(self): dock = DockPanel() self.header = HTML(Width="100%", Height="270px") self.footer = HTML(Width="100%") self.sidebar = HTML(Width="200px", Height="100%", StyleName="sidebar") self.fTabs = DecoratedTabPanel(Size=("100%", "100%"), StyleName="tabs") #dp = DecoratorTitledPanel("Tabs", "bluetitle", "bluetitleicon", # ["bluetop", "bluetop2", "bluemiddle", "bluebottom"]) #dp.add(self.fTabs) dock.add(self.header, DockPanel.NORTH) dock.add(self.footer, DockPanel.SOUTH) dock.add(self.sidebar, DockPanel.EAST) dock.add(self.fTabs, DockPanel.CENTER) dock.setCellVerticalAlignment(self.fTabs, HasAlignment.ALIGN_TOP) #dock.setCellHorizontalAlignment(self.fTabs, HasAlignment.ALIGN_CENTER) dock.setCellWidth(self.header, "100%") dock.setCellHeight(self.header, "270px") dock.setCellWidth(self.footer, "100%") dock.setCellWidth(self.sidebar, "200px") History.addHistoryListener(self) initToken = History.getToken() #print "initial token", initToken RootPanel().add(dock) self.dock = dock self.loadPageList() Window.addWindowResizeListener(self) DeferredCommand.add(self)
def onModuleLoad(self): self.curInfo = '' self.curSink = None self.description = HTML() self.sink_list = SinkList() self.panel = DockPanel() self.loadSinks() self.sinkContainer = DockPanel() self.sinkContainer.setStyleName("ks-Sink") vp = VerticalPanel() vp.setWidth("100%") vp.add(self.description) vp.add(self.sinkContainer) self.description.setStyleName("ks-Info") self.panel.add(self.sink_list, DockPanel.WEST) self.panel.add(vp, DockPanel.CENTER) self.panel.setCellVerticalAlignment(self.sink_list, HasAlignment.ALIGN_TOP) self.panel.setCellWidth(vp, "100%") History.addHistoryListener(self) RootPanel().add(self.panel) initToken = History.getToken() if len(initToken): self.onHistoryChanged(initToken) else: self.showIntro()
def onModuleLoad(self): self.curInfo='' self.curSink=None self.description=HTML() self.sink_list=SinkList() self.panel=DockPanel() self.loadSinks() self.sinkContainer = DockPanel() self.sinkContainer.setStyleName("ks-Sink") vp=VerticalPanel() vp.setWidth("100%") vp.add(self.description) vp.add(self.sinkContainer) self.description.setStyleName("ks-Info") self.panel.add(self.sink_list, DockPanel.WEST) self.panel.add(vp, DockPanel.CENTER) self.panel.setCellVerticalAlignment(self.sink_list, HasAlignment.ALIGN_TOP) self.panel.setCellWidth(vp, "100%") History.addHistoryListener(self) RootPanel().add(self.panel) RootPanel().add(Logger()) #Show the initial screen. initToken = History.getToken() if len(initToken): self.onHistoryChanged(initToken) else: self.showInfo()
def onTimer(self, id): ''' turn history listener on once all 'off' periods have completed ''' self.timer_count += 1 if self.timer_count == 1: History.addHistoryListener(self)
def loadChapters(self): self.curInfo = '' self.curSink = None self.description = HTML() self.sink_list = SinkList() self.panel = DockPanel() self.loadSinks() self.sinkContainer = DockPanel() self.sinkContainer.setStyleName("ks-Sink") #self.nf = NamedFrame("section") #self.nf.setWidth("100%") #self.nf.setHeight("10000") self.sp = ScrollPanel(self.sinkContainer) #self.sp = VerticalSplitPanel() self.sp.setWidth("100%") self.sp.setHeight("100%") #self.sp.setTopWidget(self.sinkContainer) #self.sp.setBottomWidget(self.nf) #self.sp.setSplitPosition(10000) # deliberately high - max out. vp = VerticalPanel() vp.setWidth("99%") vp.setHeight("100%") vp.add(self.description) vp.add(self.sp) authors = [("2008, 2009", "Kenneth Casson Leighton", "*****@*****.**")] for years, name, email in authors: authors_html = \ '© %s <a href="mailto:%s">%s</a><br />' %\ (years, email, name) authors_panel = HTML() authors_panel.setStyleName("ks-Authors") authors_panel.setHTML(authors_html[:-6]) left_panel = DockPanel(Height="100%") left_panel.add(self.sink_list, DockPanel.NORTH) left_panel.add(authors_panel, DockPanel.SOUTH) self.description.setStyleName("ks-Intro") self.panel.add(left_panel, DockPanel.WEST) self.panel.add(vp, DockPanel.CENTER) self.panel.setCellVerticalAlignment(self.sink_list, HasAlignment.ALIGN_TOP) self.panel.setCellWidth(vp, "100%") self.panel.setCellHeight(vp, "100%") Window.addWindowResizeListener(self) History.addHistoryListener(self) RootPanel().add(self.panel) self.onWindowResized(Window.getClientWidth(), Window.getClientHeight())
def onBrowserEvent(self, event): Widget.onBrowserEvent(self, event) event_type = DOM.eventGetType(event) if event_type == "click": DOM.eventPreventDefault(event) if self.targetHistoryToken is not None: History.newItem(self.targetHistoryToken)
def onModuleLoad(self): self.curInfo = '' self.curAlgorithm = None self.description = HTML() self.Algorithm_list = AlgorithmList() self.panel = DockPanel() self.loadAlgorithms() self.AlgorithmContainer = DockPanel() self.AlgorithmContainer.setStyleName("ks-Algorithm") vp = VerticalPanel() vp.setWidth("100%") vp.add(self.description) vp.add(self.AlgorithmContainer) self.description.setStyleName("ks-Info") self.panel.add(self.Algorithm_list, DockPanel.WEST) self.panel.add(vp, DockPanel.CENTER) self.panel.setCellVerticalAlignment(self.Algorithm_list, HasAlignment.ALIGN_TOP) self.panel.setCellWidth(vp, "100%") History.addHistoryListener(self) RootPanel().add(self.panel) RootPanel().add(Logger()) #Show the initial screen. initToken = History.getToken() if len(initToken): self.onHistoryChanged(initToken) else: self.showInfo()
def __init__(self): HorizontalPanel.__init__(self) History.newItem("test") show = Button("Show deep link", self.showDL) setDL = Button("Set deep link to 'pyjamas'", self.setDL) self.add(setDL) self.add(show)
def onSelection(self, event): clickedLink = event.getSelectedItem() if clickedLink.getChildCount() == 0: if not self.apiClient.isSessionValid(): Window.alert(u"Your session has expired") self.showcaseWrapper.clear() else: History.newItem(clickedLink.getText())
def createPage(self, title, purpose, text): #log.debug("create page %s %s %s", title, purpose, text) if purpose == 'faq': self.faq_pages[title] = text log.debug("%d %d", len(self.faq_pages), len(self.faq_list)) #log.debug(self.faq_pages.keys()) #log.debug(self.faq_list) if len(self.faq_pages) != len(self.faq_list): return faq = self.page_widgets['FAQ'] for l in self.faq_list: question = l[0] answer = self.faq_pages[question] html = faq.getHTML() html += "<h3>%s</h3>\n" % question html += "\n%s\n\n" % answer faq.setHTML(html) html = "<div class='faq'>\n%s</div>\n" % html faq.setHTML(html) faq.replaceLinks(use_page_href=False) return if title == 'header': self.header.setHTML(text) return elif title == 'footer': self.footer.setHTML(text) return elif title == 'sidebar': self.sidebar.setHTML(text) return # Main content case - tabs etc. self.pages[title] = text if len(self.pages) != len(self.page_list): return self.page_widgets = {} self.tab_index = {} for (idx, l) in enumerate(self.page_list): title = l[0] text = self.pages[title] self.tab_index[title] = idx widget = HTMLLinkPanel(text) self.fTabs.add(widget, title, True) self.page_widgets[title] = widget if title == 'FAQ': HTTPRequest().asyncGet("faq/questions.txt", PageListLoader(self, "faq")) else: widget.replaceLinks(use_page_href=False) self.fTabs.selectTab(0) History.addHistoryListener(self) initToken = History.getToken() log.debug("initial token: '%s'", initToken) self.onHistoryChanged(initToken) self.fTabs.addTabListener(self)
def start(self): History.addHistoryListener(self) self.picasa.loadPicasaImages("milanocs", "5512654378631416865") #Show the initial screen. initToken = History.getToken() print initToken if len(initToken): self.onHistoryChanged(initToken) else: self.loadPage("main")
def onLoad(self): History.addHistoryListener(self) self.setContentProvider(None, home.provider) self.setContentProvider("/home", home.provider) self.setContentProvider("/account", underConstruction.provider) self.setContentProvider("/package", underConstruction.provider) self.setContentProvider("/package/search", searchResults.provider) self.setContentProvider("/user", underConstruction.provider) self.setContentProvider("/submit", underConstruction.provider) self.draw()
def loadChapters(self): self.curInfo = '' self.curSink = None self.description = HTML() self.sink_list = SinkList() self.panel = DockPanel() self.loadSinks() self.sinkContainer = DockPanel() self.sinkContainer.setStyleName("ks-Sink") #self.nf = NamedFrame("section") #self.nf.setWidth("100%") #self.nf.setHeight("10000") height = Window.getClientHeight() self.sp = ScrollPanel(self.sinkContainer) #self.sp = VerticalSplitPanel() self.sp.setWidth("98%") self.sp.setHeight("%dpx" % (height - 200)) #self.sp.setTopWidget(self.sinkContainer) #self.sp.setBottomWidget(self.nf) #self.sp.setSplitPosition(10000) # deliberately high - max out. vp = VerticalPanel() vp.setWidth("100%") vp.setHeight("100%") vp.add(self.description) vp.add(self.sp) self.description.setStyleName("ks-Intro") self.panel.add(self.sink_list, DockPanel.WEST) self.panel.add(vp, DockPanel.CENTER) self.panel.setCellVerticalAlignment(self.sink_list, HasAlignment.ALIGN_TOP) self.panel.setCellWidth(vp, "100%") self.panel.setCellHeight(vp, "100%") Window.addWindowResizeListener(self) History.addHistoryListener(self) RootPanel().add(self.panel) self.onWindowResized(Window.getClientWidth(), Window.getClientHeight())
def __init__(self): SimplePanel.__init__(self) History.addHistoryListener(self) vPanel = VerticalPanel() self.stateDisplay = Label() vPanel.add(self.stateDisplay) hPanel = HorizontalPanel(Spacing=5) hPanel.add(Hyperlink("State 1", False, "state number 1")) hPanel.add(Hyperlink("State 2", False, "state number 2")) vPanel.add(hPanel) self.add(vPanel)
def show(self, info, affectHistory): if info == self.curInfo: return self.curInfo = info #Logger.write("showing " + info.getName()) if self.curSink is not None: self.curSink.onHide() #Logger.write("removing " + self.curSink) self.sinkContainer.remove(self.curSink) self.curSink = info.getInstance() self.sink_list.setSinkSelection(info.getName()) self.sink_list.sp.setScrollPosition(0) self.sink_list.sp.setHorizontalScrollPosition(0) self.description.setHTML(info.getDescription()) if (affectHistory): History().newItem(info.getName()) self.sinkContainer.add(self.curSink, DockPanel.CENTER) self.sinkContainer.setCellWidth(self.curSink, "100%") self.sinkContainer.setCellHeight(self.curSink, "100%") self.sinkContainer.setCellVerticalAlignment(self.curSink, HasAlignment.ALIGN_TOP) self.curSink.onShow()
def loadChapters(self): self.curInfo = '' self.curSink = None self.description = HTML() self.sink_list = SinkList() self.panel = DockPanel() self.loadSinks() self.sinkContainer = DockPanel() self.sinkContainer.setStyleName("ks-Sink") #self.nf = NamedFrame("section") #self.nf.setWidth("100%") #self.nf.setHeight("10000") height = Window.getClientHeight() self.sp = ScrollPanel(self.sinkContainer) #self.sp = VerticalSplitPanel() self.sp.setWidth("100%") self.sp.setHeight("%dpx" % (height-110)) #self.sp.setTopWidget(self.sinkContainer) #self.sp.setBottomWidget(self.nf) #self.sp.setSplitPosition(10000) # deliberately high - max out. vp = VerticalPanel() vp.setWidth("100%") vp.setHeight("100%") vp.add(self.description) vp.add(self.sp) self.description.setStyleName("ks-Intro") self.panel.add(self.sink_list, DockPanel.WEST) self.panel.add(vp, DockPanel.CENTER) self.panel.setCellVerticalAlignment(self.sink_list, HasAlignment.ALIGN_TOP) self.panel.setCellWidth(vp, "100%") self.panel.setCellHeight(vp, "100%") Window.addWindowResizeListener(self) History.addHistoryListener(self) RootPanel().add(self.panel)
def new_item(self, token): ''' updates the current URL's hash token. disables the calling of BuoyService's onHistoryChanged() when a Buoy adds a new item @param token: hash token @type token: string when an app is placed in a state by user interaction it calls Buoy.drop_anchor() which calls BuoyService.new_item(). The subsequent call to History.newItem() will call BuoyService.onHistoryChanged() but as the app is already in the correct state there is such requirement. So we smoother it by disabling BuoyService's history listener until after the new item is added. ''' self._set_history_listener(False) History.newItem(token) self._set_history_listener(True)
def _set_history_listener(self, on, on_period=251): ''' pyjamas/library/pyjamas/History.py is checking every 250ms if URL has changed By default, BuoyService checks every 250+1ms before turning its listener back on. An initial call in BuoyService() set-up needs to set on_period to 1 for immediate listening Rapid UI-interaction can lead to multiple nested calls. A count is kept to control when to add/remove the sole history listener. If a count wasn't kept then History will wobble ''' if on: self.timer = Timer(on_period, self) else: if self.timer_count == 1: History.removeHistoryListener(self) self.timer_count -= 1
def __init__(self): self.remote = DataService() self.title = Label() self.h = WikiBox() self.t = TextArea() self.t.addKeyboardListener(self) self.t.addChangeListener(self) RootPanel().add(self.title) RootPanel().add(self.h) RootPanel().add(self.t) History.addHistoryListener(self) self.name = None initToken = History.getToken() if not (initToken and len(initToken)): initToken = 'welcomepage' self.onHistoryChanged(initToken)
def show(self, info, affectHistory=None): if info == self.curInfo: return self.curInfo = info if self.curSink <> None: self.curSink.onHide() self.sinkContainer.remove(self.curSink) self.curSink = info.getInstance() self.sink_list.setSinkSelection(info.getName()) self.description.setHTML(info.getDescription()) if (affectHistory): History.newItem(info.getName()) self.sinkContainer.add(self.curSink, DockPanel.CENTER) self.sinkContainer.setCellWidth(self.curSink, "100%") self.sinkContainer.setCellHeight(self.curSink, "100%") self.sinkContainer.setCellVerticalAlignment(self.curSink, HasAlignment.ALIGN_TOP) self.curSink.onShow()
def __init__(self, format="%d-%m-%Y"): self.format = format self.tbox = TextBox() self.tbox.setVisibleLength(10) # assume valid sep is - / . or nothing if format.find("-") >= 0: self.sep = "-" elif format.find("/") >= 0: self.sep = "/" elif format.find(".") >= 0: self.sep = "." else: self.sep = "" # self.sep = format[2] # is this too presumptious? self.calendar = Calendar() self.img = Image(self.icon_img) self.img.addStyleName(self.icon_style) self.calendarLink = HyperlinkImage(self.img, targetHistoryToken=History.getToken()) self.todayLink = Hyperlink(self.today_text, targetHistoryToken=History.getToken()) self.todayLink.addStyleName(self.today_style) # # lay it out # hp = HorizontalPanel() hp.setSpacing(2) vp = VerticalPanel() hp.add(self.tbox) vp.add(self.calendarLink) vp.add(self.todayLink) # vp.add(self.calendar) hp.add(vp) Composite.__init__(self) self.initWidget(hp) # # done with layout, so now set up some listeners # self.tbox.addFocusListener(self) # hook to onLostFocus self.calendar.addSelectedDateListener(getattr(self, "onDateSelected")) self.todayLink.addClickListener(getattr(self, "onTodayClicked")) self.calendarLink.addClickListener(getattr(self, "onShowCalendar"))
def cast_off(self): ''' sets up notifications to call App when page history changes. @note: set-up Application's listeners and then call cast_off() which will fire off the appropriate events to your app. ''' self.timer_count = 0 self._set_history_listener(True, on_period=1) token = History.getToken() if len(token): self.onHistoryChanged(token)
def onModuleLoad(self): self.remote = DataService() #Show the initial screen. initToken = History.getToken() if initToken and len(initToken): if initToken == 'admin': RootPanel().add(WebPageEdit(self)) return else: initToken = 'index' self.dock = DockPanel() self.dock.setWidth("100%") self.pages = {} self.current_page = None RootPanel().add(self.dock) History.addHistoryListener(self) self.onHistoryChanged(initToken)
def setChapters(self, chapters): for l in chapters: name = l[0] desc = l[1] self.sink_list.addSink(Chapter.init(name, desc)) #Show the initial screen. initToken = History.getToken() if len(initToken): self.onHistoryChanged(initToken) else: self.showInfo()
def setSlides(self, slides): for l in slides: name = l[0] desc = l[1] self.sink_list.addSink(Slide.init(name, desc)) #Show the initial screen. initToken = History.getToken() if len(initToken): self.onHistoryChanged(initToken) else: self.showInfo()
def setSlides(self, slides): for l in slides: name = l[0] desc = l[1] self.sink_list.add(Slide.init(name, desc)) #Show the initial screen. initToken = History.getToken() if len(initToken): self.onHistoryChanged(initToken) else: self.showInfo()
def drawControl(container): bar = HorizontalPanel(ID='aur-search-bar', VerticalAlignment='middle') adv = HorizontalPanel(ID='aur-search-advanced', Visible=False) adv_toggle = Hyperlink(Text='Advanced', StyleName='aur-link-stateless aur-search-bar-advanced', TargetHistoryToken=History.getToken()) query = TextBox(Text='enter search term...', StyleName='aur-search-bar-query') go = Button(HTML='Go', StyleName='aur-search-bar-submit') container.add(bar) container.add(adv) # slight workaround to make sure the 'Advanced' toggle doesn't change the page def updateAdvToken(token): adv_toggle.setTargetHistoryToken(token) obj = object() setattr(obj, 'onHistoryChanged', updateAdvToken) History.addHistoryListener(obj) # clickListener to toggle the advanced section def toggleAdv(sender): if adv.isVisible(): adv.setVisible(False) query.setEnabled(True) adv_toggle.setText('Advanced') else: adv.setVisible(True) query.setEnabled(False) adv_toggle.setText('Basic') adv_toggle.addClickListener(toggleAdv) def doGo(): History.newItem('/package/search') go.addClickListener(doGo) bar.add(Label('Search Criteria', StyleName='aur-search-bar-label')) bar.add(query) bar.add(go) bar.add(Button(HTML='Orphans', StyleName='aur-search-bar-submit')) bar.add(adv_toggle) drawAdvanced(adv)
def onModuleLoad(self): self.curInfo = '' self.curSink = None self.description = HTML() self.sink_list = SinkList() self.panel = DockPanel() self.b = Button("load", self) self.sinkContainer = DockPanel() self.sinkContainer.setStyleName("ks-Sink") height = Window.getClientHeight() self.sp = ScrollPanel(self.sinkContainer) self.sp.setWidth("100%") self.sp.setHeight("%dpx" % (height - 110)) vp = VerticalPanel() vp.setWidth("100%") vp.setHeight("100%") vp.add(self.description) vp.add(self.sp) self.description.setStyleName("ks-Intro") self.panel.add(self.sink_list, DockPanel.WEST) self.panel.add(vp, DockPanel.CENTER) self.panel.setCellVerticalAlignment(self.sink_list, HasAlignment.ALIGN_TOP) self.panel.setCellWidth(vp, "100%") self.panel.setCellHeight(vp, "100%") Window.addWindowResizeListener(self) History.addHistoryListener(self) RootPanel().add(self.panel) RootPanel().add(self.b) self.loadSinks()
def onModuleLoad(self): self.curInfo='' self.curSink=None self.description=HTML() self.sink_list=SinkList() self.panel=DockPanel() self.b=Button("load", self) self.sinkContainer = DockPanel() self.sinkContainer.setStyleName("ks-Sink") height = Window.getClientHeight() self.sp = ScrollPanel(self.sinkContainer) self.sp.setWidth("100%") self.sp.setHeight("%dpx" % (height-110)) vp=VerticalPanel() vp.setWidth("100%") vp.setHeight("100%") vp.add(self.description) vp.add(self.sp) self.description.setStyleName("ks-Intro") self.panel.add(self.sink_list, DockPanel.WEST) self.panel.add(vp, DockPanel.CENTER) self.panel.setCellVerticalAlignment(self.sink_list, HasAlignment.ALIGN_TOP) self.panel.setCellWidth(vp, "100%") self.panel.setCellHeight(vp, "100%") Window.addWindowResizeListener(self) History.addHistoryListener(self) RootPanel().add(self.panel) #RootPanel().add(self.b) self.loadSinks()
def show(self, info, affectHistory): if info == self.curInfo: return self.curInfo = info log.writebr("showing " + info.getName()) if self.curAlgorithm is not None: log.writebr("removing " + str(self.curAlgorithm)) self.curAlgorithm.onHide() self.AlgorithmContainer.remove(self.curAlgorithm) self.curAlgorithm = info.getInstance() self.Algorithm_list.setAlgorithmSelection(info.getName()) self.description.setHTML(info.getDescription()) if (affectHistory): History.newItem(info.getName()) self.AlgorithmContainer.add(self.curAlgorithm, DockPanel.CENTER) self.AlgorithmContainer.setCellWidth(self.curAlgorithm, "100%") self.AlgorithmContainer.setCellHeight(self.curAlgorithm, "100%") self.AlgorithmContainer.setCellVerticalAlignment(self.curAlgorithm, HasAlignment.ALIGN_TOP) self.curAlgorithm.onShow()
def show(self, info, affectHistory): if info == self.curInfo: return self.curInfo = info log.writebr("showing " + info.getName()) if self.curAlgorithm is not None: log.writebr("removing " + str(self.curAlgorithm)) self.curAlgorithm.onHide() self.AlgorithmContainer.remove(self.curAlgorithm) self.curAlgorithm = info.getInstance() self.Algorithm_list.setAlgorithmSelection(info.getName()) self.description.setHTML(info.getDescription()) if (affectHistory): History.newItem(info.getName()) self.AlgorithmContainer.add(self.curAlgorithm, DockPanel.CENTER) self.AlgorithmContainer.setCellWidth(self.curAlgorithm, "100%") self.AlgorithmContainer.setCellHeight(self.curAlgorithm, "100%") self.AlgorithmContainer.setCellVerticalAlignment( self.curAlgorithm, HasAlignment.ALIGN_TOP) self.curAlgorithm.onShow()
def drawFull(self, month, year): # should be called only once when we draw the calendar for the first time # self.vp = VerticalPanel() self.vp.setSpacing(2) self.vp.addStyleName("calendarbox calendar-module calendar") self.setWidget(self.vp) self.setVisible(False) # mth = int(month) yr = int(year) tp = HorizontalPanel() tp.addStyleName("calendar-top-panel") tp.setSpacing(5) h1 = Hyperlink("<<", targetHistoryToken=History.getToken()) h1.addClickListener(getattr(self, "onPreviousYear")) h2 = Hyperlink("<", targetHistoryToken=History.getToken()) h2.addClickListener(getattr(self, "onPreviousMonth")) h4 = Hyperlink(">", targetHistoryToken=History.getToken()) h4.addClickListener(getattr(self, "onNextMonth")) h5 = Hyperlink(">>", targetHistoryToken=History.getToken()) h5.addClickListener(getattr(self, "onNextYear")) tp.add(h1) tp.add(h2) # titlePanel can be changed, whenever we draw, so keep the reference self.titlePanel = SimplePanel() self.titlePanel.setWidget(HTML("<b>" + self.getMonthsOfYear()[mth - 1] + " " + str(yr) + "</b>")) self.titlePanel.setStyleName("calendar-center") tp.add(self.titlePanel) tp.add(h4) tp.add(h5) tvp = VerticalPanel() tvp.setSpacing(10) tvp.add(tp) self.vp.add(tvp) # done with top panel self.middlePanel = SimplePanel() grid = self.drawGrid(mth, yr) self.middlePanel.setWidget(grid) self.vp.add(self.middlePanel) self.defaultGrid = grid # # some links & handlers # bh1 = Hyperlink(self.yesterday, targetHistoryToken=History.getToken()) bh1.addClickListener(getattr(self, "onYesterday")) bh2 = Hyperlink(self.today, targetHistoryToken=History.getToken()) bh2.addClickListener(getattr(self, "onToday")) bh3 = Hyperlink(self.tomorrow, targetHistoryToken=History.getToken()) bh3.addClickListener(getattr(self, "onTomorrow")) bh4 = Hyperlink(self.cancel, targetHistoryToken=History.getToken()) bh4.addClickListener(getattr(self, "onCancel")) # # add code to test another way of doing the layout # b = HorizontalPanel() b.add(bh1) b.add(bh2) b.add(bh3) b.addStyleName("calendar-shortcuts") self.vp.add(b) b2 = SimplePanel() b2.add(bh4) b2.addStyleName("calendar-cancel") self.vp.add(b2) self.setVisible(True) return
def onHistoryChanged(self): self.setContentActive(History.getToken())
def onBrowserEvent(self, event): Widget.onBrowserEvent(self, event) if DOM.eventGetType(event) == "click": DOM.eventPreventDefault(event) History.newItem(self.targetHistoryToken)
def onTabSelected(self, sender, tabIndex): History.newItem(self.page_list[tabIndex][0])
def onTabSelected(self, sender, tabIndex): current_token = History.getToken() new_token = self.page_list[tabIndex][0] if current_token != new_token: History.newItem(new_token)
def loadChapters(self): self.curInfo = '' self.curSink = None self.description = HTML() self.sink_list = SinkList() self.panel = DockPanel() self.loadSinks() self.sinkContainer = DockPanel() self.sinkContainer.setStyleName("ks-Sink") #self.nf = NamedFrame("section") #self.nf.setWidth("100%") #self.nf.setHeight("10000") self.sp = ScrollPanel(self.sinkContainer) #self.sp = VerticalSplitPanel() self.sp.setWidth("100%") self.sp.setHeight("100%") #self.sp.setTopWidget(self.sinkContainer) #self.sp.setBottomWidget(self.nf) #self.sp.setSplitPosition(10000) # deliberately high - max out. vp = VerticalPanel() vp.setWidth("99%") vp.setHeight("100%") vp.add(self.description) vp.add(self.sp) authors = [ ("2008, 2009", "Kenneth Casson Leighton", "*****@*****.**") ] for years, name, email in authors: authors_html = \ '© %s <a href="mailto:%s">%s</a><br />' %\ (years, email, name) authors_panel = HTML() authors_panel.setStyleName("ks-Authors") authors_panel.setHTML(authors_html[:-6]) left_panel = DockPanel(Height="100%") left_panel.add(self.sink_list, DockPanel.NORTH) left_panel.add(authors_panel, DockPanel.SOUTH) self.description.setStyleName("ks-Intro") self.panel.add(left_panel, DockPanel.WEST) self.panel.add(vp, DockPanel.CENTER) self.panel.setCellVerticalAlignment(self.sink_list, HasAlignment.ALIGN_TOP) self.panel.setCellWidth(vp, "100%") self.panel.setCellHeight(vp, "100%") Window.addWindowResizeListener(self) History.addHistoryListener(self) RootPanel().add(self.panel) self.onWindowResized(Window.getClientWidth(), Window.getClientHeight())
def showDL(self): Window.alert(History.getToken())
def doGo(): History.newItem('/package/search')
def setDL(self): History.newItem("pyjamas")