def __init__(self, format='%d-%m-%Y'): DateSelectedHandler.__init__(self) if self.img_base is None: self.img_base = pygwt.getImageBaseURL(True) if self.icon_img is None: self.icon_img = self.img_base + 'icon_calendar.gif' 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) self.todayLink = Hyperlink(self.today_text) 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")) self.tbox.addChangeListener(getattr(self, "onFieldChanged")) self.tbox.addInputListener(getattr(self, "onFieldChanged")) self._last_date = None
class DateField(Composite): icon_img = "icon_calendar.gif" icon_style = "calendar-img" today_text = "Today" today_style = "calendar-today-link" 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) self.todayLink = Hyperlink(self.today_text) 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 getTextBox(self): return self.tbox def getCalendar(self): return self.calendar def getDate(self): """ returns datetime.date object or None if empty/unparsable by current format""" _sdate = self.tbox.getText() try: return datetime.strptime(_sdate, self.format).date() except ValueError: return None def setID(self, id): self.tbox.setID(id) def onDateSelected(self, yyyy, mm, dd): secs = time.mktime((int(yyyy), int(mm), int(dd), 0, 0, 0, 0, 0, -1)) d = time.strftime(self.format, time.localtime(secs)) self.tbox.setText(d) def onLostFocus(self, sender): # text = self.tbox.getText().strip() # if blank - leave it alone if text and len(text) == 8: # ok what format do we have? assume ddmmyyyy --> dd-mm-yyyy txt = text[0:2] + self.sep + text[2:4] + self.sep + text[4:8] self.tbox.setText(txt) def onFocus(self, sender): pass def onTodayClicked(self, event): today = time.strftime(self.format) self.tbox.setText(today) def onShowCalendar(self, sender): txt = self.tbox.getText().strip() try: if txt: _d = datetime.strptime(txt,self.format).date() self.calendar.setDate(_d) except ValueError: pass p = CalendarPopup(self.calendar) x = self.tbox.getAbsoluteLeft() + 10 y = self.tbox.getAbsoluteTop() + 10 p.setPopupPosition(x, y) p.show()
def __init__(self): page = BlueContainer(ID="page") doc = BlueColumn(Span=22, Prepend=1, Append=1, Last=True) page.add(doc) # Header header = BlueColumn(ID="header", Span=24, Pull=1, PrependTop=True) logo = HyperlinkImage(Image(Url='images/logo.png'), "#") col1 = BlueColumn(Span=7) col2 = BlueColumn(Span=12) col3 = BlueColumn(Span=5, Last=True) col1.add(logo) col2.add(HTML("<p> </p>")) col3.add(HTML("<p> </p>")) header.add(col1) header.add(col2) header.add(col3) doc.add(header) # Content content = BlueColumn(ID="content", Span=22, PrependTop=True, AppendBottom=True, Last=True) # self.picasa = PicasaWebSlideShow(Span=24, Last=True, Pull=1, PhotoSize=(950, 320)) # content.add(self.picasa) main = BlueColumn(Span=14, ColBorder=True) self.picasa = PicasaWebSlideShow(Span=14, Last=True, PhotoSize=(560, 315)) main.add(self.picasa) c = BlueColumn(Span=14) self.pagecontent = HTML("") c.add(self.pagecontent) main.add(c) ## threecol = BlueColumn(Span=14) ## col1 = BlueColumn(Span=4, ColBorder=True, HTML="""<img class='right' src='images/maps.png'><h3>Where?</h3><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. </p>""") ## col2 = BlueColumn(Span=4, ColBorder=True, HTML="""<img class='right' src='images/event.png'><h3>When?</h3><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. </p>""") ## col3 = BlueColumn(Span=4, Last=True, HTML="""<img class='right' src='images/faq.png'><h3>Questions?</h3><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. </p>""") ## for c in (col1, col2, col3): ## threecol.add(c) ## main.add(threecol) content.add(main) sidecol = BlueColumn(Span=7, Last=True) threecol = BlueColumn(Span=7) col1 = BlueColumn( Span=6, Last=True, Box=True, HTML= """<img class='right' src='images/maps.png'><h3>Where?</h3><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. <a href="#program"><p>Read more...</p></a></p>""" ) col2 = BlueColumn( Span=6, Last=True, Box=True, HTML= """<img class='right' src='images/event.png'><h3>When?</h3><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. <a href="#test"><p>Read more...</p></a></p>""" ) col3 = BlueColumn( Span=6, Last=True, Box=True, HTML= """<img class='right' src='images/faq.png'><h3>Questions?</h3><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. <a href="#test"><p>Read more...</p></a></p>""" ) for c in (col1, col2, col3): threecol.add(c) sidecol.add(threecol) ## sidecol_container = BlueColumn(Span=6, Last=True, Box=True) ## p = BlueColumn(Span=6, Last=True, AppendBottom=True) ## p.add(HTML("<h2>Sidebar Content</h2><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. </p>")) ## p.add(Hyperlink("Read more...", TargetHistoryToken='Test')) ## sidecol_container.add(p) ## p = BlueColumn(Span=6, Last=True) ## p.add(HTML("<h2>Sidebar Content</h2><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. </p>")) ## sidecol_container.add(p) ## sidecol.add(sidecol_container) content.add(sidecol) doc.add(content) # Footer footer = BlueColumn(ID="footer", Span=24, Pull=1, Last=True) fourcol = BlueColumn(Span=23, Prepend=1, Append=1, PrependTop=True, AppendBottom=True, Last=True) def listWidget(title, items, Last=False): html = "<h3>%s</h3>" % title for item, url in items: html += "<li><a href='%s'>%s</a></li>" % (url, item) return BlueColumn(Span=5, ColBorder=(not Last), Last=Last, HTML=html) col1 = listWidget("What happened last year", [('link', 'http://www.google.it'), ('link', 'http://www.google.it'), ('link', 'http://www.google.it')]) col2 = listWidget("Links to cs", [('link', 'http://www.google.it'), ('link', 'http://www.google.it'), ('link', 'http://www.google.it')]) col3 = listWidget("Organizers", [('link', 'http://www.google.it'), ('link', 'http://www.google.it'), ('link', 'http://www.google.it')]) col4 = listWidget("Contacts", [('link', 'http://www.google.it'), ('link', 'http://www.google.it'), ('link', 'http://www.google.it')], Last=True) for c in (col1, col2, col3, col4): fourcol.add(c) footer.add(fourcol) footer.add( HTML( "<p class='light small'> © 2011, Gianpaolo Terranova</p>" )) doc.add(footer) RootPanel().add(page)
class DateField(Composite, DateSelectedHandler): img_base = None icon_img = None icon_style = "calendar-img" today_text = "Today" today_style = "calendar-today-link" def __init__(self, format='%d-%m-%Y'): DateSelectedHandler.__init__(self) if self.img_base is None: self.img_base = pygwt.getImageBaseURL(True) if self.icon_img is None: self.icon_img = self.img_base + 'icon_calendar.gif' 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) self.todayLink = Hyperlink(self.today_text) 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")) self.tbox.addChangeListener(getattr(self, "onFieldChanged")) self.tbox.addInputListener(getattr(self, "onFieldChanged")) self._last_date = None def emitSelectedDate(self): _d = self.getDate() if _d == self._last_date: return self._last_date = _d self.fireDateSelectedEvent(_d) def onFieldChanged(self, event): self.emitSelectedDate() def getTextBox(self): return self.tbox def getCalendar(self): return self.calendar def getDate(self): """ returns datetime.date object or None if empty/unparsable by current format""" _sdate = self.tbox.getText() try: return datetime.strptime(_sdate, self.format).date() except ValueError: return None def setID(self, id): self.tbox.setID(id) def onDateSelected(self, yyyy, mm, dd): secs = time.mktime((int(yyyy), int(mm), int(dd), 0, 0, 0, 0, 0, -1)) d = time.strftime(self.format, time.localtime(secs)) self.tbox.setText(d) self.emitSelectedDate() def onLostFocus(self, sender): # text = self.tbox.getText().strip() # if blank - leave it alone if text and len(text) == 8: # ok what format do we have? assume ddmmyyyy --> dd-mm-yyyy txt = text[0:2] + self.sep + text[2:4] + self.sep + text[4:8] self.tbox.setText(txt) self.emitSelectedDate() def onFocus(self, sender): pass def onTodayClicked(self, event): today = time.strftime(self.format) self.tbox.setText(today) self.emitSelectedDate() def onShowCalendar(self, sender): txt = self.tbox.getText().strip() try: if txt: _d = datetime.strptime(txt, self.format).date() self.calendar.setDate(_d) except ValueError: pass p = CalendarPopup(self.calendar) x = self.tbox.getAbsoluteLeft() + 10 y = self.tbox.getAbsoluteTop() + 10 p.setPopupPosition(x, y) p.show()
class DateField(Composite): icon_img = "icon_calendar.gif" icon_style = "calendar-img" today_text = "Today" today_style = "calendar-today-link" 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) self.todayLink = Hyperlink(self.today_text) 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 getTextBox(self): return self.tbox def getCalendar(self): return self.calendar def setID(self, id): self.tbox.setID(id) def onDateSelected(self, yyyy, mm, dd): secs = time.mktime((int(yyyy), int(mm), int(dd), 0, 0, 0, 0, 0, -1)) d = time.strftime(self.format, time.localtime(secs)) self.tbox.setText(d) def onLostFocus(self, sender): # text = self.tbox.getText().strip() # if blank - leave it alone if text and len(text) == 8: # ok what format do we have? assume ddmmyyyy --> dd-mm-yyyy txt = text[0:2] + self.sep + text[2:4] + self.sep + text[4:8] self.tbox.setText(txt) def onFocus(self, sender): pass def onTodayClicked(self, event): today = time.strftime(self.format) self.tbox.setText(today) def onShowCalendar(self, sender): p = CalendarPopup(self.calendar) x = self.tbox.getAbsoluteLeft() + 10 y = self.tbox.getAbsoluteTop() + 10 p.setPopupPosition(x, y) p.show()