def __init__(self, operations,after,type='rel'): DialogWindow.__init__(self, modal=True, close=True) self.formula = Formula([]) self.after=after left = 100 top = 100 self.ops_with_buttons = [{"op": op, "button": Button(op.name, self)} for op in operations if op.available] dock = DockPanel() dock.setSpacing(3) for owb in self.ops_with_buttons: dock.add(owb['button'], DockPanel.NORTH) dock.setWidth("300") self.image = Image(latex_to_url(self.formula.fill_with_placeholders().to_latex())) dock.add(self.image, DockPanel.EAST) dock.setCellHorizontalAlignment(self.image, HasAlignment.ALIGN_TOP) self.doneButton=Button("Done",self) self.doneButton.setEnabled(False) dock.add(self.doneButton,DockPanel.SOUTH) dock.add(HTML(""),DockPanel.CENTER) self.setText("opkop") self.setPopupPosition(left, top) self.setStyleAttribute("background-color", "#ffffff") self.setStyleAttribute("color", "blue") self.setStyleAttribute("border-width", "5px") self.setStyleAttribute("border-style", "solid") self.setWidget(dock)
class WebApp: 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 createPage(self, ref, html, title): htp = HTMLLinkPanel(html) htp.replaceLinks() htp.setWidth("100%") self.pages[ref] = htp def onHistoryChanged(self, token): #log.writebr("onHistoryChanged %s" % token) if self.pages.has_key(token): self.setPage(token) return self.remote.getPageByName(token, self) def setPage(self, ref): htp = self.pages[ref] if htp == self.current_page: return Window.setTitle(htp.title) if self.current_page: self.dock.remove(self.current_page) self.dock.add(htp, DockPanel.CENTER) self.current_page = htp def onRemoteResponse(self, response, request_info): if (request_info.method == 'getPageByName' or request_info.method == 'getPage'): item = response[0] html = item['fields']['text'] token = item['fields']['name'] self.createPage(token, html, token) self.setPage(token) def onRemoteError(self, code, message, request_info): RootPanel().add( HTML("Server Error or Invalid Response: ERROR " + str(code) + " - " + str(message)))
def __init__(self, baseURL): DialogBox.__init__(self, glass=True) self.setText("Sample DialogBox with embedded Frame") iframe = Frame(baseURL + "rembrandt/LaMarcheNocturne.html") closeButton = Button("Close", self) msg = HTML("<center>This is an example of a standard dialog box component.<br> You can put pretty much anything you like into it,<br>such as the following IFRAME:</center>", True) dock = DockPanel() dock.setSpacing(4) dock.add(closeButton, DockPanel.SOUTH) dock.add(msg, DockPanel.NORTH) dock.add(iframe, DockPanel.CENTER) dock.setCellHorizontalAlignment(closeButton, HasAlignment.ALIGN_RIGHT) dock.setCellWidth(iframe, "100%") dock.setWidth("100%") iframe.setWidth("36em") iframe.setHeight("20em") self.setWidget(dock) # Work around for IE/MSHTML Issue 511 self.initURL = iframe.getUrl() self.iframe = iframe
def __init__(self): Algorithm.__init__(self) self.MLAlgorithmService = MLAlgorithmService(self) self.image = Image(self.baseURL() + "services/kMeansPictures/lenna.png", Width="320px", Height="360px") self.resultImage = Image("", Width="320px", Height="360px") self.loadingImage = Image(self.baseURL() + "images/blanksearching.gif") self.calculateButton = Button("RUN", self.onButtonClick) self.log = Button("SHOW LOG", self.openLogFile) self.log.setEnabled(False) self.image.addLoadListener(self) topPanel = DockPanel() topPanel.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE) topPanel.add(self.calculateButton, DockPanel.WEST) topPanel.add(self.loadingImage, DockPanel.CENTER) topPanel.add(self.log, DockPanel.EAST) panel = DockPanel() panel.setHorizontalAlignment(HasAlignment.ALIGN_CENTER) panel.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE) #panel.add(HTML("<h2>Image compression</h2>", True)) panel.add(topPanel, DockPanel.NORTH) panel.add(self.image, DockPanel.WEST) panel.add(self.resultImage, DockPanel.EAST) panel.setWidth("100%") self.initWidget(panel) self.image.setStyleName("ks-images-Image") self.calculateButton.setStyleName("ks-images-Button") self.loadImage("picturem.png")
def __init__(self, app): self.app = app DialogWindow.__init__( self, modal=False, minimize=True, maximize=True, close=True, ) self.closeButton = Button("Close", self) self.saveButton = Button("Save", self) self.setText("Sample DialogWindow with embedded image") self.msg = HTML("", True) global _editor_id _editor_id += 1 editor_id = "editor%d" % _editor_id #self.ht = HTML("", ID=editor_id) self.txt = TextArea(Text="", VisibleLines=30, CharacterWidth=80, ID=editor_id) dock = DockPanel() dock.setSpacing(4) hp = HorizontalPanel(Spacing="5") hp.add(self.saveButton) hp.add(self.closeButton) dock.add(hp, DockPanel.SOUTH) dock.add(self.msg, DockPanel.NORTH) dock.add(self.txt, DockPanel.CENTER) dock.setCellHorizontalAlignment(hp, HasAlignment.ALIGN_RIGHT) dock.setCellWidth(self.txt, "100%") dock.setWidth("100%") self.setWidget(dock) self.editor_id = editor_id self.editor_created = False
def __init__(self, baseURL): DialogBox.__init__(self, glass=True) self.setText("Sample DialogBox with embedded Frame") iframe = Frame(baseURL + "rembrandt/LaMarcheNocturne.html") closeButton = Button("Close", self) msg = HTML( "<center>This is an example of a standard dialog box component.<br> You can put pretty much anything you like into it,<br>such as the following IFRAME:</center>", True) dock = DockPanel() dock.setSpacing(4) dock.add(closeButton, DockPanel.SOUTH) dock.add(msg, DockPanel.NORTH) dock.add(iframe, DockPanel.CENTER) dock.setCellHorizontalAlignment(closeButton, HasAlignment.ALIGN_RIGHT) dock.setCellWidth(iframe, "100%") dock.setWidth("100%") iframe.setWidth("36em") iframe.setHeight("20em") self.setWidget(dock) # Work around for IE/MSHTML Issue 511 self.initURL = iframe.getUrl() self.iframe = iframe
def __init__(self, baseURL): DialogWindow.__init__( self, modal=False, minimize=True, maximize=True, close=True, ) closeButton = Button("Close", self) imgname = self.images.pop(0) self.images.append(imgname) self.setText("Sample DialogWindow with embedded image") img = Image("%srembrandt/%s" % (baseURL, imgname)) msg = HTML( "<center>This is an example of a standard dialog box component.<br> You can put pretty much anything you like into it,<br>such as the following image '%s':</center>" % imgname, True) dock = DockPanel() dock.setSpacing(4) dock.add(closeButton, DockPanel.SOUTH) dock.add(msg, DockPanel.NORTH) dock.add(img, DockPanel.CENTER) dock.setCellHorizontalAlignment(closeButton, HasAlignment.ALIGN_RIGHT) dock.setCellWidth(img, "100%") dock.setWidth("100%") self.setWidget(dock)
def __init__(self): Algorithm.__init__(self) self.MLAlgorithmService = MLAlgorithmService(self) self.image=Image(self.baseURL() + "services/kMeansPictures/lenna.png",Width="320px", Height="360px") self.resultImage=Image("",Width="320px", Height="360px") self.loadingImage = Image(self.baseURL() + "images/blanksearching.gif") self.calculateButton = Button("RUN", self.onButtonClick) self.log = Button("SHOW LOG", self.openLogFile) self.log.setEnabled(False) self.image.addLoadListener(self) topPanel = DockPanel() topPanel.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE) topPanel.add(self.calculateButton, DockPanel.WEST) topPanel.add(self.loadingImage, DockPanel.CENTER) topPanel.add(self.log, DockPanel.EAST) panel = DockPanel() panel.setHorizontalAlignment(HasAlignment.ALIGN_CENTER) panel.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE) #panel.add(HTML("<h2>Image compression</h2>", True)) panel.add(topPanel, DockPanel.NORTH) panel.add(self.image, DockPanel.WEST) panel.add(self.resultImage, DockPanel.EAST) panel.setWidth("100%") self.initWidget(panel) self.image.setStyleName("ks-images-Image") self.calculateButton.setStyleName("ks-images-Button") self.loadImage("picturem.png")
class WebApp: 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 createPage(self, ref, html, title): htp = HTMLLinkPanel(html) htp.replaceLinks() htp.setWidth("100%") self.pages[ref] = htp def onHistoryChanged(self, token): #log.debug("onHistoryChanged %s" % token) if self.pages.has_key(token): self.setPage(token) return self.remote.getPageByName(token, self) def setPage(self, ref): htp = self.pages[ref] if htp == self.current_page: return Window.setTitle(htp.title) if self.current_page: self.dock.remove(self.current_page) self.dock.add(htp, DockPanel.CENTER) self.current_page = htp def onRemoteResponse(self, response, request_info): if (request_info.method == 'getPageByName' or request_info.method == 'getPage'): item = response[0] html = item['fields']['text'] token = item['fields']['name'] self.createPage(token, html, token) self.setPage(token) def onRemoteError(self, code, message, request_info): RootPanel().add(HTML("Server Error or Invalid Response: ERROR " + str(code) + " - " + str(message)))
def onModuleLoad(self): self.singleton = self topPanel = TopPanel() rightPanel = VerticalPanel() self.mailDetail = MailDetail() self.shortcuts = Shortcuts() topPanel.setWidth("100%") # MailList uses Mail.get() in its constructor, so initialize it after # 'singleton'. mailList = MailList(self.singleton) mailList.setWidth("100%") # Create the right panel, containing the email list & details. rightPanel.add(mailList) rightPanel.add(self.mailDetail) mailList.setWidth("100%") self.mailDetail.setWidth("100%") # Create a dock panel that will contain the menu bar at the top, # the shortcuts to the left, and the mail list & details taking the rest. outer = DockPanel() outer.add(topPanel, DockPanel.NORTH) outer.add(self.shortcuts, DockPanel.WEST) outer.add(rightPanel, DockPanel.CENTER) outer.setWidth("100%") outer.setSpacing(4) outer.setCellWidth(rightPanel, "100%") # Hook the window resize event, so that we can adjust the UI. #FIXME need implementation # Window.addWindowResizeListener(this) Window.addWindowResizeListener(self) # Get rid of scrollbars, and clear out the window's built-in margin, # because we want to take advantage of the entire client area. Window.enableScrolling(False) Window.setMargin("0px") # Finally, add the outer panel to the RootPanel, so that it will be # displayed. #RootPanel.get().add(outer) # FIXME get# RootPanel().add(outer) RootPanel().add(Logger()) # Call the window resized handler to get the initial sizes setup. Doing # this in a deferred command causes it to occur after all widgets' sizes # have been computed by the browser. DeferredCommand.add(self)
def onModuleLoad(self): self.singleton = self topPanel = TopPanel() rightPanel = VerticalPanel() self.mailDetail = MailDetail() self.shortcuts = Shortcuts() topPanel.setWidth("100%") # MailList uses Mail.get() in its constructor, so initialize it after # 'singleton'. mailList = MailList(self.singleton) mailList.setWidth("100%") # Create the right panel, containing the email list & details. rightPanel.add(mailList) rightPanel.add(self.mailDetail) mailList.setWidth("100%") self.mailDetail.setWidth("100%") # Create a dock panel that will contain the menu bar at the top, # the shortcuts to the left, and the mail list & details taking the rest. outer = DockPanel() outer.add(topPanel, DockPanel.NORTH) outer.add(self.shortcuts, DockPanel.WEST) outer.add(rightPanel, DockPanel.CENTER) outer.setWidth("100%") outer.setSpacing(4) outer.setCellWidth(rightPanel, "100%") # Hook the window resize event, so that we can adjust the UI. #FIXME need implementation # Window.addWindowResizeListener(this) Window.addWindowResizeListener(self) # Get rid of scrollbars, and clear out the window's built-in margin, # because we want to take advantage of the entire client area. Window.enableScrolling(False) Window.setMargin("0px") # Finally, add the outer panel to the RootPanel, so that it will be # displayed. #RootPanel.get().add(outer) # FIXME get# RootPanel().add(outer) RootPanel().add(Logger()) # Call the window resized handler to get the initial sizes setup. Doing # this in a deferred command causes it to occur after all widgets' sizes # have been computed by the browser. DeferredCommand.add(self)
def __init__(self, sink): SimplePanel.__init__(self) self.sink = sink self.caption = HTML() self.child = None self.showing = False self.dragging = False self.dragStartX = 0 self.dragStartY = 0 self.panel = FlexTable() self.collapse = Image("./images/cancel.png") self.collapse.addClickListener(self) dock = DockPanel() dock.setSpacing(0) dock.add(self.collapse, DockPanel.EAST) dock.add(self.caption, DockPanel.WEST) dock.setCellHorizontalAlignment(self.collapse, HasAlignment.ALIGN_RIGHT) dock.setCellVerticalAlignment(self.collapse, HasAlignment.ALIGN_TOP) dock.setCellHorizontalAlignment(self.caption, HasAlignment.ALIGN_LEFT) dock.setCellWidth(self.caption, "100%") dock.setWidth("100%") dock.setHeight("100%") self.panel.setWidget(0, 0, dock) self.panel.setHeight("100%") self.panel.setWidth("100%") self.panel.setBorderWidth(0) self.panel.setCellPadding(0) self.panel.setCellSpacing(0) self.panel.getCellFormatter().setHeight(1, 0, "100%") self.panel.getCellFormatter().setWidth(1, 0, "100%") self.panel.getCellFormatter().setAlignment( 1, 0, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP) SimplePanel.setWidget(self, self.panel) self.setStyleName("gwt-DialogBox") self.caption.setStyleName("Caption") self.collapse.setStyleName("Close") dock.setStyleName("Header") #self.caption.addMouseListener(self) self.collapsed = False self.collapsed_width = "15px" self.uncollapsed_width = "100%"
def __init__(self, sink): SimplePanel.__init__(self) self.sink = sink self.caption = HTML() self.child = None self.showing = False self.dragging = False self.dragStartX = 0 self.dragStartY = 0 self.panel = FlexTable() self.collapse = Image("./images/cancel.png") self.collapse.addClickListener(self) dock = DockPanel() dock.setSpacing(0) dock.add(self.collapse, DockPanel.EAST) dock.add(self.caption, DockPanel.WEST) dock.setCellHorizontalAlignment(self.collapse, HasAlignment.ALIGN_RIGHT) dock.setCellVerticalAlignment(self.collapse, HasAlignment.ALIGN_TOP) dock.setCellHorizontalAlignment(self.caption, HasAlignment.ALIGN_LEFT) dock.setCellWidth(self.caption, "100%") dock.setWidth("100%") dock.setHeight("100%") self.panel.setWidget(0, 0, dock) self.panel.setHeight("100%") self.panel.setWidth("100%") self.panel.setBorderWidth(0) self.panel.setCellPadding(0) self.panel.setCellSpacing(0) self.panel.getCellFormatter().setHeight(1, 0, "100%") self.panel.getCellFormatter().setWidth(1, 0, "100%") self.panel.getCellFormatter().setAlignment(1, 0, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP) SimplePanel.setWidget(self, self.panel) self.setStyleName("gwt-DialogBox") self.caption.setStyleName("Caption") self.collapse.setStyleName("Close") dock.setStyleName("Header") #self.caption.addMouseListener(self) self.collapsed = False self.collapsed_width = "15px" self.uncollapsed_width = "100%"
def __init__(self, name, html): DialogBox.__init__(self) self.setText(name) closeButton = Button("Close", self) htp = HTMLPanel(html) self.sp = ScrollPanel(htp) dock = DockPanel() dock.setSpacing(4) dock.add(closeButton, DockPanel.SOUTH) dock.add(self.sp, DockPanel.CENTER) dock.setCellHorizontalAlignment(closeButton, HasAlignment.ALIGN_RIGHT) dock.setCellWidth(self.sp, "100%") dock.setWidth("100%") self.setWidget(dock)
def __init__(self): Composite.__init__(self) panel = DockPanel(HorizontalAlignment=HasAlignment.ALIGN_CENTER, VerticalAlignment=HasAlignment.ALIGN_MIDDLE) panel.setWidth("100%") vp = VerticalPanel() grid = FlexTable(CellPadding=4, CellSpacing=4) hp = HorizontalPanel() handle_n = NextHandle(self) handle_f = FinishHandle(self) handle_c = ClearHandle(self) self.next = Button("Next", handle_n, StyleName='button') self.finish = Button("Finish!", handle_f, StyleName='button') self.clear = Button("Clear", handle_c, StyleName='button') hp.add(self.clear) hp.add(self.finish) hp.add(self.next) hp.setWidth("70%") vp.add(Label("Content-Based Image Retrieval Using OPF", StyleName='label')) vp.add(grid) vp.setHorizontalAlignment(HasAlignment.ALIGN_RIGHT) vp.add(hp) cols = 4 for i in range(100): im = Image('images/cbir/%d.jpg' % random.randint(0, 1000), Size=("200px", "150px"), StyleName='image-cool') grid.setWidget(int(i/cols), i%cols, im) panel.add(vp, DockPanel.CENTER) self.initWidget(panel) self.status = Label() vp.add(self.status)
def __init__(self, name, html): DialogBox.__init__(self) self.setText(name) closeButton = Button("Close", self) htp = HTMLPanel(html) self.sp = ScrollPanel(htp) dock = DockPanel() dock.setSpacing(4) dock.add(closeButton, DockPanel.SOUTH) dock.add(self.sp, DockPanel.CENTER) dock.setCellHorizontalAlignment(closeButton, HasAlignment.ALIGN_RIGHT) dock.setCellWidth(self.sp, "100%") dock.setWidth("100%") self.setWidget(dock)
def __init__(self, identifier, autoHide=None, modal=False, rootpanel=None): PopupPanel.__init__(self, autoHide, modal, rootpanel) self.identifier = identifier self.caption = HTML() self.child = None self.showing = False self.dragging = False self.dragStartX = 0 self.dragStartY = 0 self.panel = FlexTable() self.closeButton = Image('cancel.png') self.closeButton.addClickListener(self) dock = DockPanel() dock.setSpacing(0) dock.add(self.closeButton, DockPanel.EAST) dock.add(self.caption, DockPanel.WEST) dock.setCellHorizontalAlignment(self.closeButton, HasAlignment.ALIGN_RIGHT) dock.setCellHorizontalAlignment(self.caption, HasAlignment.ALIGN_LEFT) dock.setCellWidth(self.caption, '100%') dock.setWidth('100%') self.panel.setWidget(0, 0, dock) self.panel.setHeight('100%') self.panel.setBorderWidth(0) self.panel.setCellPadding(0) self.panel.setCellSpacing(0) self.panel.getCellFormatter().setHeight(1, 0, '100%') self.panel.getCellFormatter().setWidth(1, 0, '100%') #self.panel.getCellFormatter().setAlignment(1, 0, # HasHorizontalAlignment.ALIGN_CENTER, # HasVerticalAlignment.ALIGN_MIDDLE) PopupPanel.setWidget(self, self.panel) self.setStyleName('gwt-DialogBox') self.caption.setStyleName('Caption') self.closeButton.setStyleName('Close') dock.setStyleName('Header') self.caption.addMouseListener(self)
class PopupFrame(DialogBoxModal): def __init__(self, identifier, title, iframe): if modal_popups.has_key(identifier): return modal_popups[identifier] = self DialogBoxModal.__init__(self, identifier) self.setText(title) self.iframe = iframe #closeButton = Button("Close", self) #msg = HTML("<center>IFRAME:</center>", True) self.iframe.setStyleName("gwt-DialogFrame") self.dock = DockPanel() self.dock.setSpacing(4) #dock.add(closeButton, DockPanel.SOUTH) #dock.add(msg, DockPanel.NORTH) self.dock.add(self.iframe, DockPanel.CENTER) #dock.setCellHorizontalAlignment(closeButton, HasAlignment.ALIGN_RIGHT) self.dock.setCellWidth(self.iframe, "100%") self.dock.setWidth("100%") #self.iframe.setWidth("320px") #self.iframe.setHeight("200px") self.setWidget(self.dock) def setUrl(self, url): self.iframe.setUrl(url) def onClick(self, sender): self.hide() def set_width(self, width): self.iframe.setWidth("%dpx" % width) def set_height(self, height): self.iframe.setHeight("%dpx" % height)
def __init__(self, identifier, autoHide=None, modal=False, rootpanel=None): PopupPanel.__init__(self, autoHide, modal, rootpanel) self.identifier = identifier self.caption = HTML() self.child = None self.showing = False self.dragging = False self.dragStartX = 0 self.dragStartY = 0 self.panel = FlexTable() self.closeButton = Image("images/cancel.png") self.closeButton.addClickListener(self) dock = DockPanel() dock.setSpacing(0) dock.add(self.closeButton, DockPanel.EAST) dock.add(self.caption, DockPanel.WEST) dock.setCellHorizontalAlignment(self.closeButton, HasAlignment.ALIGN_RIGHT) dock.setCellHorizontalAlignment(self.caption, HasAlignment.ALIGN_LEFT) dock.setCellWidth(self.caption, "100%") dock.setWidth("100%") self.panel.setWidget(0, 0, dock) self.panel.setHeight("100%") self.panel.setBorderWidth(0) self.panel.setCellPadding(0) self.panel.setCellSpacing(0) self.panel.getCellFormatter().setHeight(1, 0, "100%") self.panel.getCellFormatter().setWidth(1, 0, "100%") #self.panel.getCellFormatter().setAlignment(1, 0, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_MIDDLE) PopupPanel.setWidget(self, self.panel) self.setStyleName("gwt-DialogBox") self.caption.setStyleName("Caption") self.closeButton.setStyleName("Close") dock.setStyleName("Header") self.caption.addMouseListener(self)
class PopupFrame(DialogBoxModal): def __init__(self, identifier, title, iframe): if modal_popups.has_key(identifier): return modal_popups[identifier] = self DialogBoxModal.__init__(self, identifier) self.setText(title) self.iframe = iframe #closeButton = Button("Close", self) #msg = HTML("<center>IFRAME:</center>", True) self.iframe.setStyleName("gwt-DialogFrame") self.dock = DockPanel() self.dock.setSpacing(4) #dock.add(closeButton, DockPanel.SOUTH) #dock.add(msg, DockPanel.NORTH) self.dock.add(self.iframe, DockPanel.CENTER) #dock.setCellHorizontalAlignment(closeButton, HasAlignment.ALIGN_RIGHT) self.dock.setCellWidth(self.iframe, "100%") self.dock.setWidth("100%") #self.iframe.setWidth("320px") #self.iframe.setHeight("200px") self.setWidget(self.dock) def setUrl(self, url): self.iframe.setUrl(url) def onClick(self, sender): self.hide() def set_width(self, width): self.iframe.setWidth("%dpx" % width) def set_height(self, height): self.iframe.setHeight("%dpx" % height)
def __init__(self, url): DialogBox.__init__(self) self.setText("Upload Files") iframe = Frame(url) closeButton = Button("Close", self) msg = HTML("<center>Upload files, here. Please avoid spaces in file names.<br />(rename the file before uploading)</center>", True) dock = DockPanel() dock.setSpacing(4) dock.add(closeButton, DockPanel.SOUTH) dock.add(msg, DockPanel.NORTH) dock.add(iframe, DockPanel.CENTER) dock.setCellHorizontalAlignment(closeButton, HasAlignment.ALIGN_RIGHT) dock.setCellWidth(iframe, "100%") dock.setWidth("100%") iframe.setWidth("800px") iframe.setHeight("600px") self.setWidget(dock)
def __init__(self, app): self.app = app DialogWindow.__init__( self, modal=False, minimize=True, maximize=True, close=True, ) self.closeButton = Button("Close", self) self.saveButton = Button("Save", self) self.setText("Sample DialogWindow with embedded image") self.msg = HTML("", True) global _editor_id _editor_id += 1 editor_id = "editor%d" % _editor_id #self.ht = HTML("", ID=editor_id) self.txt = TextArea(Text="", VisibleLines=30, CharacterWidth=80, ID=editor_id) dock = DockPanel() dock.setSpacing(4) hp = HorizontalPanel(Spacing="5") hp.add(self.saveButton) hp.add(self.closeButton) dock.add(hp, DockPanel.SOUTH) dock.add(self.msg, DockPanel.NORTH) dock.add(self.txt, DockPanel.CENTER) dock.setCellHorizontalAlignment(hp, HasAlignment.ALIGN_RIGHT) dock.setCellWidth(self.txt, "100%") dock.setWidth("100%") self.setWidget(dock) self.editor_id = editor_id self.editor_created = False
def __init__(self, baseURL): DialogWindow.__init__( self, modal=False, minimize=True, maximize=True, close=True, ) closeButton = Button("Close", self) imgname = self.images.pop(0) self.images.append(imgname) self.setText("Sample DialogWindow with embedded image") img = Image("%srembrandt/%s" % (baseURL, imgname)) msg = HTML("<center>This is an example of a standard dialog box component.<br> You can put pretty much anything you like into it,<br>such as the following image '%s':</center>" % imgname, True) dock = DockPanel() dock.setSpacing(4) dock.add(closeButton, DockPanel.SOUTH) dock.add(msg, DockPanel.NORTH) dock.add(img, DockPanel.CENTER) dock.setCellHorizontalAlignment(closeButton, HasAlignment.ALIGN_RIGHT) dock.setCellWidth(img, "100%") dock.setWidth("100%") self.setWidget(dock)
def __init__(self, url): DialogBox.__init__(self) self.setText("Upload Files") iframe = Frame(url) closeButton = Button("Close", self) msg = HTML( "<center>Upload files, here. Please avoid spaces in file names.<br />(rename the file before uploading)</center>", True) dock = DockPanel() dock.setSpacing(4) dock.add(closeButton, DockPanel.SOUTH) dock.add(msg, DockPanel.NORTH) dock.add(iframe, DockPanel.CENTER) dock.setCellHorizontalAlignment(closeButton, HasAlignment.ALIGN_RIGHT) dock.setCellWidth(iframe, "100%") dock.setWidth("100%") iframe.setWidth("800px") iframe.setHeight("600px") self.setWidget(dock)
def onModuleLoad(self): loggedInUser = getCookie("LoggedInUser") self.loggedInUserJsonData = json.loads(loggedInUser) self.remote_py = MyBlogService() dockPanel = DockPanel(BorderWidth=0, Padding=0, HorizontalAlignment=HasAlignment.ALIGN_LEFT, VerticalAlignment=HasAlignment.ALIGN_TOP) dockPanel.setSize('100%', '100%') headerDockPanel = DockPanel( BorderWidth=0, Padding=0, HorizontalAlignment=HasAlignment.ALIGN_LEFT, VerticalAlignment=HasAlignment.ALIGN_CENTER) headerDockPanel.setStyleName('header') headerDockPanel.setWidth('100%') dockPanel.add(headerDockPanel, DockPanel.NORTH) dockPanel.setCellHeight(headerDockPanel, '60px') self.siteImage = Image("/images/Testware_logo.png") self.siteImage.setStyleName('logo-image') headerDockPanel.add(self.siteImage, DockPanel.WEST) headerDockPanel.setCellWidth(self.siteImage, '30%') self.pageTitle = Label('All Blogs') self.pageTitle.setStyleName('center-header') headerDockPanel.add(self.pageTitle, DockPanel.CENTER) headerDockPanel.setCellWidth(self.pageTitle, '40%') rightHeaderPanel = VerticalPanel(StyleName='right-header') headerDockPanel.add(rightHeaderPanel, DockPanel.EAST) headerDockPanel.setCellWidth(rightHeaderPanel, '30%') welcomeNoteLabel = Label('Hi %s %s!' % (self.loggedInUserJsonData["first_name"], self.loggedInUserJsonData["last_name"])) rightHeaderPanel.add(welcomeNoteLabel) logoutAnchor = Anchor(Widget=HTML('Logout'), Href='/', Title='Logout') logoutAnchor.setStyleName('logout') rightHeaderPanel.add(logoutAnchor) newBlogAnchor = Anchor(Widget=HTML('Create New Blog'), Href='/newblog.html', Title='NewBlog') newBlogAnchor.setStyleName('logout') rightHeaderPanel.add(newBlogAnchor) tree = Tree() tree.addTreeListener(self) tree.setStyleName('side-menu') dockPanel.add(tree, DockPanel.WEST) dockPanel.setCellWidth(tree, '60px') s1 = self.createItem("Blogs") allItem = self.createItem("All", value=0) self.selectedItem = allItem s1.addItem(allItem) s1.addItem(self.createItem("Published", value=1)) s1.addItem(self.createItem("Unpublished", value=2)) s2 = self.createItem("Other's Blog") s1.setState(True, fireEvents=False) tree.addItem(s1) tree.addItem(s2) self.absolultutePanel = AbsolutePanel(StyleName='detail-style') dockPanel.add(self.absolultutePanel, DockPanel.CENTER) self.blogs = [] self.g = Grid() RootPanel().add(dockPanel) self.remote_py.callMethod('getBlogs', [self.loggedInUserJsonData["username"]], self)
class Bookreader: def onHistoryChanged(self, token): info = self.sink_list.find(token) if info: self.show(info, False) else: self.showInfo() def onModuleLoad(self): section = Window.getLocation().getSearchVar("section") if not section: self.loadChapters() else: loadSection(section) 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 onWindowResized(self, width, height): self.panel.setWidth(width-20) self.sink_list.resize(width-20, height-130) self.sp.setHeight("%dpx" % (height-130)) 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 loadSinks(self): HTTPRequest().asyncGet("contents.txt", ChapterListLoader(self)) 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 showInfo(self): self.show(self.sink_list.sinks[0], False)
class WebApp: def onFormLoad(self): self.fetch = Button("Retrieve", self) self.search = TextBox() self.submit = Button("Submit", self) self.formsvc = FormService() self.wanted = WantedService() d = {'price': 20, 'name': 'a good car'} self.form = Form(getattr(self.formsvc, "itemform"), data=d, listener=self) #self.describe(['name', 'description']) RootPanel().add(self.form) RootPanel().add(self.search) RootPanel().add(self.fetch) def onRetrieveDone(self, form): log.debug("onRetrieveDone: %s" % repr(form)) def onDescribeDone(self, form): form.add_widget("Submit", self.submit) def onClick(self, sender): if sender == self.fetch: key = self.search.getText() if not key: log.debug("Please enter id") return key = int(key) log.debug("id %d" % key) #self.wanted.getItem(key, self) self.form.get(id=key) if sender == self.submit: v = self.form.getValue() log.debug("onClick %s" % repr(v)) if v.get('id', None): self.form.update(v) else: self.form.save(v) def onErrors(self, form, response): log.debug("onErrors %s" % repr(response)) def onSaveDone(self, form, response): log.debug("onSave %s" % repr(response)) def onModuleLoad(self): self.pages = 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 createPage(self, ref, html, title): htp = HTMLLinkPanel(self, html, title) htp.replaceLinks() htp.setWidth("100%") self.pages[ref] = htp def onHistoryChanged(self, token): #log.debug("onHistoryChanged %s" % token) if self.pages.has_key(token): self.setPage(token) return self.pages.getPageByName(token, self) def setPage(self, ref): htp = self.pages[ref] if htp == self.current_page: return Window.setTitle(htp.title) if self.current_page: self.dock.remove(self.current_page) self.dock.add(htp, DockPanel.CENTER) self.current_page = htp def onRemoteResponse(self, response, request_info): #if (request_info.method == 'getItem'): # data = {'id': response['pk']} # log.debug(repr(response)) # self.form.update_values(response) if (request_info.method == 'getPageByName' or request_info.method == 'getPage'): item = response[0] html = item['fields']['text'] token = item['fields']['name'] self.createPage(token, html, token) self.setPage(token) def onRemoteError(self, code, message, request_info): RootPanel().add( HTML("Server Error or Invalid Response: ERROR " + str(code) + " - " + str(message)))
def __init__(self, chart): """ DialogBox CSS Style self.settings used with this example for reference: Note: These simplified CSS styles make the dialog's title bar behave a little quirkily in IE6 when dragging. For more sophisticated CSS that fixes this problem (and also provides a more professional look) see the CSS tab of the DialogBox example in the GWT <a href="xxx"> Showcase of Features</a> (I just didn't want to copy 5 pages of obscure DialogBox CSS into what is after all a Client-side GChart example). .gwt-DialogBox .Caption { font-size: 18 color: #eef background: #00f repeat-x 0px -2003px padding: 4px 4px 4px 8px cursor: default border-bottom: 2px solid #008 border-top: 3px solid #448 .gwt-DialogBox .dialogContent { border: 1px solid #008 background: #ddd padding: 3px """ DialogBox.__init__(self, autoHide=True, modal=True) self.chart = chart self.isFirstTime = True mainPanel = VerticalPanel() propertyForm = FlexTable() commandBar = DockPanel() sliceSwitcher = HorizontalPanel() self.prevSlice = Button("<Prev Slice", self) self.nextSlice = Button("Next Slice>", self) self.closeButton = Button("Close", self) self.chart.colorSelector.addChangeListener(self) self.chart.sliceSizeSelector.addChangeListener(self) self.chart.shadingSelector.addChangeListener(self) #self.prevSlice.addClickListener(self) #self.nextSlice.addClickListener(self) #self.closeButton.addClickListener(self) # slice properties table (slice color, shading and size) propertyForm.setSize(3, 2) propertyForm.setText( 0, 0, "Color:") propertyForm.setWidget(0, 1, self.chart.colorSelector) propertyForm.setText( 1, 0, "Shading Pattern:") propertyForm.setWidget(1, 1, self.chart.shadingSelector) propertyForm.setText( 2, 0, "Slice Size:") propertyForm.setWidget(2, 1, self.chart.sliceSizeSelector) # add additional properties here, if desired # buttons for changing the selected slice from the form sliceSwitcher.add(self.prevSlice) sliceSwitcher.add(self.nextSlice) commandBar.add(sliceSwitcher, DockPanel.WEST) commandBar.add(self.closeButton, DockPanel.EAST) commandBar.setCellHorizontalAlignment(self.closeButton, HasHorizontalAlignment.ALIGN_RIGHT) commandBar.setWidth("100%"); # pushes close button to right edge # create main form and place it in DialogBox mainPanel.add(propertyForm) mainPanel.add(commandBar) self.setWidget(mainPanel); # add the DialogBox' single, defining, widget
class WebApp: def onFormLoad(self): self.fetch = Button("Retrieve", self) self.search = TextBox() self.submit = Button("Submit", self) self.formsvc = FormService() self.wanted = WantedService() d = {'price': 20, 'name': 'a good car'} self.form = Form(getattr(self.formsvc, "itemform"), data=d, listener=self) #self.describe(['name', 'description']) RootPanel().add(self.form) RootPanel().add(self.search) RootPanel().add(self.fetch) def onRetrieveDone(self, form): log.debug("onRetrieveDone: %s" % repr(form)) def onDescribeDone(self, form): form.add_widget("Submit", self.submit) def onClick(self, sender): if sender == self.fetch: key = self.search.getText() if not key: log.debug("Please enter id") return key = int(key) log.debug("id %d" % key) #self.wanted.getItem(key, self) self.form.get(id=key) if sender == self.submit: v = self.form.getValue() log.debug("onClick %s" % repr(v)) if v.get('id', None): self.form.update(v) else: self.form.save(v) def onErrors(self, form, response): log.debug("onErrors %s" % repr(response)) def onSaveDone(self, form, response): log.debug("onSave %s" % repr(response)) def onModuleLoad(self): self.pages = 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 createPage(self, ref, html, title): htp = HTMLLinkPanel(self, html, title) htp.replaceLinks() htp.setWidth("100%") self.pages[ref] = htp def onHistoryChanged(self, token): #log.debug("onHistoryChanged %s" % token) if self.pages.has_key(token): self.setPage(token) return self.pages.getPageByName(token, self) def setPage(self, ref): htp = self.pages[ref] if htp == self.current_page: return Window.setTitle(htp.title) if self.current_page: self.dock.remove(self.current_page) self.dock.add(htp, DockPanel.CENTER) self.current_page = htp def onRemoteResponse(self, response, request_info): #if (request_info.method == 'getItem'): # data = {'id': response['pk']} # log.debug(repr(response)) # self.form.update_values(response) if (request_info.method == 'getPageByName' or request_info.method == 'getPage'): item = response[0] html = item['fields']['text'] token = item['fields']['name'] self.createPage(token, html, token) self.setPage(token) def onRemoteError(self, code, message, request_info): RootPanel().add(HTML("Server Error or Invalid Response: ERROR " + str(code) + " - " + str(message)))
class FormulaBuilder(DialogWindow): def __init__(self, operations, after, **kwargs): DialogWindow.__init__(self, modal=True, close=True) self.formula = Formula([]) self.after = after if "type" in kwargs: self.type = kwargs["type"] else: self.type = 'rel' self.set_styles() def op_button_click(op): def aio(): self.add_op(op) return aio self.ops_with_buttons = [{ "op": op, "button": Button(op.name, op_button_click(op)) } for op in operations] for owb in self.ops_with_buttons: self.add_button(owb["button"]) self.var = list() self.is_clicked = list() self.textbox = list() self.set_variables((0 if self.type == 'exp' else 5)) def set_variables(self, no_of_vars, x=True): def name(n): return "var" + str(n) def print_scheme(n): return ["\\alpha", "\\beta", "\\gamma", "\\delta", "\\epsilon"][n] def button_click(n): def sopa(): if not self.is_clicked[n]: v = Operation(name(n), 0, self.textbox[n].getText(), name(n), Operation.VARIABLE) self.var[n] = v self.textbox[n].setEnabled(False) self.is_clicked[n] = True self.add_op(self.var[n]) return sopa for i in range(no_of_vars): h = HorizontalPanel() b = Button("variable", button_click(i)) h.add(b) self.is_clicked.append(False) self.var.append(None) t = TextBox() self.textbox.append(t) t.setText(print_scheme(i)) h.add(t) self.add_button(h) def set_styles(self): self.dock = DockPanel() self.dock.setSpacing(3) self.dock.setWidth("300") self.image = Image( latex_to_url(self.formula.fill_with_placeholders().to_latex())) self.dock.add(self.image, DockPanel.EAST) self.dock.setCellHorizontalAlignment(self.image, HasAlignment.ALIGN_TOP) self.backspaceButton_add() self.doneButton_add() self.dock.add(HTML(""), DockPanel.CENTER) left = 100 top = 100 self.setText("opkop") self.setPopupPosition(left, top) self.setStyleAttribute("background-color", "#ffffff") self.setStyleAttribute("color", "blue") self.setStyleAttribute("border-width", "5px") self.setStyleAttribute("border-style", "solid") self.setWidget(self.dock) def doneButton_add(self): def doneButton_click(): self.hide() self.after(self.formula) self.doneButton = Button("Done", doneButton_click) self.doneButton.setEnabled(False) self.dock.add(self.doneButton, DockPanel.SOUTH) def backspaceButton_add(self): def backspaceButton_click(): self.formula = Formula(self.formula.body[:-1]) self.refresh() self.backspaceButton = Button("Backspace", backspaceButton_click) self.backspaceButton.setEnabled(False) self.dock.add(self.backspaceButton, DockPanel.SOUTH) def refresh(self): self.image.setUrl( latex_to_url(self.formula.fill_with_placeholders().to_latex())) self.doneButton.setEnabled(self.formula.is_closed()) self.backspaceButton.setEnabled(len(self.formula.body) >= 0) def add_button(self, b): self.dock.add(b, DockPanel.NORTH) def add_op(self, op): if not self.formula.is_closed(): self.formula.add_one_op(op, self.type) self.refresh()
class Bookreader: def onHistoryChanged(self, token): info = self.sink_list.find(token) if info: self.show(info, False) else: self.showInfo() def onModuleLoad(self): section = Window.getLocation().getSearchVar("section") if not section: self.loadChapters() else: loadSection(section) 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 onWindowResized(self, width, height): self.panel.setWidth(width - 20) self.sink_list.resize(width - 20, height - 130) self.sp.setHeight("%dpx" % (height - 130)) 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 loadSinks(self): HTTPRequest().asyncGet("contents.txt", ChapterListLoader(self)) 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 showInfo(self): self.show(self.sink_list.sinks[0], False)
def onModuleLoad(self): loggedInUser = getCookie("LoggedInUser") loggedInUserJsonData = json.loads(loggedInUser) self.username = loggedInUserJsonData["username"] self.remote_py = MyBlogService() dockPanel = DockPanel(BorderWidth=0, Padding=0, HorizontalAlignment=HasAlignment.ALIGN_CENTER, VerticalAlignment=HasAlignment.ALIGN_MIDDLE) dockPanel.setSize('100%', '100%') headerDockPanel = DockPanel( BorderWidth=0, Padding=0, HorizontalAlignment=HasAlignment.ALIGN_LEFT, VerticalAlignment=HasAlignment.ALIGN_CENTER) headerDockPanel.setStyleName('header') headerDockPanel.setWidth('100%') dockPanel.add(headerDockPanel, DockPanel.NORTH) dockPanel.setCellHeight(headerDockPanel, '60px') self.siteImage = Image("/images/Testware_logo.png") self.siteImage.setStyleName('logo-image') headerDockPanel.add(self.siteImage, DockPanel.WEST) headerDockPanel.setCellWidth(self.siteImage, '30%') self.pageTitle = Label('New Blog') self.pageTitle.setStyleName('center-header') headerDockPanel.add(self.pageTitle, DockPanel.CENTER) headerDockPanel.setCellWidth(self.pageTitle, '40%') rightHeaderPanel = VerticalPanel(StyleName='right-header') headerDockPanel.add(rightHeaderPanel, DockPanel.EAST) headerDockPanel.setCellWidth(rightHeaderPanel, '30%') welcomeNoteLabel = Label('Hi %s %s!' % (loggedInUserJsonData["first_name"], loggedInUserJsonData["last_name"])) rightHeaderPanel.add(welcomeNoteLabel) logoutAnchor = Anchor(Widget=HTML('Logout'), Href='/', Title='Logout') logoutAnchor.setStyleName('logout') rightHeaderPanel.add(logoutAnchor) panel = HorizontalPanel(StyleName="header2") dockPanel.add(panel, DockPanel.NORTH) dockPanel.setCellHeight(panel, '50px') self.blogTitle = TextBox() self.blogTitle.setStyleName('blog-title') self.blogTitle.setPlaceholder("Blog Title") panel.add(self.blogTitle) self.blogContent = TextArea() self.blogContent.setStyleName('blog-content') dockPanel.add(self.blogContent, DockPanel.CENTER) createBlogButton = Button("Create Blog", self) createBlogButton.setStyleName('btn') panel.add(createBlogButton) RootPanel().add(dockPanel)
def __init__(self, chart): """ DialogBox CSS Style self.settings used with this example for reference: Note: These simplified CSS styles make the dialog's title bar behave a little quirkily in IE6 when dragging. For more sophisticated CSS that fixes this problem (and also provides a more professional look) see the CSS tab of the DialogBox example in the GWT <a href="xxx"> Showcase of Features</a> (I just didn't want to copy 5 pages of obscure DialogBox CSS into what is after all a Client-side GChart example). .gwt-DialogBox .Caption { font-size: 18 color: #eef background: #00f repeat-x 0px -2003px padding: 4px 4px 4px 8px cursor: default border-bottom: 2px solid #008 border-top: 3px solid #448 .gwt-DialogBox .dialogContent { border: 1px solid #008 background: #ddd padding: 3px """ DialogBox.__init__(self, autoHide=True, modal=True) self.chart = chart self.isFirstTime = True mainPanel = VerticalPanel() propertyForm = FlexTable() commandBar = DockPanel() sliceSwitcher = HorizontalPanel() self.prevSlice = Button("<Prev Slice", self) self.nextSlice = Button("Next Slice>", self) self.closeButton = Button("Close", self) self.chart.colorSelector.addChangeListener(self) self.chart.sliceSizeSelector.addChangeListener(self) self.chart.shadingSelector.addChangeListener(self) #self.prevSlice.addClickListener(self) #self.nextSlice.addClickListener(self) #self.closeButton.addClickListener(self) # slice properties table (slice color, shading and size) propertyForm.setSize(3, 2) propertyForm.setText(0, 0, "Color:") propertyForm.setWidget(0, 1, self.chart.colorSelector) propertyForm.setText(1, 0, "Shading Pattern:") propertyForm.setWidget(1, 1, self.chart.shadingSelector) propertyForm.setText(2, 0, "Slice Size:") propertyForm.setWidget(2, 1, self.chart.sliceSizeSelector) # add additional properties here, if desired # buttons for changing the selected slice from the form sliceSwitcher.add(self.prevSlice) sliceSwitcher.add(self.nextSlice) commandBar.add(sliceSwitcher, DockPanel.WEST) commandBar.add(self.closeButton, DockPanel.EAST) commandBar.setCellHorizontalAlignment( self.closeButton, HasHorizontalAlignment.ALIGN_RIGHT) commandBar.setWidth("100%") # pushes close button to right edge # create main form and place it in DialogBox mainPanel.add(propertyForm) mainPanel.add(commandBar) self.setWidget(mainPanel)