module Lebowski::SCUI::Mixins::NodeItemViewSupport
Public Instance Methods
drag_above(item)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 71 def drag_above(item) drag_relative_to_node(item, false, -1) end
drag_below(item)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 75 def drag_below(item) drag_relative_to_node(item, false) end
drag_in_canvas(x, y)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 59 def drag_in_canvas(x, y) self.drag_to(@parent, x, y) end
drag_left_of(item)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 63 def drag_left_of(item) drag_relative_to_node(item, true, -1) end
drag_right_of(item)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 67 def drag_right_of(item) drag_relative_to_node(item, true) end
has_node_item_view_support()
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 13 def has_node_item_view_support return true end
linked_to?(item)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 32 def linked_to?(item) node_item_view = get_node_item_view(item) comparison_node = node_item_view['content'] my_node = self['content'] links.each { |link| return true if (link.start_node == comparison_node) || (link.end_node == comparison_node) } node_item_view.links.each { |link| return true if (link.start_node == my_node) || (link.end_node == my_node) } return false end
links()
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 28 def links return Support::LinksArray.new self end
positioned_above?(item)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 51 def positioned_above?(item) verify_positioning(item, false, -1) end
positioned_below?(item)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 55 def positioned_below?(item) verify_positioning(item, false) end
positioned_left_of?(item)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 43 def positioned_left_of?(item) verify_positioning(item, true, -1) end
positioned_right_of?(item)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 47 def positioned_right_of?(item) verify_positioning(item, true) end
terminal_by_name(name)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 17 def terminal_by_name(name) terminal = terminals.find_first({ :terminal => name }) raise ArgumentError.new "There is no terminal with the name #{name}." if terminal.nil? return terminal end
terminals()
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 23 def terminals @terminals = Support::TerminalViewArray.new(self) if @terminals.nil? return @terminals end
Private Instance Methods
assert_item_has_node_item_view_support(item)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 109 def assert_item_has_node_item_view_support(item) if not item.respond_to? :has_node_item_view_support raise ArgumentError.new "The item passed in must have node item view support (#{NodeItemViewSupport})" end end
drag_relative_to_node(item, horizontal_drag, multiplier = 1)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 91 def drag_relative_to_node(item, horizontal_drag, multiplier = 1) fixed_node = get_node_item_view(item) x = horizontal_drag ? (fixed_node.frame.width + 50) * multiplier : 0 y = horizontal_drag ? 0 : (fixed_node.frame.height + 50) * multiplier self.drag_to(fixed_node, x, y) end
get_node_item_view(item)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 80 def get_node_item_view(item) if item.kind_of? Integer fixed_node = @parent.item_views[item] raise ArgumentError.new "There is no node at index #{item}" if fixed_node.nil? return fixed_node else assert_item_has_node_item_view_support(item) return item end end
verify_positioning(item, horizontal_drag, multiplier = 1)
click to toggle source
# File lib/lebowski/scui/mixins/node_item_view_support.rb, line 100 def verify_positioning(item, horizontal_drag, multiplier = 1) fixed_node = get_node_item_view(item) x = horizontal_drag ? (fixed_node.position.x + (50 + fixed_node.frame.width) * multiplier) : fixed_node.position.x y = horizontal_drag ? fixed_node.position.y : (fixed_node.position.y + (50 + fixed_node.frame.height) * multiplier) return true if (self.position.x == x) && (self.position.y == y) return false end