def __init__(self): SimplePanel.__init__(self) panel = HorizontalPanel(BorderWidth=1, HorizontalAlignment=HasAlignment.ALIGN_CENTER, VerticalAlignment=HasAlignment.ALIGN_MIDDLE, Width="100%", Height="200px") part1 = Label("Part 1") part2 = Label("Part 2") part3 = Label("Part 3") part4 = Label("Part 4") panel.add(part1) panel.add(part2) panel.add(part3) panel.add(part4) panel.setCellWidth(part1, "10%") panel.setCellWidth(part2, "70%") panel.setCellWidth(part3, "10%") panel.setCellWidth(part4, "10%") panel.setCellVerticalAlignment(part3, HasAlignment.ALIGN_BOTTOM) self.add(panel)
def __init__(self, row, column=0): super(Game, self).__init__(StyleName='game') self.sinkEvents(Event.ONCONTEXTMENU) # to disable right click self.row = row self.column = column or row self.level = 1 self.toppers = [[], [], []] # storage for top scorers for 3 levels. self.remote = DataService() self.remote_handler = RemoteHandler(self) self.remote.get_scores(self.remote_handler) # contents of Game menubar = MineMenuBar(self) score_board = HorizontalPanel(StyleName='score-board') self.grid_panel = SimplePanel(StyleName='grid-panel') self.add(menubar) self.add(score_board) self.add(self.grid_panel) # contents of score_board self.counter = Label('000', StyleName='digit counter') self.face = Smiley(self) self.timer = Label('000', StyleName='digit timer') for one in (self.counter, self.face, self.timer): score_board.add(one) score_board.setCellWidth(self.face, '100%') self.create_grid() self.start()
def __init__(self): SimplePanel.__init__(self) panel = HorizontalPanel() panel.setBorderWidth(1) panel.setHorizontalAlignment(HasAlignment.ALIGN_CENTER) panel.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE) part1 = Label("Part 1") part2 = Label("Part 2") part3 = Label("Part 3") part4 = Label("Part 4") panel.add(part1) panel.add(part2) panel.add(part3) panel.add(part4) panel.setCellWidth(part1, "10%") panel.setCellWidth(part2, "70%") panel.setCellWidth(part3, "10%") panel.setCellWidth(part4, "10%") panel.setCellVerticalAlignment(part3, HasAlignment.ALIGN_BOTTOM) panel.setWidth("100%") panel.setHeight("200px") self.add(panel)
def setup_after_data(self): self.TheoremPanel = TheoremPanel(self.add_formula) h = HorizontalPanel(BorderWidth=1, HorizontalAlignment=HasAlignment.ALIGN_LEFT, VerticalAlignment=HasAlignment.ALIGN_TOP, Width="100%", Height="200px") h.setStyleAttribute("background", "yellow") h.add(self.FormulaListPanel) h.add(self.TheoremPanel) h.setCellWidth(self.FormulaListPanel, "50%") h.setCellWidth(self.TheoremPanel, "50%") RootPanel().add(h)
def _update_map(self, m): if m.name is None: # Data is not yet loaded return m.layers.get() sp = HorizontalPanel(Size=('100%', '100%')) sidebar = Sidebar() sidebar.setLayersCollection(m.layers) sp.add(sidebar) sp.setCellWidth(sidebar, '25%') map_ = Map(Size=('100%', '100%')) map_.set_map(m) sp.add(map_) self.setWidget(sp)
def draw(self): paramPanel = HorizontalPanel(Width='100%', VerticalAlignment='middle') options = self.drawOptions() label = Label(self.kind['item'], StyleName='aur-search-advanced-param-title') delSelf = Image(url='/ico/cross.png', Title='Delete this parameter') delSelf.addStyleName('aur-search-advanced-delete') if self.kind['allowsInverse']: invertSelf = Image(url='/ico/exclamation.png', Title='Invert this parameter') invertSelf.addClickListener(getattr(self, 'invertSelf')) else: invertSelf = Image(url='/ico/bullet_white.png', StyleName='aur-search-advanced-placeholder') self.container.add(self.panel) self.panel.setWidget(paramPanel) paramPanel.add(delSelf) paramPanel.add(label) paramPanel.add(options) paramPanel.add(invertSelf) paramPanel.setCellWidth(delSelf, '1px') paramPanel.setCellWidth(options, '1px') paramPanel.setCellWidth(invertSelf, '1px') delSelf.addClickListener(getattr(self, 'delSelf'))
def createRegisterPanel( self, registerNames ) : """ Creates panels and buttons for everything given in registerNames, and returns the main panel. """ flowPanel=FlowPanel() for buttonName in registerNames : newPanel=HorizontalPanel() label=Label(buttonName) newPanel.add( label ) newTextBox=TextBox() newTextBox.setEnabled(False) newTextBox.setWidth(80) statusBox=TextBox() statusBox.setEnabled(False) statusBox.setWidth(30) newPanel.add(newTextBox) newPanel.add(statusBox) newPanel.setCellHorizontalAlignment( newTextBox, HasHorizontalAlignment.ALIGN_RIGHT ) newPanel.setCellHorizontalAlignment( statusBox, HasHorizontalAlignment.ALIGN_RIGHT ) newPanel.setCellWidth( statusBox, "20px" ) newPanel.setWidth("100%") #newPanel.setStyleName("areaStyle"); #newPanel.setBorderWidth(5); newTextBox.setText("select chip...") newTextBox.addChangeListener(self) newTextBox.setTitle(buttonName) # This isn't displayed, but it's useful to have stored self.i2cValueEntries[buttonName]=newTextBox self.statusValueEntries[buttonName]=statusBox statusBox.setTitle(buttonName) statusBox.setText("...") flowPanel.add(newPanel) return flowPanel
class TabBar(Composite): STYLENAME_DEFAULT = "gwt-TabBarItem" def __init__(self, **kwargs): if not kwargs.has_key('StyleName'): kwargs['StyleName']="gwt-TabBar" # this is awkward: HorizontalPanel is the composite, # so we either the element here, and pass it in to HorizontalPanel. element = None if kwargs.has_key('Element'): element = kwargs.pop('Element') self.panel = HorizontalPanel(Element=element) self.selectedTab = None self.tabListeners = [] self.panel.setVerticalAlignment(HasAlignment.ALIGN_BOTTOM) first = HTML(" ", True) rest = HTML(" ", True) first.setStyleName("gwt-TabBarFirst") rest.setStyleName("gwt-TabBarRest") first.setHeight("100%") rest.setHeight("100%") self.panel.add(first) self.panel.add(rest) first.setHeight("100%") self.panel.setCellHeight(first, "100%") self.panel.setCellWidth(rest, "100%") Composite.__init__(self, self.panel, **kwargs) self.sinkEvents(Event.ONCLICK) def addTab(self, text, asHTML=False): self.insertTab(text, asHTML, self.getTabCount()) def addTabListener(self, listener): self.tabListeners.append(listener) def getSelectedTab(self): if self.selectedTab is None: return -1 return self.panel.getWidgetIndex(self.selectedTab) - 1 def getTabCount(self): return self.panel.getWidgetCount() - 2 def getTabHTML(self, index): if index >= self.getTabCount(): return None delPanel = self.panel.getWidget(index + 1) focusablePanel = delPanel.getFocusablePanel() widget = focusablePanel.getWidget() if hasattr(widget, "getHTML"): return widget.getHTML() elif hasattr(widget, "getText"): # assume it's a Label if it has getText return widget.getText() else: fpe = DOM.getParent(self.focusablePanel.getElement()) return DOM.getInnerHTML(fpe) def createTabTextWrapper(self): return None def insertTab(self, text, asHTML, beforeIndex=None): """ 1st arg can, instead of being 'text', be a widget. 1st arg can also be None, which results in a blank space between tabs. Use this to push subsequent tabs out to the right hand end of the TabBar. (the "blank" tab, by not being focussable, is not clickable). """ if beforeIndex is None: beforeIndex = asHTML asHTML = False if (beforeIndex < 0) or (beforeIndex > self.getTabCount()): #throw new IndexOutOfBoundsException(); pass if text is None: text = HTML(" ", True) text.setWidth("100%") text.setStyleName("gwt-TabBarRest") self.panel.insert(text, beforeIndex + 1) self.panel.setCellWidth(text, "100%") return istext = isinstance(text, basestring) if istext: if asHTML: item = HTML(text) else: item = Label(text) item.setWordWrap(False) else: # passing in a widget, it's expected to have its own style item = text self.insertTabWidget(item, beforeIndex) def insertTabWidget(self, widget, beforeIndex): delWidget = ClickDelegatePanel(self, widget, self, self) delWidget.setStyleName(self.STYLENAME_DEFAULT) focusablePanel = delWidget.getFocusablePanel() self.panel.insert(delWidget, beforeIndex + 1) self.setStyleName(DOM.getParent(delWidget.getElement()), self.STYLENAME_DEFAULT + "-wrapper", True) #print "insertTabWidget", DOM.getParent(delWidget.getElement()), DOM.getAttribute(DOM.getParent(delWidget.getElement()), "className") def onClick(self, sender=None): for i in range(1, self.panel.getWidgetCount() - 1): if DOM.isOrHasChild(self.panel.getWidget(i).getElement(), sender.getElement()): return self.selectTab(i - 1) return False def removeTab(self, index): self.checkTabIndex(index) toRemove = self.panel.getWidget(index + 1) if toRemove == self.selectedTab: self.selectedTab = None self.panel.remove(toRemove) def removeTabListener(self, listener): self.tabListeners.remove(listener) def selectTab(self, index): self.checkTabIndex(index) for listener in self.tabListeners: if not listener.onBeforeTabSelected(self, index): return False self.setSelectionStyle(self.selectedTab, False) if index == -1: self.selectedTab = None return True self.selectedTab = self.panel.getWidget(index + 1) self.setSelectionStyle(self.selectedTab, True) for listener in self.tabListeners: listener.onTabSelected(self, index) return True def checkTabIndex(self, index): if (index < -1) or (index >= self.getTabCount()): #throw new IndexOutOfBoundsException(); pass def setSelectionStyle(self, item, selected): if item is not None: if selected: item.addStyleName("gwt-TabBarItem-selected") self.setStyleName(DOM.getParent(item.getElement()), "gwt-TabBarItem-wrapper-selected", True) else: item.removeStyleName("gwt-TabBarItem-selected") self.setStyleName(DOM.getParent(item.getElement()), "gwt-TabBarItem-wrapper-selected", False)
class InfoDirectory: def onModuleLoad(self): self.remote = InfoServicePython() self.tree_width = 200 self.tp = HorizontalPanel() self.tp.setWidth("%dpx" % (self.tree_width)) self.treeview = Trees() self.treeview.fTree.addTreeListener(self) self.sp = ScrollPanel() self.tp.add(self.treeview) self.sp.add(self.tp) self.sp.setHeight("100%") self.horzpanel1 = HorizontalPanel() self.horzpanel1.setSize("100%", "100%") self.horzpanel1.setBorderWidth(1) self.horzpanel1.setSpacing("10px") self.rp = RightPanel() self.rps = ScrollPanel() self.rps.add(self.rp) self.rps.setWidth("100%") self.rp.setWidth("100%") self.cp1 = CollapserPanel(self) self.cp1.setWidget(self.sp) self.cp1.setHTML(" ") self.midpanel = MidPanel(self) self.cp2 = CollapserPanel(self) self.cp2.setWidget(self.midpanel) self.cp2.setHTML(" ") self.horzpanel1.add(self.cp1) self.horzpanel1.add(self.cp2) self.horzpanel1.add(self.rps) self.cp1.setInitialWidth("%dpx" % self.tree_width) self.cp2.setInitialWidth("200px") RootPanel().add(self.horzpanel1) width = Window.getClientWidth() height = Window.getClientHeight() self.onWindowResized(width, height) Window.addWindowResizeListener(self) def setCollapserWidth(self, widget, width): self.horzpanel1.setCellWidth(widget, width) def onWindowResized(self, width, height): #self.hp.setWidth("%dpx" % (width - self.tree_width)) #self.hp.setHeight("%dpx" % (height - 20)) self.cp1.setHeight("%dpx" % (height - 30)) self.cp2.setHeight("%dpx" % (height - 30)) self.rps.setHeight("%dpx" % (height - 30)) self.horzpanel1.setHeight("%dpx" % (height - 20)) def onTreeItemStateChanged(self, item): if item.isSelected(): self.onTreeItemSelected(item) def onTreeItemSelected(self, item): obj = item.getUserObject() if len(obj.children) != 0: self.clear_mid_panel() return self.remote.get_midpanel_data(obj.root + "/" + obj.text, self) self.cp2.setHTML(obj.text) self.clear_right_panel() def clear_right_panel(self): self.horzpanel1.remove(2) self.horzpanel1.insert(HTML(""), 2) self.rp.setTitle(" ") def clear_mid_panel(self): self.clear_right_panel() #self.horzpanel2.setLeftWidget(HTML("")) def set_mid_panel(self, response): self.midpanel.set_items(response) self.cp2.setWidget(self.midpanel) def select_right_grid(self, location, name): self.horzpanel1.remove(2) self.horzpanel1.insert(self.rps, 2) self.rp.setTitle(name) self.remote.get_rightpanel_datanames(location, self) def get_rightpanel_datasets(self, datasets): self.rp.clear_items() self.rp.setup_panels(datasets) for i in range(len(datasets)): item = datasets[i] fname = item[0] self.remote.get_rightpanel_data(fname, fname, i, self) def fill_right_grid(self, data): index = data.get('index') name = data.get('name') if data.has_key('items'): self.rp.add_items(data.get('items'), name, index) elif data.has_key('html'): self.rp.add_html(data.get('html'), name, index) def onRemoteResponse(self, response, request_info): method = request_info.method if method == "get_midpanel_data": self.set_mid_panel(response) elif method == "get_rightpanel_datanames": self.get_rightpanel_datasets(response) elif method == "get_rightpanel_data": self.fill_right_grid(response) def onRemoteError(self, code, message, request_info): RootPanel().add(HTML("Server Error or Invalid Response: ERROR " + code)) RootPanel().add(HTML(message))
def onModuleLoad(self): self.form = FormPanel() self.remote_py = MyBlogService() self.form.setAction("/index.html") vp = VerticalPanel(BorderWidth=0, HorizontalAlignment=HasAlignment.ALIGN_CENTER, VerticalAlignment=HasAlignment.ALIGN_MIDDLE, Width="100%", Height="150px") self.form.setWidget(vp) header = HTML( "<h2>CREATE MY ACCOUNT</h2><h3>Welcome to signup form</h3>") part1 = header hpn = HorizontalPanel(BorderWidth=0, HorizontalAlignment=HasAlignment.ALIGN_LEFT, VerticalAlignment=HasAlignment.ALIGN_MIDDLE, Width="92%", Height="60px") self.fname = TextBox() self.fname.setName("fname") self.fname.setPlaceholder("First Name") hpn.add(self.fname) self.lname = TextBox() self.lname.setName("lname") self.lname.setPlaceholder("Last Name") hpn.add(self.lname) hpn.setCellWidth(self.fname, "70%") hpn.setCellWidth(self.lname, "30%") part2 = hpn self.uname = TextBox() self.uname.setName("uname") self.uname.setPlaceholder("User Name") part3 = self.uname self.password = PasswordTextBox() self.password.setName("passsignup") self.password.setPlaceholder("Choose a password") part4 = self.password self.rpassword = PasswordTextBox() self.rpassword.setName("rpasssignup") self.rpassword.setPlaceholder("Confirm your password") part5 = self.rpassword self.email = TextBox() self.email.setName("emailsignup") self.email.setPlaceholder("Enter your email address ") part6 = self.email self.errorlabel = Label() self.errorlabel.setStyleName("errorlabel") part7 = self.errorlabel hpanel = HorizontalPanel(BorderWidth=0, HorizontalAlignment=HasAlignment.ALIGN_CENTER, VerticalAlignment=HasAlignment.ALIGN_MIDDLE, Width="100%", Height="50px") partb = Button("Signup", self) partb.setStyleName('btn') image = Label("Already have account! Sign in") anchor = Anchor(Widget=image, Href='/index.html') parta = anchor hpanel.add(partb) hpanel.add(parta) hpanel.setStyleName("hpanel") part8 = hpanel vp.add(part1) vp.add(part2) vp.add(part3) vp.add(part4) vp.add(part5) vp.add(part6) vp.add(part7) vp.add(part8) vp.setCellHeight(part1, "5%") vp.setCellHeight(part2, "10%") vp.setCellHeight(part3, "10%") vp.setCellHeight(part4, "10%") vp.setCellHeight(part5, "10%") vp.setCellHeight(part6, "10%") vp.setCellHeight(part7, "10%") vp.setCellHeight(part8, "10%") vp.setStyleName("signup") self.form.addFormHandler(self) RootPanel().add(self.form)
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(0) self.vp.setPadding(0) self.vp.addStyleName("calendarbox calendar-module calendar") self.setWidget(self.vp) self.setVisible(False) # mth = int(month) yr = int(year) tp = HorizontalPanel(Width="100%") tp.addStyleName("calendar-top-panel") tp.setSpacing(0) tp.setPadding(0) self.h1 = None self.h2 = None self.h4 = None self.h5 = None if self.backyear: self.h1 = self.bkls(self.backyear, StyleName="calendar-arrows") self.h1.addClickListener(getattr(self, 'onPreviousYear')) tp.add(self.h1) tp.setCellHorizontalAlignment(self.h1, "left") if self.backmonth: self.h2 = self.bkls(self.backmonth, StyleName="calendar-arrows") self.h2.addClickListener(getattr(self, 'onPreviousMonth')) tp.add(self.h2) tp.setCellHorizontalAlignment(self.h2, "left") # titlePanel can be changed, whenever we draw, so keep the reference txt = "<b>" txt += self.getMonthsOfYear()[mth-1] + " " + str(yr) txt += "</b>" self.titlePanel = SimplePanel() self.titlePanel.setWidget(HTML(txt)) self.titlePanel.setStyleName("calendar-center") tp.add(self.titlePanel) tp.setCellHorizontalAlignment(self.titlePanel, "center") tp.setCellWidth(self.titlePanel, "100%") if self.fwdmonth: self.h4 = self.bkls(self.fwdmonth, StyleName="calendar-arrows") self.h4.addClickListener(getattr(self, 'onNextMonth')) tp.add(self.h4) tp.setCellHorizontalAlignment(self.h4, "right") tp.setCellWidth(self.h4, "100%") self.h4.setWidth("100%") if self.fwdyear: self.h5 = self.bkls(self.fwdyear, StyleName="calendar-arrows") self.h5.addClickListener(getattr(self, 'onNextYear')) tp.add(self.h5) tp.setCellHorizontalAlignment(self.h5, "right") tvp = VerticalPanel(Width="100%") tvp.setSpacing(2) 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 if self.addbuttons: # # some links & handlers # bh1 = Hyperlink(self.yesterday) bh1.addClickListener(getattr(self, 'onYesterday')) bh2 = Hyperlink(self.today) bh2.addClickListener(getattr(self, 'onToday')) bh3 = Hyperlink(self.tomorrow) bh3.addClickListener(getattr(self, 'onTomorrow')) bh4 = Hyperlink(self.cancel) 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.checkLinks(mth, yr) self.setVisible(True)
class ContainerUCA(VerticalPanel): def __init__(self, ws): VerticalPanel.__init__(self, Width='100%', Height='100%') self.codeTextArea = Element(Element=DOM.createDiv(), StyleName='codePanel') self.codeTextArea.setID('clip_text') #self.codeTextArea.setReadonly(True) #self.codeTextArea.addClickListener(listener=lambda:self.codeTextArea.selectAll()) ws.setCodePanel(self.codeTextArea) self.header = Header(self.changeLanguage) getWorkspace().setHeaderPanel(self.header) self.blockList = BlockList() self.hardwareList = HardwareList() self.hardwareList.addStyleName('invisible') self.left = Element(Element=DOM.createDiv(), Width='100%', Height='100%') ws.setBlockList(self.blockList) ws.setHardwaresList(self.hardwareList) self.serialMonitor = Element(Element=DOM.createDiv(), StyleName='serialMonitor') self.blocksPad = BlocksPad() self.hardwaresPad = HardwaresPad() self.hardwaresPad.addStyleName('invisible') self.middle = Element(Element=DOM.createDiv(), Width='100%', Height='100%') ws.setBlocksPad(self.blocksPad) ws.setHardwaresPad(self.hardwaresPad) def onLoad(self): self.add(self.header) self.setCellHeight(self.header, '38px') self.left.add(self.blockList) self.left.add(self.hardwareList) self.mainPanel = HorizontalPanel(Width='100%', Height='100%') self.mainPanel.add(self.left) self.mainPanel.setCellWidth(self.left, '250') self.middle.add(self.blocksPad) self.middle.add(self.hardwaresPad) self.center = VerticalPanel(Width='100%', Height='100%', StyleName="center_panel") self.center.add(self.middle) #--------------------------------------------------------------------------------------------------------- bottom = Element(Element=DOM.createDiv(), StyleName='drawer_bottom') self.showHideLeft = FocusWidget(Element=DOM.createDiv(), StyleName='control_bar close_left') self.showHideLeft.addClickListener(self.showHidePanelLeft) self.showHideLeft.setStyleAttribute('float', 'lef') bottom.add(self.showHideLeft) self.showHideRight = FocusWidget(Element=DOM.createDiv(), StyleName='control_bar') self.showHideRight.addClickListener(self.showHidePanelRight) bottom.add(self.showHideRight) self.showHideMonitor = FocusWidget(Element=DOM.createDiv(), StyleName='control_bar') self.showHideMonitor.addClickListener(self.showHidePanelMonitor) bottom.add(self.showHideMonitor) self.resizeMonitor = ResizeWidget(self.serialMonitor, 100, 400, invert=True, horizontal=False) DOM.setStyleAttribute(self.resizeMonitor.getElement(), "display", "none") bottom.add(self.resizeMonitor) self.center.add(bottom) self.center.setCellHeight(bottom, '20px') usbFlash = FocusWidget(Element=DOM.createDiv()) usbFlash.setID('cb_cf') DOM.setElemAttribute(usbFlash.getElement(), 'data-sections', 'usbflash serialmonitor') self.serialMonitor.add(usbFlash) progress = Element(Element=DOM.createDiv(), StyleName='progress progress-striped active') progress.setID('progress') DOM.setStyleAttribute(progress.getElement(), "display", "none") progress_val = Element(Element=DOM.createDiv(), StyleName='bar') progress_val.setID('progress_val') progress.add(progress_val) self.serialMonitor.add(progress) monitor = Element(Element=DOM.createDiv()) monitor.setID('monitor') self.serialMonitor.add(monitor) self.center.add(self.serialMonitor) self.center.setCellHeight(self.serialMonitor, '100') self.showHidePanelMonitor() #--------------------------------------------------------------------------------------------------------- self.mainPanel.add(self.center) #--------------------------------------------------------------------------------------------------------- self.cod = VerticalPanel(Width='100%', Height='100%', StyleName="right_panel") divCode = Element(Element=DOM.createDiv(), Width='100%', Height='100%', StyleName="download-button-container") divCode.add(self.codeTextArea) divButtonDownload = FocusWidget(Element=DOM.createDiv(), StyleName="download-button") #divButtonDownload.addClickListener(listener=lambda:exportWiringCode(self.codeTextArea.getText())) divButtonDownload.addClickListener(listener=lambda: exportWiringCode()) DOM.setInnerText(divButtonDownload.getElement(), 'download') divCode.add(divButtonDownload) self.cod.add(divCode) bot = Element(Element=DOM.createDiv(), StyleName='drawer_bottom') res = ResizeWidget(self.cod, 100, 500, invert=True) res.setStyleAttribute('float', 'left') bot.append(res) self.cod.add(bot) self.cod.setCellHeight(bot, '20px') self.mainPanel.add(self.cod) self.mainPanel.setCellWidth(self.cod, '200') self.showHidePanelRight() self.header.buttonBlocks.addClickListener(self.showBlocksList) self.header.buttonHarwares.addClickListener(self.showHardwaresList) self.header.buttonTranslate.addClickListener(self.showPanelRight) #self.header.buttonReload.addClickListener(self.hidePanelRight) #--------------------------------------------------------------------------------------------------------- self.add(self.mainPanel) stateChange() self.changeLanguage('pt_BR') #https://groups.google.com/forum/?fromgroups=#!topic/pyjamas-dev/a-u8hWZ6W0o #JS('''setOperationProgress(50);''') #JS('''$("#operation_output").html("Working...");''') #------------------------------------------------------------------------------------------------------------- #dynamic.ajax_import("jquery.min.js") #dynamic.ajax_import("lawnchair-0.6.1.min.js") #dynamic.ajax_import("BrowserDetect.js") #dynamic.ajax_import("compilerflasher.js", names = ['initializePlugin']) #JS("""@{{!initializePlugin}}();""") #dynamic.ajax_import("src-noconflict/ace.js", names = ['addPluginAce']) #JS("""@{{!addPluginAce}}();""") #JS("""addPluginAce();""") #JS("""var editor = ace.edit("editor"); # editor.setTheme("ace/theme/textmate"); # editor.getSession().setMode("ace/mode/c_cpp"); # alert();""") def changeLanguage(self, language): i18n.load(base_url='../lang', lang=language, onCompletion=self.changeTexts) def changeTexts(self): getWorkspace().getBlockList().changeTexts() #getWorkspace().getBlocksPad().changeTexts() nao pega os subblocks! for block in getWorkspace().getBlocks(): block.changeTexts() getWorkspace().getHeaderPanel().changeTexts() getWorkspace().getHardwaresList().changeTexts() getWorkspace().getHardwaresPad().changeTexts() def showBlocksList(self): self.hardwareList.addStyleName('invisible') self.blockList.removeStyleName('invisible') self.hardwaresPad.addStyleName('invisible') self.blocksPad.removeStyleName('invisible') self.blockList.refreshComponentBlocks(self.hardwaresPad.children) def showHardwaresList(self): self.blockList.addStyleName('invisible') self.hardwareList.removeStyleName('invisible') self.blocksPad.addStyleName('invisible') self.hardwaresPad.removeStyleName('invisible') def hidePanelRight(self): if DOM.getStyleAttribute( self.mainPanel.getWidgetTd(self.cod), 'display') == '': # bug: "block" in <td> not work's on firefox DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.cod), "display", "none") self.showHideRight.setStyleName('control_bar open_left') def showPanelRight(self): if DOM.getStyleAttribute(self.mainPanel.getWidgetTd(self.cod), 'display') == 'none': DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.cod), "display", "") self.showHideRight.setStyleName('control_bar close_right') def showHidePanelLeft(self): if DOM.getStyleAttribute(self.mainPanel.getWidgetTd(self.left), 'display') == '': DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.left), "display", "none") self.showHideLeft.setStyleName('control_bar open_right') else: DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.left), "display", "") self.showHideLeft.setStyleName('control_bar close_left') def showHidePanelMonitor(self): if DOM.getStyleAttribute( DOM.getParent(self.center.getWidgetTd(self.serialMonitor)), 'display') == 'none': DOM.setStyleAttribute( DOM.getParent(self.center.getWidgetTd(self.serialMonitor)), "display", "") self.showHideMonitor.setStyleName('collapse open_down') #JS("""addCodeBenderPlugin();@{{!addCodeBenderPlugin}}();""") DOM.setStyleAttribute(self.resizeMonitor.getElement(), "display", "") else: DOM.setStyleAttribute( DOM.getParent(self.center.getWidgetTd(self.serialMonitor)), "display", "none") self.showHideMonitor.setStyleName('collapse close_up') DOM.setStyleAttribute(self.resizeMonitor.getElement(), "display", "none") def showHidePanelRight(self): if DOM.getStyleAttribute(self.mainPanel.getWidgetTd(self.cod), 'display') == 'none': DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.cod), "display", "") self.showHideRight.setStyleName('control_bar close_right') else: DOM.setStyleAttribute(self.mainPanel.getWidgetTd(self.cod), "display", "none") self.showHideRight.setStyleName('control_bar open_left')
def draw(self): cont = VerticalPanel(Width='100%') header = HorizontalPanel(Width='100%', VerticalAlignment='middle', StyleName='aur-search-advanced-group-header') params = self.paramChooser addParam = Image(url='/ico/tick.png', Title='Add parameter to this group') addGroup = Image(url='/ico/table_add.png', Title='Nest group within this group') addGroupFull = Image(url='/ico/table_lightning.png', Title='Nest group within this group; all parameters') invertSelf = Image(url='/ico/exclamation.png', Title='Invert this parameter group') self.container.add(self.panel) self.panel.setWidget(cont) cont.add(header) if self.parent: d = Image(url='/ico/cross.png', Title='Delete this parameter group') d.addStyleName('aur-search-advanced-delete') header.add(d) header.setCellWidth(d, '1px') d.addClickListener(getattr(self, 'delSelf')) if self.title: t = Label(self.title, StyleName='aur-search-advanced-group-header-title') header.add(t) header.setCellWidth(t, '1px') header.add(params) header.add(addParam) header.add(addGroup) header.add(addGroupFull) header.add(invertSelf) header.setCellWidth(params, '1px') header.setCellWidth(addGroup, '1px') header.setCellWidth(addGroupFull, '1px') header.setCellWidth(invertSelf, '1px') for x in self.kind: params.addItem(x['item'], x['index']) cont.add(self.listPanel) self.listPanel.add(self.paramPanel) self.listPanel.add(self.childPanel) addParam.addClickListener(getattr(self, 'addParam')) addGroup.addClickListener(getattr(self, 'addGroup')) addGroupFull.addClickListener(getattr(self, 'addGroupFull')) invertSelf.addClickListener(getattr(self, 'invertSelf'))