X-Git-Url: http://git.tremily.us/?p=hooke.git;a=blobdiff_plain;f=hooke%2Fui%2Fgui%2F__init__.py;h=1c646f4396cc82429da7eb82cc55a601902b18f8;hp=ed03c2fe9ada1568296711aae5870db515a01ef2;hb=628b6d1ac1655449b102fe645d7faf286ff71f8c;hpb=f6ece66e5850e6b2d8743faa532552097e60bfd7 diff --git a/hooke/ui/gui/__init__.py b/hooke/ui/gui/__init__.py index ed03c2f..1c646f4 100644 --- a/hooke/ui/gui/__init__.py +++ b/hooke/ui/gui/__init__.py @@ -123,6 +123,10 @@ class HookeFrame (wx.Frame): command=self._command_by_name('load playlist'), args={'input':'test/data/vclamp_picoforce/playlist'}, ) + self.execute_command( + command=self._command_by_name('polymer fit'), + args={'block':1, 'bounds':[918, 1103]}, + ) return # TODO: cleanup self.playlists = self._c['playlist'].Playlists self._displayed_plot = None @@ -190,13 +194,9 @@ class HookeFrame (wx.Frame): style=wx.WANTS_CHARS, # WANTS_CHARS so the panel doesn't eat the Return key. ), 'center'), -# ('assistant', wx.TextCtrl( -# parent=self, -# pos=wx.Point(0, 0), -# size=wx.Size(150, 90), -# style=wx.NO_BORDER|wx.TE_MULTILINE), 'right'), (panel.PANELS['plot']( callbacks={ + '_set_status_text': self._on_plot_status_text, }, parent=self, style=wx.WANTS_CHARS|wx.NO_BORDER, @@ -212,7 +212,6 @@ class HookeFrame (wx.Frame): # ('results', panel.results.Results(self), 'bottom'), ]: self._add_panel(p, style) - #self._c['assistant'].SetEditable(False) def _add_panel(self, panel, style): self._c[panel.name] = panel @@ -331,11 +330,20 @@ class HookeFrame (wx.Frame): index = int(name[len(arg.name):]) args[arg.name][index] = value for arg in command.arguments: - if arg.count != 1 and arg.name in args: + count = arg.count + if hasattr(arg, '_display_count'): # support HACK in props_from_argument() + count = arg._display_count + if count != 1 and arg.name in args: keys = sorted(args[arg.name].keys()) - assert keys == range(arg.count), keys + assert keys == range(count), keys args[arg.name] = [args[arg.name][i] - for i in range(arg.count)] + for i in range(count)] + if arg.count == -1: + while (len(args[arg.name]) > 0 + and args[arg.name][-1] == None): + args[arg.name].pop() + if len(args[arg.name]) == 0: + args[arg.name] = arg.default self.log.debug('executing %s with %s' % (command.name, args)) self.inqueue.put(CommandMessage(command, args)) results = [] @@ -669,8 +677,6 @@ class HookeFrame (wx.Frame): def select_command(self, _class, method, command): #self.select_plugin(plugin=command.plugin) - if 'assistant' in self._c: - self._c['assitant'].ChangeValue(command.help) self._c['property editor'].clear() self._c['property editor']._argument_from_label = {} for argument in command.arguments: @@ -730,6 +736,7 @@ class HookeFrame (wx.Frame): pass def _on_delete_curve(self, _class, method, playlist, curve): + # TODO: execute_command 'remove curve from playlist' os.remove(curve.path) def _on_set_selected_playlist(self, _class, method, playlist): @@ -767,6 +774,14 @@ class HookeFrame (wx.Frame): + # Plot panel interface + + def _on_plot_status_text(self, _class, method, text): + if 'status bar' in self._c: + self._c['status bar'].set_plot_text(text) + + + # Navbar interface def _next_curve(self, *args): @@ -908,6 +923,8 @@ class HookeFrame (wx.Frame): style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER) dialog.CenterOnScreen() dialog.ShowModal() + if dialog.canceled == True: + return names = [options[i] for i in dialog.selected] dialog.Destroy() self._delete_perspectives(