def _try_rename(self):
     if self.text:
         # Try to change the function definition's binding
         old_var = self.unmodified_text.strip()
         new_var = self.text.strip()
         from enthought.block_canvas.app.scripting import app
         app.update_function_variable_binding(self.box.graph_node, self.variable, new_var)
Beispiel #2
0
    def normal_dropped_on(self, event):
        """ Handle dropping onto this field for ContextVariable payloads.
        """
        if is_a_context_variable(event.obj):
            result = "copy"
            from enthought.block_canvas.app.scripting import app

            app.update_function_variable_binding(self.box.graph_node, self.variable, event.obj.name)
        else:
            result = "none"
        event.window.set_drag_result(result)
        event.handled = result == "copy"
 def perform(self, event):
     dlg = SuffixDialog()
     if dlg.edit_traits(kind="livemodal"):
         suffix = dlg.suffix
         if suffix:
             for field in self.selected_fields:
                 old_text = field.variable.binding
                 if not old_text.isdigit():
                     from enthought.block_canvas.app.scripting import app
                     new_text = old_text + '_' + suffix
                     app.update_function_variable_binding(field.box.graph_node,
                                                          field.variable, new_text)
         self.container.wiring_tool.clear_selection()
     return
Beispiel #4
0
    def drag_end(self, event):
        field = self._get_underlying_box_field(event.x, event.y)
        if field is self._start_field:
            return

        if field and self._start_field:
            self._end_field = field
            start_type = self._start_field.type
            end_type = self._end_field.type
            field.icon.bullet_state = 'up'
            if ((start_type == 'output' and end_type == 'input') or
                (start_type == 'input' and end_type == 'output')):
                self.add_to_selection(self._end_field)
                if len(self.input_selected_fields) == len(self.output_selected_fields):
                    matches = self.match_inputs2outputs()
                    for input, pairs in matches.items():
                        for pair in pairs:
                            from enthought.block_canvas.app.scripting import app
                            # Set the input (pair[0]) binding to output(pair[1])
                            app.update_function_variable_binding(field.box.graph_node,
                                                                 pair[0],
                                                                 pair[1].binding)
        self.drag_cancel(event)