roby 0.8.0 → 3.0.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.
- checksums.yaml +7 -0
- data/.deep-cover.rb +3 -0
- data/.gitattributes +1 -0
- data/.gitignore +24 -0
- data/.simplecov +10 -0
- data/.travis.yml +17 -0
- data/.yardopts +4 -0
- data/Gemfile +15 -0
- data/README.md +11 -0
- data/Rakefile +47 -177
- data/benchmark/{alloc_misc.rb → attic/alloc_misc.rb} +2 -2
- data/benchmark/{discovery_latency.rb → attic/discovery_latency.rb} +19 -19
- data/benchmark/{garbage_collection.rb → attic/garbage_collection.rb} +9 -9
- data/benchmark/{genom.rb → attic/genom.rb} +0 -0
- data/benchmark/attic/transactions.rb +62 -0
- data/benchmark/plan_basic_operations.rb +28 -0
- data/benchmark/relations/graph.rb +63 -0
- data/benchmark/ruby/identity.rb +18 -0
- data/benchmark/ruby/set_intersect_vs_hash_merge.rb +39 -0
- data/benchmark/ruby/yield_vs_block.rb +35 -0
- data/benchmark/run +5 -0
- data/benchmark/synthetic_plan_modifications_with_transactions.rb +79 -0
- data/benchmark/transactions.rb +99 -51
- data/bin/roby +38 -197
- data/bin/roby-display +14 -0
- data/bin/roby-log +3 -176
- data/doc/guide/{src → attic}/abstraction/achieve_with.page +1 -1
- data/doc/guide/{src → attic}/abstraction/forwarding.page +1 -1
- data/doc/guide/{src → attic}/abstraction/hierarchy.page +1 -1
- data/doc/guide/{src → attic}/abstraction/index.page +1 -1
- data/doc/guide/{src → attic}/abstraction/task_models.page +1 -1
- data/doc/guide/{overview.rdoc → attic/cycle/api_overview.rdoc} +6 -1
- data/doc/guide/{src → attic}/cycle/cycle-overview.png +0 -0
- data/doc/guide/{src → attic}/cycle/cycle-overview.svg +0 -0
- data/doc/guide/attic/cycle/error_handling.page +98 -0
- data/doc/guide/{src → attic}/cycle/error_instantaneous_repair.png +0 -0
- data/doc/guide/{src → attic}/cycle/error_instantaneous_repair.svg +0 -0
- data/doc/guide/{src/cycle/error_handling.page → attic/cycle/error_sources.page} +46 -89
- data/doc/guide/{src → attic}/cycle/garbage_collection.page +1 -1
- data/doc/guide/{src → attic}/cycle/index.page +1 -1
- data/doc/guide/{src → attic}/cycle/propagation.page +11 -1
- data/doc/guide/{src → attic}/cycle/propagation_diamond.png +0 -0
- data/doc/guide/{src → attic}/cycle/propagation_diamond.svg +0 -0
- data/doc/guide/attic/plans/building_plans.page +89 -0
- data/doc/guide/attic/plans/code.page +192 -0
- data/doc/guide/{src/basics → attic/plans}/events.page +3 -4
- data/doc/guide/attic/plans/index.page +7 -0
- data/doc/guide/{plan_modifications.rdoc → attic/plans/plan_modifications.rdoc} +5 -3
- data/doc/guide/{src/basics → attic/plans}/plan_objects.page +2 -1
- data/doc/guide/attic/plans/querying_plans.page +5 -0
- data/doc/guide/{src/basics → attic/plans}/tasks.page +20 -20
- data/doc/guide/config.yaml +7 -4
- data/doc/guide/ext/extended_menu.rb +29 -0
- data/doc/guide/ext/init.rb +6 -0
- data/doc/guide/ext/rdoc_links.rb +7 -6
- data/doc/guide/src/advanced_concepts/history.page +5 -0
- data/doc/guide/src/advanced_concepts/index.page +11 -0
- data/doc/guide/src/advanced_concepts/recognizing_patterns.page +83 -0
- data/doc/guide/src/advanced_concepts/scheduling.page +87 -0
- data/doc/guide/src/advanced_concepts/transactions.page +5 -0
- data/doc/guide/src/advanced_concepts/unreachability.page +42 -0
- data/doc/guide/src/base.template +96 -0
- data/doc/guide/src/basics_shell_header.txt +5 -7
- data/doc/guide/src/building/action_coordination.page +96 -0
- data/doc/guide/src/building/actions.page +124 -0
- data/doc/guide/src/building/file_layout.page +71 -0
- data/doc/guide/src/building/index.page +50 -0
- data/doc/guide/src/building/patterns.page +86 -0
- data/doc/guide/src/building/patterns_forwarding.png +0 -0
- data/doc/guide/src/building/patterns_forwarding.svg +277 -0
- data/doc/guide/src/building/runtime.page +95 -0
- data/doc/guide/src/building/task_models.page +94 -0
- data/doc/guide/src/building/tasks.page +284 -0
- data/doc/guide/src/concepts/error_handling.page +100 -0
- data/doc/guide/src/concepts/exception_propagation.png +0 -0
- data/doc/guide/src/concepts/exception_propagation.svg +445 -0
- data/doc/guide/src/concepts/execution.page +85 -0
- data/doc/guide/src/concepts/execution.png +0 -0
- data/doc/guide/src/concepts/execution.svg +573 -0
- data/doc/guide/src/concepts/execution_cycle.png +0 -0
- data/doc/guide/src/concepts/garbage_collection.page +57 -0
- data/doc/guide/src/concepts/index.page +27 -0
- data/doc/guide/src/concepts/plans.page +101 -0
- data/doc/guide/src/concepts/policy.page +31 -0
- data/doc/guide/src/concepts/reactor.page +61 -0
- data/doc/guide/src/concepts/simple_plan_example.png +0 -0
- data/doc/guide/src/concepts/simple_plan_example.svg +376 -0
- data/doc/guide/src/default.template +9 -74
- data/doc/guide/src/event_relations/forward.page +71 -0
- data/doc/guide/src/event_relations/index.page +12 -0
- data/doc/guide/src/event_relations/scheduling_constraints.page +43 -0
- data/doc/guide/src/event_relations/signal.page +55 -0
- data/doc/guide/src/event_relations/temporal_constraints.page +77 -0
- data/doc/guide/src/htmldoc.metainfo +21 -8
- data/doc/guide/src/index.page +8 -3
- data/doc/guide/src/{introduction/install.page → installation/index.page} +37 -25
- data/doc/guide/src/installation/publications.page +14 -0
- data/doc/guide/src/{introduction → installation}/videos.page +14 -7
- data/doc/guide/src/interacting/index.page +16 -0
- data/doc/guide/src/interacting/run.page +33 -0
- data/doc/guide/src/interacting/shell.page +95 -0
- data/doc/guide/src/plugins/creating_plugins.page +72 -0
- data/doc/guide/src/plugins/index.page +27 -5
- data/doc/guide/src/plugins/{fault_tolerance.page → standard_plugins/fault_tolerance.page} +2 -2
- data/doc/guide/src/plugins/standard_plugins/index.page +11 -0
- data/doc/guide/src/plugins/{subsystems.page → standard_plugins/subsystems.page} +2 -2
- data/doc/guide/src/style_screen.css +687 -0
- data/doc/guide/src/task_relations/dependency.page +107 -0
- data/doc/guide/src/task_relations/executed_by.page +77 -0
- data/doc/guide/src/task_relations/index.page +12 -0
- data/doc/guide/src/task_relations/new_relations.page +119 -0
- data/doc/guide/src/task_relations/planned_by.page +46 -0
- data/doc/guide/src/tutorial/app.page +117 -0
- data/doc/guide/src/{basics → tutorial}/code_examples.page +6 -5
- data/doc/guide/src/{basics → tutorial}/dry.page +15 -15
- data/doc/guide/src/{basics → tutorial}/errors.page +43 -68
- data/doc/guide/src/tutorial/events.page +195 -0
- data/doc/guide/src/{basics → tutorial}/hierarchy.page +53 -52
- data/doc/guide/src/tutorial/index.page +13 -0
- data/doc/guide/src/tutorial/log_replay/goForward_1.png +0 -0
- data/doc/guide/src/tutorial/log_replay/goForward_2.png +0 -0
- data/doc/guide/src/tutorial/log_replay/goForward_3.png +0 -0
- data/doc/guide/src/{basics → tutorial}/log_replay/goForward_4.png +0 -0
- data/doc/guide/src/tutorial/log_replay/goForward_5.png +0 -0
- data/doc/guide/src/{basics → tutorial}/log_replay/hierarchy_error_1.png +0 -0
- data/doc/guide/src/{basics → tutorial}/log_replay/hierarchy_error_2.png +0 -0
- data/doc/guide/src/{basics → tutorial}/log_replay/hierarchy_error_3.png +0 -0
- data/doc/guide/src/tutorial/log_replay/moveto_code_error.png +0 -0
- data/doc/guide/src/{basics → tutorial}/log_replay/plan_repair_1.png +0 -0
- data/doc/guide/src/{basics → tutorial}/log_replay/plan_repair_2.png +0 -0
- data/doc/guide/src/{basics → tutorial}/log_replay/plan_repair_3.png +0 -0
- data/doc/guide/src/tutorial/log_replay/plan_repair_4.png +0 -0
- data/doc/guide/src/tutorial/log_replay/roby_log_main_window.png +0 -0
- data/doc/guide/src/{basics → tutorial}/log_replay/roby_log_relation_window.png +0 -0
- data/doc/guide/src/{basics → tutorial}/log_replay/roby_replay_event_representation.png +0 -0
- data/doc/guide/src/tutorial/relations_display.page +153 -0
- data/doc/guide/src/{basics → tutorial}/roby_cycle_overview.png +0 -0
- data/doc/guide/src/tutorial/shell.page +121 -0
- data/doc/guide/src/{basics → tutorial}/summary.page +1 -1
- data/doc/guide/src/tutorial/tasks.page +374 -0
- data/lib/roby.rb +102 -47
- data/lib/roby/actions.rb +17 -0
- data/lib/roby/actions/action.rb +80 -0
- data/lib/roby/actions/interface.rb +45 -0
- data/lib/roby/actions/library.rb +23 -0
- data/lib/roby/actions/models/action.rb +224 -0
- data/lib/roby/actions/models/coordination_action.rb +58 -0
- data/lib/roby/actions/models/interface.rb +22 -0
- data/lib/roby/actions/models/interface_base.rb +294 -0
- data/lib/roby/actions/models/library.rb +12 -0
- data/lib/roby/actions/models/method_action.rb +90 -0
- data/lib/roby/actions/task.rb +114 -0
- data/lib/roby/and_generator.rb +125 -0
- data/lib/roby/app.rb +2795 -829
- data/lib/roby/app/autotest_console_reporter.rb +138 -0
- data/lib/roby/app/base.rb +21 -0
- data/lib/roby/app/cucumber.rb +2 -0
- data/lib/roby/app/cucumber/controller.rb +439 -0
- data/lib/roby/app/cucumber/helpers.rb +280 -0
- data/lib/roby/app/cucumber/world.rb +32 -0
- data/lib/roby/app/debug.rb +136 -0
- data/lib/roby/app/gen.rb +2 -0
- data/lib/roby/app/rake.rb +178 -38
- data/lib/roby/app/robot_config.rb +9 -0
- data/lib/roby/app/robot_names.rb +115 -0
- data/lib/roby/app/run.rb +3 -2
- data/lib/roby/app/scripts.rb +72 -0
- data/lib/roby/app/scripts/autotest.rb +173 -0
- data/lib/roby/app/scripts/display.rb +2 -0
- data/lib/roby/app/scripts/restart.rb +52 -0
- data/lib/roby/app/scripts/results.rb +17 -8
- data/lib/roby/app/scripts/run.rb +155 -24
- data/lib/roby/app/scripts/shell.rb +147 -62
- data/lib/roby/app/scripts/test.rb +107 -22
- data/lib/roby/app/test_reporter.rb +74 -0
- data/lib/roby/app/test_server.rb +159 -0
- data/lib/roby/app/vagrant.rb +47 -0
- data/lib/roby/backports.rb +16 -0
- data/lib/roby/cli/display.rb +190 -0
- data/lib/roby/cli/exceptions.rb +17 -0
- data/lib/roby/cli/gen/actions/class.rb +5 -0
- data/lib/roby/cli/gen/actions/test.rb +6 -0
- data/lib/roby/cli/gen/app/.yardopts +6 -0
- data/lib/roby/cli/gen/app/README.md +28 -0
- data/lib/roby/cli/gen/app/Rakefile +15 -0
- data/{app → lib/roby/cli/gen/app}/config/app.yml +29 -39
- data/lib/roby/cli/gen/app/models/.gitattributes +1 -0
- data/{app → lib/roby/cli/gen/app/scripts}/controllers/.gitattributes +0 -0
- data/{app/data/.gitattributes → lib/roby/cli/gen/app/test/.gitignore} +0 -0
- data/lib/roby/cli/gen/class/class.rb +6 -0
- data/lib/roby/cli/gen/class/test.rb +7 -0
- data/lib/roby/cli/gen/helpers.rb +203 -0
- data/lib/roby/cli/gen/module/module.rb +5 -0
- data/lib/roby/cli/gen/module/test.rb +6 -0
- data/lib/roby/cli/gen/roby_app/config/init.rb +17 -0
- data/lib/roby/cli/gen/roby_app/config/robots/robot.rb +40 -0
- data/lib/roby/cli/gen/task/class.rb +44 -0
- data/lib/roby/cli/gen/task/test.rb +6 -0
- data/lib/roby/cli/gen_main.rb +120 -0
- data/lib/roby/cli/log.rb +276 -0
- data/lib/roby/cli/log/flamegraph.html +499 -0
- data/lib/roby/cli/log/flamegraph_renderer.rb +88 -0
- data/lib/roby/cli/main.rb +153 -0
- data/lib/roby/coordination.rb +60 -0
- data/lib/roby/coordination/action_script.rb +25 -0
- data/lib/roby/coordination/action_state_machine.rb +125 -0
- data/lib/roby/coordination/actions.rb +106 -0
- data/lib/roby/coordination/base.rb +145 -0
- data/lib/roby/coordination/calculus.rb +40 -0
- data/lib/roby/coordination/child.rb +28 -0
- data/lib/roby/coordination/event.rb +29 -0
- data/lib/roby/coordination/fault_handler.rb +25 -0
- data/lib/roby/coordination/fault_handling_task.rb +13 -0
- data/lib/roby/coordination/fault_response_table.rb +110 -0
- data/lib/roby/coordination/models/action_script.rb +64 -0
- data/lib/roby/coordination/models/action_state_machine.rb +224 -0
- data/lib/roby/coordination/models/actions.rb +191 -0
- data/lib/roby/coordination/models/arguments.rb +55 -0
- data/lib/roby/coordination/models/base.rb +176 -0
- data/lib/roby/coordination/models/capture.rb +86 -0
- data/lib/roby/coordination/models/child.rb +35 -0
- data/lib/roby/coordination/models/event.rb +41 -0
- data/lib/roby/coordination/models/exceptions.rb +42 -0
- data/lib/roby/coordination/models/fault_handler.rb +219 -0
- data/lib/roby/coordination/models/fault_response_table.rb +77 -0
- data/lib/roby/coordination/models/root.rb +22 -0
- data/lib/roby/coordination/models/script.rb +283 -0
- data/lib/roby/coordination/models/task.rb +184 -0
- data/lib/roby/coordination/models/task_from_action.rb +50 -0
- data/lib/roby/coordination/models/task_from_as_plan.rb +33 -0
- data/lib/roby/coordination/models/task_from_instanciation_object.rb +31 -0
- data/lib/roby/coordination/models/task_from_variable.rb +27 -0
- data/lib/roby/coordination/models/task_with_dependencies.rb +48 -0
- data/lib/roby/coordination/models/variable.rb +32 -0
- data/lib/roby/coordination/script.rb +200 -0
- data/lib/roby/coordination/script_instruction.rb +12 -0
- data/lib/roby/coordination/task.rb +45 -0
- data/lib/roby/coordination/task_base.rb +69 -0
- data/lib/roby/coordination/task_script.rb +293 -0
- data/lib/roby/coordination/task_state_machine.rb +308 -0
- data/lib/roby/decision_control.rb +33 -21
- data/lib/roby/distributed_object.rb +76 -0
- data/lib/roby/droby.rb +17 -0
- data/lib/roby/droby/droby_id.rb +6 -0
- data/lib/roby/droby/enable.rb +153 -0
- data/lib/roby/droby/event_logger.rb +189 -0
- data/lib/roby/droby/event_logging.rb +57 -0
- data/lib/roby/droby/exceptions.rb +14 -0
- data/lib/roby/droby/identifiable.rb +22 -0
- data/lib/roby/droby/logfile.rb +141 -0
- data/lib/roby/droby/logfile/client.rb +176 -0
- data/lib/roby/droby/logfile/file_format.md +97 -0
- data/lib/roby/droby/logfile/index.rb +117 -0
- data/lib/roby/droby/logfile/reader.rb +139 -0
- data/lib/roby/droby/logfile/server.rb +199 -0
- data/lib/roby/droby/logfile/writer.rb +114 -0
- data/lib/roby/droby/marshal.rb +264 -0
- data/lib/roby/droby/marshallable.rb +12 -0
- data/lib/roby/droby/null_event_logger.rb +25 -0
- data/lib/roby/droby/object_manager.rb +205 -0
- data/lib/roby/droby/peer_id.rb +6 -0
- data/lib/roby/droby/plan_rebuilder.rb +373 -0
- data/lib/roby/droby/rebuilt_plan.rb +160 -0
- data/lib/roby/droby/remote_droby_id.rb +6 -0
- data/lib/roby/droby/timepoints.rb +205 -0
- data/lib/roby/droby/timepoints_ctf.metadata.erb +101 -0
- data/lib/roby/droby/timepoints_ctf.rb +125 -0
- data/lib/roby/droby/v5.rb +14 -0
- data/lib/roby/droby/v5/builtin.rb +120 -0
- data/lib/roby/droby/v5/droby_class.rb +45 -0
- data/lib/roby/droby/v5/droby_constant.rb +81 -0
- data/lib/roby/droby/v5/droby_dump.rb +1026 -0
- data/lib/roby/droby/v5/droby_id.rb +44 -0
- data/lib/roby/droby/v5/droby_model.rb +82 -0
- data/lib/roby/droby/v5/peer_id.rb +10 -0
- data/lib/roby/droby/v5/remote_droby_id.rb +42 -0
- data/lib/roby/event.rb +79 -957
- data/lib/roby/event_constraints.rb +835 -0
- data/lib/roby/event_generator.rb +1047 -0
- data/lib/roby/event_structure/causal_link.rb +6 -0
- data/lib/roby/event_structure/forwarding.rb +6 -0
- data/lib/roby/event_structure/precedence.rb +7 -0
- data/lib/roby/event_structure/signal.rb +8 -0
- data/lib/roby/event_structure/temporal_constraints.rb +640 -0
- data/lib/roby/exceptions.rb +446 -152
- data/lib/roby/executable_plan.rb +549 -0
- data/lib/roby/execution_engine.rb +1997 -950
- data/lib/roby/filter_generator.rb +26 -0
- data/lib/roby/gui/chronicle_view.rb +225 -0
- data/lib/roby/gui/chronicle_widget.rb +925 -0
- data/lib/roby/gui/dot_id.rb +11 -0
- data/lib/roby/gui/exception_view.rb +44 -0
- data/lib/roby/gui/log_display.rb +273 -0
- data/lib/roby/gui/model_views.rb +2 -0
- data/lib/roby/gui/model_views/action_interface.rb +53 -0
- data/lib/roby/gui/model_views/task.rb +47 -0
- data/lib/roby/gui/model_views/task.rhtml +41 -0
- data/lib/roby/gui/object_info_view.rb +89 -0
- data/lib/roby/gui/plan_dot_layout.rb +427 -0
- data/lib/roby/gui/plan_rebuilder_widget.rb +357 -0
- data/lib/roby/gui/qt4_toMSecsSinceEpoch.rb +8 -0
- data/lib/roby/gui/relations_view.rb +278 -0
- data/lib/roby/gui/relations_view/relations.ui +139 -0
- data/lib/roby/gui/relations_view/relations_canvas.rb +1088 -0
- data/lib/roby/gui/relations_view/relations_config.rb +292 -0
- data/lib/roby/gui/relations_view/relations_view.ui +53 -0
- data/lib/roby/gui/scheduler_view.css +24 -0
- data/lib/roby/gui/scheduler_view.rb +46 -0
- data/lib/roby/gui/scheduler_view.rhtml +53 -0
- data/lib/roby/gui/stepping.rb +93 -0
- data/lib/roby/gui/stepping.ui +181 -0
- data/lib/roby/gui/styles.rb +81 -0
- data/lib/roby/gui/task_display_configuration.rb +42 -0
- data/lib/roby/gui/task_state_at.rb +38 -0
- data/lib/roby/hooks.rb +26 -0
- data/lib/roby/interface.rb +136 -469
- data/lib/roby/interface/async.rb +20 -0
- data/lib/roby/interface/async/action_monitor.rb +188 -0
- data/lib/roby/interface/async/interface.rb +498 -0
- data/lib/roby/interface/async/job_monitor.rb +213 -0
- data/lib/roby/interface/async/log.rb +238 -0
- data/lib/roby/interface/async/new_job_listener.rb +79 -0
- data/lib/roby/interface/async/ui_connector.rb +183 -0
- data/lib/roby/interface/client.rb +553 -0
- data/lib/roby/interface/command.rb +24 -0
- data/lib/roby/interface/command_argument.rb +16 -0
- data/lib/roby/interface/command_library.rb +92 -0
- data/lib/roby/interface/droby_channel.rb +174 -0
- data/lib/roby/interface/exceptions.rb +22 -0
- data/lib/roby/interface/interface.rb +655 -0
- data/lib/roby/interface/job.rb +47 -0
- data/lib/roby/interface/rest.rb +10 -0
- data/lib/roby/interface/rest/api.rb +29 -0
- data/lib/roby/interface/rest/helpers.rb +24 -0
- data/lib/roby/interface/rest/server.rb +212 -0
- data/lib/roby/interface/server.rb +154 -0
- data/lib/roby/interface/shell_client.rb +468 -0
- data/lib/roby/interface/shell_subcommand.rb +24 -0
- data/lib/roby/interface/subcommand_client.rb +35 -0
- data/lib/roby/interface/tcp.rb +168 -0
- data/lib/roby/models/arguments.rb +112 -0
- data/lib/roby/models/plan_object.rb +83 -0
- data/lib/roby/models/task.rb +835 -0
- data/lib/roby/models/task_event.rb +62 -0
- data/lib/roby/models/task_service.rb +78 -0
- data/lib/roby/or_generator.rb +88 -0
- data/lib/roby/plan.rb +1751 -864
- data/lib/roby/plan_object.rb +611 -0
- data/lib/roby/plan_service.rb +200 -0
- data/lib/roby/promise.rb +332 -0
- data/lib/roby/queries.rb +23 -0
- data/lib/roby/queries/and_matcher.rb +32 -0
- data/lib/roby/queries/any.rb +27 -0
- data/lib/roby/queries/code_error_matcher.rb +58 -0
- data/lib/roby/queries/event_generator_matcher.rb +9 -0
- data/lib/roby/queries/execution_exception_matcher.rb +165 -0
- data/lib/roby/queries/index.rb +165 -0
- data/lib/roby/queries/localized_error_matcher.rb +149 -0
- data/lib/roby/queries/matcher_base.rb +107 -0
- data/lib/roby/queries/none.rb +27 -0
- data/lib/roby/queries/not_matcher.rb +30 -0
- data/lib/roby/queries/op_matcher.rb +8 -0
- data/lib/roby/queries/or_matcher.rb +30 -0
- data/lib/roby/queries/plan_object_matcher.rb +363 -0
- data/lib/roby/queries/query.rb +188 -0
- data/lib/roby/queries/task_event_generator_matcher.rb +86 -0
- data/lib/roby/queries/task_matcher.rb +344 -0
- data/lib/roby/relations.rb +42 -678
- data/lib/roby/relations/bidirectional_directed_adjacency_graph.rb +492 -0
- data/lib/roby/relations/directed_relation_support.rb +268 -0
- data/lib/roby/relations/event_relation_graph.rb +19 -0
- data/lib/roby/relations/fork_merge_visitor.rb +154 -0
- data/lib/roby/relations/graph.rb +533 -0
- data/lib/roby/relations/models/directed_relation_support.rb +11 -0
- data/lib/roby/relations/models/graph.rb +75 -0
- data/lib/roby/relations/models/task_relation_graph.rb +18 -0
- data/lib/roby/relations/space.rb +380 -0
- data/lib/roby/relations/task_relation_graph.rb +20 -0
- data/lib/roby/robot.rb +85 -38
- data/lib/roby/schedulers/basic.rb +155 -25
- data/lib/roby/schedulers/null.rb +20 -0
- data/lib/roby/schedulers/reporting.rb +31 -0
- data/lib/roby/schedulers/state.rb +129 -0
- data/lib/roby/schedulers/temporal.rb +91 -0
- data/lib/roby/singletons.rb +87 -0
- data/lib/roby/standalone.rb +4 -2
- data/lib/roby/standard_errors.rb +405 -82
- data/lib/roby/state.rb +6 -3
- data/lib/roby/state/conf_model.rb +5 -0
- data/lib/roby/state/events.rb +181 -95
- data/lib/roby/state/goal_model.rb +77 -0
- data/lib/roby/state/open_struct.rb +591 -0
- data/lib/roby/state/open_struct_model.rb +68 -0
- data/lib/roby/state/pos.rb +45 -45
- data/lib/roby/state/shapes.rb +11 -11
- data/lib/roby/state/state_model.rb +303 -0
- data/lib/roby/state/task.rb +43 -0
- data/lib/roby/support.rb +88 -148
- data/lib/roby/task.rb +1361 -1750
- data/lib/roby/task_arguments.rb +428 -0
- data/lib/roby/task_event.rb +127 -0
- data/lib/roby/task_event_generator.rb +337 -0
- data/lib/roby/task_service.rb +6 -0
- data/lib/roby/task_structure/conflicts.rb +104 -0
- data/lib/roby/task_structure/dependency.rb +932 -0
- data/lib/roby/task_structure/error_handling.rb +118 -0
- data/lib/roby/task_structure/executed_by.rb +234 -0
- data/lib/roby/task_structure/planned_by.rb +90 -0
- data/lib/roby/tasks/aggregator.rb +37 -0
- data/lib/roby/tasks/external_process.rb +275 -0
- data/lib/roby/tasks/group.rb +27 -0
- data/lib/roby/tasks/null.rb +19 -0
- data/lib/roby/tasks/parallel.rb +43 -0
- data/lib/roby/tasks/sequence.rb +88 -0
- data/lib/roby/tasks/simple.rb +21 -0
- data/lib/roby/{thread_task.rb → tasks/thread.rb} +50 -24
- data/lib/roby/tasks/timeout.rb +17 -0
- data/lib/roby/tasks/virtual.rb +55 -0
- data/lib/roby/template_plan.rb +7 -0
- data/lib/roby/test/aruba_minitest.rb +74 -0
- data/lib/roby/test/assertion.rb +16 -0
- data/lib/roby/test/assertions.rb +490 -0
- data/lib/roby/test/common.rb +368 -591
- data/lib/roby/test/dsl.rb +149 -0
- data/lib/roby/test/error.rb +18 -0
- data/lib/roby/test/event_reporter.rb +83 -0
- data/lib/roby/test/execution_expectations.rb +1134 -0
- data/lib/roby/test/expect_execution.rb +151 -0
- data/lib/roby/test/minitest_helpers.rb +166 -0
- data/lib/roby/test/roby_app_helpers.rb +200 -0
- data/lib/roby/test/run_planners.rb +155 -0
- data/lib/roby/test/self.rb +112 -0
- data/lib/roby/test/spec.rb +198 -0
- data/lib/roby/test/tasks/empty_task.rb +4 -4
- data/lib/roby/test/tasks/goto.rb +28 -27
- data/lib/roby/test/teardown_plans.rb +100 -0
- data/lib/roby/test/testcase.rb +239 -307
- data/lib/roby/test/tools.rb +159 -155
- data/lib/roby/test/validate_state_machine.rb +75 -0
- data/lib/roby/transaction.rb +1125 -0
- data/lib/roby/transaction/event_generator_proxy.rb +63 -0
- data/lib/roby/transaction/plan_object_proxy.rb +99 -0
- data/lib/roby/transaction/plan_service_proxy.rb +43 -0
- data/lib/roby/transaction/proxying.rb +120 -0
- data/lib/roby/transaction/task_event_generator_proxy.rb +19 -0
- data/lib/roby/transaction/task_proxy.rb +135 -0
- data/lib/roby/until_generator.rb +30 -0
- data/lib/roby/version.rb +5 -0
- data/lib/roby/yard.rb +169 -0
- data/lib/yard-roby.rb +1 -0
- data/manifest.xml +32 -6
- data/roby.gemspec +59 -0
- metadata +788 -587
- data/Manifest.txt +0 -321
- data/NOTES +0 -4
- data/README.txt +0 -166
- data/TODO.txt +0 -146
- data/app/README.txt +0 -24
- data/app/Rakefile +0 -8
- data/app/config/ROBOT.rb +0 -5
- data/app/config/init.rb +0 -33
- data/app/config/roby.yml +0 -3
- data/app/controllers/ROBOT.rb +0 -2
- data/app/planners/ROBOT/main.rb +0 -6
- data/app/planners/main.rb +0 -5
- data/app/scripts/distributed +0 -3
- data/app/scripts/generate/bookmarks +0 -3
- data/app/scripts/replay +0 -3
- data/app/scripts/results +0 -3
- data/app/scripts/run +0 -3
- data/app/scripts/server +0 -3
- data/app/scripts/shell +0 -3
- data/app/scripts/test +0 -3
- data/app/tasks/.gitattributes +0 -0
- data/app/tasks/ROBOT/.gitattributes +0 -0
- data/bin/roby-shell +0 -25
- data/doc/guide/src/basics/app.page +0 -139
- data/doc/guide/src/basics/index.page +0 -11
- data/doc/guide/src/basics/log_replay/goForward_1.png +0 -0
- data/doc/guide/src/basics/log_replay/goForward_2.png +0 -0
- data/doc/guide/src/basics/log_replay/goForward_3.png +0 -0
- data/doc/guide/src/basics/log_replay/goForward_5.png +0 -0
- data/doc/guide/src/basics/log_replay/plan_repair_4.png +0 -0
- data/doc/guide/src/basics/log_replay/roby_log_main_window.png +0 -0
- data/doc/guide/src/basics/relations_display.page +0 -203
- data/doc/guide/src/basics/shell.page +0 -102
- data/doc/guide/src/default.css +0 -319
- data/doc/guide/src/introduction/index.page +0 -29
- data/doc/guide/src/introduction/publications.page +0 -14
- data/doc/guide/src/relations/dependency.page +0 -89
- data/doc/guide/src/relations/index.page +0 -12
- data/ext/droby/dump.cc +0 -175
- data/ext/droby/extconf.rb +0 -3
- data/ext/graph/algorithm.cc +0 -746
- data/ext/graph/extconf.rb +0 -7
- data/ext/graph/graph.cc +0 -575
- data/ext/graph/graph.hh +0 -183
- data/ext/graph/iterator_sequence.hh +0 -102
- data/ext/graph/undirected_dfs.hh +0 -226
- data/ext/graph/undirected_graph.hh +0 -421
- data/lib/roby/app/scripts/generate/bookmarks.rb +0 -162
- data/lib/roby/app/scripts/replay.rb +0 -31
- data/lib/roby/app/scripts/server.rb +0 -18
- data/lib/roby/basic_object.rb +0 -151
- data/lib/roby/config.rb +0 -14
- data/lib/roby/distributed.rb +0 -36
- data/lib/roby/distributed/base.rb +0 -448
- data/lib/roby/distributed/communication.rb +0 -875
- data/lib/roby/distributed/connection_space.rb +0 -616
- data/lib/roby/distributed/distributed_object.rb +0 -206
- data/lib/roby/distributed/drb.rb +0 -62
- data/lib/roby/distributed/notifications.rb +0 -531
- data/lib/roby/distributed/peer.rb +0 -555
- data/lib/roby/distributed/protocol.rb +0 -529
- data/lib/roby/distributed/proxy.rb +0 -343
- data/lib/roby/distributed/subscription.rb +0 -311
- data/lib/roby/distributed/transaction.rb +0 -498
- data/lib/roby/external_process_task.rb +0 -225
- data/lib/roby/graph.rb +0 -160
- data/lib/roby/log.rb +0 -3
- data/lib/roby/log/chronicle.rb +0 -303
- data/lib/roby/log/console.rb +0 -74
- data/lib/roby/log/data_stream.rb +0 -275
- data/lib/roby/log/dot.rb +0 -279
- data/lib/roby/log/event_stream.rb +0 -161
- data/lib/roby/log/file.rb +0 -396
- data/lib/roby/log/gui/basic_display.ui +0 -83
- data/lib/roby/log/gui/basic_display_ui.rb +0 -89
- data/lib/roby/log/gui/chronicle.rb +0 -26
- data/lib/roby/log/gui/chronicle_view.rb +0 -40
- data/lib/roby/log/gui/chronicle_view.ui +0 -70
- data/lib/roby/log/gui/chronicle_view_ui.rb +0 -90
- data/lib/roby/log/gui/data_displays.rb +0 -171
- data/lib/roby/log/gui/data_displays.ui +0 -155
- data/lib/roby/log/gui/data_displays_ui.rb +0 -146
- data/lib/roby/log/gui/notifications.rb +0 -26
- data/lib/roby/log/gui/relations.rb +0 -269
- data/lib/roby/log/gui/relations.ui +0 -123
- data/lib/roby/log/gui/relations_ui.rb +0 -120
- data/lib/roby/log/gui/relations_view.rb +0 -185
- data/lib/roby/log/gui/relations_view.ui +0 -149
- data/lib/roby/log/gui/relations_view_ui.rb +0 -144
- data/lib/roby/log/gui/replay.rb +0 -366
- data/lib/roby/log/gui/replay_controls.rb +0 -206
- data/lib/roby/log/gui/replay_controls.ui +0 -282
- data/lib/roby/log/gui/replay_controls_ui.rb +0 -249
- data/lib/roby/log/gui/runtime.rb +0 -130
- data/lib/roby/log/hooks.rb +0 -186
- data/lib/roby/log/logger.rb +0 -203
- data/lib/roby/log/notifications.rb +0 -244
- data/lib/roby/log/plan_rebuilder.rb +0 -468
- data/lib/roby/log/relations.rb +0 -1084
- data/lib/roby/log/server.rb +0 -547
- data/lib/roby/log/sqlite.rb +0 -47
- data/lib/roby/log/timings.rb +0 -233
- data/lib/roby/plan-object.rb +0 -371
- data/lib/roby/planning.rb +0 -13
- data/lib/roby/planning/loops.rb +0 -309
- data/lib/roby/planning/model.rb +0 -1012
- data/lib/roby/planning/task.rb +0 -180
- data/lib/roby/query.rb +0 -655
- data/lib/roby/relations/conflicts.rb +0 -67
- data/lib/roby/relations/dependency.rb +0 -358
- data/lib/roby/relations/ensured.rb +0 -19
- data/lib/roby/relations/error_handling.rb +0 -22
- data/lib/roby/relations/events.rb +0 -7
- data/lib/roby/relations/executed_by.rb +0 -208
- data/lib/roby/relations/influence.rb +0 -10
- data/lib/roby/relations/planned_by.rb +0 -63
- data/lib/roby/state/information.rb +0 -55
- data/lib/roby/state/state.rb +0 -367
- data/lib/roby/task-operations.rb +0 -186
- data/lib/roby/task_index.rb +0 -80
- data/lib/roby/test/distributed.rb +0 -230
- data/lib/roby/test/tasks/simple_task.rb +0 -23
- data/lib/roby/transactions.rb +0 -507
- data/lib/roby/transactions/proxy.rb +0 -325
- data/plugins/fault_injection/History.txt +0 -4
- data/plugins/fault_injection/README.txt +0 -34
- data/plugins/fault_injection/Rakefile +0 -12
- data/plugins/fault_injection/TODO.txt +0 -0
- data/plugins/fault_injection/app.rb +0 -52
- data/plugins/fault_injection/fault_injection.rb +0 -89
- data/plugins/fault_injection/test/test_fault_injection.rb +0 -78
- data/plugins/subsystems/README.txt +0 -37
- data/plugins/subsystems/Rakefile +0 -13
- data/plugins/subsystems/app.rb +0 -182
- data/plugins/subsystems/test/app/README +0 -24
- data/plugins/subsystems/test/app/Rakefile +0 -8
- data/plugins/subsystems/test/app/config/app.yml +0 -71
- data/plugins/subsystems/test/app/config/init.rb +0 -12
- data/plugins/subsystems/test/app/config/roby.yml +0 -3
- data/plugins/subsystems/test/app/planners/main.rb +0 -20
- data/plugins/subsystems/test/app/scripts/distributed +0 -3
- data/plugins/subsystems/test/app/scripts/replay +0 -3
- data/plugins/subsystems/test/app/scripts/results +0 -3
- data/plugins/subsystems/test/app/scripts/run +0 -3
- data/plugins/subsystems/test/app/scripts/server +0 -3
- data/plugins/subsystems/test/app/scripts/shell +0 -3
- data/plugins/subsystems/test/app/scripts/test +0 -3
- data/plugins/subsystems/test/app/tasks/services.rb +0 -15
- data/plugins/subsystems/test/test_subsystems.rb +0 -78
- data/test/distributed/test_communication.rb +0 -195
- data/test/distributed/test_connection.rb +0 -284
- data/test/distributed/test_execution.rb +0 -378
- data/test/distributed/test_mixed_plan.rb +0 -341
- data/test/distributed/test_plan_notifications.rb +0 -238
- data/test/distributed/test_protocol.rb +0 -525
- data/test/distributed/test_query.rb +0 -106
- data/test/distributed/test_remote_plan.rb +0 -491
- data/test/distributed/test_transaction.rb +0 -466
- data/test/mockups/external_process +0 -28
- data/test/mockups/tasks.rb +0 -27
- data/test/planning/test_loops.rb +0 -432
- data/test/planning/test_model.rb +0 -427
- data/test/planning/test_task.rb +0 -126
- data/test/relations/test_conflicts.rb +0 -42
- data/test/relations/test_dependency.rb +0 -324
- data/test/relations/test_ensured.rb +0 -38
- data/test/relations/test_executed_by.rb +0 -224
- data/test/relations/test_planned_by.rb +0 -56
- data/test/suite_core.rb +0 -29
- data/test/suite_distributed.rb +0 -10
- data/test/suite_planning.rb +0 -4
- data/test/suite_relations.rb +0 -8
- data/test/tasks/test_external_process.rb +0 -126
- data/test/tasks/test_thread_task.rb +0 -70
- data/test/test_bgl.rb +0 -528
- data/test/test_event.rb +0 -969
- data/test/test_exceptions.rb +0 -591
- data/test/test_execution_engine.rb +0 -987
- data/test/test_gui.rb +0 -20
- data/test/test_interface.rb +0 -43
- data/test/test_log.rb +0 -125
- data/test/test_log_server.rb +0 -133
- data/test/test_plan.rb +0 -418
- data/test/test_query.rb +0 -424
- data/test/test_relations.rb +0 -260
- data/test/test_state.rb +0 -432
- data/test/test_support.rb +0 -16
- data/test/test_task.rb +0 -1181
- data/test/test_testcase.rb +0 -138
- data/test/test_transactions.rb +0 -610
- data/test/test_transactions_proxy.rb +0 -216
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Publications
|
|
3
|
+
sort_info: 300
|
|
4
|
+
---
|
|
5
|
+
These are the papers which present Roby that I published the last years.
|
|
6
|
+
|
|
7
|
+
* A Software Component for Plan Management in Robotics
|
|
8
|
+
([PhD thesis](http://roby.rubyforge.org/papers/thesis-en.pdf), [slides](http://roby.rubyforge.org/papers/thesis-slides.pdf))
|
|
9
|
+
* A Software Component for Simultaneous Plan Execution and Adaptation -
|
|
10
|
+
IROS2007 ([paper](http://roby.rubyforge.org/papers/roby-2007-iros.pdf))
|
|
11
|
+
* A Plan Manager for Multi-Robot Systems - FSR2007
|
|
12
|
+
([paper](http://roby.rubyforge.org/papers/roby-2007-fsr.pdf), [slides](http://roby.rubyforge.org/papers/roby-2007-fsr-slides.pdf))
|
|
13
|
+
|
|
14
|
+
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Demonstration Videos
|
|
3
3
|
sort_info: 400
|
|
4
|
-
---
|
|
5
|
-
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Normal operations
|
|
7
|
+
-----------------
|
|
6
8
|
|
|
7
9
|
Those videos don't show what Roby itself does, only results showing
|
|
8
10
|
robots (real and in simulation) acting as they are controlled by a
|
|
9
11
|
Roby application.
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
Single robot navigation
|
|
14
|
+
-----------------
|
|
12
15
|
|
|
13
16
|
http://roby.rubyforge.org/videos/perception_loops.avi
|
|
14
17
|
|
|
@@ -17,7 +20,8 @@ building) being handled by Roby. The perception updates are triggered by Roby
|
|
|
17
20
|
on the basis of state events: they are triggered by the translation of the
|
|
18
21
|
robot and the change of heading, to reduce the number of times it is actually done.
|
|
19
22
|
|
|
20
|
-
|
|
23
|
+
Bi-robot navigation
|
|
24
|
+
-----------------
|
|
21
25
|
|
|
22
26
|
http://roby.rubyforge.org/videos/birobot.avi
|
|
23
27
|
|
|
@@ -34,8 +38,10 @@ regions are then considered by the UAV which decides how it will schedule its
|
|
|
34
38
|
own perception. When the UAV does have perceived a zone, it informs the rover
|
|
35
39
|
and sends it the relevant data. The rover can then update its own map.
|
|
36
40
|
|
|
37
|
-
|
|
38
|
-
|
|
41
|
+
Error handling
|
|
42
|
+
---------------
|
|
43
|
+
Rflex repaired
|
|
44
|
+
--------------
|
|
39
45
|
|
|
40
46
|
http://roby.rubyforge.org/videos/rflex_repaired.avi
|
|
41
47
|
|
|
@@ -48,7 +54,8 @@ which wait for a few seconds and tests the <tt>BRAKES_ON</tt> state of the
|
|
|
48
54
|
robot. If the brakes are reported as off, then the robot can start moving again.
|
|
49
55
|
Otherwise, the error was a rightful one and should be handled by other means.
|
|
50
56
|
|
|
51
|
-
|
|
57
|
+
P3d repaired
|
|
58
|
+
------------
|
|
52
59
|
|
|
53
60
|
http://roby.rubyforge.org/videos/p3d_repaired.avi.
|
|
54
61
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Interacting with a Roby app
|
|
3
|
+
sort_info: 0
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
This section will present you the various ways one can interact with a Roby
|
|
7
|
+
application, or more exactly how to manipulate a Roby application from within
|
|
8
|
+
and from outside through [the action interface](../building/actions.html).
|
|
9
|
+
|
|
10
|
+
What we are going to cover in this section is:
|
|
11
|
+
|
|
12
|
+
- how to use the actions from within your Roby application to handle startup
|
|
13
|
+
sequences as well as a general system behaviour without human intervention
|
|
14
|
+
- the tools that are available to start a Roby application and interact with
|
|
15
|
+
it, including visualization tools
|
|
16
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Running a Roby application
|
|
3
|
+
sort_info: 50
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
A Roby application gets started with
|
|
7
|
+
|
|
8
|
+
~~~
|
|
9
|
+
roby run -c
|
|
10
|
+
~~~
|
|
11
|
+
|
|
12
|
+
If a [specific robot configuration](../building/file_layout.html) needs to be
|
|
13
|
+
picked up, the common -rROBOT\[:ROBOT_TYPE] option can be given
|
|
14
|
+
|
|
15
|
+
~~~
|
|
16
|
+
roby -rrobot -c
|
|
17
|
+
~~~
|
|
18
|
+
|
|
19
|
+
The -c option tells Roby to load a _controller file_. This file has to be named
|
|
20
|
+
as the robot (therefore -c is meaningless without a robot name) and stored in
|
|
21
|
+
scripts/controllers/ (e.g. scripts/controllers/myrobot.rb). The controller file
|
|
22
|
+
is meant as a way to define a "full application", i.e. a predefined startup and
|
|
23
|
+
reaction system that is "the" overall behaviour of the robot. Running the
|
|
24
|
+
application without -c is usually meant for debugging.
|
|
25
|
+
|
|
26
|
+
Additionally, actions can be specified on the command line (as they would be
|
|
27
|
+
given on Roby shell's command line, see the next page). They get started
|
|
28
|
+
automatically. You probably will have to quote the actions, as the exclamation
|
|
29
|
+
mark is often a reserved character.
|
|
30
|
+
|
|
31
|
+
~~~
|
|
32
|
+
roby run -rmyrobot 'move!(:target => [10, 0, 0])'
|
|
33
|
+
~~~
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Shell
|
|
3
|
+
sort_info: 100
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
The Roby shell is a command that allows you to command a Roby application from
|
|
7
|
+
__outside__ it (i.e. remotely). The shell is started with
|
|
8
|
+
|
|
9
|
+
~~~
|
|
10
|
+
roby shell
|
|
11
|
+
~~~
|
|
12
|
+
|
|
13
|
+
if on another machine, one should add the --host option:
|
|
14
|
+
|
|
15
|
+
~~~
|
|
16
|
+
roby shell --host=robot[:port]
|
|
17
|
+
~~~
|
|
18
|
+
|
|
19
|
+
__Note__ while the first connection requires a running controller, the shell
|
|
20
|
+
does not need to be restarted when the Roby application is. It will reconnect
|
|
21
|
+
automatically.
|
|
22
|
+
{: .block}
|
|
23
|
+
|
|
24
|
+
The main command is "help". It displays what other shell commands there is, as
|
|
25
|
+
well as the list of available actions. To get more information about an action,
|
|
26
|
+
do
|
|
27
|
+
|
|
28
|
+
~~~
|
|
29
|
+
localhost:48902 > describe action_name
|
|
30
|
+
~~~
|
|
31
|
+
|
|
32
|
+
For instance, in a controller where the actions [from
|
|
33
|
+
before](../building/actions.html) are defined, the beginning of the help message
|
|
34
|
+
would be:
|
|
35
|
+
|
|
36
|
+
~~~
|
|
37
|
+
Available Actions
|
|
38
|
+
=================
|
|
39
|
+
|
|
40
|
+
Name | Description
|
|
41
|
+
---------------------------------------------------
|
|
42
|
+
move! | move
|
|
43
|
+
move_to! | move to a given target point
|
|
44
|
+
wait_until_it_works! | waits until my_action passes
|
|
45
|
+
~~~
|
|
46
|
+
|
|
47
|
+
Then, to get the details about the move_to action in particular, one would do:
|
|
48
|
+
|
|
49
|
+
~~~
|
|
50
|
+
localhost:48902 > describe move_to
|
|
51
|
+
Action move_to defined on Main
|
|
52
|
+
Returns Main::MoveTo
|
|
53
|
+
Arguments:
|
|
54
|
+
target: the speed it should move at in m/s (required)
|
|
55
|
+
~~~
|
|
56
|
+
|
|
57
|
+
Managing actions
|
|
58
|
+
----------------
|
|
59
|
+
Any action can be started from the shell using the action_name! syntax.
|
|
60
|
+
Arguments are passed as a hash.
|
|
61
|
+
|
|
62
|
+
~~~
|
|
63
|
+
localhost:48902 > move_to! :target => [10, 10, 0]
|
|
64
|
+
[1] move_to! started to plan
|
|
65
|
+
[1] move_to!: Main::MoveTo:0x3c5b4c8{}[] has been replaced by Main::MoveTo:0x3fde0c8{}[]
|
|
66
|
+
[1] move_to!: task Main::MoveTo:0x3fde0c8{}[] started
|
|
67
|
+
~~~
|
|
68
|
+
|
|
69
|
+
What you get here is a notification that job 1 has been first inserted in an
|
|
70
|
+
abstract way ("started to plan"), then replaced by the actual task ("replaced
|
|
71
|
+
by") and then started.
|
|
72
|
+
|
|
73
|
+
The job can be inspected later on
|
|
74
|
+
|
|
75
|
+
~~~
|
|
76
|
+
localhost:48902 > jobs
|
|
77
|
+
1 move_to! Main::MoveTo:0x3c5b4c8{}[]
|
|
78
|
+
~~~
|
|
79
|
+
|
|
80
|
+
And killed ...
|
|
81
|
+
|
|
82
|
+
~~~
|
|
83
|
+
localhost:48902 > kill_job 1
|
|
84
|
+
[1] move_to!: task Main::MoveTo:0x3c5b4c8{}[] failed
|
|
85
|
+
= fatal exception 1: mission failed: Main::MoveTo:0x26c67e8{}[]
|
|
86
|
+
| [17:52:56.275 @2] Main::MoveTo:0x3c5b4c8{}[]/failed
|
|
87
|
+
| The following tasks have been killed:
|
|
88
|
+
| Main::MoveTo:0x3c5b4c8
|
|
89
|
+
[1] move_to!: task Main::MoveTo:0x3c5b4c8{}[] has been removed
|
|
90
|
+
~~~
|
|
91
|
+
|
|
92
|
+
Additionally, the shell allows you to query the running plan using the
|
|
93
|
+
[find_tasks query interface](../advanced_concepts/recognizing_patterns.html)
|
|
94
|
+
|
|
95
|
+
Finally, execution errors happening in the controller are reported in the shell.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Creating plugins
|
|
3
|
+
sort_info: 100
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Plugins are dynamically-loaded Ruby files that can hook into the Roby main code
|
|
7
|
+
using modules.
|
|
8
|
+
|
|
9
|
+
Defining and declaring plugins
|
|
10
|
+
------------------------------
|
|
11
|
+
|
|
12
|
+
A plugin defines an application plugin object. This object is used by
|
|
13
|
+
{rdoc_class: Application} to integrate the plugin initialization and teardown code into
|
|
14
|
+
the Roby application dataflow. This object can define the following methods. If
|
|
15
|
+
a plugin application object does *not* provide a method, it is simply ignored.
|
|
16
|
+
|
|
17
|
+
{coderay:: ruby}
|
|
18
|
+
class Plugin
|
|
19
|
+
# Load configuration files (YAML and Roby)
|
|
20
|
+
# Do not load task models. That is done by
|
|
21
|
+
# require_models
|
|
22
|
+
def load(app)
|
|
23
|
+
end
|
|
24
|
+
# Set up things based on the configuration
|
|
25
|
+
# loaded in #load
|
|
26
|
+
def setup(app)
|
|
27
|
+
end
|
|
28
|
+
# Load files that define new task/event models
|
|
29
|
+
# This is done after Roby loaded the standard
|
|
30
|
+
# task/event model tasks
|
|
31
|
+
def require_models(app)
|
|
32
|
+
end
|
|
33
|
+
# Startup the controller. The main execution engine
|
|
34
|
+
# is already started at this point. The method
|
|
35
|
+
# should yield to the given block, and clean up
|
|
36
|
+
# when it returns.
|
|
37
|
+
def run(app, &block)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Start any service needed in distributed context.
|
|
41
|
+
# It is called when scripts/distributed starts
|
|
42
|
+
def start_distributed(app)
|
|
43
|
+
end
|
|
44
|
+
# Stop any service needed in distributed context.
|
|
45
|
+
# It is called when scripts/distributed quits
|
|
46
|
+
def stop_distributed(app)
|
|
47
|
+
end
|
|
48
|
+
# Start any service needed for live log display
|
|
49
|
+
# It is called when scripts/server starts
|
|
50
|
+
def start_server(app)
|
|
51
|
+
end
|
|
52
|
+
# Stop any service needed for live log display
|
|
53
|
+
# It is called when scripts/server quits
|
|
54
|
+
def stop_server(app)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
{coderay}
|
|
58
|
+
|
|
59
|
+
This plugin object is then declared using Roby::Application.register_plugin:
|
|
60
|
+
|
|
61
|
+
{coderay:: ruby}
|
|
62
|
+
Application.register_plugin(plugin_name, plugin_object) do
|
|
63
|
+
[code to be executed when the plugin is loaded]
|
|
64
|
+
end
|
|
65
|
+
{coderay}
|
|
66
|
+
|
|
67
|
+
This declaration has to be added to an app.rb file. Roby will automatically
|
|
68
|
+
require all app.rb files it can find in the ROBY_PLUGIN_PATH environment
|
|
69
|
+
variable. Then, when a plugin gets loaded using Application.using(plugin_name),
|
|
70
|
+
the associated block is called and the plugin object's methods will get called
|
|
71
|
+
when the controller starts.
|
|
72
|
+
|
|
@@ -1,11 +1,33 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
2
|
+
title: Plugins
|
|
3
3
|
sort_info: 0
|
|
4
|
-
---
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Plugins are extensions to the Roby models and engine.
|
|
7
|
+
|
|
8
|
+
Plugins are searched in the ROBY_PLUGIN_PATH environment variable. Roby will
|
|
9
|
+
search for the plugin's app.rb file in each of the directories listed in this
|
|
10
|
+
environment variable, and load this file to get the plugin declaration.
|
|
11
|
+
|
|
12
|
+
For instance, the Orocos/Roby plugin is stored in the lib/orocos/roby/ directory
|
|
13
|
+
of the orocos.rb software package. This directory contains the plugin's app.rb
|
|
14
|
+
file, so one has to add /path/to/orocos/rb/lib/orocos/roby to ROBY_PLUGIN_PATH
|
|
15
|
+
to make the plugin available to Roby controllers.
|
|
16
|
+
|
|
17
|
+
Now, two things are needed to use a given plugin in a Roby controller:
|
|
18
|
+
|
|
19
|
+
* one must add the plugin-specific files to the controller. This is done with
|
|
5
20
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
21
|
+
{coderay:: bash}
|
|
22
|
+
roby init -m fault_injection
|
|
23
|
+
{coderay}
|
|
9
24
|
|
|
25
|
+
* one must declare that the plugin should be loaded. This is usually done
|
|
26
|
+
globally in config/init.rb, but can also be done on a per-robot basis. This
|
|
27
|
+
is done by adding the following line to the relevant initialization file:
|
|
10
28
|
|
|
29
|
+
{coderay:: ruby}
|
|
30
|
+
Roby.app.using "fault_injection"
|
|
31
|
+
{coderay}
|
|
32
|
+
|
|
11
33
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Fault Injection <a href="fault_injection/index.html">[API]</a>
|
|
2
|
+
title: Fault Injection <a href="../fault_injection/index.html">[API]</a>
|
|
3
3
|
sort_info: 100
|
|
4
|
-
---
|
|
4
|
+
---
|
|
5
5
|
|
|
6
6
|
This is a fault injection plugin for the Roby robotic control framework. It
|
|
7
7
|
allows to test the management of rarely occuring events by simulating the
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Subsystems <a href="subsystems/index.html">[API]</a>
|
|
2
|
+
title: Subsystems <a href="../subsystems/index.html">[API]</a>
|
|
3
3
|
routed_title: Subsystems
|
|
4
4
|
sort_info: 0
|
|
5
|
-
---
|
|
5
|
+
---
|
|
6
6
|
|
|
7
7
|
This is a plugin for the Roby robotic control framework. It allows to generate
|
|
8
8
|
an initial plan in which a set of common subsystems (sensors, localization,
|
|
@@ -0,0 +1,687 @@
|
|
|
1
|
+
/*************************************************************/
|
|
2
|
+
/* Design: MultiFlex-2 (Screen) */
|
|
3
|
+
/* Author: G. Wolfgang (gw@actamail.com) */
|
|
4
|
+
/* Date: June 8, 2006 */
|
|
5
|
+
/*-----------------------------------------------------------*/
|
|
6
|
+
/* Recommended CSS-Editor: TopStyle Lite 3.10 (Freeware) */
|
|
7
|
+
/* http://www.newsgator.com/download/products/ts3lite.exe */
|
|
8
|
+
/*-----------------------------------------------------------*/
|
|
9
|
+
/* You can use this stylesheet any way you want! */
|
|
10
|
+
/* Check out my favorite website: www.sda.org */
|
|
11
|
+
/*************************************************************/
|
|
12
|
+
|
|
13
|
+
/*************************/
|
|
14
|
+
/* SECTION 1 - MAIN BODY */
|
|
15
|
+
/*************************/
|
|
16
|
+
|
|
17
|
+
body {margin: 0px auto; padding: 0px; background: url(img/background_body_grey.gif) top center repeat-y; font-family: arial, sans-serif; font-size: 10pt;}
|
|
18
|
+
.page-container-1 {width: 770px; margin: 0px auto; padding: 0px; background: url(img/background_layout_1.gif) top left repeat-y; border: solid 1px rgb(100,100,100);}
|
|
19
|
+
.page-container-2 {width: 770px; margin: 0px auto; padding: 0px; background: url(img/background_layout_2.gif) top left repeat-y; border: solid 1px rgb(100,100,100);}
|
|
20
|
+
.page-container-3 {width: 770px; margin: 0px auto; padding: 0px; background: url(img/background_layout_3.gif) top left repeat-y; border: solid 1px rgb(100,100,100);}
|
|
21
|
+
|
|
22
|
+
/*************************************/
|
|
23
|
+
/* SECTION 2 - HEADER AND NAVIGATION */
|
|
24
|
+
/*************************************/
|
|
25
|
+
|
|
26
|
+
/*-----------------------------------*/
|
|
27
|
+
/* 2.1 - Sitename, slogan and banner */
|
|
28
|
+
/*-----------------------------------*/
|
|
29
|
+
.site-name {position: absolute; height: 45px; top: 12px; z-index: 4; margin: 0px; padding-left: 75px; color: rgb(69,140,204);}
|
|
30
|
+
.site-name p.title {margin: 0px; padding: 0px; font-family: "trebuchet ms", arial, sans serif; font-weight: bold; font-size: 36px;}
|
|
31
|
+
.site-name p.subtitle {clear: both; width: 700px; margin: -2px 0px 0px -2em; padding: 0px; background-color: transparent; font-family: "trebuchet ms", arial, sans serif; font-size: 22px;}
|
|
32
|
+
.site-name a {margin: 0px; padding: 0px; text-decoration: none; color: rgb(88,144,168);}
|
|
33
|
+
.site-name a:hover {text-decoration: none;}
|
|
34
|
+
.site-slogan-container {width: 755px; height: 130px; top: 112px; position: absolute; z-index: 1; overflow: hidden; margin: 0px; padding-right: 15px; background-color: transparent;}
|
|
35
|
+
.site-slogan {float: right; width: 700px; margin: 0px; padding: 0px; background-color: transparent; font-size: 10px;}
|
|
36
|
+
.site-slogan p.title {float: right; width: 700px; margin: 0px; padding: 0px; color: rgb(234,239,247); font-family: arial, sans serif; text-align: right; font-weight: bold; font-size: 220%;}
|
|
37
|
+
.site-slogan p.subtitle {clear: both; float: right; width: 700px; margin: -5px 0px 0px 0px; padding: 0px; color: rgb(234,239,247); font-family: arial, sans serif; text-align: right; font-weight: bold; font-size: 200%;}
|
|
38
|
+
.site-slogan p.text {clear: both; float: right; width: 700px; margin: 10px 0px 0px 0px; padding: 0px; color: rgb(234,239,247); font-family: arial, sans serif; text-align: right; font-weight: bold; line-height: 1.0em; font-size: 140%;}
|
|
39
|
+
.site-slogan p.readmore {clear: both; float: right; width: 700px; margin: 10px 0px 0px 0px; padding: 0px; color: rgb(234,239,247); font-family: arial, sans serif; text-align: right; font-weight: bold; line-height: 1.0em; font-size: 120%;}
|
|
40
|
+
.site-slogan a {color: rgb(234,239,247); text-decoration: underline;}
|
|
41
|
+
.site-slogan a:hover {text-decoration: none; color: rgb(50,50,50);}
|
|
42
|
+
.img-header {clear: both; float: left; width: 770px; height: 250px; margin: 0px; padding: 0px;}
|
|
43
|
+
|
|
44
|
+
/*--------------------------*/
|
|
45
|
+
/* 2.2 - Navigation - Flags */
|
|
46
|
+
/*--------------------------*/
|
|
47
|
+
.navflag-container {width: 770px; top: 14px; position: absolute; z-index: 2; background-color: transparent;}
|
|
48
|
+
.navflag {margin: 0px; padding: 0px; font-size: 1.0em;}
|
|
49
|
+
.navflag ul {float: right; margin: 0px; padding: 0px 20px 0px 0px;}
|
|
50
|
+
.navflag ul li {display: inline; list-style: none; margin: 0px; padding: 0px;}
|
|
51
|
+
.navflag ul li a {margin: 0px; padding: 0px 0px 0px 1px;}
|
|
52
|
+
.navflag ul li a:hover {color: rgb(0,0,0); text-decoration: none;}
|
|
53
|
+
.img-navflag {display: inline; height: 14px; margin: 0px; padding: 0px; border: none;}
|
|
54
|
+
|
|
55
|
+
/*----------------------------*/
|
|
56
|
+
/* 2.3 - Navigation - Level 1 */
|
|
57
|
+
/*----------------------------*/
|
|
58
|
+
.nav1-container {width: 770px; top: 15px; position: absolute; z-index: 3; background: transparent;}
|
|
59
|
+
.nav1 {margin: 0px; padding: 0px; font-family: verdana, arial, sans serif; font-size: 1.0em;}
|
|
60
|
+
.nav1 ul {float: right; margin: 0px; padding: 0px 20px 0px 0px; border-left: solid 1px rgb(115,162,182); background-color: rgb(255,255,255); font-weight: bold;}
|
|
61
|
+
.nav1 li {display: inline; list-style: none; margin: 0px; padding: 0px;}
|
|
62
|
+
.nav1 li a {display: block; float: left; margin: 0px; padding: 2px 5px 2px 5px; border-right: solid 1px rgb(115,162,182); color: rgb(115,162,182); text-decoration: none; font-size: 10px; text-decoration: none;}
|
|
63
|
+
.nav1 li span {display: block; float: left; margin: 0px; padding: 2px 5px 2px 5px; border-right: solid 1px rgb(115,162,182); color: rgb(115,162,182); text-decoration: none; font-size: 10px; text-decoration: none;}
|
|
64
|
+
.nav1 a:hover, .nav2 a.selected {color: rgb(50,50,50); text-decoration: none;}
|
|
65
|
+
.nav1-container .search { width: 50%; float: right; margin-right: 20px;margin-top: .3em;}
|
|
66
|
+
|
|
67
|
+
/*----------------------------*/
|
|
68
|
+
/* 2.4 - Navigation - Level 2 */
|
|
69
|
+
/*----------------------------*/
|
|
70
|
+
.nav2 {clear: both; margin: 0px; padding: 0px; font-family: arial, sans serif; font-size: 90%;}
|
|
71
|
+
.nav2 ul {float: left; width: 770px; margin: 0px; padding: 0px; border-top: solid 1px rgb(54,83,151); border-bottom: solid 1px rgb(54,83,151); background-color: rgb(127,162,202); font-weight: bold;}
|
|
72
|
+
.nav2 li {display: inline; list-style: none; margin: 0px; padding: 0px;}
|
|
73
|
+
.nav2 li a {display: block; float: left; margin: 0px 0px 0px 0px; padding: 5px 10px 5px 10px; border-right: solid 1px rgb(54,83,151); color: rgb(255,255,255); text-transform: uppercase; text-decoration: none; font-size: 100%; text-decoration: none;}
|
|
74
|
+
.nav2 li span {display: block; float: left; margin: 0px 0px 0px 0px; padding: 5px 10px 5px 10px; border-right: solid 1px rgb(54,83,151); color: rgb(255,255,255); text-transform: uppercase; text-decoration: none; font-size: 100%;}
|
|
75
|
+
.nav2 li span.empty { border: none; }
|
|
76
|
+
.nav2 a:hover, .nav2 a.selected {color: rgb(50,50,50); text-decoration: none;}
|
|
77
|
+
.title_buffer {clear: both; width: 770px; height: 30px; margin: 0px; margin-top: 50px; padding: 0px; background-color: rgb(255,255,255);}
|
|
78
|
+
.buffer {clear: both; width: 770px; height: 30px; margin: 0px; padding: 0px; background-color: rgb(255,255,255);}
|
|
79
|
+
|
|
80
|
+
.nav2 .main {font-size: 130%; }
|
|
81
|
+
.nav2 .main li {width: 500px;}
|
|
82
|
+
|
|
83
|
+
/*-----------------------------*/
|
|
84
|
+
/* Container for nav3 and nav4 */
|
|
85
|
+
/*-----------------------------*/
|
|
86
|
+
.leftnav {overflow: hidden; clear: both; float: left; width: 220px;}
|
|
87
|
+
|
|
88
|
+
/*----------------------------*/
|
|
89
|
+
/* 2.5 - Navigation - Level 3 */
|
|
90
|
+
/*----------------------------*/
|
|
91
|
+
|
|
92
|
+
.nav3 {min-height: 500px; margin: 0px; padding: 0px; color: rgb(75,75,75); font-size: 90%; font-family: arial, sans serif; }
|
|
93
|
+
.nav3 ul {width: 250px; margin: 0px 0px 5px 0px; padding: 0px; border-bottom: solid 1px rgb(216,206,159); background-color: rgb(219,230,241);}
|
|
94
|
+
.nav3 li {list-style: none; margin: 0px; padding: 0px; font-size: 100%;}
|
|
95
|
+
.nav3 .title {margin: 0px 0px 0px 0px; padding: 3px 5px 2px 15px; background-color: rgb(156,186,214); color: rgb(255,255,255); text-transform: uppercase; font-weight: bold; font-size: 100%;}
|
|
96
|
+
|
|
97
|
+
.nav3 a, .nav3 span {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; color: rgb(75,75,75); bold; font-size: 100%; text-decoration: none; border-left: solid 7px rgb(219,230,241); padding: 0px 7px 0px 0px; }
|
|
98
|
+
.nav3 li.webgen-menu-level1 a, .nav3 li.webgen-menu-level1 span {
|
|
99
|
+
padding-left: 5px; border-top: solid 1px rgb(200,200,200); font-weight: bold;
|
|
100
|
+
}
|
|
101
|
+
.nav3 li.webgen-menu-level2 a, .nav3 li.webgen-menu-level2 span {
|
|
102
|
+
padding-left: 10px; font-weight: normal;
|
|
103
|
+
}
|
|
104
|
+
.nav3 li.webgen-menu-level3 a, .nav3 li.webgen-menu-level3 span {
|
|
105
|
+
padding-left: 15px; font-weight: normal; font-size: 90%;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.nav3 li.webgen-menu-level1.webgen-menu-submenu-inhierarchy > span,
|
|
109
|
+
.nav3 li.webgen-menu-level1.webgen-menu-submenu-inhierarchy > a {
|
|
110
|
+
padding-left: 0px;
|
|
111
|
+
}
|
|
112
|
+
.nav3 li.webgen-menu-level2.webgen-menu-submenu-inhierarchy > span,
|
|
113
|
+
.nav3 li.webgen-menu-level2.webgen-menu-submenu-inhierarchy > a {
|
|
114
|
+
padding-left: 5px;
|
|
115
|
+
}
|
|
116
|
+
.nav3 li.webgen-menu-submenu-inhierarchy {border-left: solid 5px rgb(156,186,214); color: rgb(100,100,100);}
|
|
117
|
+
.nav3 li.webgen-menu-item-selected > span {font-weight: bold;}
|
|
118
|
+
|
|
119
|
+
/*----------------------------*/
|
|
120
|
+
/* 2.5 - Navigation - Level 4 */
|
|
121
|
+
/*----------------------------*/
|
|
122
|
+
.nav4 {margin: 0px; padding: 0px; color: rgb(75,75,75); font-size: 90%; font-family: arial, sans serif; }
|
|
123
|
+
.nav4 ul {width: 250px; margin: 0px 0px 20px 0px; padding: 0px; border-bottom: solid 1px rgb(216,206,159); background-color: rgb(219,230,241);}
|
|
124
|
+
.nav4 li {list-style: none; margin: 0px; padding: 0px; font-size: 100%;}
|
|
125
|
+
.nav4 li.title {margin: 0px 0px 0px 0px; padding: 3px 5px 2px 15px; background-color: rgb(156,186,214); color: rgb(255,255,255); text-transform: uppercase; font-size: 100%;}
|
|
126
|
+
.nav4 li.webgen-menu-level1 a {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 5px; border-top: solid 1px rgb(200,200,200); border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); font-size: 100%; text-decoration: none; }
|
|
127
|
+
.nav4 li.webgen-menu-level2 a {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 20px; border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); text-decoration: none; font-weight: normal; font-size: 90%; text-decoration: none;}
|
|
128
|
+
.nav4 li.webgen-menu-level1 span {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 5px; border-top: solid 1px rgb(200,200,200); border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); font-size: 100%;}
|
|
129
|
+
.nav4 li.webgen-menu-level2 span {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 20px; border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); text-decoration: none; font-size: 90%;}
|
|
130
|
+
.nav4 li a:hover, .nav4 li.webgen-menu-level2.webgen-menu-submenu-inhierarchy, .nav4 li.webgen-menu-item-selected {border-left: solid 7px rgb(156,186,214); color: rgb(100,100,100); text-decoration: none;}
|
|
131
|
+
|
|
132
|
+
.localtoc {float: left; width: 150px; margin: 0em 2em 1em 0em; padding: 0 0 0 0; background-color: rgb(238,237,249); font-size: 1.0em;}
|
|
133
|
+
.localtoc ul {width: 150px; margin: 5px 0px 0px 0px; padding: 0px; border-bottom: solid 1px rgb(216,206,159); background-color: rgb(219,230,241);}
|
|
134
|
+
.biglocaltoc {width: 280px;}
|
|
135
|
+
.biglocaltoc ul {width: 280px;}
|
|
136
|
+
.body-header-list {width: 510px; margin: 0em 2em 1em 0em; padding: 0 0 0 0; background-color: rgb(238,237,249); font-size: 1.0em;}
|
|
137
|
+
.body-header-list ul {width: 510px; margin: 5px 0px 0px 0px; padding: 0px; border-bottom: solid 1px rgb(216,206,159); background-color: rgb(219,230,241);}
|
|
138
|
+
.body-header-list li {list-style: none; margin: 0px; padding: 0px;display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 10px; border-top: solid 1px rgb(200,200,200); border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); font-weight: normal; font-size: 100%; text-decoration: none;}
|
|
139
|
+
.body-header-list li.title {margin: 0px 0px 0px 0px; padding: 3px 5px 2px 15px; background-color: rgb(156,186,214); color: rgb(255,255,255); text-transform: uppercase; font-weight: bold;}
|
|
140
|
+
|
|
141
|
+
.body-header-list li table {clear: left; margin: 0em 0px 0em 25px; empty-cells: show; border-collapse: collapse; }
|
|
142
|
+
.body-header-list li table tr {margin: 0px; padding: 0px;}
|
|
143
|
+
.body-header-list li table td {margin: 0px; padding: 0px 7px 0px 7px; border: none; text-align: left;}
|
|
144
|
+
.body-header-list li table th {margin: 0px; padding: 0px; border: none; empty-cells: show; text-align: left; }
|
|
145
|
+
|
|
146
|
+
.localtoc li {list-style: none; margin: 0px; padding: 0px;}
|
|
147
|
+
.localtoc li.title {margin: 0px 0px 0px 0px; padding: 3px 5px 2px 15px; background-color: rgb(156,186,214); color: rgb(255,255,255); text-transform: uppercase; font-weight: bold; font-size: 120%;}
|
|
148
|
+
.localtoc li.webgen-menu-level1 a {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 10px; border-top: solid 1px rgb(200,200,200); border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); font-weight: normal; font-size: 100%; text-decoration: none;}
|
|
149
|
+
.localtoc li.webgen-menu-level2 a {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 20px; border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); text-decoration: none; font-weight: normal; font-size: 80%; text-decoration: none;}
|
|
150
|
+
.localtoc li.webgen-menu-level1 span {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 15px; border-top: solid 1px rgb(200,200,200); border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); font-size: 100%;}
|
|
151
|
+
.localtoc li.webgen-menu-level2 span {display: block; min-height: 1.7em; height: auto !important; height: 1.7em; line-height: 1.7em; margin: 0px; padding: 0px 7px 0px 20px; border-left: solid 7px rgb(219,230,241); color: rgb(75,75,75); text-decoration: none; font-size: 80%;}
|
|
152
|
+
.localtoc li a:hover, .localtoc li.webgen-menu-item-selected {border-left: solid 7px rgb(156,186,214); color: rgb(100,100,100); text-decoration: none;}
|
|
153
|
+
|
|
154
|
+
/******************************************************************************/
|
|
155
|
+
/* SECTION 3 - SPECIFIC CLASSES FOR LAYOUT #1 (With navigation, with sidebar )*/
|
|
156
|
+
/******************************************************************************/
|
|
157
|
+
|
|
158
|
+
.content1 {float: left; width: 428px; margin: 0px; padding: 0px 0px 10px 20px; color: rgb(75,75,75);}
|
|
159
|
+
.content1-container {clear: both; float: left; width: 408px; margin: 0px 0px 15px 0px; padding: 0px;}
|
|
160
|
+
.content1-container-1col {overflow: visible; width: 408px; margin: 0px; padding: 0px;}
|
|
161
|
+
.content1-container-1col-txtright-200px {float: right; width: 196px; margin: 0px; padding: 0px;}
|
|
162
|
+
.content1-container-1col-txtright-160px {float: right; width: 236px; margin: 0px; padding: 0px;}
|
|
163
|
+
.content1-container-1col-txtright-120px {float: right; width: 276px; margin: 0px; padding: 0px;}
|
|
164
|
+
.content1-container-1col-txtright-100px {float: right; width: 296px; margin: 0px; padding: 0px;}
|
|
165
|
+
.content1-container-1col-txtright-80px {float: right; width: 316px; margin: 0px; padding: 0px;}
|
|
166
|
+
.content1-container-1col-txtright-60px {float: right; width: 336px; margin: 0px; padding: 0px;}
|
|
167
|
+
.content1-container-1col-txtright-40px {float: right; width: 356px; margin: 0px; padding: 0px;}
|
|
168
|
+
.content1-container-2col-left {overflow: hidden; float: left; width: 191px; margin: 0px; padding: 0px;}
|
|
169
|
+
.content1-container-2col-right {overflow: hidden; float: right; width: 191px; margin: 0px; padding: 0px;}
|
|
170
|
+
.content1-container-2col-txtright-100px {float: right; width: 79px; margin: 0px; padding: 0px;}
|
|
171
|
+
.content1-container-2col-txtright-80px {float: right; width: 99px; margin: 0px; padding: 0px;}
|
|
172
|
+
.content1-container-2col-txtright-60px {float: right; width: 119px; margin: 0px; padding: 0px;}
|
|
173
|
+
.content1-container-2col-txtright-40px {float: right; width: 139px; margin: 0px; padding: 0px;}
|
|
174
|
+
.content1-container-2col-txtright-20px {float: right; width: 159px; margin: 0px; padding: 0px;}
|
|
175
|
+
.content1-container-3col-left {overflow: hidden; float: left; width: 119px; margin: 0px 25px 0px 0px; padding: 0px;}
|
|
176
|
+
.content1-container-3col-middle {overflow: hidden; float: left; width: 119px;margin: 0px; padding: 0px;}
|
|
177
|
+
.content1-container-3col-right {overflow: hidden; float: right; width: 119px; margin: 0px; padding: 0px;}
|
|
178
|
+
.content1-container-3col-txtright-60px {float: right; width: 47px; margin: 0px; padding: 0px;}
|
|
179
|
+
.content1-container-3col-txtright-40px {float: right; width: 67px; margin: 0px; padding: 0px;}
|
|
180
|
+
.content1-container-3col-txtright-20px {float: right; width: 87px; margin: 0px; padding: 0px;}
|
|
181
|
+
.content1-container-3col-txtright-10px {float: right; width: 97px; margin: 0px; padding: 0px;}
|
|
182
|
+
.content1-pagetitle {overflow: hidden; width: 408px; margin: 0px 0px 10px 0px; padding: 0px 0px 2px 0px; border-bottom: solid 3px rgb(88,144,168); color: rgb(88,144,168); font-weight: bold; font-size: 160%;}
|
|
183
|
+
|
|
184
|
+
/******************************************************/
|
|
185
|
+
/* SECTION 4 - SPECIFIC CLASSES FOR LAYOUTS #2 and #3 */
|
|
186
|
+
/******************************************************/
|
|
187
|
+
|
|
188
|
+
.content2 {float: left; width: 500px; min-height: 530px; margin: 0px; padding: 0px 0px 0px 20px; color: rgb(75,75,75); font-size: 100%;}
|
|
189
|
+
.content3 {float: left; width: 500px; min-height: 530px; margin: 0px; padding: 0px 0px 0px 20px; color: rgb(75,75,75); font-size: 100%;}
|
|
190
|
+
.content2-container, .content3-container {clear: both; float: left; width: 510px; margin: 0px 0px 15px 0px; padding: 0px;}
|
|
191
|
+
.content2-container-1col, .content3-container-1col {overflow: visible; width: 510px; margin: 0px; padding: 0px;}
|
|
192
|
+
.content2-container-1col-txtright-200px, .content3-container-1col-txtright-200px {float: right; width: 357px; margin: 0px; padding: 0px;}
|
|
193
|
+
.content2-container-1col-txtright-160px, .content3-container-1col-txtright-160px {float: right; width: 397px; margin: 0px; padding: 0px;}
|
|
194
|
+
.content2-container-1col-txtright-120px, .content3-container-1col-txtright-120px {float: right; width: 437px; margin: 0px; padding: 0px;}
|
|
195
|
+
.content2-container-1col-txtright-100px, .content3-container-1col-txtright-100px {float: right; width: 457px; margin: 0px; padding: 0px;}
|
|
196
|
+
.content2-container-1col-txtright-80px, .content3-container-1col-txtright-80px {float: right; width: 477px; margin: 0px; padding: 0px;}
|
|
197
|
+
.content2-container-1col-txtright-60px, .content3-container-1col-txtright-60px {float: right; width: 497px; margin: 0px; padding: 0px;}
|
|
198
|
+
.content2-container-1col-txtright-40px, .content3-container-1col-txtright-40px {float: right; width: 517px; margin: 0px; padding: 0px;}
|
|
199
|
+
.content2-container-2col-left, .content3-container-2col-left {overflow: hidden; float: left; width: 272px; margin: 0px; padding: 0px;}
|
|
200
|
+
.content2-container-2col-right, .content3-container-2col-right {overflow: hidden; float: right; width: 272px; margin: 0px; padding: 0px;}
|
|
201
|
+
.content2-container-2col-txtright-100px, .content3-container-2col-txtright-100px {float: right; width: 160px; margin: 0px; padding: 0px;}
|
|
202
|
+
.content2-container-2col-txtright-80px, .content3-container-2col-txtright-80px {float: right; width: 180px; margin: 0px; padding: 0px;}
|
|
203
|
+
.content2-container-2col-txtright-60px, .content3-container-2col-txtright-60px {float: right; width: 200px; margin: 0px; padding: 0px;}
|
|
204
|
+
.content2-container-2col-txtright-40px, .content3-container-2col-txtright-40px {float: right; width: 220px; margin: 0px; padding: 0px;}
|
|
205
|
+
.content2-container-2col-txtright-20px, .content3-container-2col-txtright-20px {float: right; width: 240px; margin: 0px; padding: 0px;}
|
|
206
|
+
.content2-container-3col-left, .content3-container-3col-left {overflow: hidden; float: left; width: 160px; margin: 0px 25px 0px 0px; padding: 0px;}
|
|
207
|
+
.content2-container-3col-middle, .content3-container-3col-middle {overflow: hidden; float: left; width: 160px; margin: 0px; padding: 0px;}
|
|
208
|
+
.content2-container-3col-right, .content3-container-3col-right {overflow: hidden; float: right; width: 160px; margin: 0px; padding: 0px;}
|
|
209
|
+
.content2-container-3col-txtright-60px, .content3-container-3col-txtright-60px {overflow: hidden; float: right; width: 101px; margin: 0px; padding: 0px;}
|
|
210
|
+
.content2-container-3col-txtright-40px, .content3-container-3col-txtright-40px {overflow: hidden; float: right; width: 121px; margin: 0px; padding: 0px;}
|
|
211
|
+
.content2-container-3col-txtright-20px, .content3-container-3col-txtright-20px {overflow: hidden; float: right; width: 141px; margin: 0px; padding: 0px;}
|
|
212
|
+
.content2-container-3col-txtright-10px, .content3-container-3col-txtright-10px {overflow: hidden; float: right; width: 151px; margin: 0px; padding: 0px;}
|
|
213
|
+
.content2-pagetitle, .content3-pagetitle {overflow: hidden; width: 510px; margin: 0px 0px 10px 0px; padding: 0px 0px 2px 0px; border-bottom: solid 3px rgb(88,144,168); color: rgb(88,144,168); font-weight: bold; font-size: 160%;}
|
|
214
|
+
|
|
215
|
+
/*********************************/
|
|
216
|
+
/* SECTION 6 - COMMON PARAMETERS */
|
|
217
|
+
/*********************************/
|
|
218
|
+
|
|
219
|
+
/*--------------------*/
|
|
220
|
+
/* 6.1 - Content Area */
|
|
221
|
+
/*--------------------*/
|
|
222
|
+
|
|
223
|
+
/* Titles and textboxes*/
|
|
224
|
+
.content-title-noshade-size1 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 120%;}
|
|
225
|
+
.content-title-noshade-size2 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 130%;}
|
|
226
|
+
.content-title-noshade-size3 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 140%;}
|
|
227
|
+
.content-title-noshade-size4 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 160%;}
|
|
228
|
+
.content-title-noshade-size5 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 200%;}
|
|
229
|
+
.content-title-shade-size1 {margin: 0px; padding: 0px 10px 0px 10px; background-color: rgb(215,215,215); color: rgb(100,100,100); color: rgb(88,144,168); font-weight: bold; font-size: 130%;}
|
|
230
|
+
.content-title-shade-size2 {margin: 0px; padding: 0px 10px 0px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 150%;}
|
|
231
|
+
.content-title-shade-size3 {margin: 0px; padding: 0px 10px 0px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 160%;}
|
|
232
|
+
.content-title-shade-size4 {margin: 0px; padding: 0px 10px 0px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 180%;}
|
|
233
|
+
.content-title-shade-size5 {margin: 0px; padding: 0px 10px 0px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 200%;}
|
|
234
|
+
.content-subtitle-noshade-size1 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 110%;}
|
|
235
|
+
.content-subtitle-noshade-size2 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 120%;}
|
|
236
|
+
.content-subtitle-noshade-size3 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 130%;}
|
|
237
|
+
.content-subtitle-noshade-size4 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 140%;}
|
|
238
|
+
.content-subtitle-noshade-size5 {margin: 0px; padding: 0px; color: rgb(88,144,168); font-weight: bold; font-size: 150%;}
|
|
239
|
+
.content-subtitle-shade-size1 {margin: 0px; padding: 0px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 110%;}
|
|
240
|
+
.content-subtitle-shade-size2 {margin: 0px; padding: 0px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 120%;}
|
|
241
|
+
.content-subtitle-shade-size3 {margin: 0px; padding: 0px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 130%;}
|
|
242
|
+
.content-subtitle-shade-size4 {margin: 0px; padding: 0px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 140%;}
|
|
243
|
+
.content-subtitle-shade-size5 {margin: 0px; padding: 0px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(88,144,168); font-weight: bold; font-size: 150%;}
|
|
244
|
+
.content-txtbox-noshade {margin: 0px; padding: 7px 0px 0px 0px; background-color: rgb(255,255,255);}
|
|
245
|
+
.content-txtbox-shade {margin: 0px; padding: 7px 10px 5px 10px; background-color: rgb(235,235,235);}
|
|
246
|
+
.warning, .content-txtbox-warning {margin: 0px; padding: 7px 10px 5px 10px; background-color: rgb(255,210,210);}
|
|
247
|
+
|
|
248
|
+
/* Headings */
|
|
249
|
+
h1 {margin: 1.0em 0px 0.5em 0px; font-weight: bold; font-size: 140%;}
|
|
250
|
+
h2 {margin: 1.0em 0px 0.5em 0px; font-weight: bold; font-size: 130%;}
|
|
251
|
+
h3 {margin: 1.0em 0px 0.5em 0px; font-weight: bold; font-style: italic; font-size: 120%;}
|
|
252
|
+
h4 {margin: 1.0em 0px 0.5em 0px; font-weight: bold; font-size: 110%;}
|
|
253
|
+
/*h5 {margin: 0px 0px 0.2em 0px; font-weight: bold; font-size: 110%;}
|
|
254
|
+
h6 {margin: 0px 0px 0.2em 0px;font-weight: bold; font-style: italic; font-size: 110%;}*/
|
|
255
|
+
|
|
256
|
+
/* Paragraphs */
|
|
257
|
+
/*
|
|
258
|
+
li {margin: 0px 0px 0.5em 0px; padding: 0px; line-height: 1.3em; font-family: arial, sans serif; font-size: 12pt; }
|
|
259
|
+
li p {margin: 0px 0px 0.5em 0px; padding: 0px; line-height: 1.3em; font-family: arial, sans serif; font-size: 12pt; }
|
|
260
|
+
p {margin: 0px 0px 0.5em 0px; padding: 0px; line-height: 1.3em; font-family: arial, sans serif; font-size: 12pt; }
|
|
261
|
+
*/
|
|
262
|
+
p.readmore {margin: 1.0em 0px 0.5em 0px; padding: 0px; line-height: 1.2em; font-size: 110%; }
|
|
263
|
+
p.quote {margin: 0em 30px 0.6em 30px; line-height: 120%; font-size: 120%;}
|
|
264
|
+
p.embed {float: left; width: 120px; margin: 7px 7px 5px 0px; padding: 5px 5px 5px 5px; background-color: rgb(238,237,249); font-style: italic; font-weight: bold; line-height: 1.2em; font-size: 140%;}
|
|
265
|
+
p.embed-caption {float: left; margin: 5px 0px 0px 0px; padding: 0px; font-style: italic; font-weight: normal; line-height: 1.2em; font-size: 70%;}
|
|
266
|
+
|
|
267
|
+
/* Quote */
|
|
268
|
+
p.quote {clear: left; margin: 0em 30px 0.6em 30px; line-height: 120%; font-size: 110%;}
|
|
269
|
+
|
|
270
|
+
/* Embedded emphasis */
|
|
271
|
+
.embed {float: left; width: 120px; margin: 2px 7px 2px 0px; padding: 5px 5px 5px 5px; background-color: rgb(238,237,249); font-style: italic; font-weight: bold; line-height: 1.2em; font-size: 140%;}
|
|
272
|
+
.embed-caption {float: left; margin: 5px 0px 0px 0px; padding: 0px; font-style: italic; font-weight: normal; line-height: 1.2em; font-size: 70%;}
|
|
273
|
+
|
|
274
|
+
/* Lists */
|
|
275
|
+
ul.noindent {margin: 0px 0px 7px 15px; padding: 0px; list-style-type: disc; list-style-position: outside; }
|
|
276
|
+
ul.indent {margin: 0px 0px 7px 15px; padding: 0px 0px 0px 15px; list-style-type: disc; font-family: arial; }
|
|
277
|
+
ol {margin: 0px 0px 0px 9px; padding: 0px 0px 0px 25px; list-style-type: decimal; list-style-position: outside; }
|
|
278
|
+
ul.linklist-noindent {margin: -0.3em 0px 0.5em 0px; padding: 0px; list-style-type: none; line-height: 1.2em; }
|
|
279
|
+
ul.linklist-indent {margin: -0.3em 0px 0.5em 0px; padding: 0px 0px 0px 10px; list-style-type: none; line-height: 1.2em; }
|
|
280
|
+
|
|
281
|
+
/* Tables */
|
|
282
|
+
.table {clear: left; margin: 0.5em 0px 0.2em 30px; border: solid 1px rgb(150,150,150); empty-cells: show; border-collapse: collapse; background-color: rgb(233,232,244);}
|
|
283
|
+
.table tr {margin: 0px; padding: 0px;}
|
|
284
|
+
.table td {padding: 2px 7px 2px 7px; border: solid 1px rgb(150,150,150); text-align: left; font-size: 120%;}
|
|
285
|
+
.table th {margin: 0px; padding: 2px 7px 2px 7px; border: solid 1px rgb(150,150,150); empty-cells: show; text-align: left; font-size: 120%; }
|
|
286
|
+
.table-caption {margin: 0.5em 0px 1.0em 30px; padding: 0px; clear: both; text-align: left; font-size: 120%;}
|
|
287
|
+
|
|
288
|
+
/* Images */
|
|
289
|
+
.img-left-noborder-notopmargin {float: left; margin: 0px 10px 0px 0px;}
|
|
290
|
+
.img-left-noborder-topmargin {float: left; margin: 3px 10px 0px 0px;}
|
|
291
|
+
.img-left-border-notopmargin {float: left; margin: 0px 10px 0px 0px; border: solid 1px rgb(150,150,150);}
|
|
292
|
+
.img-left-border-topmargin {float: left; margin: 3px 10px 0px 0px; border: solid 1px rgb(150,150,150);}
|
|
293
|
+
.img-right-noborder-notopmargin {float: right; margin: 0px 0px 0px 10px;}
|
|
294
|
+
.img-right-noborder-topmargin {float: right; margin: 3px 0px 0px 10px;}
|
|
295
|
+
.img-right-border-notopmargin {float: right; margin: 0px 0px 0px 10px; border: solid 1px rgb(150,150,150);}
|
|
296
|
+
.img-right-border-topmargin {float: right; margin: 3px 0px 0px 10px; border: solid 1px rgb(150,150,150);}
|
|
297
|
+
|
|
298
|
+
/*--------------------*/
|
|
299
|
+
/* 6.2 - Sidebar Area */
|
|
300
|
+
/*--------------------*/
|
|
301
|
+
.sidebar {overflow: hidden; float: right; width: 160px; min-height: 500px; margin: 0px; padding: 0px 0px 10px 0px; text-align: left; color: rgb(75,75,75);}
|
|
302
|
+
.sidebar-maintitle {margin: 0px 0px 10px 0px; padding: 3px 10px 2px 10px; background-color: rgb(156,186,214); color: rgb(255,255,255); text-transform: uppercase; font-weight: bold; font-size: 120%;}
|
|
303
|
+
.sidebar-title-noshade {margin: 0px; padding: 2px 10px 3px 10px; border-top: solid 1px rgb(215,215,215); color: rgb(75,75,75); font-weight: bold; font-size: 120%;}
|
|
304
|
+
.sidebar-title-shade {margin: 0px; padding: 2px 10px 3px 10px; background-color: rgb(215,215,215); color: rgb(75,75,75); font-weight: bold; font-size: 120%;}
|
|
305
|
+
.sidebar-txtbox-noshade {margin: 0px 0px 10px 0px; padding: 2px 10px 3px 10px;}
|
|
306
|
+
.sidebar-txtbox-shade {margin: 0px 0px 10px 0px; padding: 2px 10px 3px 10px; background-color: rgb(235,235,235);}
|
|
307
|
+
.sidebar-txtbox-noshade p {margin: 0px 0px 5px 0px; padding: 0px; line-height: 1.25em; font-size: 110%;}
|
|
308
|
+
.sidebar-txtbox-shade p {margin: 0px 0px 5px 0px; padding: 0px; line-height: 1.25em; font-size: 110%;}
|
|
309
|
+
|
|
310
|
+
/*--------------------*/
|
|
311
|
+
/* 6.3 - Footer Area */
|
|
312
|
+
/*--------------------*/
|
|
313
|
+
.footer {overflow: hidden; clear: both; width: 770px; height: 1.5em; margin: 0px; padding: 0.5em 0px 0.5em 0px; border-top: solid 1px rgb(125,125,125); background-color: rgb(128,161,202); color: rgb(255,255,255); font-size: 1.0em;}
|
|
314
|
+
.footer p {margin: 0px; padding: 0px; text-align: center; line-height: 1.3em; font-size: 110%;}
|
|
315
|
+
|
|
316
|
+
/*-------------------*/
|
|
317
|
+
/* 6.4 - Hyperlinks */
|
|
318
|
+
/*-------------------*/
|
|
319
|
+
.content1 a, .content2 a, .content3 a, .sidebar-txtbox-noshade a, .sidebar-txtbox-shade a {color: rgb(75,75,75); text-decoration: underline;}
|
|
320
|
+
.content1 a:hover, .content2 a:hover, .content3 a:hover, .sidebar-txtbox-noshade a:hover, .sidebar-txtbox-shade a:hover {color: rgb(0,0,0); text-decoration: none;}
|
|
321
|
+
.content1 a:visited, .content2 a:visited, .content3 a:visited, .sidebar-txtbox-noshade a:visited, .sidebar-txtbox-shade a:visited {color: rgb(150,150,150);}
|
|
322
|
+
.footer a {color: rgb(255,255,255); text-decoration: underline;}
|
|
323
|
+
.footer a:hover {color: rgb(0,0,0); text-decoration: none;}
|
|
324
|
+
|
|
325
|
+
/*******************************/
|
|
326
|
+
/* SECTION 7 - GENERIC CLASSES */
|
|
327
|
+
/*******************************/
|
|
328
|
+
|
|
329
|
+
/*----------------------------*/
|
|
330
|
+
/* 7.1 - Title decoration box */
|
|
331
|
+
/*----------------------------*/
|
|
332
|
+
.box-on {float: left; min-width: 0.3em; margin-right: 0.2em; padding: 0px 0.2em 0px 0.3em;}
|
|
333
|
+
.box-off {display: none;}
|
|
334
|
+
/* html box-on {width: 1%;} *//* IE6-Hack for min-width. Also compliant with IE7-Beta2 */
|
|
335
|
+
|
|
336
|
+
/*-----------------------------*/
|
|
337
|
+
/* 7.2 - Horizontal alignments */
|
|
338
|
+
/*-----------------------------*/
|
|
339
|
+
.align-left {text-align: left;}
|
|
340
|
+
.align-right {text-align: right;}
|
|
341
|
+
.align-center {text-align: center;}
|
|
342
|
+
p.align-center {margin-left: auto; margin-right: auto;}
|
|
343
|
+
|
|
344
|
+
/*------------------*/
|
|
345
|
+
/* 7.3 Text colors */
|
|
346
|
+
/*------------------*/
|
|
347
|
+
.txt-white {color: rgb(255,255,255);}
|
|
348
|
+
.txt-black {color: rgb(0,0,0);}
|
|
349
|
+
|
|
350
|
+
.txt-grey01 {color: rgb(242,242,242);}
|
|
351
|
+
.txt-grey02 {color: rgb(230,230,230);}
|
|
352
|
+
.txt-grey03 {color: rgb(217,217,217);}
|
|
353
|
+
.txt-grey04 {color: rgb(204,204,204);}
|
|
354
|
+
.txt-grey05 {color: rgb(191,191,191);}
|
|
355
|
+
.txt-grey06 {color: rgb(178,178,178);}
|
|
356
|
+
.txt-grey07 {color: rgb(153,153,153);}
|
|
357
|
+
.txt-grey08 {color: rgb(127,127,127);}
|
|
358
|
+
.txt-grey09 {color: rgb(89,89,89);}
|
|
359
|
+
.txt-grey10 {color: rgb(51,51,51);}
|
|
360
|
+
|
|
361
|
+
.txt-yellow01 {color: rgb(254,252,232);}
|
|
362
|
+
.txt-yellow02 {color: rgb(253,249,201);}
|
|
363
|
+
.txt-yellow03 {color: rgb(253,246,185);}
|
|
364
|
+
.txt-yellow04 {color: rgb(252,243,162);}
|
|
365
|
+
.txt-yellow05 {color: rgb(251,239,139);}
|
|
366
|
+
.txt-yellow06 {color: rgb(250,236,116);}
|
|
367
|
+
.txt-yellow07 {color: rgb(249,233,93);}
|
|
368
|
+
.txt-yellow08 {color: rgb(249,230,69);}
|
|
369
|
+
.txt-yellow09 {color: rgb(248,227,46);}
|
|
370
|
+
.txt-yellow10 {color: rgb(247,224,23);}
|
|
371
|
+
|
|
372
|
+
.txt-blue01 {color: rgb(238,237,249);}
|
|
373
|
+
.txt-blue02 {color: rgb(222,220,242);}
|
|
374
|
+
.txt-blue03 {color: rgb(205,202,236);}
|
|
375
|
+
.txt-blue04 {color: rgb(189,185,229);}
|
|
376
|
+
.txt-blue05 {color: rgb(172,167,223);}
|
|
377
|
+
.txt-blue06 {color: rgb(155,149,217);}
|
|
378
|
+
.txt-blue07 {color: rgb(139,132,210);}
|
|
379
|
+
.txt-blue08 {color: rgb(122,114,204);}
|
|
380
|
+
.txt-blue09 {color: rgb(106,97,197);}
|
|
381
|
+
.txt-blue10 {color: rgb(89,79,191);}
|
|
382
|
+
|
|
383
|
+
.txt-green01 {color: rgb(237,246,229);}
|
|
384
|
+
.txt-green02 {color: rgb(220,238,204);}
|
|
385
|
+
.txt-green03 {color: rgb(202,229,178);}
|
|
386
|
+
.txt-green04 {color: rgb(185,220,153);}
|
|
387
|
+
.txt-green05 {color: rgb(167,211,127);}
|
|
388
|
+
.txt-green06 {color: rgb(149,203,102);}
|
|
389
|
+
.txt-green07 {color: rgb(132,194,76);}
|
|
390
|
+
.txt-green08 {color: rgb(114,185,51);}
|
|
391
|
+
.txt-green09 {color: rgb(97,177,25);}
|
|
392
|
+
.txt-green10 {color: rgb(79,168,0);}
|
|
393
|
+
|
|
394
|
+
.txt-red01 {color: rgb(252,235,233);}
|
|
395
|
+
.txt-red02 {color: rgb(248,216,211);}
|
|
396
|
+
.txt-red03 {color: rgb(245,196,188);}
|
|
397
|
+
.txt-red04 {color: rgb(242,177,166);}
|
|
398
|
+
.txt-red05 {color: rgb(238,157,144);}
|
|
399
|
+
.txt-red06 {color: rgb(235,137,122);}
|
|
400
|
+
.txt-red07 {color: rgb(232,118,100);}
|
|
401
|
+
.txt-red08 {color: rgb(229,98,77);}
|
|
402
|
+
.txt-red09 {color: rgb(225,79,55);}
|
|
403
|
+
.txt-red10 {color: rgb(222,59,33);}
|
|
404
|
+
|
|
405
|
+
/*-------------------------*/
|
|
406
|
+
/* 7.4 - Background colors */
|
|
407
|
+
/*-------------------------*/
|
|
408
|
+
.bg-white {background-color: rgb(255,255,255);}
|
|
409
|
+
.bg-black {background-color: rgb(0,0,0);}
|
|
410
|
+
|
|
411
|
+
.bg-grey01 {background-color: rgb(242,242,242);}
|
|
412
|
+
.bg-grey02 {background-color: rgb(230,230,230);}
|
|
413
|
+
.bg-grey03 {background-color: rgb(217,217,217);}
|
|
414
|
+
.bg-grey04 {background-color: rgb(204,204,204);}
|
|
415
|
+
.bg-grey05 {background-color: rgb(191,191,191);}
|
|
416
|
+
.bg-grey06 {background-color: rgb(178,178,178);}
|
|
417
|
+
.bg-grey07 {background-color: rgb(153,153,153);}
|
|
418
|
+
.bg-grey08 {background-color: rgb(127,127,127);}
|
|
419
|
+
.bg-grey09 {background-color: rgb(89,89,89);}
|
|
420
|
+
.bg-grey10 {background-color: rgb(51,51,51);}
|
|
421
|
+
|
|
422
|
+
.bg-yellow01 {background-color: rgb(254,252,232);}
|
|
423
|
+
.bg-yellow02 {background-color: rgb(253,249,201);}
|
|
424
|
+
.bg-yellow03 {background-color: rgb(253,246,185);}
|
|
425
|
+
.bg-yellow04 {background-color: rgb(252,243,162);}
|
|
426
|
+
.bg-yellow05 {background-color: rgb(251,239,139);}
|
|
427
|
+
.bg-yellow06 {background-color: rgb(250,236,116);}
|
|
428
|
+
.bg-yellow07 {background-color: rgb(249,233,93);}
|
|
429
|
+
.bg-yellow08 {background-color: rgb(249,230,69);}
|
|
430
|
+
.bg-yellow09 {background-color: rgb(248,227,46);}
|
|
431
|
+
.bg-yellow10 {background-color: rgb(247,224,23);}
|
|
432
|
+
|
|
433
|
+
.bg-blue01 {background-color: rgb(238,237,249);}
|
|
434
|
+
.bg-blue02 {background-color: rgb(222,220,242);}
|
|
435
|
+
.bg-blue03 {background-color: rgb(205,202,236);}
|
|
436
|
+
.bg-blue04 {background-color: rgb(189,185,229);}
|
|
437
|
+
.bg-blue05 {background-color: rgb(172,167,223);}
|
|
438
|
+
.bg-blue06 {background-color: rgb(155,149,217);}
|
|
439
|
+
.bg-blue07 {background-color: rgb(139,132,210);}
|
|
440
|
+
.bg-blue08 {background-color: rgb(122,114,204);}
|
|
441
|
+
.bg-blue09 {background-color: rgb(106,97,197);}
|
|
442
|
+
.bg-blue10 {background-color: rgb(89,79,191);}
|
|
443
|
+
|
|
444
|
+
.bg-green01 {background-color: rgb(237,246,229);}
|
|
445
|
+
.bg-green02 {background-color: rgb(220,238,204);}
|
|
446
|
+
.bg-green03 {background-color: rgb(202,229,178);}
|
|
447
|
+
.bg-green04 {background-color: rgb(185,220,153);}
|
|
448
|
+
.bg-green05 {background-color: rgb(167,211,127);}
|
|
449
|
+
.bg-green06 {background-color: rgb(149,203,102);}
|
|
450
|
+
.bg-green07 {background-color: rgb(132,194,76);}
|
|
451
|
+
.bg-green08 {background-color: rgb(114,185,51);}
|
|
452
|
+
.bg-green09 {background-color: rgb(97,177,25);}
|
|
453
|
+
.bg-green10 {background-color: rgb(79,168,0);}
|
|
454
|
+
|
|
455
|
+
.bg-red01 {background-color: rgb(252,235,233);}
|
|
456
|
+
.bg-red02 {background-color: rgb(248,216,211);}
|
|
457
|
+
.bg-red03 {background-color: rgb(245,196,188);}
|
|
458
|
+
.bg-red04 {background-color: rgb(242,177,166);}
|
|
459
|
+
.bg-red05 {background-color: rgb(238,157,144);}
|
|
460
|
+
.bg-red06 {background-color: rgb(235,137,122);}
|
|
461
|
+
.bg-red07 {background-color: rgb(232,118,100);}
|
|
462
|
+
.bg-red08 {background-color: rgb(229,98,77);}
|
|
463
|
+
.bg-red09 {background-color: rgb(225,79,55);}
|
|
464
|
+
.bg-red10 {background-color: rgb(222,59,33);}
|
|
465
|
+
|
|
466
|
+
/*---------------------------*/
|
|
467
|
+
/* 7.5 Bottom border colors */
|
|
468
|
+
/*---------------------------*/
|
|
469
|
+
.line-box {border-bottom: solid 1px rgb(200,200,200); padding-bottom: 15px; margin: 0px 0px 15px 0px;}
|
|
470
|
+
|
|
471
|
+
.line-white {border-bottom: solid 1px rgb(255,255,255); padding-bottom: 2px; margin: 0px 0px 1px 0px;}
|
|
472
|
+
.line-black {border-bottom: solid 1px rgb(0,0,0); padding-bottom: 2px; margin: 0px 0px 1px 0px;}
|
|
473
|
+
|
|
474
|
+
.line-grey01 {border-bottom: solid 1px rgb(242,242,242); padding-bottom: 2px; margin-bottom: 1px;}
|
|
475
|
+
.line-grey02 {border-bottom: solid 1px rgb(230,230,230); padding-bottom: 2px; margin-bottom: 1px;}
|
|
476
|
+
.line-grey03 {border-bottom: solid 1px rgb(217,217,217); padding-bottom: 2px; margin-bottom: 1px;}
|
|
477
|
+
.line-grey04 {border-bottom: solid 1px rgb(204,204,204); padding-bottom: 2px; margin-bottom: 1px;}
|
|
478
|
+
.line-grey05 {border-bottom: solid 1px rgb(191,191,191); padding-bottom: 2px; margin-bottom: 1px;}
|
|
479
|
+
.line-grey06 {border-bottom: solid 1px rgb(178,178,178); padding-bottom: 2px; margin-bottom: 1px;}
|
|
480
|
+
.line-grey07 {border-bottom: solid 1px rgb(153,153,153); padding-bottom: 2px; margin-bottom: 1px;}
|
|
481
|
+
.line-grey08 {border-bottom: solid 1px rgb(127,127,127); padding-bottom: 2px; margin-bottom: 1px;}
|
|
482
|
+
.line-grey09 {border-bottom: solid 1px rgb(89,89,89); padding-bottom: 2px; margin-bottom: 1px;}
|
|
483
|
+
.line-grey10 {border-bottom: solid 1px rgb(51,51,51); padding-bottom: 2px; margin-bottom: 1px;}
|
|
484
|
+
|
|
485
|
+
.line-yellow01 {border-bottom: solid 1px rgb(254,252,232); padding-bottom: 2px; margin-bottom: 1px;}
|
|
486
|
+
.line-yellow02 {border-bottom: solid 1px rgb(253,249,201); padding-bottom: 2px; margin-bottom: 1px;}
|
|
487
|
+
.line-yellow03 {border-bottom: solid 1px rgb(253,246,185); padding-bottom: 2px; margin-bottom: 1px;}
|
|
488
|
+
.line-yellow04 {border-bottom: solid 1px rgb(252,243,162); padding-bottom: 2px; margin-bottom: 1px;}
|
|
489
|
+
.line-yellow05 {border-bottom: solid 1px rgb(251,239,139); padding-bottom: 2px; margin-bottom: 1px;}
|
|
490
|
+
.line-yellow06 {border-bottom: solid 1px rgb(250,236,116); padding-bottom: 2px; margin-bottom: 1px;}
|
|
491
|
+
.line-yellow07 {border-bottom: solid 1px rgb(249,233,93); padding-bottom: 2px; margin-bottom: 1px;}
|
|
492
|
+
.line-yellow08 {border-bottom: solid 1px rgb(249,230,69); padding-bottom: 2px; margin-bottom: 1px;}
|
|
493
|
+
.line-yellow09 {border-bottom: solid 1px rgb(248,227,46); padding-bottom: 2px; margin-bottom: 1px;}
|
|
494
|
+
.line-yellow10 {border-bottom: solid 1px rgb(247,224,23); padding-bottom: 2px; margin-bottom: 1px;}
|
|
495
|
+
|
|
496
|
+
.line-blue01 {border-bottom: solid 1px rgb(238,237,249); padding-bottom: 2px; margin-bottom: 1px;}
|
|
497
|
+
.line-blue02 {border-bottom: solid 1px rgb(222,220,242); padding-bottom: 2px; margin-bottom: 1px;}
|
|
498
|
+
.line-blue03 {border-bottom: solid 1px rgb(205,202,236); padding-bottom: 2px; margin-bottom: 1px;}
|
|
499
|
+
.line-blue04 {border-bottom: solid 1px rgb(189,185,229); padding-bottom: 2px; margin-bottom: 1px;}
|
|
500
|
+
.line-blue05 {border-bottom: solid 1px rgb(172,167,223); padding-bottom: 2px; margin-bottom: 1px;}
|
|
501
|
+
.line-blue06 {border-bottom: solid 1px rgb(155,149,217); padding-bottom: 2px; margin-bottom: 1px;}
|
|
502
|
+
.line-blue07 {border-bottom: solid 1px rgb(139,132,210); padding-bottom: 2px; margin-bottom: 1px;}
|
|
503
|
+
.line-blue08 {border-bottom: solid 1px rgb(122,114,204); padding-bottom: 2px; margin-bottom: 1px;}
|
|
504
|
+
.line-blue09 {border-bottom: solid 1px rgb(106,97,197); padding-bottom: 2px; margin-bottom: 1px;}
|
|
505
|
+
.line-blue10 {border-bottom: solid 1px rgb(89,79,191); padding-bottom: 2px; margin-bottom: 1px;}
|
|
506
|
+
|
|
507
|
+
.line-green01 {border-bottom: solid 1px rgb(237,246,229); padding-bottom: 2px; margin-bottom: 1px;}
|
|
508
|
+
.line-green02 {border-bottom: solid 1px rgb(220,238,204); padding-bottom: 2px; margin-bottom: 1px;}
|
|
509
|
+
.line-green03 {border-bottom: solid 1px rgb(202,229,178); padding-bottom: 2px; margin-bottom: 1px;}
|
|
510
|
+
.line-green04 {border-bottom: solid 1px rgb(185,220,153); padding-bottom: 2px; margin-bottom: 1px;}
|
|
511
|
+
.line-green05 {border-bottom: solid 1px rgb(167,211,127); padding-bottom: 2px; margin-bottom: 1px;}
|
|
512
|
+
.line-green06 {border-bottom: solid 1px rgb(149,203,102); padding-bottom: 2px; margin-bottom: 1px;}
|
|
513
|
+
.line-green07 {border-bottom: solid 1px rgb(132,194,76); padding-bottom: 2px; margin-bottom: 1px;}
|
|
514
|
+
.line-green08 {border-bottom: solid 1px rgb(114,185,51); padding-bottom: 2px; margin-bottom: 1px;}
|
|
515
|
+
.line-green09 {border-bottom: solid 1px rgb(97,177,25); padding-bottom: 2px; margin-bottom: 1px;}
|
|
516
|
+
.line-green10 {border-bottom: solid 1px rgb(79,168,0); padding-bottom: 2px; margin-bottom: 1px;}
|
|
517
|
+
|
|
518
|
+
.line-red01 {border-bottom: solid 1px rgb(252,235,233); padding-bottom: 2px; margin-bottom: 1px;}
|
|
519
|
+
.line-red02 {border-bottom: solid 1px rgb(248,216,211); padding-bottom: 2px; margin-bottom: 1px;}
|
|
520
|
+
.line-red03 {border-bottom: solid 1px rgb(245,196,188); padding-bottom: 2px; margin-bottom: 1px;}
|
|
521
|
+
.line-red04 {border-bottom: solid 1px rgb(242,177,166); padding-bottom: 2px; margin-bottom: 1px;}
|
|
522
|
+
.line-red05 {border-bottom: solid 1px rgb(238,157,144); padding-bottom: 2px; margin-bottom: 1px;}
|
|
523
|
+
.line-red06 {border-bottom: solid 1px rgb(235,137,122); padding-bottom: 2px; margin-bottom: 1px;}
|
|
524
|
+
.line-red07 {border-bottom: solid 1px rgb(232,118,100); padding-bottom: 2px; margin-bottom: 1px;}
|
|
525
|
+
.line-red08 {border-bottom: solid 1px rgb(229,98,77); padding-bottom: 2px; margin-bottom: 1px;}
|
|
526
|
+
.line-red09 {border-bottom: solid 1px rgb(225,79,55); padding-bottom: 2px; margin-bottom: 1px;}
|
|
527
|
+
.line-red10 {border-bottom: solid 1px rgb(222,59,33); padding-bottom: 2px; margin-bottom: 1px;}
|
|
528
|
+
|
|
529
|
+
/*****************************/
|
|
530
|
+
/* SECTION 8 - MISCELLANEOUS */
|
|
531
|
+
/*****************************/
|
|
532
|
+
.showcode {font-family: monospace; font-weight: bold; color: rgb(255,0,0);}
|
|
533
|
+
.CodeRay {font-family: monospace; font-weight: normal; }
|
|
534
|
+
|
|
535
|
+
pre {
|
|
536
|
+
padding:5px;
|
|
537
|
+
background:#e4e4ff;
|
|
538
|
+
color:#222;
|
|
539
|
+
border:2px solid #ddd;
|
|
540
|
+
margin-top: .2em;
|
|
541
|
+
margin-bottom: .2em;
|
|
542
|
+
margin-left: 0em;
|
|
543
|
+
margin-right: 0em;
|
|
544
|
+
font-family: monospace;
|
|
545
|
+
font-size: 80%;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
pre.vcs {
|
|
549
|
+
line-height: 1.2em;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
.clear {clear: both;}
|
|
553
|
+
.hide {display: none;}
|
|
554
|
+
br {clear: none;}
|
|
555
|
+
|
|
556
|
+
.note, .block{
|
|
557
|
+
padding:20px;
|
|
558
|
+
background:#eee;
|
|
559
|
+
color:#222;
|
|
560
|
+
border:2px solid #ddd;
|
|
561
|
+
margin-top: 3em;
|
|
562
|
+
margin-bottom: 3em;
|
|
563
|
+
margin-left: 2em;
|
|
564
|
+
margin-right: 2em;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
.cmdline, .commandline {
|
|
568
|
+
padding:5px;
|
|
569
|
+
background:#e4e4ff;
|
|
570
|
+
color:#222;
|
|
571
|
+
border:2px solid #ddd;
|
|
572
|
+
margin-top: 1em;
|
|
573
|
+
margin-bottom: 1em;
|
|
574
|
+
margin-left: 0em;
|
|
575
|
+
margin-right: 0em;
|
|
576
|
+
font-family: monospace;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
.indent {
|
|
580
|
+
margin-left: 4em;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
a.highlight {
|
|
584
|
+
font-weight: bold;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
a.highlight, a.highlight:hover, a.highlight:visited {
|
|
588
|
+
color: rgb(88,144,168);
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
table.short_doc {
|
|
592
|
+
margin-top: .2em;
|
|
593
|
+
background-color: rgb(238,237,249);
|
|
594
|
+
width: 100%;
|
|
595
|
+
}
|
|
596
|
+
table.short_doc td.short_doc {
|
|
597
|
+
font-style: italic;
|
|
598
|
+
}
|
|
599
|
+
table.list_alt {
|
|
600
|
+
background-color: rgb(230,228,249);
|
|
601
|
+
}
|
|
602
|
+
div.tagcloud {
|
|
603
|
+
margin-top: 2em;
|
|
604
|
+
margin-bottom: 2em;
|
|
605
|
+
}
|
|
606
|
+
div#index-table {
|
|
607
|
+
margin-top: 1em;
|
|
608
|
+
}
|
|
609
|
+
.half-size {
|
|
610
|
+
width: 250px;
|
|
611
|
+
}
|
|
612
|
+
div.vcs_info {
|
|
613
|
+
margin-left: 2em;
|
|
614
|
+
}
|
|
615
|
+
div.vcs span.toggle {
|
|
616
|
+
font-size: 70%;
|
|
617
|
+
margin-left: .5em;
|
|
618
|
+
font-weight: bold;
|
|
619
|
+
font-style: italic;
|
|
620
|
+
}
|
|
621
|
+
span.vcs_override {
|
|
622
|
+
font-size: 90%;
|
|
623
|
+
font-weight: bold;
|
|
624
|
+
line-height: 1em;
|
|
625
|
+
}
|
|
626
|
+
.help_trigger {
|
|
627
|
+
margin-left: .5em;
|
|
628
|
+
}
|
|
629
|
+
.help {
|
|
630
|
+
background-color: rgb(238,237,249);
|
|
631
|
+
margin: .5em;
|
|
632
|
+
font-size: 80%;
|
|
633
|
+
margin: .5em 2em .5em 2em;
|
|
634
|
+
padding: .3em;
|
|
635
|
+
font-style: italic;
|
|
636
|
+
line-height: 1.2em;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
|
|
640
|
+
.package_status {
|
|
641
|
+
width: 100%;
|
|
642
|
+
}
|
|
643
|
+
.package_status .name {
|
|
644
|
+
text-align: left;
|
|
645
|
+
background-color: rgb(176,206,234);
|
|
646
|
+
}
|
|
647
|
+
.package_status .name .error {
|
|
648
|
+
text-align: left;
|
|
649
|
+
background-color: rgb(244,146,146);
|
|
650
|
+
}
|
|
651
|
+
.error_message td {
|
|
652
|
+
padding-left: 1em;
|
|
653
|
+
background-color: rgb(244,182,182);
|
|
654
|
+
}
|
|
655
|
+
.message td {
|
|
656
|
+
padding-left: 1em;
|
|
657
|
+
background-color: rgb(219,230,241);
|
|
658
|
+
}
|
|
659
|
+
.from_commits_header td {
|
|
660
|
+
padding-left: 1em;
|
|
661
|
+
background-color: rgb(219,230,241);
|
|
662
|
+
}
|
|
663
|
+
.to_commits_header td {
|
|
664
|
+
padding-left: 1em;
|
|
665
|
+
background-color: rgb(219,230,241);
|
|
666
|
+
}
|
|
667
|
+
.from_commits td {
|
|
668
|
+
padding-left: 1em;
|
|
669
|
+
background-color: rgb(219,230,241);
|
|
670
|
+
}
|
|
671
|
+
.to_commits td {
|
|
672
|
+
padding-left: 1em;
|
|
673
|
+
background-color: rgb(219,230,241);
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.news_publication_date {
|
|
677
|
+
font-size: 80%;
|
|
678
|
+
font-style: italic;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
.caption {
|
|
682
|
+
margin-left: 50px;
|
|
683
|
+
margin-right: 50px;
|
|
684
|
+
font-size: 90%;
|
|
685
|
+
font-style: italic;
|
|
686
|
+
}
|
|
687
|
+
|