redcar 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +41 -1
- data/README.md +1 -1
- data/Rakefile +5 -6
- data/lib/plugin_manager/lib/plugin_manager.rb +1 -2
- data/lib/redcar.rb +19 -14
- data/lib/redcar/installer.rb +21 -17
- data/lib/redcar/runner.rb +10 -7
- data/lib/redcar/usage.rb +1 -0
- data/lib/redcar_quick_start.rb +8 -12
- data/lib/regex_replace.rb +3 -3
- data/plugins/application/features/step_definitions/menu_steps.rb +10 -0
- data/plugins/application/features/step_definitions/speedbar_steps.rb +8 -2
- data/plugins/application/features/step_definitions/tree_steps.rb +48 -6
- data/plugins/application/features/step_definitions/window_steps.rb +9 -4
- data/plugins/application/features/support/env.rb +20 -1
- data/plugins/application/features/support/fake_event.rb +14 -0
- data/plugins/application/lib/application.rb +29 -12
- data/plugins/application/lib/application/dialogs/filter_list_dialog.rb +19 -0
- data/plugins/application/lib/application/speedbar.rb +23 -17
- data/plugins/application/lib/application/tab.rb +20 -15
- data/plugins/application/lib/application/treebook.rb +10 -7
- data/plugins/application/lib/application/window.rb +1 -1
- data/plugins/application/plugin.rb +1 -1
- data/plugins/application_swt/lib/application_swt/dialog_adapter.rb +4 -4
- data/plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb +15 -4
- data/plugins/application_swt/lib/application_swt/icon.rb +3 -5
- data/plugins/application_swt/lib/application_swt/notebook/tab_drag_and_drop_listener.rb +4 -4
- data/plugins/application_swt/lib/application_swt/notebook/tab_transfer.rb +5 -5
- data/plugins/application_swt/lib/application_swt/speedbar.rb +34 -120
- data/plugins/application_swt/lib/application_swt/speedbar/button_item.rb +20 -0
- data/plugins/application_swt/lib/application_swt/speedbar/combo_item.rb +38 -0
- data/plugins/application_swt/lib/application_swt/speedbar/label_item.rb +15 -0
- data/plugins/application_swt/lib/application_swt/speedbar/slider_item.rb +32 -0
- data/plugins/application_swt/lib/application_swt/speedbar/text_box_item.rb +36 -0
- data/plugins/application_swt/lib/application_swt/speedbar/toggle_item.rb +29 -0
- data/plugins/application_swt/lib/application_swt/tab.rb +1 -3
- data/plugins/application_swt/lib/application_swt/toolbar.rb +19 -20
- data/plugins/application_swt/lib/application_swt/treebook.rb +24 -9
- data/plugins/application_swt/lib/application_swt/window.rb +110 -98
- data/plugins/application_swt/lib/swt/vtab_folder.rb +77 -32
- data/plugins/application_swt/lib/swt/vtab_item.rb +9 -0
- data/plugins/application_swt/lib/swt/vtab_label.rb +63 -23
- data/plugins/application_swt/plugin.rb +1 -1
- data/plugins/clipboard-viewer/lib/clipboard_viewer/clipboard_bar.rb +2 -2
- data/plugins/comment/features/line_comment.feature +116 -4
- data/plugins/comment/lib/comment.rb +18 -16
- data/plugins/connection_manager/lib/connection_manager/commands.rb +1 -1
- data/plugins/connection_manager/lib/connection_manager/private_key_store.rb +5 -3
- data/plugins/declarations/lib/declarations.rb +1 -1
- data/plugins/declarations/lib/declarations/parser.rb +68 -20
- data/plugins/document_search/features/replace.feature +18 -0
- data/plugins/document_search/lib/document_search.rb +37 -54
- data/plugins/document_search/lib/document_search/replace_all_command.rb +27 -0
- data/plugins/document_search/lib/document_search/replace_command.rb +38 -0
- data/plugins/document_search/lib/document_search/replace_next_command.rb +27 -0
- data/plugins/document_search/lib/document_search/search_and_replace.rb +17 -24
- data/plugins/edit_view/features/step_definitions/editing_steps.rb +4 -4
- data/plugins/edit_view/features/step_definitions/tab_steps.rb +9 -0
- data/plugins/edit_view/features/step_definitions/window_steps.rb +0 -12
- data/plugins/edit_view/lib/edit_view/document.rb +2 -0
- data/plugins/edit_view/lib/edit_view/document/command.rb +8 -8
- data/plugins/edit_view/lib/edit_view/edit_tab.rb +21 -7
- data/plugins/edit_view/lib/edit_view/select_font_dialog.rb +6 -0
- data/plugins/edit_view/lib/edit_view/select_theme_dialog.rb +6 -0
- data/plugins/edit_view_swt/lib/edit_view_swt.rb +92 -43
- data/plugins/edit_view_swt/lib/edit_view_swt/document.rb +17 -4
- data/plugins/find-in-project/lib/find_in_project.rb +1 -4
- data/plugins/find-in-project/lib/find_in_project/commands.rb +0 -14
- data/plugins/find-in-project/lib/find_in_project/controllers.rb +12 -0
- data/plugins/find-in-project/lib/find_in_project/views/index.html.erb +5 -0
- data/plugins/groovy/features/fixtures/test.groovy +0 -0
- data/plugins/groovy/features/step_definitions/groovy_steps.rb +27 -0
- data/plugins/groovy/features/support/env.rb +27 -0
- data/plugins/groovy/features/syntax_check_groovy.feature +72 -0
- data/plugins/groovy/lib/syntax_check/groovy.rb +76 -0
- data/plugins/groovy/plugin.rb +7 -0
- data/plugins/help/lib/help.rb +28 -4
- data/plugins/help/lib/help/help_tab.rb +11 -0
- data/plugins/help/lib/help/view_controller.rb +25 -0
- data/plugins/help/plugin.rb +2 -1
- data/plugins/{view_shortcuts → help}/views/default.css +0 -0
- data/plugins/{view_shortcuts → help}/views/index.html.erb +1 -1
- data/plugins/{view_shortcuts → help}/views/redcar_small_icon.png +0 -0
- data/plugins/html_view/features/browser_bar.feature +47 -0
- data/plugins/html_view/features/fixtures/other.html +1 -0
- data/plugins/html_view/features/fixtures/sample.html +1 -0
- data/plugins/html_view/features/step_definitions/html_view_steps.rb +45 -5
- data/plugins/html_view/features/support/env.rb +26 -0
- data/plugins/html_view/features/web_preview.feature +21 -0
- data/plugins/html_view/lib/html_controller.rb +5 -5
- data/plugins/html_view/lib/html_view.rb +62 -10
- data/plugins/{web_bookmarks/lib/web_bookmarks → html_view/lib/html_view}/browser_bar.rb +32 -20
- data/plugins/html_view/lib/html_view/commands.rb +64 -0
- data/plugins/{web_bookmarks/lib/web_bookmarks/view_controller.rb → html_view/lib/html_view/default_controller.rb} +7 -6
- data/plugins/html_view/lib/html_view/html_tab.rb +17 -6
- data/plugins/html_view/plugin.rb +3 -3
- data/plugins/{web_bookmarks → html_view}/views/index.html.erb +0 -0
- data/plugins/javascript/features/fixtures/test.js +0 -0
- data/plugins/javascript/features/support/env.rb +4 -0
- data/plugins/javascript/features/syntax_check_javascript.feature +27 -0
- data/plugins/javascript/lib/syntax_check/javascript.rb +52 -0
- data/plugins/javascript/plugin.rb +7 -0
- data/plugins/javascript/vendor/jslint.js +539 -0
- data/plugins/macros/lib/macros/commands.rb +3 -3
- data/plugins/open_default_app/lib/open_default_app.rb +29 -3
- data/plugins/open_default_app/plugin.rb +1 -1
- data/plugins/outline_view/features/outline_view.feature +79 -0
- data/plugins/outline_view/features/step_definitions/outline_steps.rb +45 -0
- data/plugins/outline_view/lib/outline_view.rb +1 -1
- data/plugins/outline_view/spec/fixtures/some_project/javascript.js +10 -0
- data/plugins/outline_view/spec/fixtures/some_project/nothing_to_see.rb +0 -0
- data/plugins/outline_view/spec/fixtures/some_project/one_lonely_class.rb +2 -0
- data/plugins/outline_view/spec/fixtures/some_project/similar_names.rb +18 -0
- data/plugins/outline_view/spec/fixtures/some_project/something_fancy.rb +736 -0
- data/plugins/outline_view/spec/fixtures/some_project/trailing_space.rb +5 -0
- data/plugins/outline_view_swt/lib/outline_view_swt.rb +17 -19
- data/plugins/pair_highlighter/lib/pair_highlighter/document_controller.rb +1 -4
- data/plugins/plugin_manager_ui/lib/plugin_manager_ui.rb +12 -3
- data/plugins/project/features/close_directory_tree.feature +27 -0
- data/plugins/project/features/highlight_focussed_tab.feature +45 -1
- data/plugins/project/features/open_and_save_files.feature +33 -0
- data/plugins/project/features/open_directory_tree.feature +37 -11
- data/plugins/project/features/step_definitions/directory_steps.rb +1 -1
- data/plugins/project/features/step_definitions/drb_steps.rb +40 -0
- data/plugins/project/features/support/env.rb +17 -0
- data/plugins/project/lib/project.rb +12 -2
- data/plugins/project/lib/project/commands.rb +101 -99
- data/plugins/project/lib/project/drb_service.rb +55 -65
- data/plugins/project/lib/project/manager.rb +29 -4
- data/plugins/project/lib/project/project_tree_controller.rb +24 -0
- data/plugins/project/lib/project/support/trash.rb +1 -0
- data/plugins/redcar/redcar.rb +100 -37
- data/plugins/redcar_debug/lib/redcar_debug.rb +3 -3
- data/plugins/repl/features/step_definitions/repl_steps.rb +3 -0
- data/plugins/repl/lib/repl.rb +4 -11
- data/plugins/repl/lib/repl/repl_tab.rb +26 -0
- data/plugins/ruby/features/fixtures/test.rb +0 -0
- data/plugins/ruby/features/support/env.rb +4 -0
- data/plugins/ruby/features/syntax_check_ruby.feature +25 -0
- data/plugins/runnables/features/command_tree.feature +28 -0
- data/plugins/runnables/lib/runnables.rb +1 -0
- data/plugins/runnables/lib/runnables/commands.rb +4 -4
- data/plugins/runnables/lib/runnables/output_processor.rb +5 -5
- data/plugins/runnables/lib/runnables/tree_mirror/tree_controller.rb +2 -7
- data/plugins/runnables/lib/runnables/tree_mirror/tree_mirror.rb +13 -8
- data/plugins/scm_git/lib/scm_git/change.rb +5 -5
- data/plugins/strip_trailing_spaces/features/fixtures/test.txt +3 -0
- data/plugins/strip_trailing_spaces/features/strip_trailing_spaces.feature +34 -0
- data/plugins/strip_trailing_spaces/lib/strip_trailing_spaces.rb +3 -38
- data/plugins/swt/lib/swt.rb +5 -13
- data/plugins/swt/lib/swt/full_swt.rb +15 -13
- data/plugins/syntax_check/features/step_definitions/syntax_check_steps.rb +7 -0
- data/plugins/syntax_check/lib/syntax_check.rb +21 -3
- data/plugins/syntax_check/lib/syntax_check/error.rb +4 -3
- data/plugins/task_manager/lib/task_manager.rb +1 -1
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ant.tmbundle/Preferences/Autocompletions.tmPreferences +345 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ant.tmbundle/Preferences/Symbol List Target.tmPreferences +22 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ant.tmbundle/Snippets/Doc Banner.tmSnippet +20 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ant.tmbundle/Syntaxes/Ant.tmLanguage +247 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ant.tmbundle/info.plist +55 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/RedcarRepl.tmbundle/Syntaxes/GroovyRepl.plist +40 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/RedcarRepl.tmbundle/info.plist +1 -1
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ruby Haml.tmbundle/Syntaxes/Ruby_Haml.tmLanguage +0 -1
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ruby Sass.tmbundle/Syntaxes/Ruby Sass.tmLanguage +626 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ruby Sass.tmbundle/info.plist +16 -0
- data/plugins/todo_list/features/support/env.rb +8 -0
- data/plugins/todo_list/features/todo_list.feature +26 -0
- data/plugins/todo_list/lib/todo_list.rb +1 -0
- data/plugins/todo_list/lib/todo_list/file_parser.rb +23 -19
- data/plugins/todo_list/lib/todo_list/todo_controller.rb +60 -100
- data/plugins/todo_list/spec/fixtures/project/FIXME.file +3 -0
- data/plugins/todo_list/spec/fixtures/project/NOTE.ignored.file +1 -0
- data/plugins/todo_list/spec/fixtures/project/OPTIMIZE_colon.file +1 -0
- data/plugins/todo_list/spec/fixtures/project/XXX.ignored +1 -0
- data/plugins/todo_list/spec/fixtures/project/ignored_directory/TODO.file +2 -0
- data/plugins/todo_list/spec/fixtures/settings.rb +11 -0
- data/plugins/todo_list/spec/spec_helper.rb +6 -0
- data/plugins/todo_list/spec/todo_list/file_parser_spec.rb +35 -0
- data/plugins/tree/lib/tree.rb +1 -0
- data/plugins/tree/lib/tree/command.rb +5 -0
- data/plugins/web_bookmarks/features/bookmark.feature +37 -0
- data/plugins/web_bookmarks/features/fixtures/other.html +1 -0
- data/plugins/web_bookmarks/features/fixtures/sample.html +1 -0
- data/plugins/web_bookmarks/features/step_definitions/web_steps.rb +4 -0
- data/plugins/web_bookmarks/features/support/env.rb +26 -0
- data/plugins/web_bookmarks/lib/web_bookmarks.rb +0 -10
- data/plugins/web_bookmarks/lib/web_bookmarks/bookmark.rb +10 -1
- data/plugins/web_bookmarks/lib/web_bookmarks/commands.rb +1 -47
- data/plugins/web_bookmarks/lib/web_bookmarks/tree.rb +21 -14
- data/{plugins/application → share}/icons/close.png +0 -0
- data/{plugins/application → share}/icons/darwin-file.png +0 -0
- data/{plugins/application → share}/icons/darwin-folder.png +0 -0
- data/share/icons/open-source-flipped.png +0 -0
- data/{plugins/application/icons/redcar_icon_beta_dev.png → share/icons/redcar-icon-beta-dev.png} +0 -0
- data/{plugins/application/icons/redcar_icon_beta.png → share/icons/redcar-icon-beta.png} +0 -0
- data/{plugins/application → share}/icons/redcar-splash.png +0 -0
- metadata +90 -30
- data/lib/redcar/jvm_options_probe.rb +0 -33
- data/plugins/document_search/lib/document_search/replace.rb +0 -113
- data/plugins/document_search/lib/document_search/search.rb +0 -45
- data/plugins/outline_view_swt/lib/icons/alias.png +0 -0
- data/plugins/outline_view_swt/lib/icons/assignment.png +0 -0
- data/plugins/outline_view_swt/lib/icons/attribute.png +0 -0
- data/plugins/outline_view_swt/lib/icons/class.png +0 -0
- data/plugins/outline_view_swt/lib/icons/interface.png +0 -0
- data/plugins/outline_view_swt/lib/icons/method.png +0 -0
- data/plugins/strip_trailing_spaces/CHANGELOG +0 -12
- data/plugins/strip_trailing_spaces/README.md +0 -32
- data/plugins/view_shortcuts/lib/view_shortcuts.rb +0 -52
- data/plugins/view_shortcuts/plugin.rb +0 -11
@@ -0,0 +1,38 @@
|
|
1
|
+
module Redcar
|
2
|
+
class ApplicationSWT
|
3
|
+
class Speedbar
|
4
|
+
class ComboItem
|
5
|
+
def initialize(speedbar, composite, item)
|
6
|
+
combo = Swt::Widgets::Combo.new(composite, Swt::SWT::READ_ONLY)
|
7
|
+
combo.items = item.items.to_java(:string)
|
8
|
+
if item.value
|
9
|
+
combo.select(item.items.index(item.value))
|
10
|
+
end
|
11
|
+
combo.add_selection_listener do
|
12
|
+
speedbar.ignore(item.name) do
|
13
|
+
item.value = combo.text
|
14
|
+
speedbar.execute_listener_in_model(item, item.value)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
item.add_listener(:changed_items) do |new_items|
|
18
|
+
speedbar.rescue_speedbar_errors do
|
19
|
+
speedbar.ignore(item.name) do
|
20
|
+
combo.items = item.items.to_java(:string)
|
21
|
+
item.value = nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
item.add_listener(:changed_value) do |new_value|
|
26
|
+
speedbar.rescue_speedbar_errors do
|
27
|
+
speedbar.ignore(item.name) do
|
28
|
+
combo.select(item.items.index(item.value))
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
speedbar.keyable_widgets << combo
|
33
|
+
speedbar.focussable_widgets << combo
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Redcar
|
2
|
+
class ApplicationSWT
|
3
|
+
class Speedbar
|
4
|
+
class LabelItem
|
5
|
+
def initialize(speedbar, composite, item)
|
6
|
+
label = Swt::Widgets::Label.new(composite, 0)
|
7
|
+
label.set_text(item.text)
|
8
|
+
item.add_listener(:changed_text) do |new_text|
|
9
|
+
label.set_text(item.text)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Redcar
|
2
|
+
class ApplicationSWT
|
3
|
+
class Speedbar
|
4
|
+
class SliderItem
|
5
|
+
def initialize(speedbar, composite, item)
|
6
|
+
slider = Swt::Widgets::Slider.new(composite, Swt::SWT::HORIZONTAL)
|
7
|
+
grid_data = Swt::Layout::GridData.new
|
8
|
+
grid_data.grabExcessHorizontalSpace = true
|
9
|
+
grid_data.horizontalAlignment = Swt::Layout::GridData::FILL
|
10
|
+
slider.layout_data = grid_data
|
11
|
+
slider.selection = item.value
|
12
|
+
slider.maximum = item.maximum || 100
|
13
|
+
slider.minimum = item.minimum || 0
|
14
|
+
slider.increment = item.increment || 5
|
15
|
+
slider.add_selection_listener do
|
16
|
+
item.value = slider.selection
|
17
|
+
speedbar.execute_listener_in_model(item, item.value)
|
18
|
+
end
|
19
|
+
[:minimum, :maximum, :increment, :enabled].each do |ivar|
|
20
|
+
item.add_listener(:"changed_#{ivar}") do |new_value|
|
21
|
+
speedbar.rescue_speedbar_errors { slider.send(:"#{ivar}=", new_value) }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
item.add_listener(:changed_value) do |new_value|
|
25
|
+
speedbar.rescue_speedbar_errors { slider.selection = new_value }
|
26
|
+
end
|
27
|
+
speedbar.focussable_widgets << slider
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Redcar
|
2
|
+
class ApplicationSWT
|
3
|
+
class Speedbar
|
4
|
+
class TextBoxItem
|
5
|
+
def initialize(speedbar, composite, item)
|
6
|
+
edit_view = EditView.new
|
7
|
+
item.edit_view = edit_view
|
8
|
+
edit_view_swt = EditViewSWT.new(edit_view, composite, :single_line => true)
|
9
|
+
mate_text = edit_view_swt.mate_text
|
10
|
+
mate_text.set_font(EditView.font, EditView.font_size)
|
11
|
+
mate_text.getControl.set_text(item.value)
|
12
|
+
mate_text.set_grammar_by_name "Ruby"
|
13
|
+
mate_text.set_theme_by_name(EditView.theme)
|
14
|
+
mate_text.set_root_scope_by_content_name("Ruby", "string.regexp.classic.ruby")
|
15
|
+
gridData = Swt::Layout::GridData.new
|
16
|
+
gridData.grabExcessHorizontalSpace = true
|
17
|
+
gridData.horizontalAlignment = Swt::Layout::GridData::FILL
|
18
|
+
mate_text.getControl.set_layout_data(gridData)
|
19
|
+
edit_view.document.add_listener(:changed) do
|
20
|
+
speedbar.ignore(item.name) do
|
21
|
+
item.value = edit_view.document.to_s
|
22
|
+
speedbar.execute_listener_in_model(item, item.value)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
item.add_listener(:changed_value) do |new_value|
|
26
|
+
speedbar.ignore(item.name) do
|
27
|
+
mate_text.getControl.set_text(new_value)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
speedbar.keyable_widgets << mate_text.getControl
|
31
|
+
speedbar.focussable_widgets << mate_text.getControl
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Redcar
|
2
|
+
class ApplicationSWT
|
3
|
+
class Speedbar
|
4
|
+
class ToggleItem
|
5
|
+
def initialize(speedbar, composite, item)
|
6
|
+
button = Swt::Widgets::Button.new(composite, Swt::SWT::CHECK)
|
7
|
+
button.set_text(item.text)
|
8
|
+
button.set_selection(!!item.value)
|
9
|
+
button.add_selection_listener do
|
10
|
+
item.value = button.get_selection
|
11
|
+
speedbar.execute_listener_in_model(item, item.value)
|
12
|
+
end
|
13
|
+
item.add_listener(:changed_text) do |new_text|
|
14
|
+
speedbar.rescue_speedbar_errors do
|
15
|
+
button.set_text = new_text
|
16
|
+
end
|
17
|
+
end
|
18
|
+
item.add_listener(:changed_value) do |new_value|
|
19
|
+
speedbar.rescue_speedbar_errors do
|
20
|
+
button.set_selection(!!new_value)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
speedbar.keyable_widgets << button
|
24
|
+
speedbar.focussable_widgets << button
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -4,8 +4,6 @@ module Redcar
|
|
4
4
|
|
5
5
|
attr_reader :item, :model, :notebook, :widget
|
6
6
|
|
7
|
-
FILE_ICON = File.join(Redcar.root, %w(plugins application lib application assets file.png))
|
8
|
-
|
9
7
|
def initialize(model, notebook, position = nil)
|
10
8
|
@model, @notebook = model, notebook
|
11
9
|
create_item_widget(position || @notebook.tab_folder.item_count)
|
@@ -17,7 +15,7 @@ module Redcar
|
|
17
15
|
position ||= notebook.tab_folder.item_count
|
18
16
|
if @item
|
19
17
|
@item.dispose
|
20
|
-
end
|
18
|
+
end
|
21
19
|
@item = Swt::Custom::CTabItem.new(notebook.tab_folder, Swt::SWT::CLOSE, position)
|
22
20
|
set_icon(@model.icon)
|
23
21
|
end
|
@@ -33,47 +33,46 @@ module Redcar
|
|
33
33
|
|
34
34
|
def initialize(window, toolbar_model, options={})
|
35
35
|
s = Time.now
|
36
|
-
|
37
|
-
|
36
|
+
@toolbars = {}
|
37
|
+
@coolitems = {}
|
38
38
|
@entries = Hash.new{|hash, key| hash[key] = Array.new}
|
39
39
|
@coolbar = Swt::Widgets::CoolBar.new(window.shell, Swt::SWT::FLAT | Swt::SWT::HORIZONTAL)
|
40
40
|
return unless toolbar_model
|
41
|
-
|
41
|
+
toolbar_model.each do |entry|
|
42
42
|
@name = entry.barname || :new
|
43
43
|
if not @toolbars[@name]
|
44
44
|
if @name == :core
|
45
|
-
|
46
|
-
|
47
|
-
|
45
|
+
@coolitem = Swt::Widgets::CoolItem.new(@coolbar, Swt::SWT::FLAT, 0)
|
46
|
+
else
|
47
|
+
@coolitem = Swt::Widgets::CoolItem.new(@coolbar, Swt::SWT::FLAT)
|
48
48
|
end
|
49
49
|
|
50
50
|
@toolbars[@name] = create_toolbar(@coolbar)
|
51
51
|
@coolitems[@name] = @coolitem
|
52
|
-
|
53
|
-
|
52
|
+
else
|
53
|
+
@toolbar = @toolbars[@name]
|
54
54
|
@coolitem = @coolitems[@name]
|
55
55
|
end
|
56
|
-
|
56
|
+
@entries[@name] << entry
|
57
57
|
end
|
58
|
-
|
59
|
-
@toolbars.each_key
|
60
|
-
|
58
|
+
|
59
|
+
@toolbars.each_key do |key|
|
60
|
+
|
61
61
|
@toolbar = @toolbars[key]
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
62
|
+
@coolitem = @coolitems[key]
|
63
|
+
@toolbar_data = @entries[key]
|
64
|
+
@coolitem.setControl(@toolbar)
|
65
|
+
|
66
66
|
add_entries_to_toolbar(@toolbar, @toolbar_data)
|
67
67
|
@p = @toolbar.computeSize(Swt::SWT::DEFAULT, Swt::SWT::DEFAULT)
|
68
68
|
@point = @coolitem.computeSize(@p.x, @p.y)
|
69
69
|
#@coolitem.setPreferredSize(@point)
|
70
70
|
#@coolitem.setMinimumSize(@point)
|
71
71
|
@coolitem.setSize(@point.x, @point.y)
|
72
|
-
|
73
|
-
|
72
|
+
end
|
73
|
+
|
74
74
|
#puts "ApplicationSWT::ToolBar initialize took #{Time.now - s}s"
|
75
|
-
|
76
|
-
@coolbar.setLocked(true)
|
75
|
+
@coolbar.setLocked(true)
|
77
76
|
@coolbar.pack()
|
78
77
|
end
|
79
78
|
|
@@ -23,7 +23,7 @@ module Redcar
|
|
23
23
|
i.text = tree.tree_mirror.title
|
24
24
|
i.control = TreeViewSWT.new(@tab_folder, tree)
|
25
25
|
tree.controller = i.control
|
26
|
-
@tab_folder.
|
26
|
+
@tab_folder.selection = i
|
27
27
|
end
|
28
28
|
|
29
29
|
def tree_removed(tree)
|
@@ -33,25 +33,40 @@ module Redcar
|
|
33
33
|
|
34
34
|
def tree_focussed(tree)
|
35
35
|
item = @tab_folder.get_item(tree.tree_mirror.title)
|
36
|
-
@tab_folder.
|
36
|
+
@tab_folder.selection = item
|
37
37
|
end
|
38
38
|
|
39
39
|
def create_tree_view
|
40
40
|
@tab_folder = Swt::Widgets::VTabFolder.new(@window.tree_sash, Swt::SWT::NONE)
|
41
|
-
colors = [
|
42
|
-
Swt::Graphics::Color.new(display,
|
43
|
-
Swt::Graphics::Color.new(display,
|
41
|
+
colors = [
|
42
|
+
Swt::Graphics::Color.new(ApplicationSWT.display, 230, 240, 255),
|
43
|
+
Swt::Graphics::Color.new(ApplicationSWT.display, 170, 199, 246),
|
44
|
+
Swt::Graphics::Color.new(ApplicationSWT.display, 135, 178, 247)
|
45
|
+
]
|
44
46
|
percents = [60, 85]
|
45
47
|
@tab_folder.set_selection_background(colors, percents, true)
|
46
48
|
|
47
|
-
|
49
|
+
attach_view_listeners
|
50
|
+
|
51
|
+
@tab_folder.layout
|
52
|
+
@window.left_composite.layout
|
53
|
+
end
|
54
|
+
|
55
|
+
def attach_view_listeners
|
56
|
+
@tab_folder.add_ctab_folder2_listener do |event|
|
57
|
+
# Close event
|
48
58
|
tab_item = event.item
|
49
59
|
tree_view_swt = tab_item.control
|
50
|
-
@model.
|
60
|
+
@model.remove_tree(tree_view_swt.model)
|
51
61
|
end
|
52
62
|
|
53
|
-
@tab_folder.
|
54
|
-
|
63
|
+
@tab_folder.add_selection_listener do |event|
|
64
|
+
# Widget selected event
|
65
|
+
tab_item = event.item
|
66
|
+
tree_view_swt = tab_item.control
|
67
|
+
tree = tree_view_swt.model
|
68
|
+
@model.focus_tree(tree)
|
69
|
+
end
|
55
70
|
end
|
56
71
|
end
|
57
72
|
end
|
@@ -3,41 +3,43 @@ module Redcar
|
|
3
3
|
class ApplicationSWT
|
4
4
|
class Window
|
5
5
|
attr_reader :shell, :window
|
6
|
-
|
7
|
-
SASH_WIDTH
|
8
|
-
TREEBOOK_WIDTH
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
|
7
|
+
SASH_WIDTH = 5
|
8
|
+
TREEBOOK_WIDTH = 200
|
9
|
+
MINIMUM_TREEBOOK_WIDTH = 0
|
10
|
+
VISIBLE_TREEBOOK_WIDTH = 25
|
11
|
+
TOOLBAR_HEIGHT = 25
|
12
|
+
@toolbar_height = 30
|
13
|
+
|
12
14
|
class ShellListener
|
13
15
|
include org.eclipse.swt.events.ShellListener
|
14
|
-
|
16
|
+
|
15
17
|
def initialize(controller)
|
16
18
|
@win = controller.window
|
17
19
|
end
|
18
|
-
|
20
|
+
|
19
21
|
def shell_closed(e)
|
20
22
|
unless Redcar.app.events.ignore?(:window_close, @win)
|
21
23
|
e.doit = false
|
22
24
|
Redcar.app.events.create(:window_close, @win)
|
23
25
|
end
|
24
26
|
end
|
25
|
-
|
27
|
+
|
26
28
|
def shell_activated(e)
|
27
29
|
unless Redcar.app.events.ignore?(:window_focus, @win)
|
28
30
|
e.doit = false
|
29
31
|
Redcar.app.events.create(:window_focus, @win)
|
30
32
|
end
|
31
33
|
end
|
32
|
-
|
34
|
+
|
33
35
|
def shell_deactivated(_); end
|
34
36
|
def shell_deiconified(_); end
|
35
37
|
def shell_iconified(_); end
|
36
38
|
end
|
37
|
-
|
39
|
+
|
38
40
|
def initialize(window)
|
39
41
|
@window = window
|
40
|
-
|
42
|
+
@notebook_handlers = Hash.new {|h,k| h[k] = []}
|
41
43
|
create_shell
|
42
44
|
create_sashes(window)
|
43
45
|
new_notebook(window.notebooks.first)
|
@@ -47,7 +49,7 @@ module Redcar
|
|
47
49
|
@treebook_unopened = true
|
48
50
|
set_icon
|
49
51
|
end
|
50
|
-
|
52
|
+
|
51
53
|
def add_listeners
|
52
54
|
@window.add_listener(:show, &method(:show))
|
53
55
|
@window.add_listener(:refresh_menu, &method(:refresh_menu))
|
@@ -63,110 +65,117 @@ module Redcar
|
|
63
65
|
@window.add_listener(:focussed, &method(:focussed))
|
64
66
|
@window.add_listener(:speedbar_opened, &method(:speedbar_opened))
|
65
67
|
@window.add_listener(:speedbar_closed, &method(:speedbar_closed))
|
66
|
-
|
68
|
+
|
67
69
|
@window.add_listener(:toggle_trees_visible, &method(:toggle_sash_widths))
|
68
|
-
|
69
70
|
@window.treebook.add_listener(:tree_added) do
|
70
71
|
if @treebook_unopened or not @window.trees_visible?
|
71
72
|
reset_sash_widths
|
72
73
|
@treebook_unopened = false
|
73
74
|
end
|
74
75
|
end
|
75
|
-
|
76
|
+
@window.treebook.add_listener(:tree_focussed) do |tree|
|
77
|
+
if @treebook_unopened or not @window.trees_visible?
|
78
|
+
reset_sash_widths
|
79
|
+
@treebook_unopened = false
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
76
83
|
@window.treebook.add_listener(:tree_removed) do
|
77
84
|
reset_sash_widths
|
78
85
|
end
|
79
86
|
@shell.add_key_listener(KeyListener.new(self))
|
80
87
|
end
|
81
|
-
|
82
|
-
def
|
83
|
-
|
88
|
+
|
89
|
+
def treebook_hidden?
|
90
|
+
treebook_width <= VISIBLE_TREEBOOK_WIDTH
|
84
91
|
end
|
85
|
-
|
92
|
+
|
93
|
+
def treebook_width
|
94
|
+
@sash.layout_data.left.offset
|
95
|
+
end
|
96
|
+
|
97
|
+
def default_treebook_width
|
98
|
+
TREEBOOK_WIDTH + SASH_WIDTH
|
99
|
+
end
|
100
|
+
|
86
101
|
def fullscreen
|
87
102
|
@shell.fullScreen()
|
88
103
|
end
|
89
|
-
|
104
|
+
|
90
105
|
def fullscreen=(value)
|
91
106
|
@shell.setFullScreen(value)
|
92
107
|
end
|
93
|
-
|
108
|
+
|
94
109
|
class KeyListener
|
95
110
|
def initialize(edit_view_swt)
|
96
111
|
@edit_view_swt = edit_view_swt
|
97
112
|
end
|
98
|
-
|
113
|
+
|
99
114
|
def key_pressed(key_event)
|
100
|
-
|
115
|
+
p key_event
|
101
116
|
if key_event.character == Swt::SWT::TAB
|
102
|
-
|
117
|
+
p :tab_pressedwin
|
103
118
|
elsif key_event.character == Swt::SWT::ESC
|
104
|
-
|
119
|
+
p :esc_pressedwin
|
105
120
|
end
|
106
121
|
end
|
107
|
-
|
122
|
+
|
108
123
|
def verify_key(key_event)
|
109
|
-
|
124
|
+
p :verkey
|
110
125
|
if key_event.character == Swt::SWT::TAB
|
111
|
-
|
112
|
-
|
126
|
+
p :tab_pressed
|
127
|
+
key_event.doit = false
|
113
128
|
end
|
114
129
|
end
|
115
|
-
|
130
|
+
|
116
131
|
def key_released(key_event)
|
117
132
|
end
|
118
133
|
end
|
119
|
-
|
134
|
+
|
120
135
|
def create_treebook_controller
|
121
136
|
treebook = @window.treebook
|
122
137
|
controller = ApplicationSWT::Treebook.new(
|
123
|
-
|
124
|
-
|
138
|
+
self,
|
139
|
+
treebook)
|
125
140
|
treebook.controller = controller
|
126
141
|
end
|
127
|
-
|
142
|
+
|
128
143
|
def show
|
129
144
|
@shell.open
|
130
145
|
@shell.text = window.title
|
131
146
|
end
|
132
|
-
|
147
|
+
|
133
148
|
def refresh_menu
|
134
149
|
old_menu_bar = shell.menu_bar
|
135
150
|
@menu_controller = ApplicationSWT::Menu.new(self, Redcar.app.main_menu(@window), Redcar.app.main_keymap, Swt::SWT::BAR)
|
136
151
|
shell.menu_bar = @menu_controller.menu_bar
|
137
152
|
old_menu_bar.dispose if old_menu_bar
|
138
153
|
end
|
139
|
-
|
154
|
+
|
140
155
|
def refresh_toolbar
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
156
|
+
if Redcar.app.show_toolbar?
|
157
|
+
@toolbar_controller = ApplicationSWT::ToolBar.new(self, Redcar.app.main_toolbar, Swt::SWT::HORIZONTAL | Swt::SWT::BORDER)
|
158
|
+
@toolbar_controller.show()
|
159
|
+
@toolbar_height = @toolbar_controller.height.to_i
|
160
|
+
else
|
161
|
+
@toolbar_controller.hide() if @toolbar_controller
|
162
|
+
@toolbar_height = 0
|
163
|
+
end
|
164
|
+
reset_sash_height
|
150
165
|
end
|
151
|
-
|
166
|
+
|
152
167
|
def set_icon
|
153
|
-
|
154
|
-
icon = Swt::Graphics::Image.new(ApplicationSWT.display, path)
|
155
|
-
shell.image = icon
|
168
|
+
shell.image = Icon.swt_image(icon_file)
|
156
169
|
end
|
157
|
-
|
158
|
-
def icon_dir
|
159
|
-
File.join(Redcar.root, %w(plugins application icons))
|
160
|
-
end
|
161
|
-
|
170
|
+
|
162
171
|
def icon_file
|
163
172
|
if Redcar::VERSION =~ /dev$/
|
164
|
-
|
173
|
+
:redcar_icon_beta_dev
|
165
174
|
else
|
166
|
-
|
175
|
+
:redcar_icon_beta
|
167
176
|
end
|
168
177
|
end
|
169
|
-
|
178
|
+
|
170
179
|
def bring_to_front
|
171
180
|
@shell.set_minimized(false) # unminimize, just in case
|
172
181
|
@shell.redraw
|
@@ -177,34 +186,34 @@ module Redcar
|
|
177
186
|
@shell.force_active # doesn't do anything, really
|
178
187
|
@shell.set_active
|
179
188
|
end
|
180
|
-
|
189
|
+
|
181
190
|
def popup_menu(menu)
|
182
191
|
menu.controller = ApplicationSWT::Menu.new(self, menu, nil, Swt::SWT::POP_UP)
|
183
192
|
menu.controller.show
|
184
193
|
end
|
185
|
-
|
194
|
+
|
186
195
|
def popup_menu_with_numbers(menu)
|
187
196
|
menu.controller = ApplicationSWT::Menu.new(self, menu, nil, Swt::SWT::POP_UP, :numbers => true)
|
188
197
|
menu.controller.show
|
189
198
|
end
|
190
|
-
|
199
|
+
|
191
200
|
def speedbar_opened(speedbar)
|
192
201
|
speedbar.controller = ApplicationSWT::Speedbar.new(@window, right_composite, speedbar)
|
193
202
|
end
|
194
|
-
|
203
|
+
|
195
204
|
def speedbar_closed(speedbar)
|
196
205
|
speedbar.controller.close
|
197
206
|
end
|
198
|
-
|
207
|
+
|
199
208
|
def title_changed(new_title)
|
200
209
|
@shell.text = new_title
|
201
210
|
end
|
202
|
-
|
211
|
+
|
203
212
|
def new_notebook(notebook_model)
|
204
213
|
notebook_controller = ApplicationSWT::Notebook.new(notebook_model, @notebook_sash)
|
205
214
|
reset_notebook_sash_widths
|
206
215
|
end
|
207
|
-
|
216
|
+
|
208
217
|
def notebook_removed(notebook_model)
|
209
218
|
notebook_controller = notebook_model.controller
|
210
219
|
@notebook_handlers[notebook_model].each do |h|
|
@@ -213,32 +222,32 @@ module Redcar
|
|
213
222
|
notebook_controller.dispose
|
214
223
|
reset_notebook_sash_widths
|
215
224
|
end
|
216
|
-
|
225
|
+
|
217
226
|
def notebook_orientation_changed(new_orientation)
|
218
227
|
orientation = horizontal_vertical(new_orientation)
|
219
228
|
@notebook_sash.setOrientation(orientation)
|
220
229
|
end
|
221
|
-
|
230
|
+
|
222
231
|
def focussed(_)
|
223
232
|
@shell.set_active
|
224
233
|
end
|
225
|
-
|
234
|
+
|
226
235
|
def closed(_)
|
227
236
|
@shell.close
|
228
237
|
@menu_controller.close
|
229
238
|
@toolbar_controller.close if @toolbar_controller
|
230
239
|
end
|
231
|
-
|
240
|
+
|
232
241
|
def dispose
|
233
242
|
@shell.dispose
|
234
243
|
@menu_controller.close
|
235
244
|
@toolbar_controller.close
|
236
245
|
end
|
237
|
-
|
246
|
+
|
238
247
|
attr_reader :right_composite, :left_composite, :tree_composite, :tree_layout, :tree_sash
|
239
|
-
|
248
|
+
|
240
249
|
private
|
241
|
-
|
250
|
+
|
242
251
|
def create_shell
|
243
252
|
@shell = Swt::Widgets::Shell.new(ApplicationSWT.display)
|
244
253
|
@shell.layout = Swt::Layout::FormLayout.new
|
@@ -251,10 +260,10 @@ module Redcar
|
|
251
260
|
end
|
252
261
|
ApplicationSWT.register_shell(@shell)
|
253
262
|
end
|
254
|
-
|
263
|
+
|
255
264
|
def create_sashes(window_model)
|
256
265
|
orientation = horizontal_vertical(window_model.notebook_orientation)
|
257
|
-
|
266
|
+
|
258
267
|
@left_composite = Swt::Widgets::Composite.new(@shell, Swt::SWT::NONE)
|
259
268
|
@left_composite.layout = Swt::Layout::GridLayout.new(1, false).tap do |l|
|
260
269
|
l.verticalSpacing = 0
|
@@ -262,9 +271,9 @@ module Redcar
|
|
262
271
|
l.horizontalSpacing = 0
|
263
272
|
l.marginWidth = 0
|
264
273
|
end
|
265
|
-
|
274
|
+
|
266
275
|
@sash = Swt::Widgets::Sash.new(@shell, Swt::SWT::VERTICAL)
|
267
|
-
|
276
|
+
|
268
277
|
@right_composite = Swt::Widgets::Composite.new(@shell, Swt::SWT::NONE)
|
269
278
|
@right_composite.layout = Swt::Layout::GridLayout.new(1, false).tap do |l|
|
270
279
|
l.verticalSpacing = 0
|
@@ -272,13 +281,13 @@ module Redcar
|
|
272
281
|
l.horizontalSpacing = 0
|
273
282
|
l.marginWidth = 0
|
274
283
|
end
|
275
|
-
|
284
|
+
|
276
285
|
@sash.layout_data = Swt::Layout::FormData.new.tap do |d|
|
277
286
|
d.left = Swt::Layout::FormAttachment.new(0, 0)
|
278
287
|
d.top = Swt::Layout::FormAttachment.new(0, 5 + TOOLBAR_HEIGHT)
|
279
288
|
d.bottom = Swt::Layout::FormAttachment.new(100, 0)
|
280
289
|
end
|
281
|
-
|
290
|
+
|
282
291
|
@sash.add_selection_listener do |e|
|
283
292
|
sash_rect = @sash.bounds
|
284
293
|
shell_rect = @shell.client_area
|
@@ -293,31 +302,31 @@ module Redcar
|
|
293
302
|
@shell.layout
|
294
303
|
end
|
295
304
|
end
|
296
|
-
|
305
|
+
|
297
306
|
@left_composite.layout_data = Swt::Layout::FormData.new.tap do |l|
|
298
307
|
l.left = Swt::Layout::FormAttachment.new(0, 5)
|
299
308
|
l.right = Swt::Layout::FormAttachment.new(@sash, 0)
|
300
309
|
l.top = Swt::Layout::FormAttachment.new(0, 5 + TOOLBAR_HEIGHT)
|
301
310
|
l.bottom = Swt::Layout::FormAttachment.new(100, -5)
|
302
311
|
end
|
303
|
-
|
312
|
+
|
304
313
|
@right_composite.layout_data = Swt::Layout::FormData.new.tap do |d|
|
305
314
|
d.left = Swt::Layout::FormAttachment.new(@sash, 0)
|
306
315
|
d.right = Swt::Layout::FormAttachment.new(100, -5)
|
307
316
|
d.top = Swt::Layout::FormAttachment.new(0, 5 + TOOLBAR_HEIGHT)
|
308
317
|
d.bottom = Swt::Layout::FormAttachment.new(100, -5)
|
309
318
|
end
|
310
|
-
|
319
|
+
|
311
320
|
@tree_sash = Swt::Custom::SashForm.new(@left_composite, orientation)
|
312
321
|
grid_data = Swt::Layout::GridData.new(Swt::Layout::GridData::FILL_BOTH)
|
313
322
|
@tree_sash.layout_data = grid_data
|
314
|
-
|
323
|
+
|
315
324
|
@notebook_sash = Swt::Custom::SashForm.new(@right_composite, orientation)
|
316
325
|
grid_data = Swt::Layout::GridData.new(Swt::Layout::GridData::FILL_BOTH)
|
317
326
|
@notebook_sash.layout_data = grid_data
|
318
327
|
@notebook_sash.sash_width = SASH_WIDTH
|
319
328
|
end
|
320
|
-
|
329
|
+
|
321
330
|
def horizontal_vertical(symbol)
|
322
331
|
case symbol
|
323
332
|
when :horizontal
|
@@ -326,45 +335,48 @@ module Redcar
|
|
326
335
|
Swt::SWT::VERTICAL
|
327
336
|
end
|
328
337
|
end
|
329
|
-
|
338
|
+
|
330
339
|
def reset_sash_widths
|
331
340
|
@treebook_unopened = !@window.treebook.trees.any?
|
341
|
+
width = 0
|
332
342
|
if @window.treebook.trees.any?
|
333
|
-
@
|
334
|
-
|
335
|
-
|
343
|
+
if @treebook_open_width
|
344
|
+
width = @treebook_open_width
|
345
|
+
else
|
346
|
+
width = default_treebook_width
|
347
|
+
end
|
336
348
|
end
|
337
|
-
|
349
|
+
set_sash_widths(width)
|
338
350
|
end
|
339
|
-
|
351
|
+
|
340
352
|
def toggle_sash_widths
|
341
|
-
if
|
353
|
+
if treebook_hidden?
|
342
354
|
reset_sash_widths
|
343
355
|
else
|
344
|
-
@
|
345
|
-
|
356
|
+
@treebook_open_width = treebook_width
|
357
|
+
set_sash_widths(MINIMUM_TREEBOOK_WIDTH)
|
346
358
|
end
|
347
359
|
end
|
348
|
-
|
360
|
+
|
349
361
|
def set_sash_widths(offset)
|
350
362
|
@sash.layout_data.left = Swt::Layout::FormAttachment.new(0, offset)
|
351
363
|
@shell.layout
|
352
364
|
end
|
353
|
-
|
365
|
+
|
354
366
|
def reset_notebook_sash_widths
|
355
367
|
width = (100/@window.notebooks.length).to_i
|
356
368
|
widths = [width]*@window.notebooks.length
|
357
|
-
|
369
|
+
@notebook_sash.setWeights(widths.to_java(:int))
|
358
370
|
end
|
359
|
-
|
371
|
+
|
360
372
|
def reset_sash_height
|
361
373
|
@sash.layout_data.top = Swt::Layout::FormAttachment.new(0, @toolbar_height.to_i)
|
362
374
|
@left_composite.layout_data.top = Swt::Layout::FormAttachment.new(0, 5 + @toolbar_height.to_i)
|
363
375
|
@right_composite.layout_data.top = Swt::Layout::FormAttachment.new(0, 5 + @toolbar_height.to_i)
|
364
|
-
|
376
|
+
@shell.layout
|
365
377
|
@shell.redraw
|
366
378
|
end
|
367
|
-
|
379
|
+
|
368
380
|
end
|
369
381
|
end
|
370
382
|
end
|