roby 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. data/History.txt +7 -5
  2. data/Manifest.txt +91 -16
  3. data/README.txt +24 -24
  4. data/Rakefile +92 -64
  5. data/app/config/app.yml +42 -43
  6. data/app/config/init.rb +26 -0
  7. data/benchmark/alloc_misc.rb +123 -0
  8. data/benchmark/discovery_latency.rb +67 -0
  9. data/benchmark/garbage_collection.rb +48 -0
  10. data/benchmark/genom.rb +31 -0
  11. data/benchmark/transactions.rb +62 -0
  12. data/bin/roby +1 -1
  13. data/bin/roby-log +16 -6
  14. data/doc/guide/.gitignore +2 -0
  15. data/doc/guide/config.yaml +34 -0
  16. data/doc/guide/ext/init.rb +14 -0
  17. data/doc/guide/ext/previous_next.rb +40 -0
  18. data/doc/guide/ext/rdoc_links.rb +33 -0
  19. data/doc/guide/index.rdoc +16 -0
  20. data/doc/guide/overview.rdoc +62 -0
  21. data/doc/guide/plan_modifications.rdoc +67 -0
  22. data/doc/guide/src/abstraction/achieve_with.page +8 -0
  23. data/doc/guide/src/abstraction/forwarding.page +8 -0
  24. data/doc/guide/src/abstraction/hierarchy.page +19 -0
  25. data/doc/guide/src/abstraction/index.page +28 -0
  26. data/doc/guide/src/abstraction/task_models.page +13 -0
  27. data/doc/guide/src/basics.template +6 -0
  28. data/doc/guide/src/basics/app.page +139 -0
  29. data/doc/guide/src/basics/code_examples.page +33 -0
  30. data/doc/guide/src/basics/dry.page +69 -0
  31. data/doc/guide/src/basics/errors.page +443 -0
  32. data/doc/guide/src/basics/events.page +179 -0
  33. data/doc/guide/src/basics/hierarchy.page +275 -0
  34. data/doc/guide/src/basics/index.page +11 -0
  35. data/doc/guide/src/basics/log_replay/goForward_1.png +0 -0
  36. data/doc/guide/src/basics/log_replay/goForward_2.png +0 -0
  37. data/doc/guide/src/basics/log_replay/goForward_3.png +0 -0
  38. data/doc/guide/src/basics/log_replay/goForward_4.png +0 -0
  39. data/doc/guide/src/basics/log_replay/goForward_5.png +0 -0
  40. data/doc/guide/src/basics/log_replay/hierarchy_error_1.png +0 -0
  41. data/doc/guide/src/basics/log_replay/hierarchy_error_2.png +0 -0
  42. data/doc/guide/src/basics/log_replay/hierarchy_error_3.png +0 -0
  43. data/doc/guide/src/basics/log_replay/plan_repair_1.png +0 -0
  44. data/doc/guide/src/basics/log_replay/plan_repair_2.png +0 -0
  45. data/doc/guide/src/basics/log_replay/plan_repair_3.png +0 -0
  46. data/doc/guide/src/basics/log_replay/plan_repair_4.png +0 -0
  47. data/doc/guide/src/basics/log_replay/roby_log_main_window.png +0 -0
  48. data/doc/guide/src/basics/log_replay/roby_log_relation_window.png +0 -0
  49. data/doc/guide/src/basics/log_replay/roby_replay_event_representation.png +0 -0
  50. data/doc/guide/src/basics/plan_objects.page +71 -0
  51. data/doc/guide/src/basics/relations_display.page +203 -0
  52. data/doc/guide/src/basics/roby_cycle_overview.png +0 -0
  53. data/doc/guide/src/basics/shell.page +102 -0
  54. data/doc/guide/src/basics/summary.page +32 -0
  55. data/doc/guide/src/basics/tasks.page +357 -0
  56. data/doc/guide/src/basics_shell_header.txt +16 -0
  57. data/doc/guide/src/cycle/cycle-overview.png +0 -0
  58. data/doc/guide/src/cycle/cycle-overview.svg +208 -0
  59. data/doc/guide/src/cycle/error_handling.page +168 -0
  60. data/doc/guide/src/cycle/error_instantaneous_repair.png +0 -0
  61. data/doc/guide/src/cycle/error_instantaneous_repair.svg +1224 -0
  62. data/doc/guide/src/cycle/garbage_collection.page +10 -0
  63. data/doc/guide/src/cycle/index.page +23 -0
  64. data/doc/guide/src/cycle/propagation.page +154 -0
  65. data/doc/guide/src/cycle/propagation_diamond.png +0 -0
  66. data/doc/guide/src/cycle/propagation_diamond.svg +1279 -0
  67. data/doc/guide/src/default.css +319 -0
  68. data/doc/guide/src/default.template +74 -0
  69. data/doc/guide/src/htmldoc.metainfo +20 -0
  70. data/doc/guide/src/htmldoc.virtual +18 -0
  71. data/doc/guide/src/images/bodybg.png +0 -0
  72. data/doc/guide/src/images/contbg.png +0 -0
  73. data/doc/guide/src/images/footerbg.png +0 -0
  74. data/doc/guide/src/images/gradient1.png +0 -0
  75. data/doc/guide/src/images/gradient2.png +0 -0
  76. data/doc/guide/src/index.page +7 -0
  77. data/doc/guide/src/introduction/index.page +29 -0
  78. data/doc/guide/src/introduction/install.page +133 -0
  79. data/doc/{papers.rdoc → guide/src/introduction/publications.page} +5 -2
  80. data/doc/{videos.rdoc → guide/src/introduction/videos.page} +4 -2
  81. data/doc/guide/src/plugins/fault_tolerance.page +44 -0
  82. data/doc/guide/src/plugins/index.page +11 -0
  83. data/doc/guide/src/plugins/subsystems.page +45 -0
  84. data/doc/guide/src/relations/dependency.page +89 -0
  85. data/doc/guide/src/relations/index.page +12 -0
  86. data/doc/misc/update_github +24 -0
  87. data/doc/tutorials/02-GoForward.rdoc +3 -3
  88. data/ext/graph/graph.cc +46 -0
  89. data/lib/roby.rb +57 -22
  90. data/lib/roby/app.rb +132 -112
  91. data/lib/roby/app/plugins/rake.rb +21 -0
  92. data/lib/roby/app/rake.rb +0 -7
  93. data/lib/roby/app/run.rb +1 -1
  94. data/lib/roby/app/scripts/distributed.rb +1 -2
  95. data/lib/roby/app/scripts/generate/bookmarks.rb +1 -1
  96. data/lib/roby/app/scripts/results.rb +2 -1
  97. data/lib/roby/app/scripts/run.rb +6 -2
  98. data/lib/roby/app/scripts/shell.rb +11 -11
  99. data/lib/roby/config.rb +1 -1
  100. data/lib/roby/decision_control.rb +62 -3
  101. data/lib/roby/distributed.rb +4 -0
  102. data/lib/roby/distributed/base.rb +8 -0
  103. data/lib/roby/distributed/communication.rb +12 -8
  104. data/lib/roby/distributed/connection_space.rb +61 -44
  105. data/lib/roby/distributed/distributed_object.rb +1 -1
  106. data/lib/roby/distributed/notifications.rb +22 -30
  107. data/lib/roby/distributed/peer.rb +13 -8
  108. data/lib/roby/distributed/proxy.rb +5 -5
  109. data/lib/roby/distributed/subscription.rb +4 -4
  110. data/lib/roby/distributed/transaction.rb +3 -3
  111. data/lib/roby/event.rb +176 -110
  112. data/lib/roby/exceptions.rb +12 -4
  113. data/lib/roby/execution_engine.rb +1604 -0
  114. data/lib/roby/external_process_task.rb +225 -0
  115. data/lib/roby/graph.rb +0 -6
  116. data/lib/roby/interface.rb +221 -137
  117. data/lib/roby/log/console.rb +5 -3
  118. data/lib/roby/log/data_stream.rb +94 -16
  119. data/lib/roby/log/dot.rb +8 -8
  120. data/lib/roby/log/event_stream.rb +13 -3
  121. data/lib/roby/log/file.rb +43 -18
  122. data/lib/roby/log/gui/basic_display_ui.rb +89 -0
  123. data/lib/roby/log/gui/chronicle_view_ui.rb +90 -0
  124. data/lib/roby/log/gui/data_displays.rb +4 -5
  125. data/lib/roby/log/gui/data_displays_ui.rb +146 -0
  126. data/lib/roby/log/gui/relations.rb +18 -18
  127. data/lib/roby/log/gui/relations_ui.rb +120 -0
  128. data/lib/roby/log/gui/relations_view_ui.rb +144 -0
  129. data/lib/roby/log/gui/replay.rb +41 -13
  130. data/lib/roby/log/gui/replay_controls.rb +3 -0
  131. data/lib/roby/log/gui/replay_controls.ui +133 -110
  132. data/lib/roby/log/gui/replay_controls_ui.rb +249 -0
  133. data/lib/roby/log/hooks.rb +19 -18
  134. data/lib/roby/log/logger.rb +7 -6
  135. data/lib/roby/log/notifications.rb +4 -4
  136. data/lib/roby/log/plan_rebuilder.rb +20 -22
  137. data/lib/roby/log/relations.rb +44 -16
  138. data/lib/roby/log/server.rb +1 -4
  139. data/lib/roby/log/timings.rb +88 -19
  140. data/lib/roby/plan-object.rb +135 -11
  141. data/lib/roby/plan.rb +408 -224
  142. data/lib/roby/planning/loops.rb +32 -25
  143. data/lib/roby/planning/model.rb +157 -51
  144. data/lib/roby/planning/task.rb +47 -20
  145. data/lib/roby/query.rb +128 -92
  146. data/lib/roby/relations.rb +254 -136
  147. data/lib/roby/relations/conflicts.rb +6 -9
  148. data/lib/roby/relations/dependency.rb +358 -0
  149. data/lib/roby/relations/ensured.rb +0 -1
  150. data/lib/roby/relations/error_handling.rb +0 -1
  151. data/lib/roby/relations/events.rb +0 -2
  152. data/lib/roby/relations/executed_by.rb +26 -11
  153. data/lib/roby/relations/planned_by.rb +14 -14
  154. data/lib/roby/robot.rb +46 -0
  155. data/lib/roby/schedulers/basic.rb +34 -0
  156. data/lib/roby/standalone.rb +4 -0
  157. data/lib/roby/standard_errors.rb +21 -15
  158. data/lib/roby/state/events.rb +5 -4
  159. data/lib/roby/support.rb +107 -6
  160. data/lib/roby/task-operations.rb +23 -19
  161. data/lib/roby/task.rb +522 -148
  162. data/lib/roby/task_index.rb +80 -0
  163. data/lib/roby/test/common.rb +283 -44
  164. data/lib/roby/test/distributed.rb +53 -37
  165. data/lib/roby/test/testcase.rb +9 -204
  166. data/lib/roby/test/tools.rb +3 -3
  167. data/lib/roby/transactions.rb +154 -111
  168. data/lib/roby/transactions/proxy.rb +40 -7
  169. data/manifest.xml +20 -0
  170. data/plugins/fault_injection/README.txt +0 -3
  171. data/plugins/fault_injection/Rakefile +2 -8
  172. data/plugins/fault_injection/app.rb +1 -1
  173. data/plugins/fault_injection/fault_injection.rb +3 -3
  174. data/plugins/fault_injection/test/test_fault_injection.rb +19 -25
  175. data/plugins/subsystems/README.txt +0 -3
  176. data/plugins/subsystems/Rakefile +2 -7
  177. data/plugins/subsystems/app.rb +27 -16
  178. data/plugins/subsystems/test/app/config/init.rb +3 -0
  179. data/plugins/subsystems/test/app/planners/main.rb +1 -1
  180. data/plugins/subsystems/test/app/tasks/services.rb +1 -1
  181. data/plugins/subsystems/test/test_subsystems.rb +23 -16
  182. data/test/distributed/test_communication.rb +32 -15
  183. data/test/distributed/test_connection.rb +28 -26
  184. data/test/distributed/test_execution.rb +59 -54
  185. data/test/distributed/test_mixed_plan.rb +34 -34
  186. data/test/distributed/test_plan_notifications.rb +26 -26
  187. data/test/distributed/test_protocol.rb +57 -48
  188. data/test/distributed/test_query.rb +11 -7
  189. data/test/distributed/test_remote_plan.rb +71 -71
  190. data/test/distributed/test_transaction.rb +50 -47
  191. data/test/mockups/external_process +28 -0
  192. data/test/planning/test_loops.rb +163 -119
  193. data/test/planning/test_model.rb +3 -3
  194. data/test/planning/test_task.rb +27 -7
  195. data/test/relations/test_conflicts.rb +3 -3
  196. data/test/relations/test_dependency.rb +324 -0
  197. data/test/relations/test_ensured.rb +2 -2
  198. data/test/relations/test_executed_by.rb +94 -19
  199. data/test/relations/test_planned_by.rb +11 -9
  200. data/test/suite_core.rb +6 -3
  201. data/test/suite_distributed.rb +1 -0
  202. data/test/suite_planning.rb +1 -0
  203. data/test/suite_relations.rb +2 -2
  204. data/test/tasks/test_external_process.rb +126 -0
  205. data/test/{test_thread_task.rb → tasks/test_thread_task.rb} +17 -20
  206. data/test/test_bgl.rb +21 -1
  207. data/test/test_event.rb +229 -155
  208. data/test/test_exceptions.rb +79 -80
  209. data/test/test_execution_engine.rb +987 -0
  210. data/test/test_gui.rb +1 -1
  211. data/test/test_interface.rb +11 -5
  212. data/test/test_log.rb +18 -7
  213. data/test/test_log_server.rb +1 -0
  214. data/test/test_plan.rb +229 -395
  215. data/test/test_query.rb +193 -35
  216. data/test/test_relations.rb +88 -8
  217. data/test/test_state.rb +55 -37
  218. data/test/test_support.rb +1 -1
  219. data/test/test_task.rb +371 -218
  220. data/test/test_testcase.rb +32 -16
  221. data/test/test_transactions.rb +211 -170
  222. data/test/test_transactions_proxy.rb +37 -19
  223. metadata +169 -71
  224. data/.gitignore +0 -29
  225. data/doc/styles/allison.css +0 -314
  226. data/doc/styles/allison.js +0 -316
  227. data/doc/styles/allison.rb +0 -276
  228. data/doc/styles/jamis.rb +0 -593
  229. data/lib/roby/control.rb +0 -746
  230. data/lib/roby/executives/simple.rb +0 -30
  231. data/lib/roby/propagation.rb +0 -562
  232. data/lib/roby/relations/hierarchy.rb +0 -239
  233. data/lib/roby/transactions/updates.rb +0 -139
  234. data/test/relations/test_hierarchy.rb +0 -158
  235. data/test/test_control.rb +0 -399
  236. data/test/test_propagation.rb +0 -210
@@ -0,0 +1,90 @@
1
+ =begin
2
+ ** Form generated from reading ui file 'chronicle_view.ui'
3
+ **
4
+ ** Created: Mon Jan 25 15:21:37 2010
5
+ ** by: Qt User Interface Compiler version 4.5.3
6
+ **
7
+ ** WARNING! All changes made in this file will be lost when recompiling ui file!
8
+ =end
9
+
10
+ class Ui_ChronicleView
11
+ attr_reader :actionTimeScale
12
+ attr_reader :actionTimeUnscale
13
+ attr_reader :actionZoom
14
+ attr_reader :actionUnZoom
15
+ attr_reader :centralwidget
16
+ attr_reader :vboxLayout
17
+ attr_reader :graphics
18
+ attr_reader :menubar
19
+ attr_reader :menuView
20
+ attr_reader :statusbar
21
+
22
+ def setupUi(chronicleView)
23
+ if chronicleView.objectName.nil?
24
+ chronicleView.objectName = "chronicleView"
25
+ end
26
+ chronicleView.resize(800, 600)
27
+ @actionTimeScale = Qt::Action.new(chronicleView)
28
+ @actionTimeScale.objectName = "actionTimeScale"
29
+ @actionTimeUnscale = Qt::Action.new(chronicleView)
30
+ @actionTimeUnscale.objectName = "actionTimeUnscale"
31
+ @actionZoom = Qt::Action.new(chronicleView)
32
+ @actionZoom.objectName = "actionZoom"
33
+ @actionUnZoom = Qt::Action.new(chronicleView)
34
+ @actionUnZoom.objectName = "actionUnZoom"
35
+ @centralwidget = Qt::Widget.new(chronicleView)
36
+ @centralwidget.objectName = "centralwidget"
37
+ @vboxLayout = Qt::VBoxLayout.new(@centralwidget)
38
+ @vboxLayout.objectName = "vboxLayout"
39
+ @graphics = Qt::GraphicsView.new(@centralwidget)
40
+ @graphics.objectName = "graphics"
41
+ @graphics.renderHints = Qt::Painter::Antialiasing|Qt::Painter::TextAntialiasing
42
+
43
+ @vboxLayout.addWidget(@graphics)
44
+
45
+ chronicleView.centralWidget = @centralwidget
46
+ @menubar = Qt::MenuBar.new(chronicleView)
47
+ @menubar.objectName = "menubar"
48
+ @menubar.geometry = Qt::Rect.new(0, 0, 800, 29)
49
+ @menuView = Qt::Menu.new(@menubar)
50
+ @menuView.objectName = "menuView"
51
+ chronicleView.setMenuBar(@menubar)
52
+ @statusbar = Qt::StatusBar.new(chronicleView)
53
+ @statusbar.objectName = "statusbar"
54
+ chronicleView.statusBar = @statusbar
55
+
56
+ @menubar.addAction(@menuView.menuAction())
57
+ @menuView.addAction(@actionTimeScale)
58
+ @menuView.addAction(@actionTimeUnscale)
59
+ @menuView.addAction(@actionZoom)
60
+ @menuView.addAction(@actionUnZoom)
61
+
62
+ retranslateUi(chronicleView)
63
+
64
+ Qt::MetaObject.connectSlotsByName(chronicleView)
65
+ end # setupUi
66
+
67
+ def setup_ui(chronicleView)
68
+ setupUi(chronicleView)
69
+ end
70
+
71
+ def retranslateUi(chronicleView)
72
+ chronicleView.windowTitle = Qt::Application.translate("ChronicleView", "MainWindow", nil, Qt::Application::UnicodeUTF8)
73
+ @actionTimeScale.text = Qt::Application.translate("ChronicleView", "Timescale +", nil, Qt::Application::UnicodeUTF8)
74
+ @actionTimeUnscale.text = Qt::Application.translate("ChronicleView", "Timescale -", nil, Qt::Application::UnicodeUTF8)
75
+ @actionZoom.text = Qt::Application.translate("ChronicleView", "Zoom +", nil, Qt::Application::UnicodeUTF8)
76
+ @actionUnZoom.text = Qt::Application.translate("ChronicleView", " Zoom-", nil, Qt::Application::UnicodeUTF8)
77
+ @menuView.title = Qt::Application.translate("ChronicleView", "View", nil, Qt::Application::UnicodeUTF8)
78
+ end # retranslateUi
79
+
80
+ def retranslate_ui(chronicleView)
81
+ retranslateUi(chronicleView)
82
+ end
83
+
84
+ end
85
+
86
+ module Ui
87
+ class ChronicleView < Ui_ChronicleView
88
+ end
89
+ end # module Ui
90
+
@@ -35,13 +35,12 @@ class DataStreamListModel < Qt::AbstractListModel
35
35
  end
36
36
 
37
37
  def insertRow(row, parent)
38
- emit beginInsertRows(parent, row, row)
39
- if stream = edit(nil)
40
- @streams.insert row, stream
38
+ if streams = edit(nil)
39
+ streams.each do |s|
40
+ add_new(s)
41
+ end
41
42
  return true
42
43
  end
43
- ensure
44
- emit endInsertRows()
45
44
  end
46
45
 
47
46
  def removeRow(row, parent)
@@ -0,0 +1,146 @@
1
+ =begin
2
+ ** Form generated from reading ui file 'data_displays.ui'
3
+ **
4
+ ** Created: Mon Jan 25 15:21:37 2010
5
+ ** by: Qt User Interface Compiler version 4.5.3
6
+ **
7
+ ** WARNING! All changes made in this file will be lost when recompiling ui file!
8
+ =end
9
+
10
+ class Ui_DataDisplays
11
+ attr_reader :vboxLayout
12
+ attr_reader :groupBox
13
+ attr_reader :vboxLayout1
14
+ attr_reader :streams
15
+ attr_reader :hboxLayout
16
+ attr_reader :spacerItem
17
+ attr_reader :add_stream
18
+ attr_reader :remove_stream
19
+ attr_reader :displaysGroup
20
+ attr_reader :vboxLayout2
21
+ attr_reader :hboxLayout1
22
+ attr_reader :display_types
23
+ attr_reader :display_add
24
+ attr_reader :display_configs
25
+
26
+ def setupUi(dataDisplays)
27
+ if dataDisplays.objectName.nil?
28
+ dataDisplays.objectName = "dataDisplays"
29
+ end
30
+ dataDisplays.resize(548, 508)
31
+ @vboxLayout = Qt::VBoxLayout.new(dataDisplays)
32
+ @vboxLayout.spacing = 6
33
+ @vboxLayout.margin = 9
34
+ @vboxLayout.objectName = "vboxLayout"
35
+ @groupBox = Qt::GroupBox.new(dataDisplays)
36
+ @groupBox.objectName = "groupBox"
37
+ @vboxLayout1 = Qt::VBoxLayout.new(@groupBox)
38
+ @vboxLayout1.spacing = 6
39
+ @vboxLayout1.margin = 9
40
+ @vboxLayout1.objectName = "vboxLayout1"
41
+ @streams = Qt::ListView.new(@groupBox)
42
+ @streams.objectName = "streams"
43
+
44
+ @vboxLayout1.addWidget(@streams)
45
+
46
+ @hboxLayout = Qt::HBoxLayout.new()
47
+ @hboxLayout.spacing = 6
48
+ @hboxLayout.margin = 0
49
+ @hboxLayout.objectName = "hboxLayout"
50
+ @spacerItem = Qt::SpacerItem.new(40, 20, Qt::SizePolicy::Expanding, Qt::SizePolicy::Minimum)
51
+
52
+ @hboxLayout.addItem(@spacerItem)
53
+
54
+ @add_stream = Qt::PushButton.new(@groupBox)
55
+ @add_stream.objectName = "add_stream"
56
+
57
+ @hboxLayout.addWidget(@add_stream)
58
+
59
+ @remove_stream = Qt::PushButton.new(@groupBox)
60
+ @remove_stream.objectName = "remove_stream"
61
+
62
+ @hboxLayout.addWidget(@remove_stream)
63
+
64
+
65
+ @vboxLayout1.addLayout(@hboxLayout)
66
+
67
+
68
+ @vboxLayout.addWidget(@groupBox)
69
+
70
+ @displaysGroup = Qt::GroupBox.new(dataDisplays)
71
+ @displaysGroup.objectName = "displaysGroup"
72
+ @vboxLayout2 = Qt::VBoxLayout.new(@displaysGroup)
73
+ @vboxLayout2.spacing = 6
74
+ @vboxLayout2.margin = 9
75
+ @vboxLayout2.objectName = "vboxLayout2"
76
+ @hboxLayout1 = Qt::HBoxLayout.new()
77
+ @hboxLayout1.spacing = 6
78
+ @hboxLayout1.margin = 0
79
+ @hboxLayout1.objectName = "hboxLayout1"
80
+ @display_types = Qt::ComboBox.new(@displaysGroup)
81
+ @display_types.objectName = "display_types"
82
+ @sizePolicy = Qt::SizePolicy.new(5, 0)
83
+ @sizePolicy.setHorizontalStretch(1)
84
+ @sizePolicy.setVerticalStretch(0)
85
+ @sizePolicy.heightForWidth = @display_types.sizePolicy.hasHeightForWidth
86
+ @display_types.sizePolicy = @sizePolicy
87
+
88
+ @hboxLayout1.addWidget(@display_types)
89
+
90
+ @display_add = Qt::PushButton.new(@displaysGroup)
91
+ @display_add.objectName = "display_add"
92
+
93
+ @hboxLayout1.addWidget(@display_add)
94
+
95
+
96
+ @vboxLayout2.addLayout(@hboxLayout1)
97
+
98
+ @display_configs = Qt::ToolBox.new(@displaysGroup)
99
+ @display_configs.objectName = "display_configs"
100
+ @sizePolicy1 = Qt::SizePolicy.new(5, 3)
101
+ @sizePolicy1.setHorizontalStretch(0)
102
+ @sizePolicy1.setVerticalStretch(0)
103
+ @sizePolicy1.heightForWidth = @display_configs.sizePolicy.hasHeightForWidth
104
+ @display_configs.sizePolicy = @sizePolicy1
105
+
106
+ @vboxLayout2.addWidget(@display_configs)
107
+
108
+
109
+ @vboxLayout.addWidget(@displaysGroup)
110
+
111
+
112
+ retranslateUi(dataDisplays)
113
+
114
+ @display_configs.setCurrentIndex(-1)
115
+
116
+
117
+ Qt::MetaObject.connectSlotsByName(dataDisplays)
118
+ end # setupUi
119
+
120
+ def setup_ui(dataDisplays)
121
+ setupUi(dataDisplays)
122
+ end
123
+
124
+ def retranslateUi(dataDisplays)
125
+ dataDisplays.windowTitle = Qt::Application.translate("DataDisplays", "Form", nil, Qt::Application::UnicodeUTF8)
126
+ @groupBox.title = Qt::Application.translate("DataDisplays", "Data sources", nil, Qt::Application::UnicodeUTF8)
127
+ @add_stream.text = Qt::Application.translate("DataDisplays", "&Add", nil, Qt::Application::UnicodeUTF8)
128
+ @remove_stream.text = Qt::Application.translate("DataDisplays", "Remove", nil, Qt::Application::UnicodeUTF8)
129
+ @displaysGroup.title = Qt::Application.translate("DataDisplays", "Displays", nil, Qt::Application::UnicodeUTF8)
130
+ @display_types.insertItems(0, [Qt::Application.translate("DataDisplays", "Relations", nil, Qt::Application::UnicodeUTF8),
131
+ Qt::Application.translate("DataDisplays", "Chronicle", nil, Qt::Application::UnicodeUTF8),
132
+ Qt::Application.translate("DataDisplays", "Notifications", nil, Qt::Application::UnicodeUTF8)])
133
+ @display_add.text = Qt::Application.translate("DataDisplays", "&Add", nil, Qt::Application::UnicodeUTF8)
134
+ end # retranslateUi
135
+
136
+ def retranslate_ui(dataDisplays)
137
+ retranslateUi(dataDisplays)
138
+ end
139
+
140
+ end
141
+
142
+ module Ui
143
+ class DataDisplays < Ui_DataDisplays
144
+ end
145
+ end # module Ui
146
+
@@ -17,20 +17,19 @@ module Ui
17
17
  EVENT_ROOT_INDEX = 1
18
18
  CATEGORIES = ['Task structure']
19
19
 
20
- def event_root_index; createIndex(TASK_ROOT_INDEX, 0, -1) end
21
- def task_root_index; createIndex(EVENT_ROOT_INDEX, 0, -1) end
20
+ def event_root_index; createIndex(EVENT_ROOT_INDEX, 0, -1) end
21
+ def task_root_index; createIndex(TASK_ROOT_INDEX, 0, -1) end
22
22
 
23
23
  attr_reader :relations
24
24
  attr_reader :display
25
25
  def initialize(display)
26
26
  super()
27
27
 
28
- Roby.load_all_relations
29
28
  @current_color = 0
30
29
  @display = display
31
30
  @relations = []
32
31
 
33
- relations[TASK_ROOT_INDEX] = Roby::TaskStructure.enum_for(:each_relation).to_a
32
+ relations[TASK_ROOT_INDEX] = Roby::Log::RelationsDisplay.all_task_relations
34
33
 
35
34
  RelationConfigModel.detect_qtruby_behaviour(createIndex(0, 0, 0))
36
35
  end
@@ -231,22 +230,23 @@ module Ui
231
230
 
232
231
  def self.setup_optparse(opt, replay)
233
232
  opt.on("--relations=REL1,REL2", Array, "create a relation display with the given relations") do |relations|
234
- if relations.include?("all")
235
- relations = Roby::TaskStructure.relations
236
- else
237
- relations.map! do |relname|
238
- rel = Roby::TaskStructure.relations.find { |rel| rel.name =~ /#{relname}/ }
239
- unless rel
240
- STDERR.puts "Unknown relation #{relname}. Available relations are:"
241
- STDERR.puts " Tasks: " + Roby::TaskStructure.enum_for(:each_relation).map { |r| r.name.gsub(/.*Structure::/, '') }.join(", ")
242
- exit(1)
243
- end
233
+ replay.initial_setup << lambda do |gui|
234
+ all_relations = Roby::Log::RelationsDisplay.all_task_relations
235
+ if relations.include?("all")
236
+ relations = all_relations
237
+ else
238
+ relations.map! do |relname|
239
+ rel = all_relations.find { |rel| rel.name =~ /#{relname}/ }
240
+ unless rel
241
+ STDERR.puts "Unknown relation #{relname}. Available relations are:"
242
+ STDERR.puts " Tasks: " + all_relations.map { |r| r.name.gsub(/.*Structure::/, '') }.join(", ")
243
+ exit(1)
244
+ end
244
245
 
245
- rel
246
- end
247
- end
246
+ rel
247
+ end
248
+ end
248
249
 
249
- replay.initial_setup << lambda do |gui|
250
250
  if relation_display = gui.add_display('Relations')
251
251
  relations.each do |rel|
252
252
  relation_display.enable_relation(rel)
@@ -0,0 +1,120 @@
1
+ =begin
2
+ ** Form generated from reading ui file 'relations.ui'
3
+ **
4
+ ** Created: Mon Jan 25 15:21:37 2010
5
+ ** by: Qt User Interface Compiler version 4.5.3
6
+ **
7
+ ** WARNING! All changes made in this file will be lost when recompiling ui file!
8
+ =end
9
+
10
+ class Ui_RelationsConfig
11
+ attr_reader :vboxLayout
12
+ attr_reader :hboxLayout
13
+ attr_reader :spacerItem
14
+ attr_reader :close
15
+ attr_reader :gridLayout
16
+ attr_reader :layout_method
17
+ attr_reader :label
18
+ attr_reader :stream
19
+ attr_reader :label_2
20
+ attr_reader :relations
21
+
22
+ def setupUi(relationsConfig)
23
+ if relationsConfig.objectName.nil?
24
+ relationsConfig.objectName = "relationsConfig"
25
+ end
26
+ relationsConfig.resize(696, 668)
27
+ @vboxLayout = Qt::VBoxLayout.new(relationsConfig)
28
+ @vboxLayout.spacing = 6
29
+ @vboxLayout.margin = 9
30
+ @vboxLayout.objectName = "vboxLayout"
31
+ @hboxLayout = Qt::HBoxLayout.new()
32
+ @hboxLayout.spacing = 6
33
+ @hboxLayout.margin = 0
34
+ @hboxLayout.objectName = "hboxLayout"
35
+ @spacerItem = Qt::SpacerItem.new(40, 20, Qt::SizePolicy::Expanding, Qt::SizePolicy::Minimum)
36
+
37
+ @hboxLayout.addItem(@spacerItem)
38
+
39
+ @close = Qt::PushButton.new(relationsConfig)
40
+ @close.objectName = "close"
41
+
42
+ @hboxLayout.addWidget(@close)
43
+
44
+
45
+ @vboxLayout.addLayout(@hboxLayout)
46
+
47
+ @gridLayout = Qt::GridLayout.new()
48
+ @gridLayout.spacing = 6
49
+ @gridLayout.margin = 0
50
+ @gridLayout.objectName = "gridLayout"
51
+ @layout_method = Qt::ComboBox.new(relationsConfig)
52
+ @layout_method.objectName = "layout_method"
53
+ @sizePolicy = Qt::SizePolicy.new(3, 0)
54
+ @sizePolicy.setHorizontalStretch(0)
55
+ @sizePolicy.setVerticalStretch(0)
56
+ @sizePolicy.heightForWidth = @layout_method.sizePolicy.hasHeightForWidth
57
+ @layout_method.sizePolicy = @sizePolicy
58
+
59
+ @gridLayout.addWidget(@layout_method, 1, 2, 1, 1)
60
+
61
+ @label = Qt::Label.new(relationsConfig)
62
+ @label.objectName = "label"
63
+ @sizePolicy1 = Qt::SizePolicy.new(1, 5)
64
+ @sizePolicy1.setHorizontalStretch(0)
65
+ @sizePolicy1.setVerticalStretch(0)
66
+ @sizePolicy1.heightForWidth = @label.sizePolicy.hasHeightForWidth
67
+ @label.sizePolicy = @sizePolicy1
68
+
69
+ @gridLayout.addWidget(@label, 0, 0, 1, 1)
70
+
71
+ @stream = Qt::ComboBox.new(relationsConfig)
72
+ @stream.objectName = "stream"
73
+ @sizePolicy.heightForWidth = @stream.sizePolicy.hasHeightForWidth
74
+ @stream.sizePolicy = @sizePolicy
75
+
76
+ @gridLayout.addWidget(@stream, 0, 1, 1, 2)
77
+
78
+ @label_2 = Qt::Label.new(relationsConfig)
79
+ @label_2.objectName = "label_2"
80
+ @sizePolicy1.heightForWidth = @label_2.sizePolicy.hasHeightForWidth
81
+ @label_2.sizePolicy = @sizePolicy1
82
+
83
+ @gridLayout.addWidget(@label_2, 1, 0, 1, 2)
84
+
85
+
86
+ @vboxLayout.addLayout(@gridLayout)
87
+
88
+ @relations = Qt::TreeView.new(relationsConfig)
89
+ @relations.objectName = "relations"
90
+
91
+ @vboxLayout.addWidget(@relations)
92
+
93
+
94
+ retranslateUi(relationsConfig)
95
+
96
+ Qt::MetaObject.connectSlotsByName(relationsConfig)
97
+ end # setupUi
98
+
99
+ def setup_ui(relationsConfig)
100
+ setupUi(relationsConfig)
101
+ end
102
+
103
+ def retranslateUi(relationsConfig)
104
+ relationsConfig.windowTitle = Qt::Application.translate("RelationsConfig", "RelationsConfig", nil, Qt::Application::UnicodeUTF8)
105
+ @close.text = Qt::Application.translate("RelationsConfig", "Close", nil, Qt::Application::UnicodeUTF8)
106
+ @label.text = Qt::Application.translate("RelationsConfig", "Data stream", nil, Qt::Application::UnicodeUTF8)
107
+ @label_2.text = Qt::Application.translate("RelationsConfig", "Layout method", nil, Qt::Application::UnicodeUTF8)
108
+ end # retranslateUi
109
+
110
+ def retranslate_ui(relationsConfig)
111
+ retranslateUi(relationsConfig)
112
+ end
113
+
114
+ end
115
+
116
+ module Ui
117
+ class RelationsConfig < Ui_RelationsConfig
118
+ end
119
+ end # module Ui
120
+
@@ -0,0 +1,144 @@
1
+ =begin
2
+ ** Form generated from reading ui file 'relations_view.ui'
3
+ **
4
+ ** Created: Mon Jan 25 15:21:37 2010
5
+ ** by: Qt User Interface Compiler version 4.5.3
6
+ **
7
+ ** WARNING! All changes made in this file will be lost when recompiling ui file!
8
+ =end
9
+
10
+ class Ui_RelationsView
11
+ attr_reader :actionShowAll
12
+ attr_reader :actionRedraw
13
+ attr_reader :actionZoom
14
+ attr_reader :actionUnzoom
15
+ attr_reader :actionFit
16
+ attr_reader :actionOwnership
17
+ attr_reader :actionPrefixAdd
18
+ attr_reader :actionSVGExport
19
+ attr_reader :actionPrint
20
+ attr_reader :actionKeepSignals
21
+ attr_reader :actionBookmarksAdd
22
+ attr_reader :actionHideFinalized
23
+ attr_reader :centralwidget
24
+ attr_reader :vboxLayout
25
+ attr_reader :graphics
26
+ attr_reader :menubar
27
+ attr_reader :menuView
28
+ attr_reader :menuTask_labels
29
+ attr_reader :menuRemovedPrefixes
30
+
31
+ def setupUi(relationsView)
32
+ if relationsView.objectName.nil?
33
+ relationsView.objectName = "relationsView"
34
+ end
35
+ relationsView.resize(800, 600)
36
+ @actionShowAll = Qt::Action.new(relationsView)
37
+ @actionShowAll.objectName = "actionShowAll"
38
+ @actionRedraw = Qt::Action.new(relationsView)
39
+ @actionRedraw.objectName = "actionRedraw"
40
+ @actionZoom = Qt::Action.new(relationsView)
41
+ @actionZoom.objectName = "actionZoom"
42
+ @actionUnzoom = Qt::Action.new(relationsView)
43
+ @actionUnzoom.objectName = "actionUnzoom"
44
+ @actionFit = Qt::Action.new(relationsView)
45
+ @actionFit.objectName = "actionFit"
46
+ @actionOwnership = Qt::Action.new(relationsView)
47
+ @actionOwnership.objectName = "actionOwnership"
48
+ @actionOwnership.checkable = true
49
+ @actionOwnership.checked = true
50
+ @actionPrefixAdd = Qt::Action.new(relationsView)
51
+ @actionPrefixAdd.objectName = "actionPrefixAdd"
52
+ @actionSVGExport = Qt::Action.new(relationsView)
53
+ @actionSVGExport.objectName = "actionSVGExport"
54
+ @actionPrint = Qt::Action.new(relationsView)
55
+ @actionPrint.objectName = "actionPrint"
56
+ @actionKeepSignals = Qt::Action.new(relationsView)
57
+ @actionKeepSignals.objectName = "actionKeepSignals"
58
+ @actionKeepSignals.checkable = true
59
+ @actionKeepSignals.checked = false
60
+ @actionBookmarksAdd = Qt::Action.new(relationsView)
61
+ @actionBookmarksAdd.objectName = "actionBookmarksAdd"
62
+ @actionHideFinalized = Qt::Action.new(relationsView)
63
+ @actionHideFinalized.objectName = "actionHideFinalized"
64
+ @actionHideFinalized.checkable = true
65
+ @actionHideFinalized.checked = true
66
+ @centralwidget = Qt::Widget.new(relationsView)
67
+ @centralwidget.objectName = "centralwidget"
68
+ @vboxLayout = Qt::VBoxLayout.new(@centralwidget)
69
+ @vboxLayout.objectName = "vboxLayout"
70
+ @graphics = Qt::GraphicsView.new(@centralwidget)
71
+ @graphics.objectName = "graphics"
72
+ @graphics.renderHints = Qt::Painter::Antialiasing|Qt::Painter::TextAntialiasing
73
+
74
+ @vboxLayout.addWidget(@graphics)
75
+
76
+ relationsView.centralWidget = @centralwidget
77
+ @menubar = Qt::MenuBar.new(relationsView)
78
+ @menubar.objectName = "menubar"
79
+ @menubar.geometry = Qt::Rect.new(0, 0, 800, 29)
80
+ @menuView = Qt::Menu.new(@menubar)
81
+ @menuView.objectName = "menuView"
82
+ @menuTask_labels = Qt::Menu.new(@menubar)
83
+ @menuTask_labels.objectName = "menuTask_labels"
84
+ @menuRemovedPrefixes = Qt::Menu.new(@menuTask_labels)
85
+ @menuRemovedPrefixes.objectName = "menuRemovedPrefixes"
86
+ relationsView.setMenuBar(@menubar)
87
+
88
+ @menubar.addAction(@menuView.menuAction())
89
+ @menubar.addAction(@menuTask_labels.menuAction())
90
+ @menuView.addAction(@actionKeepSignals)
91
+ @menuView.addAction(@actionHideFinalized)
92
+ @menuView.addAction(@actionShowAll)
93
+ @menuView.addAction(@actionRedraw)
94
+ @menuView.addSeparator()
95
+ @menuView.addAction(@actionZoom)
96
+ @menuView.addAction(@actionUnzoom)
97
+ @menuView.addAction(@actionFit)
98
+ @menuView.addSeparator()
99
+ @menuView.addAction(@actionSVGExport)
100
+ @menuView.addAction(@actionPrint)
101
+ @menuTask_labels.addAction(@actionOwnership)
102
+ @menuTask_labels.addAction(@menuRemovedPrefixes.menuAction())
103
+ @menuRemovedPrefixes.addAction(@actionPrefixAdd)
104
+ @menuRemovedPrefixes.addSeparator()
105
+
106
+ retranslateUi(relationsView)
107
+
108
+ Qt::MetaObject.connectSlotsByName(relationsView)
109
+ end # setupUi
110
+
111
+ def setup_ui(relationsView)
112
+ setupUi(relationsView)
113
+ end
114
+
115
+ def retranslateUi(relationsView)
116
+ relationsView.windowTitle = Qt::Application.translate("RelationsView", "MainWindow", nil, Qt::Application::UnicodeUTF8)
117
+ @actionShowAll.text = Qt::Application.translate("RelationsView", "Show All", nil, Qt::Application::UnicodeUTF8)
118
+ @actionRedraw.text = Qt::Application.translate("RelationsView", "Redaw", nil, Qt::Application::UnicodeUTF8)
119
+ @actionZoom.text = Qt::Application.translate("RelationsView", "Zoom +", nil, Qt::Application::UnicodeUTF8)
120
+ @actionUnzoom.text = Qt::Application.translate("RelationsView", "Zoom -", nil, Qt::Application::UnicodeUTF8)
121
+ @actionFit.text = Qt::Application.translate("RelationsView", "Fit", nil, Qt::Application::UnicodeUTF8)
122
+ @actionOwnership.text = Qt::Application.translate("RelationsView", "Ownership", nil, Qt::Application::UnicodeUTF8)
123
+ @actionPrefixAdd.text = Qt::Application.translate("RelationsView", "Add...", nil, Qt::Application::UnicodeUTF8)
124
+ @actionSVGExport.text = Qt::Application.translate("RelationsView", "SVG Export", nil, Qt::Application::UnicodeUTF8)
125
+ @actionPrint.text = Qt::Application.translate("RelationsView", "Print", nil, Qt::Application::UnicodeUTF8)
126
+ @actionKeepSignals.text = Qt::Application.translate("RelationsView", "Keep signals", nil, Qt::Application::UnicodeUTF8)
127
+ @actionBookmarksAdd.text = Qt::Application.translate("RelationsView", "Add ...", nil, Qt::Application::UnicodeUTF8)
128
+ @actionHideFinalized.text = Qt::Application.translate("RelationsView", "Hide Finalized", nil, Qt::Application::UnicodeUTF8)
129
+ @menuView.title = Qt::Application.translate("RelationsView", "View", nil, Qt::Application::UnicodeUTF8)
130
+ @menuTask_labels.title = Qt::Application.translate("RelationsView", "Task labels", nil, Qt::Application::UnicodeUTF8)
131
+ @menuRemovedPrefixes.title = Qt::Application.translate("RelationsView", "Removed prefixes", nil, Qt::Application::UnicodeUTF8)
132
+ end # retranslateUi
133
+
134
+ def retranslate_ui(relationsView)
135
+ retranslateUi(relationsView)
136
+ end
137
+
138
+ end
139
+
140
+ module Ui
141
+ class RelationsView < Ui_RelationsView
142
+ end
143
+ end # module Ui
144
+