def __init__(self, start_date, can_delete=True): # We need to use old form of inheritance because of pyjamas SimplePanel.__init__(self) self.vpanel = VerticalPanel() desc_panel = VerticalPanel() self.desc_box = TextBox() self.desc_box.setVisibleLength(44) self.desc_box.setStyleName('form-control') desc_lbl = Label('impediment description') desc_lbl.setStyleName('text-muted') desc_panel.add(self.desc_box) desc_panel.add(desc_lbl) # Set to False if loaded from database self.can_delete = can_delete status_panel = VerticalPanel() self.status_lst = ListBox(Height='34px') self.status_lst.setStyleName('form-control input-lg') self.status_lst.addItem('Open') self.status_lst.addItem('Closed') # we put date here self.status_lbl = Label('') self.set_start_date(start_date) self.status_lbl.setStyleName('text-muted') status_panel = VerticalPanel() status_panel.add(self.status_lst) status_panel.add(self.status_lbl) self.comment = Text_Area_Row('', 'why it exists or is being closed') hpanel = HorizontalPanel() hpanel.add(desc_panel) hpanel.add(Label(Width='10px')) hpanel.add(status_panel) self.vpanel.add(hpanel) self.vpanel.add(self.comment.panel())
def __init__(self, milestone_names, milestone_dates): # We need to use old form of inheritance because of pyjamas SimplePanel.__init__(self) self.milestone_dates = milestone_dates self.hpanel = HorizontalPanel() self.hpanel.setVerticalAlignment(HasAlignment.ALIGN_TOP) self.name = ListBox(Height='34px', Width='208px') self.name.setStyleName('form-control input-lg') self.name.addChangeListener(getattr(self, 'on_milestone_changed')) for m in milestone_names: self.name.addItem(m) if len(self.milestone_dates) > 0: self.planned_completion = Label(self.milestone_dates[0]) else: self.planned_completion = Label('Undefined') self.planned_completion.setStyleName('form-control text-normal') self.expected_completion = Report_Date_Field(cal_ID='end') self.expected_completion.getTextBox().setStyleName('form-control') self.expected_completion.setRegex(DATE_MATCHER) self.expected_completion.appendValidListener(self._display_ok) self.expected_completion.appendInvalidListener(self._display_error) self.expected_completion.validate(None) self.hpanel.add(self.name) self.hpanel.add(Label(Width='10px')) self.hpanel.add(self.planned_completion) self.hpanel.add(Label(Width='10px')) self.hpanel.add(self.expected_completion)
def __init__(self): # We need to use old form of inheritance because of pyjamas SimplePanel.__init__(self) self.hpanel = HorizontalPanel(Width='475px') self.hpanel.setVerticalAlignment(HasAlignment.ALIGN_BOTTOM) self.name = TextBox() self.name.setStyleName('form-control') self.status = ListBox() self.status.addItem('Active') self.status.addItem('Inactive') self.status.setVisibleItemCount(0) self.status.setStyleName('form-control input-lg') self.status.setSize('100px', '34px') lbl = Label('', Width='10px') self.add_btn = Button('Add') self.add_btn.setStyleName('btn btn-primary') self.del_btn = Button('Delete') self.del_btn.setStyleName('btn btn-danger') self.hpanel.add(self.name) self.hpanel.add(lbl) self.hpanel.add(self.status) self.hpanel.add(self.add_btn) self.hpanel.add(self.del_btn)
def __init__( self ): ListBox.__init__( self ) self.setVisibleItemCount( 1 ) self.setMultipleSelect( False ) for type in ['Last Day', 'Last Week', 'Last Month']: self.addItem( type ) self.setVisible( True )
def __init__(self, labelObjectPairs): ListBox.__init__(self) self.labelObjectPairs = labelObjectPairs self.setVisibleItemCount(1); # makes it a drop-down list # add each label as an item on the drop-down list for i in range(len(labelObjectPairs)): self.addItem( labelObjectPairs[i][LABEL_COL])
def __init__(self): AbsolutePanel.__init__(self) self.app = CompaniesApp() self.history = [] self.save = Button("save", self) self.selectDepartment = Button("select", self) self.selectEmployee = Button("select", self) self.edit = Button("edit", self) self.cut = Button("cut", self) self.back = Button("back", self) self.name = TextBox() self.address = TextBox() self.manager = TextBox() self.departments = ListBox(Size=("100%"), VisibleItemCount="5") self.employees = ListBox(Size=("100%"), VisibleItemCount="5") self.total = TextBox() self.errors = VerticalPanel() self.grid = Grid() self.allPanels = VerticalPanel() self.allPanels.add(self.grid) self.allPanels.add(self.errors) self.add(self.allPanels) self.initCompanyGUI()
def __init__(self,parent): AbsolutePanel.__init__(self) self.roleList = ListBox() self.roleList.setWidth('300px') self.roleList.setVisibleItemCount(6) self.roleList.addChangeListener(self.onListChange) #self.roleList.addKeyboardListener(self) self.roleCombo = ListBox() self.roleCombo.addKeyboardListener(self) self.roleCombo.addChangeListener(self.onComboChange) self.addBtn = Button("Add") self.addBtn.setEnabled(False) self.removeBtn = Button("Remove") self.removeBtn.setEnabled(False) vpanel = VerticalPanel() vpanel.add(self.roleList) hpanel = HorizontalPanel() hpanel.add(self.roleCombo) hpanel.add(self.addBtn) hpanel.add(self.removeBtn) vpanel.add(hpanel) self.add(vpanel) self.clearForm() return
def __init__(self, theorem, **kwargs): DialogWindow.__init__(self, modal=True, close=True) self.theorem = theorem v = VerticalPanel() v.setWidth(300) # v.setHeight(500) self.setText("save") self.setPopupPosition(100, 100) self.setStyleAttribute("background-color", "#ffffff") self.setStyleAttribute("color", "red") self.setStyleAttribute("border-width", "5px") self.setStyleAttribute("border-style", "solid") self.im = Image() self.im.setUrl(latex_to_url(self.theorem.formula.to_latex())) v.add(self.im) h = HorizontalPanel() self.radio = RadioButton("group1", "Existing folder:") h.add(self.radio) self.list = ListBox() self.list.setVisibleItemCount(1) for f in Theorem.get_all_folders(): self.list.addItem(f) h.add(self.list) v.add(h) h = HorizontalPanel() h.add(RadioButton("group1", "New folder:")) self.radio.setChecked(True) self.textbox = TextBox() h.add(self.textbox) v.add(h) v.add(Button("Done", self.done_click)) self.add(v)
def editMovieButton_Click(sender): # Add textboxes and listbox editMovieButton.setVisible(False) cancelButton.setVisible(True) saveButton.setVisible(True) editCategory = TextBox() editName = TextBox() editRating = ListBox(False) for i in range(self.MAX_RATING + 1): editRating.addItem(str(i)) # Variable width textboxes catlen = len(movie.category) namelen = len(movie.name) if (catlen > 8): editCategory.setWidth(str(catlen*10) + "px") else: editCategory.setWidth("80px") if (namelen > 8): editName.setWidth(str(namelen*10) + "px") else: editName.setWidth("80px") self.moviesFlexTable.setWidget(row, 1, editCategory) self.moviesFlexTable.setWidget(row, 2, editName) self.moviesFlexTable.setWidget(row, 3, editRating) editCategory.setText(movie.category) editName.setText(movie.name) editRating.setSelectedIndex(movie.rating)
def __init__(self, tabBar=None, *kwargs): TabPanel.__init__(self, tabBar, *kwargs) self.parent_buoy = None self.tabs = [{'hovertype' : ListBox(), 'name' : 'Cost'}, {'hovertype' : ListBox(), 'name' : 'Speed'}] self.cost = self.tabs[0]['hovertype'] items = ['cheap','next to cheap','average','above average','expensive','if you have to ask'] self.cost.setVisibleItemCount(len(items)) for item in items: self.cost.addItem(item) self.cost.addChangeListener(self) self.speed = self.tabs[1]['hovertype'] items = ['very slow','slow','average','above average','fast','quick','hyper','turbo','lightening','light'] self.speed.setVisibleItemCount(len(items)) for item in items: self.speed.addItem(item) self.speed.addChangeListener(self) for tab in self.tabs: h = HorizontalPanel() h.add(tab['hovertype']) self.add(h, tab['name'])
def makeFileChooser(): l = ListBox() for i, tup in enumerate(files): name, content = tup l.addItem(name, i) l.addChangeListener(loadFile) return l
def __init__(self, parent): AbsolutePanel.__init__(self) self.roleList = ListBox() self.roleList.setWidth('300px') self.roleList.setVisibleItemCount(6) self.roleList.addChangeListener(self.onListChange) #self.roleList.addKeyboardListener(self) self.roleCombo = ListBox() self.roleCombo.addKeyboardListener(self) self.roleCombo.addChangeListener(self.onComboChange) self.addBtn = Button("Add") self.addBtn.setEnabled(False) self.removeBtn = Button("Remove") self.removeBtn.setEnabled(False) vpanel = VerticalPanel() vpanel.add(self.roleList) hpanel = HorizontalPanel() hpanel.add(self.roleCombo) hpanel.add(self.addBtn) hpanel.add(self.removeBtn) vpanel.add(hpanel) self.add(vpanel) self.clearForm() return
def __init__(self, labelObjectPairs): ListBox.__init__(self) self.labelObjectPairs = labelObjectPairs self.setVisibleItemCount(1) # makes it a drop-down list # add each label as an item on the drop-down list for i in range(len(labelObjectPairs)): self.addItem(labelObjectPairs[i][LABEL_COL])
def __init__(self,app): self.app=app self.form = FormPanel() self.form.setEncoding("multipart/form-data") self.form.setMethod("post") self.msg = HTML("<b>Uploading</b>") self.table = FlexTable() self.table.setText(0,0, "Problem") self.table.setText(1,0, "Language") self.table.setText(2,0, "Program File") self.table.setText(3,0, "Program source") self.problem = ListBox() self.problem.insertItem("Detect",-1,-1) self.problem.setName("problem") self.table.setWidget(0,1,self.problem) self.lang = ListBox() self.lang.insertItem("Detect","",-1) self.lang.insertItem("C/C++","cc",-1) self.lang.insertItem("Java","Java",-1) self.lang.insertItem("Python","Python",-1) self.lang.setName("lang") self.table.setWidget(1,1,self.lang) self.cookie = Hidden() self.cookie.setName("cookie") self.table.setWidget(5,0,self.cookie) self.file = FileUpload() self.file.setName("file"); self.table.setWidget(2,1,self.file) self.source = TextArea() self.source.setName("source") self.source.setWidth("600"); self.source.setHeight("400"); self.source.setText("""//$$problem: 1$$ //$$language: cc$$ #include <unistd.h> #include <stdio.h> int main() { int a,b; scanf("%d %d",&a,&b); printf("%d\\n",a+b); return 0; }""") self.source.addChangeListener(self.onChange) self.table.setWidget(3,1,self.source) self.button = Button("Submit",self) self.table.setWidget(4,1, self.button) self.table.setWidget(5,1, self.msg) self.msg.setVisible(False) self.form.setWidget(self.table) self.form.setAction("../upload.py/submit") self.form.addFormHandler(self)
def __init__(self,parent): AbsolutePanel.__init__(self) ftable = FlexTable() ftable.setWidget(0, 0, Label("First Name", wordWrap=False)) ftableFormatter = ftable.getFlexCellFormatter() self.firstInput = TextBox() self.firstInput.addChangeListener(self.checkValid) self.firstInput.addKeyboardListener(self) ftable.setWidget(0, 1, self.firstInput) ftable.setWidget(1, 0, Label("Last Name", wordWrap=False)) self.lastInput = TextBox() self.lastInput.addChangeListener(self.checkValid) self.lastInput.addKeyboardListener(self) ftable.setWidget(1, 1, self.lastInput) ftable.setWidget(2, 0, Label("Email", wordWrap=False)) self.emailInput = TextBox() self.emailInput.addChangeListener(self.checkValid) self.emailInput.addKeyboardListener(self) ftable.setWidget(2, 1, self.emailInput) ftable.setWidget(3, 0, Label("Username", wordWrap=False)) self.usernameInput = TextBox() self.usernameInput.addChangeListener(self.checkValid) self.usernameInput.addKeyboardListener(self) ftable.setWidget(3, 1, self.usernameInput) ftable.setWidget(4, 0, Label("Password", wordWrap=False)) self.passwordInput = PasswordTextBox() self.passwordInput.addChangeListener(self.checkValid) self.passwordInput.addKeyboardListener(self) ftable.setWidget(4, 1, self.passwordInput) ftable.setWidget(5, 0, Label("Confirm", wordWrap=False)) self.confirmInput = PasswordTextBox() self.confirmInput.addChangeListener(self.checkValid) self.confirmInput.addKeyboardListener(self) ftable.setWidget(5, 1, self.confirmInput) ftable.setWidget(6, 0, Label("Department", wordWrap=False)) self.departmentCombo = ListBox() self.departmentCombo.addChangeListener(self.checkValid) self.departmentCombo.addKeyboardListener(self) ftable.setWidget(6, 1, self.departmentCombo) hpanel = HorizontalPanel() self.addBtn = Button("Add User") self.addBtn.setEnabled(False) hpanel.add(self.addBtn) self.cancelBtn = Button("Cancel") hpanel.add(self.cancelBtn) ftable.setWidget(7, 0, hpanel) ftableFormatter.setColSpan(7, 0, 2) self.add(ftable) return
def create_combo_box(self): """ Returns the QComboBox used for the editor control. """ control = ListBox() control.setVisibleItemCount(0) # control.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents) # control.setSizePolicy(QtGui.QSizePolicy.Maximum, # QtGui.QSizePolicy.Fixed) return control
def __init__(self): DockPanel.__init__(self) self.setSize('100%', '100%') # widgets topPanel = HorizontalPanel() self.add(topPanel, DockPanel.NORTH) places = { "chicago, il": "Chicago", "st louis, mo": "St Louis", "joplin, mo": "Joplin, MO", "oklahoma city, ok": "Oklahoma City", "amarillo, tx": "Amarillo", "gallup, nm": "Gallup, NM", "flagstaff, az": "Flagstaff, AZ", "winona, az": "Winona", "kingman, az": "Kingman", "barstow, ca": "Barstow", "san bernardino, ca": "San Bernardino", "los angeles, ca": "Los Angeles" } self.start = ListBox() self.end = ListBox() for value in places: self.start.addItem(places[value], value) self.end.addItem(places[value], value) self.start.addChangeListener(self.calcRoute) self.end.addChangeListener(self.calcRoute) topPanel.add(self.start) topPanel.add(self.end) # now, the map mapPanel = SimplePanel() mapPanel.setSize('800', '500') self.add(mapPanel, DockPanel.CENTER) chigado = LatLng(41.850033, -87.6500523) options = MapOptions(zoom=7, center=chigado, mapTypeId=MapTypeId.ROADMAP) self.map = Map(mapPanel.getElement(), options) # initialize the renderer self.directionsDisplay = DirectionsRenderer() self.directionsDisplay.setMap(self.map) self.directionsService = DirectionsService()
def __init__(self): DockPanel.__init__(self) self.setSize('100%', '100%') # widgets topPanel = HorizontalPanel() self.add(topPanel, DockPanel.NORTH) places = { "chicago, il": "Chicago", "st louis, mo": "St Louis", "joplin, mo": "Joplin, MO", "oklahoma city, ok": "Oklahoma City", "amarillo, tx": "Amarillo", "gallup, nm": "Gallup, NM", "flagstaff, az": "Flagstaff, AZ", "winona, az": "Winona", "kingman, az": "Kingman", "barstow, ca": "Barstow", "san bernardino, ca": "San Bernardino", "los angeles, ca": "Los Angeles"} self.start = ListBox() self.end = ListBox() for value in places: self.start.addItem(places[value], value) self.end.addItem(places[value], value) self.start.addChangeListener(self.calcRoute) self.end.addChangeListener(self.calcRoute) topPanel.add(self.start) topPanel.add(self.end) # now, the map mapPanel = SimplePanel() mapPanel.setSize('800', '500') self.add(mapPanel, DockPanel.CENTER) chigado = LatLng(41.850033, -87.6500523) options = MapOptions(zoom=7, center=chigado, mapTypeId=MapTypeId.ROADMAP) self.map = Map(mapPanel.getElement(), options) # initialize the renderer self.directionsDisplay = DirectionsRenderer() self.directionsDisplay.setMap(self.map) self.directionsService = DirectionsService()
def __init__(self): self.artist ='' self.start_date = '' self.end_date = '' self.period_search ='' self.search_option = 1 #declare the general interface widgets self.panel = DockPanel(StyleName = 'background') self.ret_area = TextArea() self.ret_area.setWidth("350px") self.ret_area.setHeight("90px") self.options = ListBox() self.search_button = Button("Search", getattr(self, "get_result"), StyleName = 'button') #set up the date search panel; it has different text boxes for #to and from search dates self.date_search_panel = VerticalPanel() self.date_search_start = TextBox() self.date_search_start.addInputListener(self) self.date_search_end = TextBox() self.date_search_end.addInputListener(self) self.date_search_panel.add(HTML("Enter as month/day/year", True, StyleName = 'text')) self.date_search_panel.add(HTML("From:", True, StyleName = 'text')) self.date_search_panel.add(self.date_search_start) self.date_search_panel.add(HTML("To:", True, StyleName = 'text')) self.date_search_panel.add(self.date_search_end) #set up the artist search panel self.artist_search = TextBox() self.artist_search.addInputListener(self) self.artist_search_panel = VerticalPanel() self.artist_search_panel.add(HTML("Enter artist's name:",True, StyleName = 'text')) self.artist_search_panel.add(self.artist_search) #Put together the list timespan search options self.period_search_panel = VerticalPanel() self.period_search_panel.add(HTML("Select a seach period:",True, StyleName = 'text')) self.period_search = ListBox() self.period_search.setVisibleItemCount(1) self.period_search.addItem("last week") self.period_search.addItem("last month") self.period_search.addItem("last year") self.period_search.addItem("all time") self.period_search_panel.add(self.period_search) #add the listeners to the appropriate widgets self.options.addChangeListener(self) self.period_search.addChangeListener(self) self.ret_area_scroll = ScrollPanel() self.search_panel = HorizontalPanel() self.options_panel = VerticalPanel()
def __init__(self, **kwargs): VerticalPanel.__init__(self, **kwargs) info = """<h2>JSON-RPC Example</h2> #<p>This example demonstrates the calling of server services with # <a href="http://json-rpc.org/">JSON-RPC</a>. #</p> #<p>Choose a service below, and press a the "call service" button to initiate it. An echo service simply sends the exact same text back that it receives. # </p>""" self.status = Label() self.dockey = TextBox(Text="12") self.TEXT_WAITING = "Waiting for response..." self.METHOD_ECHO = "Echo" self.METHOD_DOCTYPES = "get doc types" self.METHOD_UPPERCASE = "get schema" self.METHOD_GETINBOX = "get inbox" self.METHOD_GETDOCS = "get documents" self.methods = [ self.METHOD_ECHO, self.METHOD_DOCTYPES, self.METHOD_UPPERCASE, self.METHOD_GETINBOX, self.METHOD_GETDOCS ] self.method_list = ListBox() self.method_list.setName("hello") self.method_list.setVisibleItemCount(1) for method in self.methods: self.method_list.addItem(method) self.method_list.setSelectedIndex(0) method_panel = HorizontalPanel() method_panel.add(HTML("Remote string method to call: ")) method_panel.add(self.method_list) method_panel.setSpacing(8) self.button_action = Button("Call Service", self) buttons = HorizontalPanel() buttons.add(self.button_action) buttons.setSpacing(8) panel = VerticalPanel() panel.add(HTML(info)) panel.add(HTML("Primary key of the patient in the database:")) panel.add(self.dockey) panel.add(method_panel) panel.add(buttons) panel.add(self.status) self.add(panel)
def __init__(self): # We need to use old form of inheritance because of pyjamas SimplePanel.__init__(self) self.hpanel = HorizontalPanel(Width='755px') self.hpanel.setVerticalAlignment(HasAlignment.ALIGN_TOP) self.name = TextBox() self.name.setStyleName('form-control') self.start = Report_Date_Field(cal_ID='start') self.start.getTextBox().setStyleName('form-control') self.start.setRegex(DATE_MATCHER) self.start.appendValidListener(self._display_ok) self.start.appendInvalidListener(self._display_error) self.start.validate(None) self.end = Report_Date_Field(cal_ID='end') self.end.getTextBox().setStyleName('form-control') self.end.setRegex(DATE_MATCHER) self.end.appendValidListener(self._display_ok) self.end.appendInvalidListener(self._display_error) self.end.validate(None) self.status = ListBox() self.status.addItem('Active') self.status.addItem('Inactive') self.status.setVisibleItemCount(0) self.status.setStyleName('form-control input-lg') self.status.setSize('100px', '34px') spacer1 = Label(Width='10px') spacer2 = Label(Width='10px') spacer3 = Label(Width='10px') self.add_btn = Button('Add') self.add_btn.setStyleName('btn btn-primary') self.del_btn = Button('Delete') self.del_btn.setStyleName('btn btn-danger') self.hpanel.add(self.name) self.hpanel.add(spacer1) self.hpanel.add(self.status) self.hpanel.add(spacer2) self.hpanel.add(self.start) #self.hpanel.add(spacer3) self.hpanel.add(self.end) self.hpanel.add(self.add_btn) self.hpanel.add(Label(Width='10px')) self.hpanel.add(self.del_btn)
class SelectionBox(HorizontalPanel): """ This is a text box with the corresponding word that is to be normalized """ def __init__(self, token_index, target_word, options): HorizontalPanel.__init__(self) self.token_index = token_index self.table = FlexTable() self.label = Label(target_word + ":\t") self.dropdown = ListBox() for option in options: self.dropdown.addItem(option) self.add(self.label) self.add(self.dropdown)
class TheoremPanel(ScrollPanel): def __init__(self, after): ScrollPanel.__init__(self, Size=("630px", "500px")) self.after = after self.pok = VerticalPanel() self.add(self.pok) self.images = list() def onItemSelected(): item = self.list2.getItemText(self.list2.getSelectedIndex()) self.refresh_theorems(item) self.list2 = ListBox() self.list2.setVisibleItemCount(1) for f in Theorem.get_all_folders(): self.list2.addItem(f) self.pok.add(self.list2) self.list2.addChangeListener(onItemSelected) self.refresh_theorems(self.list2.getItemText(self.list2.getSelectedIndex())) def remove_images(self): for im in self.images: self.pok.remove(im) self.images = list() def refresh_theorems(self, folder): self.remove_images() def onClick(theorem): def name(n): return "var" + str(n + 1) def print_scheme(n): return ["\\alpha", "\\beta", "\\gamma", "\\delta", "\\epsilon"][n] def poas(sender): if len(theorem.operations) == 1: constants = [Operation("const" + str(i + 1), 0, print_scheme(i), name(i), Operation.EXPRESSION) for i in range(theorem.operations[0].no_of_args)] def after1(f): self.after( theorem.formula.substitute_definition(Formula([theorem.operations[0]] + constants), f), predecessors=[], rule_name="insert") request_formula([op for op in proof.get_operations()] + constants, after1, type=('rel' if theorem.operations[0].type == Operation.RELATION else 'exp')) else: self.after(theorem.formula, predecessors=[], rule_name="insert") return poas for ax in [x for x in Theorem.theorems if x.folder == folder]: im = Image() im.addClickListener(onClick(ax)) im.setUrl(latex_to_url(ax.formula.to_latex())) self.pok.add(im) self.images.append(im)
def onModuleLoad(self): self.TEXT_WAITING = "Waiting for response..." self.TEXT_ERROR = "Server Error" self.METHOD_ECHO = "Echo" self.METHOD_REVERSE = "Reverse" self.METHOD_UPPERCASE = "UPPERCASE" self.METHOD_LOWERCASE = "lowercase" self.methods = [self.METHOD_ECHO, self.METHOD_REVERSE, self.METHOD_UPPERCASE, self.METHOD_LOWERCASE] self.remote_php = EchoServicePHP() self.remote_py = EchoServicePython() self.status=Label() self.text_area = TextArea() self.text_area.setText("""{'Test'} [\"String\"] \tTest Tab Test Newline\n after newline """ + r"""Literal String: {'Test'} [\"String\"] """) self.text_area.setCharacterWidth(80) self.text_area.setVisibleLines(8) self.method_list = ListBox() self.method_list.setName("hello") self.method_list.setVisibleItemCount(1) for method in self.methods: self.method_list.addItem(method) self.method_list.setSelectedIndex(0) method_panel = HorizontalPanel() method_panel.add(HTML("Remote string method to call: ")) method_panel.add(self.method_list) method_panel.setSpacing(8) self.button_php = Button("Send to PHP Service", self) self.button_py = Button("Send to Python Service", self) buttons = HorizontalPanel() buttons.add(self.button_php) buttons.add(self.button_py) buttons.setSpacing(8) info = """<h2>JSON-RPC Example</h2> <p>This example demonstrates the calling of server services with <a href="http://json-rpc.org/">JSON-RPC</a>. </p> <p>Enter some text below, and press a button to send the text to an Echo service on your server. An echo service simply sends the exact same text back that it receives. </p>""" panel = VerticalPanel() panel.add(HTML(info)) panel.add(self.text_area) panel.add(method_panel) panel.add(buttons) panel.add(self.status) RootPanel().add(panel)
def __init__(self, theorem, **kwargs): DialogWindow.__init__(self, modal=True, close=True) self.theorem=theorem v = VerticalPanel() v.setWidth(300) # v.setHeight(500) self.setText("save") self.setPopupPosition(100, 100) self.setStyleAttribute("background-color", "#ffffff") self.setStyleAttribute("color", "red") self.setStyleAttribute("border-width", "5px") self.setStyleAttribute("border-style", "solid") self.im=Image() self.im.setUrl(latex_to_url(self.theorem.formula.to_latex())) v.add(self.im) h=HorizontalPanel() self.radio=RadioButton("group1", "Existing folder:") h.add(self.radio) self.list = ListBox() self.list.setVisibleItemCount(1) for f in Theorem.get_all_folders(): self.list.addItem(f) h.add(self.list) v.add(h) h=HorizontalPanel() h.add(RadioButton("group1", "New folder:")) self.radio.setChecked(True) self.textbox=TextBox() h.add(self.textbox) v.add(h) v.add(Button("Done",self.done_click)) self.add(v)
def onModuleLoad(self): '''Create initial view of the panel. ''' # Container that keeps everything self.panel = VerticalPanel() self.panel.setSpacing(10) # Create list of projects proj_list = ListBox(Height='34px') proj_list.addItem('') proj_list.setVisibleItemCount(0) proj_list.addChangeListener(getattr(self, 'on_project_changed')) proj_list.setStyleName('form-control input-lg') self.proj_row = Form_Row('Select project', proj_list, help='project, status of which you want to report') # Project-specific container self.project_panel = VerticalPanel() # Submit report button self.submit_btn = Button('Submit report', getattr(self, 'send_data')) self.submit_btn.setStyleName('btn btn-primary btn-lg') self.submit_btn.setEnabled(False) self.msg_lbl = HTMLPanel('', Width='475px') # Add controls here self.panel.add(self.proj_row.panel()) self.panel.add(self.project_panel) self.panel.add(Label(Height='20px')) self.panel.add(self.msg_lbl) btn_holder = HorizontalPanel() btn_holder.add(self.submit_btn) help_btn = HTMLPanel('') help_btn.setHTML(MODAL_PNL) btn_holder.add(Label(Width='10px')) btn_holder.add(help_btn) self.panel.add(btn_holder) self.root = RootPanel('report') self.root.add(self.panel)
def __init__(self,parent): AbsolutePanel.__init__(self) ftable = FlexTable() ftable.setWidget(0, 0, Label("First Name", wordWrap=False)) ftableFormatter = ftable.getFlexCellFormatter() self.firstInput = TextBox() self.firstInput.addChangeListener(self.checkValid) self.firstInput.addKeyboardListener(self) ftable.setWidget(0, 1, self.firstInput) ftable.setWidget(1, 0, Label("Last Name", wordWrap=False)) self.lastInput = TextBox() self.lastInput.addChangeListener(self.checkValid) self.lastInput.addKeyboardListener(self) ftable.setWidget(1, 1, self.lastInput) ftable.setWidget(2, 0, Label("Email", wordWrap=False)) self.emailInput = TextBox() self.emailInput.addChangeListener(self.checkValid) self.emailInput.addKeyboardListener(self) ftable.setWidget(2, 1, self.emailInput) ftable.setWidget(3, 0, Label("Username", wordWrap=False)) self.usernameInput = TextBox() self.usernameInput.addChangeListener(self.checkValid) self.usernameInput.addKeyboardListener(self) ftable.setWidget(3, 1, self.usernameInput) ftable.setWidget(4, 0, Label("Password", wordWrap=False)) self.passwordInput = PasswordTextBox() self.passwordInput.addChangeListener(self.checkValid) self.passwordInput.addKeyboardListener(self) ftable.setWidget(4, 1, self.passwordInput) ftable.setWidget(5, 0, Label("Confirm", wordWrap=False)) self.confirmInput = PasswordTextBox() self.confirmInput.addChangeListener(self.checkValid) self.confirmInput.addKeyboardListener(self) ftable.setWidget(5, 1, self.confirmInput) ftable.setWidget(6, 0, Label("Department", wordWrap=False)) self.departmentCombo = ListBox() self.departmentCombo.addChangeListener(self.checkValid) self.departmentCombo.addKeyboardListener(self) ftable.setWidget(6, 1, self.departmentCombo) hpanel = HorizontalPanel() self.addBtn = Button("Add User", self.onAdd) self.addBtn.setEnabled(False) hpanel.add(self.addBtn) self.cancelBtn = Button("Cancel", self.onCancel) hpanel.add(self.cancelBtn) ftable.setWidget(7, 0, hpanel) ftableFormatter.setColSpan(7, 0, 2) self.add(ftable) return
def __init__(self, sink): Composite.__init__(self) self.remote = sink.remote panel = VerticalPanel(Width="100%", Spacing=8) self.view = Button("View", self) self.newpage = Button("New", self) self.todoId = None self.todoTextName = TextBox() self.todoTextName.addKeyboardListener(self) self.todoTextArea = RichTextEditor(basePath="/fckeditor/") self.todoTextArea.setWidth("100%") self.todoTextArea.addSaveListener(self) self.todoList = ListBox() self.todoList.setVisibleItemCount(7) self.todoList.setWidth("200px") self.todoList.addClickListener(self) self.fDialogButton = Button("Upload Files", self) self.status = HTML() panel.add(HTML("Status:")) panel.add(self.status) panel.add(self.fDialogButton) panel.add(Label("Create New Page (doesn't save current one!):")) panel.add(self.newpage) panel.add(Label("Add/Edit New Page:")) panel.add(self.todoTextName) panel.add(Label("Click to Load and Edit (doesn't save current one!):")) panel.add(self.todoList) panel.add(self.view) panel.add( Label( "New Page HTML. Click 'save' icon to save. (pagename is editable as well)" )) panel.add(self.todoTextArea) self.setWidget(panel) self.remote.getPages(self)
def __init__(self, handle, idx, checkOptions = [False, True]): HorizontalPanel.__init__(self) self.log = logging.getConsoleLogger(type(self).__name__, lev) self.log.disabled = False self.log.debug('__init__: Instantiation') self.idx = idx self._handle = handle self._checkOptions = checkOptions self.setStyleName('os-mech-checkbox-options') #checkbox = CheckBox('symbol') #checkbox.setChecked(checkOptions[0]) #checkbox.addClickListener(self.onClickOption) #checkbox.setID('CBSY%d'%idx) #self.append(checkbox) #checkbox = CheckBox('value') #checkbox.setChecked(checkOptions[1]) #checkbox.addClickListener(self.onClickOption) #checkbox.setID('CBVA%d'%idx) #self.append(checkbox) self._textBoxRatio = TextBox('1:1') self._ratioCache = self._textBoxRatio.getText() self._textBoxRatio.setTitle('Ratio') self._ratioCache = self._textBoxRatio.getText() self._textBoxRatio.addChangeListener(self.onRatioChange) self._textBoxRatio.setID('TXRT%d'%idx) self._textBoxRatio.setStyleName('os-mech-textbox-ratio') self._listBoxSize = ListBox() self._listBoxSize.addChangeListener(self.onSizeSet) self._listBoxSize.setVisibleItemCount(1) self._listBoxSize.setStyleName('os-mech-listbox-size') self._listBoxUnit = ListBox() self._listBoxUnit.addChangeListener(self.onUnitSet) self._listBoxUnit.setVisibleItemCount(1) self._listBoxUnit.setStyleName('os-mech-listbox-unit') self.append(Label('Ratio')) self.append(self._textBoxRatio) self.append(Label('Size')) self.append(self._listBoxSize) self.append(Label('Unit')) self.append(self._listBoxUnit)
def __init__(self): Sink.__init__(self) self.fDialogButton = Button("Show Dialog", self) self.fPopupButton = Button("Show Popup", self) panel = VerticalPanel() panel.add(self.fPopupButton) panel.add(self.fDialogButton) list = ListBox() list.setVisibleItemCount(5) for i in range(10): list.addItem("list item %d" % i) panel.add(list) panel.setSpacing(8) self.initWidget(panel)
def get_upload_panel(self): # Create a FormPanel and point it at a service. self.form = FormPanel() self.form.setAction("/upload") # Add an event handler to the form. handler = UploadFormHandler() handler.form = self.form self.form.addFormHandler(handler) # Because we're going to add a FileUpload widget, we'll need to set the # form to use the POST method, and multipart MIME encoding. self.form.setEncoding(FormPanel.ENCODING_MULTIPART) self.form.setMethod(FormPanel.METHOD_POST) panel = VerticalPanel() panel.setSpacing(8) panel.setStyleName("panel") # same name as in OpenPowerSystem.css. self.form.setWidget(panel) info = HTML(r'Upload CIM RDF/XML instance file.') panel.add(info) # Create a list box for choice of profile. self.profiles = [("UCTE (CIM 14)", "ucte"), ("CPSM (CIM13)", "cpsm"), ("CDPSM (CIM 14)", "cdpsm"), ("Dynamics (CIM 14)", "dynamics")] self.profile = ListBox(VisibleItemCount=1) self.profile.setName("profileType") for n, v in self.profiles: self.profile.addItem(n, v) panel.add(self.profile) # Create a FileUpload widget. rdfxml_file = FileUpload() rdfxml_file.setName("uploadFormElement") panel.add(rdfxml_file) # Add a 'submit' button. upload = Button("Upload", handler) panel.add(upload) return self.form
def __init__(self, token_index, target_word, options): HorizontalPanel.__init__(self) self.token_index = token_index self.table = FlexTable() self.label = Label(target_word + ":\t") self.dropdown = ListBox() for option in options: self.dropdown.addItem(option) self.add(self.label) self.add(self.dropdown)
def __init__(self, parent = None): PanelIFACE.__init__(self, parent) self.panel = VerticalPanel() self.panel.setBorderWidth(1) self.panel.setWidth("100%") # prepare panel self.prepareReduce = HTML("<tt> .. none yet .. </tt>", True, ) self.recipeList = ListBox() self.recipeList.addChangeListener(getattr(self, "onRecipeSelected")) self.recipeList.addItem("None") HTTPRequest().asyncGet("recipes.xml", RecipeListLoader(self)) #EO prepare panel self.reduceCLPanel = DockPanel(Spacing = 5) self.reduceCLPanel.add(HTML("<i>Reduce Command Line</i>:"), DockPanel.NORTH) self.reduceCLPanel.add(self.prepareReduce, DockPanel.NORTH) self.reduceFilesPanel = DockPanel(Spacing = 5) self.reduceFilesPanel.add(HTML("<b>Datasets</b>:"), DockPanel.WEST) self.reduceFiles = ListBox() self.reduceFiles.setVisibleItemCount(5) self.reduceFilesPanel.add(self.reduceFiles, DockPanel.WEST) self.clearReduceFilesButton = Button("<b>Clear List</b>", listener = getattr(self, "onClearReduceFiles")) self.reduceFilesPanel.add(self.clearReduceFilesButton, DockPanel.SOUTH) self.recipeListPanel = DockPanel(Spacing = 5) self.recipeListPanel.add(HTML("<b>Recipes List</b>:"),DockPanel.WEST) self.recipeListPanel.add(self.recipeList, DockPanel.WEST) self.runReduceButton = Button("<b>RUN REDUCE</b>", listener = getattr(self, "onRunReduce")) self.adInfo = HTML("file info...") # major sub panels self.panel.add(self.reduceCLPanel) self.panel.add(self.reduceFilesPanel) self.panel.add(self.recipeListPanel) self.panel.add(self.runReduceButton) self.panel.add(self.adInfo)
def __init__(self, after): ScrollPanel.__init__(self, Size=("630px", "500px")) self.after = after self.pok = VerticalPanel() self.add(self.pok) self.images = list() def onItemSelected(): item = self.list2.getItemText(self.list2.getSelectedIndex()) self.refresh_theorems(item) self.list2 = ListBox() self.list2.setVisibleItemCount(1) for f in Theorem.get_all_folders(): self.list2.addItem(f) self.pok.add(self.list2) self.list2.addChangeListener(onItemSelected) self.refresh_theorems( self.list2.getItemText(self.list2.getSelectedIndex()))
def __init__(self, **kwargs): self.choicesPopup = PopupPanel(True, False) self.choices = ListBox() self.items = SimpleAutoCompletionItems() self.popupAdded = False self.visible = False self.choices.addClickListener(self) self.choices.addChangeListener(self) self.choicesPopup.add(self.choices) self.choicesPopup.addStyleName("AutoCompleteChoices") self.choices.setStyleName("list") if not kwargs.has_key('StyleName'): kwargs['StyleName'] = "gwt-AutoCompleteTextBox" TextBox.__init__(self, **kwargs) self.addKeyboardListener(self)
def __init__(self, parent=None): Sink.__init__(self, parent) self.RVDock = HorizontalPanel(Spacing=5) self.RList = ListBox() self.RList.addClickListener(getattr(self, "onRecipeSelected")) self.RView = HTML() HTTPRequest().asyncGet("recipes.xml", RecipeListLoader(self)) self.RVDock.add(self.RList) self.RVDock.add(self.RView) self.initWidget(self.RVDock)
class RecipeViewer(Sink): recipeDict = None def __init__(self, parent=None): Sink.__init__(self, parent) self.RVDock = HorizontalPanel(Spacing=5) self.RList = ListBox() self.RList.addClickListener(getattr(self, "onRecipeSelected")) self.RView = HTML() HTTPRequest().asyncGet("recipes.xml", RecipeListLoader(self)) self.RVDock.add(self.RList) self.RVDock.add(self.RView) self.initWidget(self.RVDock) def onRecipeSelected(self, item): recipe = self.RList.getItemText(self.RList.getSelectedIndex()) HTTPRequest().asyncGet("/recipecontent?recipe=%s" % recipe, RecipeViewLoader(self)) def onShow(self): pass
def onModuleLoad(self): self.remote = DataService() panel = VerticalPanel() self.todoTextBox = TextBox() self.todoTextBox.addKeyboardListener(self) self.todoList = ListBox() self.todoList.setVisibleItemCount(7) self.todoList.setWidth("200px") self.todoList.addClickListener(self) panel.add(Label("Add New Todo:")) panel.add(self.todoTextBox) panel.add(Label("Click to Remove:")) panel.add(self.todoList) self.status = Label() panel.add(self.status) RootPanel().add(panel)
def __init__(self): Sink.__init__(self) self.sStrings=[["foo0", "bar0", "baz0", "toto0", "tintin0"], ["foo1", "bar1", "baz1", "toto1", "tintin1"], ["foo2", "bar2", "baz2", "toto2", "tintin2"], ["foo3", "bar3", "baz3", "toto3", "tintin3"], ["foo4", "bar4", "baz4", "toto4", "tintin4"]] self.combo=ListBox(VisibleItemCount=1) self.list=ListBox(MultipleSelect=True, VisibleItemCount=10) self.echo=Label() self.combo.addChangeListener(self) for i in range(len(self.sStrings)): txt = "List %d" % i self.combo.addItem(txt) # test setItemText self.combo.setItemText(i, txt + " using set text") self.combo.setSelectedIndex(0) self.fillList(0) self.list.setItemSelected(0, False) self.list.setItemSelected(1, True) self.list.addChangeListener(self) horz = HorizontalPanel(VerticalAlignment=HasAlignment.ALIGN_TOP, Spacing=8) horz.add(self.combo) horz.add(self.list) panel = VerticalPanel(HorizontalAlignment=HasAlignment.ALIGN_LEFT) panel.add(horz) panel.add(self.echo) self.initWidget(panel) self.echoSelection()
def __init__(self, **kwargs): VerticalPanel.__init__(self, **kwargs) info = """<h2>JSON-RPC Example</h2> #<p>This example demonstrates the calling of server services with # <a href="http://json-rpc.org/">JSON-RPC</a>. #</p> #<p>Choose a service below, and press a the "call service" button to initiate it. An echo service simply sends the exact same text back that it receives. # </p>""" self.status=Label() self.dockey = TextBox(Text="12") self.TEXT_WAITING = "Waiting for response..." self.METHOD_ECHO = "Echo" self.METHOD_DOCTYPES = "get doc types" self.METHOD_UPPERCASE = "get schema" self.METHOD_GETINBOX = "get inbox" self.METHOD_GETDOCS = "get documents" self.methods = [self.METHOD_ECHO, self.METHOD_DOCTYPES, self.METHOD_UPPERCASE, self.METHOD_GETINBOX, self.METHOD_GETDOCS] self.method_list = ListBox() self.method_list.setName("hello") self.method_list.setVisibleItemCount(1) for method in self.methods: self.method_list.addItem(method) self.method_list.setSelectedIndex(0) method_panel = HorizontalPanel() method_panel.add(HTML("Remote string method to call: ")) method_panel.add(self.method_list) method_panel.setSpacing(8) self.button_action = Button("Call Service", self) buttons = HorizontalPanel() buttons.add(self.button_action) buttons.setSpacing(8) panel = VerticalPanel() panel.add(HTML(info)) panel.add(HTML("Primary key of the patient in the database:")) panel.add(self.dockey) panel.add(method_panel) panel.add(buttons) panel.add(self.status) self.add(panel)
def __init__(self): SimplePanel.__init__(self) hPanel = HorizontalPanel() hPanel.setSpacing(10) self.list1 = ListBox() self.list1.setVisibleItemCount(10) self.list1.addItem("Item 1") self.list1.addItem("Item 2") self.list1.addItem("Item 3") self.list1.addChangeListener(getattr(self, "onList1ItemSelected")) self.list2 = ListBox() self.list2.setVisibleItemCount(1) self.list2.addItem("Item A") self.list2.addItem("Item B") self.list2.addItem("Item C") self.list2.addChangeListener(getattr(self, "onList2ItemSelected")) hPanel.add(self.list1) hPanel.add(self.list2) self.add(hPanel)
def __init__( self ) : self.cbcList=ListBox(MultipleSelect=True, VisibleItemCount=4) self.channelList=ListBox(MultipleSelect=True, VisibleItemCount=20) self.updateButton=Button("Update") controls=VerticalPanel() controls.add(self.updateButton) controls.add(self.cbcList) controls.add(self.channelList) controls.setCellHorizontalAlignment( self.updateButton, HasHorizontalAlignment.ALIGN_CENTER ) self.cbcList.setWidth("95%") self.channelList.setWidth("95%") self.cbcList.addItem( "waiting..." ) for index in range(0,254) : self.channelList.addItem( "Channel %3d"%index ) self.histogram = Image() self.mainPanel = HorizontalPanel() self.mainPanel.add( controls ) self.mainPanel.add( self.histogram ) self.histogram.setUrl( "defaultScurveHistogram.png" )
def onModuleLoad(self): self.layout = HorizontalPanel() # Each demo will set their own dimensions, so it doesn't matter # what we initialize the canvas to. canvas = GWTCanvas(400,400) canvas.addStyleName("gwt-canvas") self.demos = [] # Create demos self.demos.append(StaticDemo(canvas)) self.demos.append(LogoDemo(canvas)) self.demos.append(ParticleDemo(canvas)) self.demos.append(GradientDemo(canvas)) self.demos.append(SuiteDemo(canvas)) # Add them to the selection list box lb = ListBox() lb.setStyleName("listBox") for i in range(len(self.demos)): lb.addItem(self.demos[i].getName()) lb.addChangeListener(self) # start off with the first demo self.currentDemo = self.demos[0] # Add widgets to self.layout and RootPanel vp = VerticalPanel() vp.add(lb) vp.add(canvas) self.layout.add(vp) if self.currentDemo.getControls() is not None: self.layout.add(self.currentDemo.getControls()) RootPanel().add(self.layout) self.currentDemo.drawDemo()
def onModuleLoad(self): # Create a FormPanel and point it at a service. self.form = FormPanel() self.form.setAction("/chat-service/test/") # Because we're going to add a FileUpload widget, we'll need to set the # form to use the POST method, and multipart MIME encoding. self.form.setEncoding(FormPanel.ENCODING_MULTIPART) self.form.setMethod(FormPanel.METHOD_POST) # Create a panel to hold all of the form widgets. panel = VerticalPanel() self.form.setWidget(panel) # Create a TextBox, giving it a name so that it will be submitted. self.tb = TextBox() self.tb.setName("textBoxFormElement") panel.add(self.tb) # Create a ListBox, giving it a name and some values to be associated with # its options. lb = ListBox() lb.setName("listBoxFormElement") lb.addItem("foo", "fooValue") lb.addItem("bar", "barValue") lb.addItem("baz", "bazValue") panel.add(lb) # Create a FileUpload widget. upload = FileUpload() upload.setName("uploadFormElement") panel.add(upload) # Add a 'submit' button. panel.add(Button("Submit", self)) # Add an event handler to the form. self.form.addFormHandler(self) RootPanel().add(self.form)
def _create_add_dialog(self): contents = VerticalPanel(StyleName="Contents", Spacing=4) wtype = ListBox(Width="14em") wtype.addChangeListener(self) for wclass in self.WEIGHT_TYPES: wtype.addItem(wclass.NAME, value=wclass) panel = HorizontalPanel(Spacing=8) panel.add(HTML("Weight type: ", **captionstyle)) panel.add(wtype) contents.add(panel) contents.add(Button("OK", getattr(self, '_close_add_dialog'))) dialog = DialogBox(glass=True) dialog.setHTML('<b>Add a new type of weights</b>') dialog.setWidget(contents) return dialog, wtype
def onModuleLoad(self): self.TEXT_WAITING = "Waiting for response..." self.TEXT_ERROR = "Server Error" self.METHOD_ECHO = "Echo" self.METHOD_REVERSE = "Reverse" self.METHOD_UPPERCASE = "UPPERCASE" self.METHOD_LOWERCASE = "lowercase" self.METHOD_NONEXISTANT = "Non existant" self.methods = [ self.METHOD_ECHO, self.METHOD_REVERSE, self.METHOD_UPPERCASE, self.METHOD_LOWERCASE, self.METHOD_NONEXISTANT ] self.remote_php = EchoServicePHP() self.remote_py = EchoServicePython() self.status = Label() self.text_area = TextArea() self.text_area.setText("""{'Test'} [\"String\"] \tTest Tab Test Newline\n after newline """ + r"""Literal String: {'Test'} [\"String\"] """) self.text_area.setCharacterWidth(80) self.text_area.setVisibleLines(8) self.method_list = ListBox() self.method_list.setName("hello") self.method_list.setVisibleItemCount(1) for method in self.methods: self.method_list.addItem(method) self.method_list.setSelectedIndex(0) method_panel = HorizontalPanel() method_panel.add(HTML("Remote string method to call: ")) method_panel.add(self.method_list) method_panel.setSpacing(8) self.button_php = Button("Send to PHP Service", self) self.button_py = Button("Send to Python Service", self) buttons = HorizontalPanel() buttons.add(self.button_php) buttons.add(self.button_py) buttons.setSpacing(8) info = """<h2>JSON-RPC Example</h2> <p>This example demonstrates the calling of server services with <a href="http://json-rpc.org/">JSON-RPC</a>. </p> <p>Enter some text below, and press a button to send the text to an Echo service on your server. An echo service simply sends the exact same text back that it receives. </p>""" panel = VerticalPanel() panel.add(HTML(info)) panel.add(self.text_area) panel.add(method_panel) panel.add(buttons) panel.add(self.status) RootPanel().add(panel)
class JSONRPCExample: def onModuleLoad(self): self.TEXT_WAITING = "Waiting for response..." self.TEXT_ERROR = "Server Error" self.METHOD_ECHO = "Echo" self.METHOD_REVERSE = "Reverse" self.METHOD_UPPERCASE = "UPPERCASE" self.METHOD_LOWERCASE = "lowercase" self.METHOD_NONEXISTANT = "Non existant" self.methods = [ self.METHOD_ECHO, self.METHOD_REVERSE, self.METHOD_UPPERCASE, self.METHOD_LOWERCASE, self.METHOD_NONEXISTANT ] self.remote_php = EchoServicePHP() self.remote_py = EchoServicePython() self.status = Label() self.text_area = TextArea() self.text_area.setText("""{'Test'} [\"String\"] \tTest Tab Test Newline\n after newline """ + r"""Literal String: {'Test'} [\"String\"] """) self.text_area.setCharacterWidth(80) self.text_area.setVisibleLines(8) self.method_list = ListBox() self.method_list.setName("hello") self.method_list.setVisibleItemCount(1) for method in self.methods: self.method_list.addItem(method) self.method_list.setSelectedIndex(0) method_panel = HorizontalPanel() method_panel.add(HTML("Remote string method to call: ")) method_panel.add(self.method_list) method_panel.setSpacing(8) self.button_php = Button("Send to PHP Service", self) self.button_py = Button("Send to Python Service", self) buttons = HorizontalPanel() buttons.add(self.button_php) buttons.add(self.button_py) buttons.setSpacing(8) info = """<h2>JSON-RPC Example</h2> <p>This example demonstrates the calling of server services with <a href="http://json-rpc.org/">JSON-RPC</a>. </p> <p>Enter some text below, and press a button to send the text to an Echo service on your server. An echo service simply sends the exact same text back that it receives. </p>""" panel = VerticalPanel() panel.add(HTML(info)) panel.add(self.text_area) panel.add(method_panel) panel.add(buttons) panel.add(self.status) RootPanel().add(panel) def onClick(self, sender): self.status.setText(self.TEXT_WAITING) method = self.methods[self.method_list.getSelectedIndex()] text = self.text_area.getText() # demonstrate proxy & callMethod() if sender == self.button_php: if method == self.METHOD_ECHO: id = self.remote_php.echo(text, self) elif method == self.METHOD_REVERSE: id = self.remote_php.callMethod("reverse", [text], self) elif method == self.METHOD_UPPERCASE: id = self.remote_php.uppercase(text, self) elif method == self.METHOD_LOWERCASE: id = self.remote_php.lowercase(self, msg=text) elif method == self.METHOD_NONEXISTANT: id = self.remote_php.nonexistant(text, self) else: if method == self.METHOD_ECHO: id = self.remote_py.echo(text, self) elif method == self.METHOD_REVERSE: id = self.remote_py.reverse(text, self) elif method == self.METHOD_UPPERCASE: id = self.remote_py.uppercase(text, self) elif method == self.METHOD_LOWERCASE: id = self.remote_py.lowercase(text, self) elif method == self.METHOD_NONEXISTANT: id = self.remote_py.nonexistant(text, self) def onRemoteResponse(self, response, request_info): self.status.setText(response) def onRemoteError(self, code, errobj, request_info): # onRemoteError gets the HTTP error code or 0 and # errobj is an jsonrpc 2.0 error dict: # { # 'code': jsonrpc-error-code (integer) , # 'message': jsonrpc-error-message (string) , # 'data' : extra-error-data # } message = errobj['message'] if code != 0: self.status.setText("HTTP error %d: %s" % (code, message)) else: code = errobj['code'] self.status.setText("JSONRPC Error %s: %s" % (code, message))
class cTestPanel(VerticalPanel): def __init__(self, **kwargs): VerticalPanel.__init__(self, **kwargs) info = """<h2>JSON-RPC Example</h2> #<p>This example demonstrates the calling of server services with # <a href="http://json-rpc.org/">JSON-RPC</a>. #</p> #<p>Choose a service below, and press a the "call service" button to initiate it. An echo service simply sends the exact same text back that it receives. # </p>""" self.status = Label() self.dockey = TextBox(Text="12") self.TEXT_WAITING = "Waiting for response..." self.METHOD_ECHO = "Echo" self.METHOD_DOCTYPES = "get doc types" self.METHOD_UPPERCASE = "get schema" self.METHOD_GETINBOX = "get inbox" self.METHOD_GETDOCS = "get documents" self.methods = [ self.METHOD_ECHO, self.METHOD_DOCTYPES, self.METHOD_UPPERCASE, self.METHOD_GETINBOX, self.METHOD_GETDOCS ] self.method_list = ListBox() self.method_list.setName("hello") self.method_list.setVisibleItemCount(1) for method in self.methods: self.method_list.addItem(method) self.method_list.setSelectedIndex(0) method_panel = HorizontalPanel() method_panel.add(HTML("Remote string method to call: ")) method_panel.add(self.method_list) method_panel.setSpacing(8) self.button_action = Button("Call Service", self) buttons = HorizontalPanel() buttons.add(self.button_action) buttons.setSpacing(8) panel = VerticalPanel() panel.add(HTML(info)) panel.add(HTML("Primary key of the patient in the database:")) panel.add(self.dockey) panel.add(method_panel) panel.add(buttons) panel.add(self.status) self.add(panel) #-------------------------------------------------- def onClick(self, sender): self.status.setText(self.TEXT_WAITING) method = self.methods[self.method_list.getSelectedIndex()] # demonstrate proxy & callMethod() if sender == self.button_action: if method == self.METHOD_ECHO: id = Remote.svc.echo("Hello", self) elif method == self.METHOD_DOCTYPES: id = Remote.svc.get_doc_types(self) elif method == self.METHOD_UPPERCASE: id = Remote.svc.get_schema_version(self) elif method == self.METHOD_GETINBOX: id = Remote.svc.get_provider_inbox_data(self) elif method == self.METHOD_GETDOCS: key = int(self.dockey.getText()) # TODO: check it! id = Remote.svc.get_documents(key, self) #-------------------------------------------------- def onRemoteResponse(self, response, request_info): method = request_info.method if method == 'get_documents': grid = Grid() grid.resize(len(response) + 1, 8) grid.setHTML(0, 0, "Comment") grid.setHTML(0, 1, "Episode") grid.setHTML(0, 2, "When") for (row, item) in enumerate(response): grid.setHTML(row + 1, 0, item.comment) grid.setHTML(row + 1, 1, item.episode) grid.setHTML(row + 1, 2, str(item.clin_when)) #RootPanel().add(grid) self.add(grid) else: self.status.setText(str(response)) #-------------------------------------------------- def onRemoteError(self, code, errobj, request_info): # onRemoteError gets the HTTP error code or 0 and # errobj is an jsonrpc 2.0 error dict: # { # 'code': jsonrpc-error-code (integer) , # 'message': jsonrpc-error-message (string) , # 'data' : extra-error-data # } message = errobj['message'] if code != 0: self.status.setText("HTTP error %d: %s" % (code, message)) else: code = errobj['code'] if message == 'Cannot request login parameters.': self.status.setText("You need to log in first") else: self.status.setText("JSONRPC Error %s: %s" % (code, message))
class ListBoxDemo(SimplePanel): def __init__(self): SimplePanel.__init__(self) hPanel = HorizontalPanel() hPanel.setSpacing(10) self.list1 = ListBox() self.list1.setVisibleItemCount(10) self.list1.addItem("Item 1") self.list1.addItem("Item 2") self.list1.addItem("Item 3") self.list1.addChangeListener(getattr(self, "onList1ItemSelected")) self.list2 = ListBox() self.list2.setVisibleItemCount(1) self.list2.addItem("Item A") self.list2.addItem("Item B") self.list2.addItem("Item C") self.list2.addChangeListener(getattr(self, "onList2ItemSelected")) hPanel.add(self.list1) hPanel.add(self.list2) self.add(hPanel) def onList1ItemSelected(self, event): item = self.list1.getItemText(self.list1.getSelectedIndex()) Window.alert("You selected " + item + " from list 1") def onList2ItemSelected(self, event): item = self.list2.getItemText(self.list2.getSelectedIndex()) Window.alert("You selected " + item + " from list 2")