Sha256: 6bc74453d14e5c683794688c24ed59826595e62a0e55d18407049b1595e3087f
Contents?: true
Size: 1.98 KB
Versions: 22
Compression:
Stored size: 1.98 KB
Contents
module Redcar class ApplicationSWT class Treebook def initialize(window, model) @window, @model = window, model add_listeners create_tree_view end def add_listeners @model.add_listener(:tree_added, &method(:tree_added)) @model.add_listener(:tree_removed, &method(:tree_removed)) @model.add_listener(:tree_focussed, &method(:tree_focussed)) end def tree_added(tree) tree_view = TreeViewSWT.new(@tree_composite, tree) tree.controller = tree_view title = tree.tree_mirror.title @tree_combo.add(title) @tree_combo.select(@tree_combo.get_items.to_a.index(title)) @tree_layout.topControl = tree_view.control @tree_composite.layout end def tree_removed(tree) tree.controller.close @tree_combo.remove(tree.tree_mirror.title) end def tree_focussed(tree) @tree_layout.topControl = tree.controller.control @tree_composite.layout @tree_combo.select(@tree_combo.get_items.to_a.index(tree.tree_mirror.title)) end def create_tree_view @tree_composite = Swt::Widgets::Composite.new(@window.tree_sash, Swt::SWT::NONE) @tree_layout = Swt::Custom::StackLayout.new @tree_composite.setLayout(@tree_layout) @tree_combo = Swt::Widgets::Combo.new(@window.left_composite, Swt::SWT::READ_ONLY) grid_data = Swt::Layout::GridData.new grid_data.grabExcessHorizontalSpace = true grid_data.horizontalAlignment = Swt::Layout::GridData::FILL grid_data.grabExcessVerticalSpace = false @tree_combo.setLayoutData(grid_data) @tree_combo.add_selection_listener do selected_tree = @model.trees.detect {|t| t.tree_mirror.title == @tree_combo.text} @model.focus_tree(selected_tree) end @tree_composite.layout @window.left_composite.layout end end end end
Version data entries
22 entries across 22 versions & 1 rubygems