def onDrop(self, event): dt = event.dataTransfer text = dt.getData('text') package = json.decode(text) x = DOM.eventGetClientX(event) y = DOM.eventGetClientY(event) scrollY = Window.getScrollTop() scrollX = Window.getScrollLeft() offsetX = int(package['offsetX']) offsetY = int(package['offsetY']) at = self.getAbsoluteTop() al = self.getAbsoluteLeft() posX, posY = x - (al - scrollX), y - (at - scrollY) w = DragWidget6(package['text']) self.add(w) makeDraggable(w) # firefox seems to be off-by-one in x. # firefox-specific code? #w.setStyleAttribute('left', posX - offsetX -1) w.setStyleAttribute('left', posX - offsetX) w.setStyleAttribute('top', posY - offsetY) w.removeStyleName('invisible') self.addMessage( "top:%s, left:%s, cy:%s cx:%s, sy:%s sx:%s dropy:%s dropx:%s" % (at, al, y, x, scrollY, scrollX, posY, posX)) DOM.eventPreventDefault(event)
def reduceterm(sender, maxlines): """When the Reduce button is pressed: call cc.runfile with our input. There is a maximum number of lines that we will output, to prevent a stalling browser and an overfull document. The user can raise this limit with a link. """ input = inputArea.getText() output = "" nlines = 0 def catchoutput(s, end="\n"): output += s + end nlines += 1 if nlines > maxlines: raise OverlongOutput() cc._defs = dict() try: cc.runfile(inputfile=io.StringIO(input), verbose=False, printout=catchoutput, printerr=catchoutput) except OverlongOutput: extra = FlowPanel(StyleName="terminated") extra.add(InlineLabel("Reduction terminated after %s lines. " % (maxlines,))) extra.add(Button("Try longer", functools.partial(queuereduce, maxlines=nextmaxlines(maxlines)))) showOutput(output, extra=extra) except Exception, e: Window.alert(e)
def swap(self, x1, y1): if self.base.control_panel.start_button.state == "up": return None blank_pos = self.getBlankPos() x2 = blank_pos[0] y2 = blank_pos[1] flag = False if x1 == x2: if (y1 - y2) in [1, -1]: flag = True elif y1 == y2: if (x1 - x2) in [1, -1]: flag = True if flag == True: w = self.getWidget(x1, y1) c = Cell(w.no, "images/button_%s.jpg" % w.no, "images/button_%s_down.jpg" % w.no) c.addMouseListener(CellListener()) c.x = x2 c.y = y2 c.screen = self self.setWidget(x2, y2, c) self.clearCell(x1, y1) self.incrCount() if self.complete(): Window.alert("Bingo!!!.. You won the game.. Congrats..")
def StartButtonPressed(self): self.CountTurn = 1 if int(self.PlayerNum.getText()) >= 2 and int(self.PlayerNum.getText()) <= 6 and int(self.WinScore.getText()) >= 10 and int(self.WinScore.getText()) <= 100: self.DPanel.remove(self.TxtInstructions, DockPanel.CENTER) self.BankButton.setVisible(True) self.RollButton.setVisible(True) # self.image.setVisible(True) self.TempBoard.setVisible(True) self.NameScore.setVisible(True) self.image = Image( self.DummyUrl + "images/0.png") self.image.setSize("200px", "300px") self.DPanel.add(self.image, DockPanel.CENTER) RootPanel().add(self.DPanel) self.StartButton.setEnabled(False) self.PlayerNum.setEnabled(False) self.WinScore.setEnabled(False) self.RollButton.setEnabled(True) self.TempBoard.setText(1,0,"Player"+str(1)) self.TempBoard.setText(1, 1, "0") self.NameScore.getRowFormatter().addStyleName(self.CountTurn,"Rows") else: Window.alert("Please Enter Correct Parameters " ) #Command for alert window return 0 VarPlayer = ["Player" + str(i) for i in xrange(1,int(self.PlayerNum.getText())+1)] i = 0 while i < int(self.PlayerNum.getText()): self.NameScore.setText(i+1, 0, VarPlayer[i]) self.NameScore.setText(i+1, 1, "0") self.VarTotScore.append(0) #m*1 vector of zeros indicating the initial scores i += 1
def onClick(self): if not self.survey.is_cookie_set() and self.mturk_input.accepted == True: if not self.survey.survey_filledout(): Window.alert("Please fill out the survey") else: self.survey.set_cookie() encoded_answers = [] for i,answer in enumerate(self.survey.get_answers()): encoded_answers.append(("survey_answer%d" % i,answer)) self.mturk_output.add_data(encoded_answers) self.mturk_output.add_data(self.sentence_set.get_sentences()) self.mturk_output.add_data(self.sentence_set.get_masks()) self.mturk_output.add_data(self.sentence_set.get_annotations()) self.mturk_output.mturk_form.submit() else: self.mturk_output.add_data(self.sentence_set.get_sentences()) self.mturk_output.add_data(self.sentence_set.get_masks()) self.mturk_output.add_data(self.sentence_set.get_annotations()) self.mturk_output.mturk_form.submit()
def onModuleLoad(self): dock = DockPanel(Width="100%") self.header = HTML(Width="100%", Height="220px") 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, "220px") dock.setCellWidth(self.footer, "100%") dock.setCellWidth(self.sidebar, "200px") RootPanel().add(dock) self.dock = dock self.loadPageList() Window.addWindowResizeListener(self) DeferredCommand.add(self)
def show_custom(self): self.dialog = DialogBox(StyleName='custom-dialog') self.dialog.setHTML('Custom Settings') contents = VerticalPanel(StyleName='contents') self.dialog.setWidget(contents) # contents of contents rows = HorizontalPanel() columns = HorizontalPanel() bombs = HorizontalPanel() buttons = HorizontalPanel() ADD(contents, rows, columns, bombs, buttons) self.row = TextBox() ADD(rows, Label('Rows:'), self.row) self.column = TextBox() ADD(columns, Label('Columns:'), self.column) self.bomb = TextBox() ADD(bombs, Label('Bombs:'), self.bomb) ADD(buttons, Button("OK", getattr(self, 'new_game')), \ Button("Cancel", getattr(self, 'close_dialog'))) left = (Window.getClientWidth() - 201) / 2 top = (Window.getClientHeight() - 190) / 2 self.dialog.setPopupPosition(left, top) self.dialog.show()
def setDragStartPosition(event): #, undo): dt = event.dataTransfer target = DOM.eventGetTarget(event) clientX, clientY = event.clientX, event.clientY absx, absy = clientX + Window.getScrollLeft( ), clientY + Window.getScrollTop() # para arrastar um component ou bloco entre abas from edu.uca.renderable.block.Block import Block from edu.uca.util.Serializable import saveStackBlock from edu.uca.Workspace import getWorkspace from edu.uca.renderable.hardware.ComponentBlock import ComponentBlock from edu.uca.util.Serializable import saveComponent if (isinstance(getWorkspace().getMovingBlock(), ComponentBlock)): package = json.dumps({ "offsetX": absx - DOM.getAbsoluteLeft(target), # armagenar a origem para undo "offsetY": absy - DOM.getAbsoluteTop(target), "componetHardware": saveComponent(getWorkspace().getMovingBlock()) }) elif (isinstance(getWorkspace().getMovingBlock(), Block)): package = json.dumps({ "offsetX": absx - DOM.getAbsoluteLeft(target), # armagenar a origem para undo "offsetY": absy - DOM.getAbsoluteTop(target), "stackBlock": saveStackBlock(getWorkspace().getMovingBlock()) }) dt.setData('text', package) dt.allowedEffects = 'copy' # using "copy" here because Windows Chrome does not like "move"
def setPopupPosition(self, left, top): if isinstance(left, basestring): if left.endswith('%'): left = int(left[:-1]) left = int(left * Window.getClientWidth() / 100) elif left.lower().endswith('px'): left = int(left[:-2]) if isinstance(top, basestring): if top.lower().endswith('%'): top = int(top[:-1]) top = int(top * Window.getClientHeight() / 100) elif top.endswith('px'): top = int(top[:-2]) left = max(left, 0) top = max(top, 0) # Account for the difference between absolute position and the # body's positioning context. left -= DOM.getBodyOffsetLeft() top -= DOM.getBodyOffsetTop() element = self.getElement() DOM.setStyleAttribute(element, "left", "%dpx" % left) DOM.setStyleAttribute(element, "top", "%dpx" % top)
def themesPanel(self, themes=None): Window.alert('line:111') themes = None if not themes: themes=['0','1', 'cms', 'pypress'] vPanel = VerticalPanel() for i in range(len(themes)): """ a_n = location.getPathName().split('/')[1] lambda1 = lambda x: w_l.pathname.replace('/'+a_n+'/', '/'+x+'/')+'?theme='+x lambda2 = lambda x: w_l.pathname.replace('/'+a_n+'/', '/a/')+'?theme='+x href = { 'cms' : lambda1, 'pypress' : lambda1, 'o' : lambda2, '1' : lambda2 }.get(themes[i], lambda2)(themes[i]) """ a=Button('theme '+themes[i], lambda x: location.setSearchDict({'theme': x.getID()}), StyleName='link') a.setID(themes[i]) vPanel.add(a) return vPanel
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 onClick(self, sender): if sender == self.newpage: self.todoId = None self.todoTextName.setText('') self.todoTextArea.setHTML('') return elif sender == self.view: name = self.todoTextName.getText() html = self.todoTextArea.getHTML() if not html: return p = HTMLDialog(name, html) p.setPopupPosition(10, 10) p.setWidth(Window.getClientWidth()-40) p.setHeight(Window.getClientHeight()-40) p.show() return elif sender == self.fDialogButton: Window.open(fileedit_url, "fileupload", "width=800,height=600") return dlg = FileDialog(fileedit_url) left = self.fDialogButton.getAbsoluteLeft() + 10 top = self.fDialogButton.getAbsoluteTop() + 10 dlg.setPopupPosition(left, top) dlg.show() id = self.remote.getPage(sender.getValue(sender.getSelectedIndex()),self) if id<0: self.status.setHTML("Server Error or Invalid Response")
def onRemoteResponse(self, response, request_info): # Window.alert(dir(request_info)) # Window.alert(request_info.method) # Window.alert(request_info.handler) # time.sleep( 3 ) Window.alert("inside MLAlgorithmService: compression is done") self.callback.loadImage(response)
def onMouseDown(self, sender, x, y): rx = x + Window.getScrollLeft() ry = y + Window.getScrollTop() if self.classify: self.PointList.append( Point(rx, ry, -1 ) ) else: self.PointList.append( Point(rx, ry, len(self.color)-1) )
def createRightPanel(self): span = self.stabPanel = SimplePanel(Height="100%") tabs = self.tabPanel = TabPanel(Width="100%", Border=1,Height="100%") adgui = self.adinfoPanel = AdinfoIFACE(self) tabs.add(adgui.panel, "AstroData Viewer") calsgui = self.calsPanel = CalsIFACE(self) tabs.add(calsgui.panel, "Calibrations") rsgui = RecipeSystemIFACE.ReducePanelIFACE(self) tabs.add(rsgui.panel, "Execute Reduce") rogui = RecipeSystemIFACE.ReduceOutputIFACE(self) tabs.add(rogui.panel, "Reduce Output") Window.addWindowResizeListener(rogui) tifs = self.tabIFACEs = [adgui, calsgui, rsgui, rogui] self.tabIFACEdict = {"adgui": tifs.index(adgui), "calsgui": tifs.index(calsgui), "rsgui": tifs.index(rsgui), "rogui": tifs.index(rogui)} self.curTabIFACE = tifs[0] tabs.selectTab(0) span.add(tabs) tabs.addTabListener(self, getattr(self, "onTabSelected")) return span
def __init__(self, parent=None): Sink.__init__(self, parent) self.frame = Frame("/summary", Size=("100%",rccutil.getHeight())) self.initWidget(self.frame) Window.addWindowResizeListener(self)
def jumpsFromGregorian(self, gregorianDate): """ - Obtention of Number of seconds ahead or before reference point - Calculation*: - Calculation of _Number of Cycle Jumps_ from reference point in number of seconds """ Window.alert(gregorianDate) gregorianDate = datetime.datetime(gregorianDate) Window.alert(isinstance(gregorianDate, datetime.datetime)) Window.alert(gregorianDate) jumps = 0 diff = datetime.datetime(gregorianDate) - datetime.datetime(self.referencePoint.START_DATE) Window.alert(diff.days) f = diff>0 diff = math.abs(diff) while diff>0: jumps = jumps+1 Window.alert(float(self.referencePoint.CREATION_SPEED)) if f: """original formula: (1*13/(self.referencePoint.SPEED*13^jumps))""" diff = diff - (1/(self.referencePoint.CREATION_SPEED*13^(jumps-1))) else: """original formula: (1*13/(self.referencePoint.SPEED/13^jumps))""" diff = diff - (1/(self.referencePoint.CREATION_SPEED/13^(jumps+1))) return jumps
def onSubmit(self, event): # This event is fired just before the form is submitted. We can take # this opportunity to perform validation. print "onSubmit", event if (len(self.tb.getText()) == 0): Window.alert("The text box must not be empty") event.setCancelled()
def onRemoteError(self, code, errobj, request_info): message = errobj['message'] if code != 0: Window.alert("HTTP error %d: %s" % (code, message['name'])) else: code = errobj['code'] Window.alert("JSONRPC Error %s: %s" % (code, message))
def onError(self, text): obj = JSONParser().decode(text) # Hack for 201 being seen as error if not obj['ok']: Window.alert(text) else: self.editor.reloadDocument()
def __init__(self, key, title, content): AbsolutePanel.__init__(self) self.edit_header = Label("Edit a Post", StyleName="header_label") self.edit_title_label = Label("Title:") self.edit_title = TextBox() self.edit_title.setMaxLength(255) self.edit_content = TextArea() self.edit_content.setVisibleLines(2) self.edit_button = Button("Save") self.edit_cancel_button = Button("Cancel") self.edit_hidden_key = Hidden() self.error_message_label = Label("", StyleName="error_message_label") edit_contents = VerticalPanel(StyleName="Contents", Spacing=4) edit_contents.add(self.edit_header) edit_contents.add(self.edit_title_label) edit_contents.add(self.edit_title) edit_contents.add(self.edit_content) edit_contents.add(self.edit_button) edit_contents.add(self.edit_cancel_button) edit_contents.add(self.error_message_label) edit_contents.add(self.edit_hidden_key) self.edit_dialog = DialogBox(glass=True) self.edit_dialog.setHTML('<b>Blog Post Form</b>') self.edit_dialog.setWidget(edit_contents) left = (Window.getClientWidth() - 900) / 2 + Window.getScrollLeft() top = (Window.getClientHeight() - 600) / 2 + Window.getScrollTop() self.edit_dialog.setPopupPosition(left, top) self.edit_dialog.hide()
def onTitlesChanged(self, titles): browser_title = '' for title in reversed(titles): browser_title += title + ' - ' browser_title = browser_title[:-3] Window.setTitle(browser_title)
def __init__(self, app): DialogBox.__init__(self) self.app = app self.table=FlexTable() self.table.setText(0, 0, "Please enter username and password") self.table.getFlexCellFormatter().setColSpan(0, 0, 2) self.table.setText(1, 0, "Username") self.handle = TextBox() h = getCookie('handle') self.handle.setText(h) self.table.setWidget(1, 1, self.handle) self.table.setText(2, 0, "Password") self.pwd = PasswordTextBox() self.table.setWidget(2, 1, self.pwd) self.table.setHTML(3,0,"") self.table.getFlexCellFormatter().setColSpan(3, 0, 2) h = HorizontalPanel() self.table.setWidget(4,0, h) self.table.getFlexCellFormatter().setColSpan(4, 0, 2) h.add(Button("Ok", getattr(self, "onOk"))) h.add(Button("Cancel", getattr(self, "onClose"))) h.setSpacing(4) self.setHTML("<b>Login</b>") self.setWidget(self.table) left = (Window.getClientWidth() - 200) / 2 top = (Window.getClientHeight() - 100) / 2 self.setPopupPosition(left,top)
def getCurrentOffsetPosition(event): target = DOM.eventGetTarget(event) clientX, clientY = event.clientX, event.clientY # pega pos absoluta do ponteiro do mouse absx, absy = clientX + Window.getScrollLeft( ), clientY + Window.getScrollTop() # ? - sempre 0,0 return absx - DOM.getAbsoluteLeft(target), absy - DOM.getAbsoluteTop( target) # subtrai pos xy do blockspad
def onClick(self, sender): if sender == self.newpage: self.todoId = None self.todoTextName.setText("") self.todoTextArea.setHTML("") return elif sender == self.view: name = self.todoTextName.getText() html = self.todoTextArea.getHTML() if not html: return p = HTMLDialog(name, html) p.setPopupPosition(10, 10) p.setWidth(Window.getClientWidth() - 40) p.setHeight(Window.getClientHeight() - 40) p.show() return elif sender == self.fDialogButton: Window.open(fileedit_url, "fileupload", "width=800,height=600") return dlg = FileDialog(fileedit_url) left = self.fDialogButton.getAbsoluteLeft() + 10 top = self.fDialogButton.getAbsoluteTop() + 10 dlg.setPopupPosition(left, top) dlg.show() id = self.remote.getPage(sender.getValue(sender.getSelectedIndex()), self) if id < 0: self.status.setHTML("Server Error or Invalid Response")
def onDrop(self, event): dt = event.dataTransfer text = dt.getData('text') package = json.decode(text) x = DOM.eventGetClientX(event) y = DOM.eventGetClientY(event) scrollY = Window.getScrollTop() scrollX = Window.getScrollLeft() offsetX = int(package['offsetX']) offsetY = int(package['offsetY']) at = self.getAbsoluteTop() al = self.getAbsoluteLeft() posX, posY = x - (al - scrollX), y - (at - scrollY) w = DragWidget6(package['text']) self.add(w) makeDraggable(w) # firefox seems to be off-by-one in x. # firefox-specific code? #w.setStyleAttribute('left', posX - offsetX -1) w.setStyleAttribute('left', posX - offsetX) w.setStyleAttribute('top', posY - offsetY) w.removeStyleName('invisible') self.addMessage( "top:%s, left:%s, cy:%s cx:%s, sy:%s sx:%s dropy:%s dropx:%s" % ( at, al, y, x, scrollY, scrollX, posY, posX)) DOM.eventPreventDefault(event)
def BankButtonPressed(self): self.BankButton.setEnabled(False) self.NameScore.setText(self.CountTurn, 1, int(self.NameScore.getText(self.CountTurn, 1)) + int(self.TempBoard.getText(1,1))) if int(self.NameScore.getText(self.CountTurn, 1)) >= int(self.WinScore.getText()): AlrtTxt = "Congratulation!!! Player"+ str(self.CountTurn) + " wins !!!!" Window.alert(AlrtTxt) self.DPanel.remove(self.image, DockPanel.CENTER) self.DPanel.add(self.TxtInstructions, DockPanel.CENTER) self.BankButton.setVisible(False) self.RollButton.setVisible(False) # self.image.setVisible(False) self.TempBoard.setVisible(False) self.NameScore.setVisible(False) i = int(self.PlayerNum.getText()) while i > 0: self.NameScore. removeRow(i) i -= 1 self.TempBoard.setText(1,0,"X") self.TempBoard.setText(1, 1, "0") self.StartButton.setEnabled(True) # self.OK.setEnabled(True) self.PlayerNum.setEnabled(True) self.WinScore.setEnabled(True) self.RollButton.setEnabled(False) self.BankButton.setEnabled(False) self.NameScore.getRowFormatter().removeStyleName(self.CountTurn,"Rows"); self.DPanel.remove(self.image, DockPanel.CENTER) self.image = Image( self.DummyUrl + "images/0.png") self.image.setSize("200px", "300px") self.DPanel.add(self.image, DockPanel.CENTER) self.DPanel.setCellHeight(self.image, "200px") self.DPanel.setCellWidth(self.image, "400px") RootPanel().add(self.DPanel) else: self.NameScore.getRowFormatter().removeStyleName(self.CountTurn,"Rows"); self.CountTurn += 1 if self.CountTurn % int(self.PlayerNum.getText()) == 1: self.CountTurn = 1 self.TempBoard.setText(1,0,"Player"+str(self.CountTurn)) self.TempBoard.setText(1, 1, "0") self.NameScore.getRowFormatter().addStyleName(self.CountTurn,"Rows"); else: self.TempBoard.setText(1,0,"Player"+str(self.CountTurn)) self.TempBoard.setText(1, 1, "0") self.NameScore.getRowFormatter().addStyleName(self.CountTurn,"Rows");
def check_win(self): for i in range(self.parent.getRowCount()): for j in range(self.parent.getColumnCount()): if self.parent.getWidget(i, j).light: return Window.alert('You win!!! But can you beat the next level?') global game game.next_level()
def onRemoteResponse(self, result, request_info): if result['result']: URL = result['URL'] Window.setLocation(URL) else: self.sender.setWidget( 0, 1, Label('Could not get login redirect URL: ' + result['error']))
def manageRootPanel(panel, id=None): if len(rootPanels) < 1: panelManager = RootPanelManager() Window.addWindowCloseListener(panelManager) rootPanels[id] = panel return panel
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 onRemoteResponse(self, response, request_info): try: if request_info.method == 'array_from_expr': values = [float(x) for x in response] for w, v in zip(self._array.values, values): w.setText(str(v)) except: Window.alert(response)
def onClick(self, sender=None): self.setFocus(True) # work out the relative position of cursor event = DOM.eventGetCurrentEvent() mouse_x = DOM.eventGetClientX(event) + Window.getScrollLeft() mouse_y = DOM.eventGetClientY(event) + Window.getScrollTop() self.moveControl(mouse_x - self.getAbsoluteLeft(), mouse_y - self.getAbsoluteTop(), True)
def check_win(self): for i in range(self.parent.getRowCount()): for j in range(self.parent.getColumnCount()): if self.parent.getWidget(i,j).light: return Window.alert('You win!!! But can you beat the next level?') global game game.next_level()
def onClick(self, sender=None): self.setFocus(True); # work out the relative position of cursor event = DOM.eventGetCurrentEvent() mouse_x = DOM.eventGetClientX(event) + Window.getScrollLeft() mouse_y = DOM.eventGetClientY(event) + Window.getScrollTop() self.moveControl(mouse_x - self.getAbsoluteLeft(), mouse_y - self.getAbsoluteTop())
def onMouseDown(self, sender, x, y): # regardless of drag_enabled, onMouseDown must prevent # default, in order to avoid losing focus. DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) if not self.drag_enabled: return self.dragging = True DOM.setCapture(self.getElement()) self.moveControl(x + Window.getScrollLeft(), y + Window.getScrollTop())
def createPanels(self): """ Create the various panels to be used by this application. This should be overridden by the subclass to create the various panels the application will use. Upon completion, the subclass should return a dictionary mapping the ID to use for each panel to the panel to be displayed. """ Window.alert("Must be overridden.")
def save(self, _): global gw pwd="" if self.password.getText() != "" or self.passwordRepeat.getText() != "": if self.password.getText() != self.passwordRepeat.getText(): Window.alert("Passwords differ"); return pwd = pwhash(self.password.getText()) gw.updateUser(self.app.cookie, self.uid, self.handle.getText(), self.name.getText(), pwd, self.admin.isChecked(), self.email.getText(), RPCCall(self.onUpdate))
def mouseOverMarker( self,ind ): Window.alert('test1') marker = self.markers[ind] iwo = InfoWindowOptions() iwo.position = marker['latlng'] iwo.content = marker['title'] Window.alert('test2') self.iw = InfoWindow( iwo ) self.iw.open( self.mapPanel.map )
def onRemoteResponse(self, response, request_info): ''' Called when a response is received from a RPC. ''' if request_info.method == 'getaccounts': #TODO self.updateGrid(response) else: Window.alert('Unrecognized JSONRPC method.')
def onMouseDown(self, sender, x, y): # regardless of drag_enabled, onMouseDown must prevent # default, in order to avoid losing focus. DOM.eventPreventDefault(DOM.eventGetCurrentEvent()); if not self.drag_enabled: return self.dragging = True DOM.setCapture(self.getElement()) self.moveControl(x + Window.getScrollLeft(), y + Window.getScrollTop())
def onTimer(self): print "hello" loc = Window.getLocation() print loc.getHash() print loc.getHost() print loc.getPageHref() print loc.getPathname() print loc.getSearchDict() Window.resize(300.0, 200.0)
def onRemoteResponse(self, response, requestInfo): self.errorInfoLabel.setText('') d = datetime.date.today() + datetime.timedelta(days=1) setCookie("LoggedInUser", response, d, path='/') loggedInUser = json.loads(response) if loggedInUser["is_superuser"] == True: Window.setLocation("/admin.html") else: Window.setLocation("/home.html")
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 __init__(self): def a(): Window.alert("in bar a") def b(): Window.alert("in bar b") Window.alert("you should now see 'in bar a', 'in bar b'") x = [a, b] for f in x: f()
def onMouseDown(self, sender, x, y): # regardless of drag_enabled, onMouseDown must prevent # default, in order to avoid losing focus. self.setFocus(True) DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) if not self.drag_enabled: return self.dragging = True GlassWidget.show(self) self.moveControl(x + Window.getScrollLeft(), y + Window.getScrollTop(), True)
def setGlassPosition(self): top = Window.getScrollTop() left = Window.getScrollLeft() height = Window.getClientHeight() width = Window.getClientWidth() DOM.setStyleAttribute(self.glass, "position", "absolute") DOM.setStyleAttribute(self.glass, "left", "%s" % \ left if left == 0 else "%spx" % left) DOM.setStyleAttribute(self.glass, "top", "%s" % \ top if top == 0 else "%spx" % top) DOM.setStyleAttribute(self.glass, "height", "%spx" % (top + height)) DOM.setStyleAttribute(self.glass, "width", "%spx" % (left + width))
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 apply_rule(self, rule, selected_indices, after): selected_formulas = [x for i, x in enumerate(proof.get_formula_list()) if i in selected_indices] selected_indices = [self.list_index_to_proof_index(n) for n in selected_indices] if not rule.is_applicable(selected_formulas): Window.alert(rule.name+selected_formulas[0].dump()) return def after1(formula, **kwargs): if not "predecessors" in kwargs: kwargs["predecessors"] = selected_indices self.add(formula, **kwargs) after() rule.apply(selected_formulas, after1)
def showDialog(self, event): contents = VerticalPanel(StyleName="Contents", Spacing=4) contents.add(HTML('You can place any contents you like in a dialog box.')) contents.add(Button("Close", getattr(self, "onClose"))) self._dialog = DialogBox(glass=True) self._dialog.setHTML('<b>Welcome to the dialog box</b>') self._dialog.setWidget(contents) left = (Window.getClientWidth() - 200) / 2 + Window.getScrollLeft() top = (Window.getClientHeight() - 100) / 2 + Window.getScrollTop() self._dialog.setPopupPosition(left, top) self._dialog.show()
def __init__(self): Composite.__init__(self) self.vp_list = VerticalPanel() self.sinks = [] self.selectedSink = -1 self.sp = ScrollPanel(self.vp_list) self.sp.setWidth("24em") self.initWidget(self.sp) self.setStyleName("ks-List") self.resize(Window.getClientWidth(), Window.getClientHeight())
def getDropPosition(target, event): dt = event.dataTransfer text = dt.getData('text') package = json.loads(text) x, y = DOM.eventGetClientX(event), DOM.eventGetClientY(event) scrollX, scrollY = Window.getScrollLeft(), Window.getScrollTop() if package == False: offsetX, offsetY = 0, 0 else: offsetX, offsetY = int(package['offsetX']), int( package['offsetY']) #BUG no chromium at, al = target.getAbsoluteTop(), target.getAbsoluteLeft() posX, posY = x - (al - scrollX), y - (at - scrollY) return max(posX - offsetX, 0), max(posY - offsetY, 0)
def onBtnClick(self, event): self.progress.setText('0%') if self.simple.isChecked(): self.form.submit() else: if AsyncUpload.is_old_browser(): Window.alert("Hmmm, your browser doesn't support this.") else: el = self.field.getElement() files = getattr(el, 'files') #TODO implement loop for multiple file uploads file = JS( "@{{files}}[0]") #otherwise pyjs thinks it's a string? AsyncUpload.asyncUpload(self.url, file, self)