diff --git a/plugins/org.yakindu.sct.doc.user/.settings/org.eclipse.core.resources.prefs b/plugins/org.yakindu.sct.doc.user/.settings/org.eclipse.core.resources.prefs index 49f070694b..108fe69f90 100644 --- a/plugins/org.yakindu.sct.doc.user/.settings/org.eclipse.core.resources.prefs +++ b/plugins/org.yakindu.sct.doc.user/.settings/org.eclipse.core.resources.prefs @@ -1,4 +1,3 @@ eclipse.preferences.version=1 -encoding//css/custom.css=UTF-8 encoding//model/state_initial_final.sct=UTF-8 encoding/=UTF-8 diff --git a/plugins/org.yakindu.sct.doc.user/build.xml b/plugins/org.yakindu.sct.doc.user/build.xml index b4c5487e95..21b3d9dd16 100644 --- a/plugins/org.yakindu.sct.doc.user/build.xml +++ b/plugins/org.yakindu.sct.doc.user/build.xml @@ -24,7 +24,7 @@ - + @@ -59,10 +59,11 @@ - + + @@ -116,7 +117,7 @@ + depends="generate.eclipsehelp, generate.website" /> @@ -128,6 +129,27 @@ + + + + + + + + + + + + + + + + + + + + + - - - + @@ -153,6 +174,21 @@ + + + + + + + + + + + + @@ -170,4 +206,274 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.yakindu.sct.doc.user/contexts.xml b/plugins/org.yakindu.sct.doc.user/contexts.xml index 0710d33b7a..9e400e9a58 100644 --- a/plugins/org.yakindu.sct.doc.user/contexts.xml +++ b/plugins/org.yakindu.sct.doc.user/contexts.xml @@ -3,26 +3,26 @@ An entry, possibly with a shallow or deep history, defines which state is to be activated first in a state machine or region. - - - + + + States are central elements of a state machine. - + Expressions are used to declare events, variables etc. and to define behavior. - + A transition is the transfer of one state to another. Transitions are diagrammed as arrows. They can carry events and actions, but don't need to. - + - + - + diff --git a/plugins/org.yakindu.sct.doc.user/css/bootstrap.css b/plugins/org.yakindu.sct.doc.user/css/bootstrap.css index 9fa6f766fc..42c79d6e45 100644 --- a/plugins/org.yakindu.sct.doc.user/css/bootstrap.css +++ b/plugins/org.yakindu.sct.doc.user/css/bootstrap.css @@ -1,13 +1,17 @@ /*! - * Bootstrap v2.1.1 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. + * Bootstrap v3.3.6 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ - +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +body { + margin: 0; +} article, aside, details, @@ -16,40 +20,56 @@ figure, footer, header, hgroup, +main, +menu, nav, -section { +section, +summary { display: block; } - audio, canvas, +progress, video { display: inline-block; - *display: inline; - *zoom: 1; + vertical-align: baseline; } - audio:not([controls]) { display: none; + height: 0; } - -html { - font-size: 100%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; +[hidden], +template { + display: none; } - -a:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; +a { + background-color: transparent; } - -a:hover, -a:active { +a:active, +a:hover { outline: 0; } - +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + margin: .67em 0; + font-size: 2em; +} +mark { + color: #000; + background: #ff0; +} +small { + font-size: 80%; +} sub, sup { position: relative; @@ -57,4982 +77,5970 @@ sup { line-height: 0; vertical-align: baseline; } - sup { - top: -0.5em; + top: -.5em; } - sub { - bottom: -0.25em; + bottom: -.25em; } - img { - width: auto\9; - height: auto; - max-width: 100%; - vertical-align: middle; border: 0; - -ms-interpolation-mode: bicubic; } - -#map_canvas img { - max-width: none; +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; } - button, input, +optgroup, select, textarea { margin: 0; - font-size: 100%; - vertical-align: middle; + font: inherit; + color: inherit; +} +button { + overflow: visible; } - button, -input { - *overflow: visible; - line-height: normal; +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; } - button::-moz-focus-inner, input::-moz-focus-inner { padding: 0; border: 0; } - -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; } - input[type="search"] { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; -webkit-appearance: textfield; } - -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - +fieldset { + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} +legend { + padding: 0; + border: 0; +} textarea { overflow: auto; - vertical-align: top; } - -.clearfix { - *zoom: 1; +optgroup { + font-weight: bold; } - -.clearfix:before, -.clearfix:after { - display: table; - line-height: 0; - content: ""; +table { + border-spacing: 0; + border-collapse: collapse; } - -.clearfix:after { - clear: both; +td, +th { + padding: 0; } +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; -.hide-text { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } } +@font-face { + font-family: 'Glyphicons Halflings'; -.input-block-level { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); } +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; -body { - margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 20px; - color: #333333; - background-color: #ffffff; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } - -a { - color: #0088cc; - text-decoration: none; +.glyphicon-asterisk:before { + content: "\002a"; } - -a:hover { - color: #005580; - text-decoration: underline; +.glyphicon-plus:before { + content: "\002b"; } - -.img-rounded { - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; } - -.img-polaroid { - padding: 4px; - background-color: #fff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +.glyphicon-minus:before { + content: "\2212"; } - -.img-circle { - -webkit-border-radius: 500px; - -moz-border-radius: 500px; - border-radius: 500px; +.glyphicon-cloud:before { + content: "\2601"; } - -.row { - margin-left: -20px; - *zoom: 1; +.glyphicon-envelope:before { + content: "\2709"; } - -.row:before, -.row:after { - display: table; - line-height: 0; - content: ""; +.glyphicon-pencil:before { + content: "\270f"; } - -.row:after { - clear: both; +.glyphicon-glass:before { + content: "\e001"; } - -[class*="span"] { - float: left; - min-height: 1px; - margin-left: 20px; +.glyphicon-music:before { + content: "\e002"; } - -.container, -.navbar-static-top .container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; +.glyphicon-search:before { + content: "\e003"; } - -.span12 { - width: 940px; +.glyphicon-heart:before { + content: "\e005"; } - -.span11 { - width: 860px; +.glyphicon-star:before { + content: "\e006"; } - -.span10 { - width: 780px; +.glyphicon-star-empty:before { + content: "\e007"; } - -.span9 { - width: 700px; +.glyphicon-user:before { + content: "\e008"; } - -.span8 { - width: 620px; +.glyphicon-film:before { + content: "\e009"; } - -.span7 { - width: 540px; +.glyphicon-th-large:before { + content: "\e010"; } - -.span6 { - width: 460px; +.glyphicon-th:before { + content: "\e011"; } - -.span5 { - width: 380px; +.glyphicon-th-list:before { + content: "\e012"; } - -.span4 { - width: 300px; +.glyphicon-ok:before { + content: "\e013"; } - -.span3 { - width: 220px; +.glyphicon-remove:before { + content: "\e014"; } - -.span2 { - width: 140px; +.glyphicon-zoom-in:before { + content: "\e015"; } - -.span1 { - width: 60px; +.glyphicon-zoom-out:before { + content: "\e016"; } - -.offset12 { - margin-left: 980px; +.glyphicon-off:before { + content: "\e017"; } - -.offset11 { - margin-left: 900px; +.glyphicon-signal:before { + content: "\e018"; } - -.offset10 { - margin-left: 820px; +.glyphicon-cog:before { + content: "\e019"; } - -.offset9 { - margin-left: 740px; +.glyphicon-trash:before { + content: "\e020"; } - -.offset8 { - margin-left: 660px; +.glyphicon-home:before { + content: "\e021"; } - -.offset7 { - margin-left: 580px; +.glyphicon-file:before { + content: "\e022"; } - -.offset6 { - margin-left: 500px; +.glyphicon-time:before { + content: "\e023"; } - -.offset5 { - margin-left: 420px; +.glyphicon-road:before { + content: "\e024"; } - -.offset4 { - margin-left: 340px; +.glyphicon-download-alt:before { + content: "\e025"; } - -.offset3 { - margin-left: 260px; +.glyphicon-download:before { + content: "\e026"; } - -.offset2 { - margin-left: 180px; +.glyphicon-upload:before { + content: "\e027"; } - -.offset1 { - margin-left: 100px; +.glyphicon-inbox:before { + content: "\e028"; } - -.row-fluid { - width: 100%; - *zoom: 1; +.glyphicon-play-circle:before { + content: "\e029"; } - -.row-fluid:before, -.row-fluid:after { - display: table; - line-height: 0; - content: ""; +.glyphicon-repeat:before { + content: "\e030"; } - -.row-fluid:after { - clear: both; +.glyphicon-refresh:before { + content: "\e031"; } - -.row-fluid [class*="span"] { - display: block; - float: left; - width: 100%; - min-height: 30px; - margin-left: 2.127659574468085%; - *margin-left: 2.074468085106383%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; +.glyphicon-list-alt:before { + content: "\e032"; } - -.row-fluid [class*="span"]:first-child { - margin-left: 0; +.glyphicon-lock:before { + content: "\e033"; } - -.row-fluid .span12 { - width: 100%; - *width: 99.94680851063829%; +.glyphicon-flag:before { + content: "\e034"; } - -.row-fluid .span11 { - width: 91.48936170212765%; - *width: 91.43617021276594%; +.glyphicon-headphones:before { + content: "\e035"; } - -.row-fluid .span10 { - width: 82.97872340425532%; - *width: 82.92553191489361%; +.glyphicon-volume-off:before { + content: "\e036"; } - -.row-fluid .span9 { - width: 74.46808510638297%; - *width: 74.41489361702126%; +.glyphicon-volume-down:before { + content: "\e037"; } - -.row-fluid .span8 { - width: 65.95744680851064%; - *width: 65.90425531914893%; +.glyphicon-volume-up:before { + content: "\e038"; } - -.row-fluid .span7 { - width: 57.44680851063829%; - *width: 57.39361702127659%; +.glyphicon-qrcode:before { + content: "\e039"; } - -.row-fluid .span6 { - width: 48.93617021276595%; - *width: 48.88297872340425%; +.glyphicon-barcode:before { + content: "\e040"; } - -.row-fluid .span5 { - width: 40.42553191489362%; - *width: 40.37234042553192%; +.glyphicon-tag:before { + content: "\e041"; } - -.row-fluid .span4 { - width: 31.914893617021278%; - *width: 31.861702127659576%; +.glyphicon-tags:before { + content: "\e042"; } - -.row-fluid .span3 { - width: 23.404255319148934%; - *width: 23.351063829787233%; +.glyphicon-book:before { + content: "\e043"; } - -.row-fluid .span2 { - width: 14.893617021276595%; - *width: 14.840425531914894%; +.glyphicon-bookmark:before { + content: "\e044"; } - -.row-fluid .span1 { - width: 6.382978723404255%; - *width: 6.329787234042553%; +.glyphicon-print:before { + content: "\e045"; } - -.row-fluid .offset12 { - margin-left: 104.25531914893617%; - *margin-left: 104.14893617021275%; +.glyphicon-camera:before { + content: "\e046"; } - -.row-fluid .offset12:first-child { - margin-left: 102.12765957446808%; - *margin-left: 102.02127659574467%; +.glyphicon-font:before { + content: "\e047"; } - -.row-fluid .offset11 { - margin-left: 95.74468085106382%; - *margin-left: 95.6382978723404%; +.glyphicon-bold:before { + content: "\e048"; } - -.row-fluid .offset11:first-child { - margin-left: 93.61702127659574%; - *margin-left: 93.51063829787232%; +.glyphicon-italic:before { + content: "\e049"; } - -.row-fluid .offset10 { - margin-left: 87.23404255319149%; - *margin-left: 87.12765957446807%; +.glyphicon-text-height:before { + content: "\e050"; } - -.row-fluid .offset10:first-child { - margin-left: 85.1063829787234%; - *margin-left: 84.99999999999999%; +.glyphicon-text-width:before { + content: "\e051"; } - -.row-fluid .offset9 { - margin-left: 78.72340425531914%; - *margin-left: 78.61702127659572%; +.glyphicon-align-left:before { + content: "\e052"; } - -.row-fluid .offset9:first-child { - margin-left: 76.59574468085106%; - *margin-left: 76.48936170212764%; +.glyphicon-align-center:before { + content: "\e053"; } - -.row-fluid .offset8 { - margin-left: 70.2127659574468%; - *margin-left: 70.10638297872339%; +.glyphicon-align-right:before { + content: "\e054"; } - -.row-fluid .offset8:first-child { - margin-left: 68.08510638297872%; - *margin-left: 67.9787234042553%; +.glyphicon-align-justify:before { + content: "\e055"; } - -.row-fluid .offset7 { - margin-left: 61.70212765957446%; - *margin-left: 61.59574468085106%; +.glyphicon-list:before { + content: "\e056"; } - -.row-fluid .offset7:first-child { - margin-left: 59.574468085106375%; - *margin-left: 59.46808510638297%; +.glyphicon-indent-left:before { + content: "\e057"; } - -.row-fluid .offset6 { - margin-left: 53.191489361702125%; - *margin-left: 53.085106382978715%; +.glyphicon-indent-right:before { + content: "\e058"; } - -.row-fluid .offset6:first-child { - margin-left: 51.063829787234035%; - *margin-left: 50.95744680851063%; +.glyphicon-facetime-video:before { + content: "\e059"; } - -.row-fluid .offset5 { - margin-left: 44.68085106382979%; - *margin-left: 44.57446808510638%; +.glyphicon-picture:before { + content: "\e060"; } - -.row-fluid .offset5:first-child { - margin-left: 42.5531914893617%; - *margin-left: 42.4468085106383%; +.glyphicon-map-marker:before { + content: "\e062"; } - -.row-fluid .offset4 { - margin-left: 36.170212765957444%; - *margin-left: 36.06382978723405%; +.glyphicon-adjust:before { + content: "\e063"; } - -.row-fluid .offset4:first-child { - margin-left: 34.04255319148936%; - *margin-left: 33.93617021276596%; +.glyphicon-tint:before { + content: "\e064"; } - -.row-fluid .offset3 { - margin-left: 27.659574468085104%; - *margin-left: 27.5531914893617%; +.glyphicon-edit:before { + content: "\e065"; } - -.row-fluid .offset3:first-child { - margin-left: 25.53191489361702%; - *margin-left: 25.425531914893618%; +.glyphicon-share:before { + content: "\e066"; } - -.row-fluid .offset2 { - margin-left: 19.148936170212764%; - *margin-left: 19.04255319148936%; +.glyphicon-check:before { + content: "\e067"; } - -.row-fluid .offset2:first-child { - margin-left: 17.02127659574468%; - *margin-left: 16.914893617021278%; +.glyphicon-move:before { + content: "\e068"; } - -.row-fluid .offset1 { - margin-left: 10.638297872340425%; - *margin-left: 10.53191489361702%; +.glyphicon-step-backward:before { + content: "\e069"; } - -.row-fluid .offset1:first-child { - margin-left: 8.51063829787234%; - *margin-left: 8.404255319148938%; +.glyphicon-fast-backward:before { + content: "\e070"; } - -[class*="span"].hide, -.row-fluid [class*="span"].hide { - display: none; +.glyphicon-backward:before { + content: "\e071"; } - -[class*="span"].pull-right, -.row-fluid [class*="span"].pull-right { - float: right; +.glyphicon-play:before { + content: "\e072"; } - -.container { - margin-right: auto; - margin-left: auto; - *zoom: 1; +.glyphicon-pause:before { + content: "\e073"; } - -.container:before, -.container:after { - display: table; - line-height: 0; - content: ""; +.glyphicon-stop:before { + content: "\e074"; } - -.container:after { - clear: both; +.glyphicon-forward:before { + content: "\e075"; } - -.container-fluid { - padding-right: 20px; - padding-left: 20px; - *zoom: 1; +.glyphicon-fast-forward:before { + content: "\e076"; } - -.container-fluid:before, -.container-fluid:after { - display: table; - line-height: 0; - content: ""; +.glyphicon-step-forward:before { + content: "\e077"; } - -.container-fluid:after { - clear: both; +.glyphicon-eject:before { + content: "\e078"; } - -p { - margin: 0 0 10px; +.glyphicon-chevron-left:before { + content: "\e079"; } - -.lead { - margin-bottom: 20px; - font-size: 21px; - font-weight: 200; - line-height: 30px; +.glyphicon-chevron-right:before { + content: "\e080"; } - -small { - font-size: 85%; +.glyphicon-plus-sign:before { + content: "\e081"; } - -strong { - font-weight: bold; +.glyphicon-minus-sign:before { + content: "\e082"; } - -em { - font-style: italic; +.glyphicon-remove-sign:before { + content: "\e083"; } - -cite { - font-style: normal; +.glyphicon-ok-sign:before { + content: "\e084"; } - -.muted { - color: #999999; +.glyphicon-question-sign:before { + content: "\e085"; } - -.text-warning { - color: #c09853; +.glyphicon-info-sign:before { + content: "\e086"; } - -.text-error { - color: #b94a48; +.glyphicon-screenshot:before { + content: "\e087"; } - -.text-info { - color: #3a87ad; +.glyphicon-remove-circle:before { + content: "\e088"; } - -.text-success { - color: #468847; +.glyphicon-ok-circle:before { + content: "\e089"; } - -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 10px 0; - font-family: inherit; - font-weight: bold; - line-height: 1; - color: inherit; - text-rendering: optimizelegibility; +.glyphicon-ban-circle:before { + content: "\e090"; } - -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small { - font-weight: normal; - line-height: 1; - color: #999999; +.glyphicon-arrow-left:before { + content: "\e091"; } - -h1 { - font-size: 36px; - line-height: 40px; +.glyphicon-arrow-right:before { + content: "\e092"; } - -h2 { - font-size: 30px; - line-height: 40px; +.glyphicon-arrow-up:before { + content: "\e093"; } - -h3 { - font-size: 24px; - line-height: 40px; +.glyphicon-arrow-down:before { + content: "\e094"; } - -h4 { - font-size: 18px; - line-height: 20px; +.glyphicon-share-alt:before { + content: "\e095"; } - -h5 { - font-size: 14px; - line-height: 20px; +.glyphicon-resize-full:before { + content: "\e096"; } - -h6 { - font-size: 12px; - line-height: 20px; +.glyphicon-resize-small:before { + content: "\e097"; } - -h1 small { - font-size: 24px; +.glyphicon-exclamation-sign:before { + content: "\e101"; } - -h2 small { - font-size: 18px; +.glyphicon-gift:before { + content: "\e102"; } - -h3 small { - font-size: 14px; +.glyphicon-leaf:before { + content: "\e103"; } - -h4 small { - font-size: 14px; +.glyphicon-fire:before { + content: "\e104"; } - -.page-header { - padding-bottom: 9px; - margin: 20px 0 30px; - border-bottom: 1px solid #eeeeee; +.glyphicon-eye-open:before { + content: "\e105"; } - -ul, -ol { - padding: 0; - margin: 0 0 10px 25px; +.glyphicon-eye-close:before { + content: "\e106"; } - -ul ul, -ul ol, -ol ol, -ol ul { - margin-bottom: 0; +.glyphicon-warning-sign:before { + content: "\e107"; } - -li { - line-height: 20px; +.glyphicon-plane:before { + content: "\e108"; } - -ul.unstyled, -ol.unstyled { - margin-left: 0; - list-style: none; +.glyphicon-calendar:before { + content: "\e109"; } - -dl { - margin-bottom: 20px; +.glyphicon-random:before { + content: "\e110"; } - -dt, -dd { - line-height: 20px; +.glyphicon-comment:before { + content: "\e111"; } - -dt { - font-weight: bold; +.glyphicon-magnet:before { + content: "\e112"; } - -dd { - margin-left: 10px; +.glyphicon-chevron-up:before { + content: "\e113"; } - -.dl-horizontal { - *zoom: 1; +.glyphicon-chevron-down:before { + content: "\e114"; } - -.dl-horizontal:before, -.dl-horizontal:after { - display: table; - line-height: 0; - content: ""; +.glyphicon-retweet:before { + content: "\e115"; } - -.dl-horizontal:after { - clear: both; +.glyphicon-shopping-cart:before { + content: "\e116"; } - -.dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; +.glyphicon-folder-close:before { + content: "\e117"; } - -.dl-horizontal dd { - margin-left: 180px; +.glyphicon-folder-open:before { + content: "\e118"; } - -hr { - margin: 20px 0; - border: 0; - border-top: 1px solid #eeeeee; - border-bottom: 1px solid #ffffff; +.glyphicon-resize-vertical:before { + content: "\e119"; } - -abbr[title] { - cursor: help; - border-bottom: 1px dotted #999999; +.glyphicon-resize-horizontal:before { + content: "\e120"; } - -abbr.initialism { - font-size: 90%; - text-transform: uppercase; +.glyphicon-hdd:before { + content: "\e121"; } - -blockquote { - padding: 0 0 0 15px; - margin: 0 0 20px; - border-left: 5px solid #eeeeee; +.glyphicon-bullhorn:before { + content: "\e122"; } - -blockquote p { - margin-bottom: 0; - font-size: 16px; - font-weight: 300; - line-height: 25px; +.glyphicon-bell:before { + content: "\e123"; } - -blockquote small { - display: block; - line-height: 20px; - color: #999999; +.glyphicon-certificate:before { + content: "\e124"; } - -blockquote small:before { - content: '\2014 \00A0'; +.glyphicon-thumbs-up:before { + content: "\e125"; } - -blockquote.pull-right { - float: right; - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #eeeeee; - border-left: 0; +.glyphicon-thumbs-down:before { + content: "\e126"; } - -blockquote.pull-right p, -blockquote.pull-right small { - text-align: right; +.glyphicon-hand-right:before { + content: "\e127"; } - -blockquote.pull-right small:before { - content: ''; +.glyphicon-hand-left:before { + content: "\e128"; } - -blockquote.pull-right small:after { - content: '\00A0 \2014'; +.glyphicon-hand-up:before { + content: "\e129"; } - -q:before, -q:after, -blockquote:before, -blockquote:after { - content: ""; +.glyphicon-hand-down:before { + content: "\e130"; } - -address { - display: block; - margin-bottom: 20px; - font-style: normal; - line-height: 20px; +.glyphicon-circle-arrow-right:before { + content: "\e131"; } - -code, -pre { - padding: 0 3px 2px; - font-family: Monaco, Menlo, Consolas, "Courier New", monospace; - font-size: 12px; - color: #333333; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; +.glyphicon-circle-arrow-left:before { + content: "\e132"; } - -code { - padding: 2px 4px; - color: #d14; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; +.glyphicon-circle-arrow-up:before { + content: "\e133"; } - -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 20px; - word-break: break-all; - word-wrap: break-word; - white-space: pre; - white-space: pre-wrap; - background-color: #f5f5f5; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; +.glyphicon-circle-arrow-down:before { + content: "\e134"; } - -pre.prettyprint { - margin-bottom: 20px; +.glyphicon-globe:before { + content: "\e135"; } - -pre code { - padding: 0; - color: inherit; - background-color: transparent; - border: 0; +.glyphicon-wrench:before { + content: "\e136"; } - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; +.glyphicon-tasks:before { + content: "\e137"; } - -form { - margin: 0 0 20px; +.glyphicon-filter:before { + content: "\e138"; } - -fieldset { - padding: 0; - margin: 0; - border: 0; +.glyphicon-briefcase:before { + content: "\e139"; } - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: 40px; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; +.glyphicon-fullscreen:before { + content: "\e140"; } - -legend small { - font-size: 15px; - color: #999999; +.glyphicon-dashboard:before { + content: "\e141"; } - -label, -input, -button, -select, -textarea { - font-size: 14px; - font-weight: normal; - line-height: 20px; +.glyphicon-paperclip:before { + content: "\e142"; } - -input, -button, -select, -textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +.glyphicon-heart-empty:before { + content: "\e143"; } - -label { - display: block; - margin-bottom: 5px; +.glyphicon-link:before { + content: "\e144"; } - -select, -textarea, -input[type="text"], -input[type="password"], -input[type="datetime"], -input[type="datetime-local"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="week"], -input[type="number"], -input[type="email"], -input[type="url"], -input[type="search"], -input[type="tel"], -input[type="color"], -.uneditable-input { - display: inline-block; - height: 20px; - padding: 4px 6px; - margin-bottom: 9px; - font-size: 14px; - line-height: 20px; - color: #555555; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; +.glyphicon-phone:before { + content: "\e145"; } - -input, -textarea, -.uneditable-input { - width: 206px; +.glyphicon-pushpin:before { + content: "\e146"; } - -textarea { - height: auto; +.glyphicon-usd:before { + content: "\e148"; } - -textarea, -input[type="text"], -input[type="password"], -input[type="datetime"], -input[type="datetime-local"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="week"], -input[type="number"], -input[type="email"], -input[type="url"], -input[type="search"], -input[type="tel"], -input[type="color"], -.uneditable-input { - background-color: #ffffff; - border: 1px solid #cccccc; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; - -moz-transition: border linear 0.2s, box-shadow linear 0.2s; - -o-transition: border linear 0.2s, box-shadow linear 0.2s; - transition: border linear 0.2s, box-shadow linear 0.2s; +.glyphicon-gbp:before { + content: "\e149"; } - -textarea:focus, -input[type="text"]:focus, -input[type="password"]:focus, -input[type="datetime"]:focus, -input[type="datetime-local"]:focus, -input[type="date"]:focus, -input[type="month"]:focus, -input[type="time"]:focus, -input[type="week"]:focus, -input[type="number"]:focus, -input[type="email"]:focus, -input[type="url"]:focus, -input[type="search"]:focus, -input[type="tel"]:focus, -input[type="color"]:focus, -.uneditable-input:focus { - border-color: rgba(82, 168, 236, 0.8); - outline: 0; - outline: thin dotted \9; - /* IE6-9 */ - - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +.glyphicon-sort:before { + content: "\e150"; } - -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - *margin-top: 0; - line-height: normal; - cursor: pointer; +.glyphicon-sort-by-alphabet:before { + content: "\e151"; } - -input[type="file"], -input[type="image"], -input[type="submit"], -input[type="reset"], -input[type="button"], -input[type="radio"], -input[type="checkbox"] { - width: auto; +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; } - -select, -input[type="file"] { - height: 30px; - /* In IE7, the height of the select element cannot be changed by height, only font-size */ - - *margin-top: 4px; - /* For IE7, add top margin to align select with labels */ - - line-height: 30px; +.glyphicon-sort-by-order:before { + content: "\e153"; } - -select { - width: 220px; - background-color: #ffffff; - border: 1px solid #cccccc; +.glyphicon-sort-by-order-alt:before { + content: "\e154"; } - -select[multiple], -select[size] { - height: auto; +.glyphicon-sort-by-attributes:before { + content: "\e155"; } - -select:focus, -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; } - -.uneditable-input, -.uneditable-textarea { - color: #999999; - cursor: not-allowed; - background-color: #fcfcfc; - border-color: #cccccc; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +.glyphicon-unchecked:before { + content: "\e157"; } - -.uneditable-input { - overflow: hidden; - white-space: nowrap; +.glyphicon-expand:before { + content: "\e158"; } - -.uneditable-textarea { - width: auto; - height: auto; +.glyphicon-collapse-down:before { + content: "\e159"; } - -input:-moz-placeholder, -textarea:-moz-placeholder { - color: #999999; +.glyphicon-collapse-up:before { + content: "\e160"; } - -input:-ms-input-placeholder, -textarea:-ms-input-placeholder { - color: #999999; +.glyphicon-log-in:before { + content: "\e161"; } - -input::-webkit-input-placeholder, -textarea::-webkit-input-placeholder { - color: #999999; +.glyphicon-flash:before { + content: "\e162"; } - -.radio, -.checkbox { - min-height: 18px; - padding-left: 18px; +.glyphicon-log-out:before { + content: "\e163"; } - -.radio input[type="radio"], -.checkbox input[type="checkbox"] { - float: left; - margin-left: -18px; +.glyphicon-new-window:before { + content: "\e164"; } - -.controls > .radio:first-child, -.controls > .checkbox:first-child { - padding-top: 5px; +.glyphicon-record:before { + content: "\e165"; } - -.radio.inline, -.checkbox.inline { - display: inline-block; - padding-top: 5px; - margin-bottom: 0; - vertical-align: middle; +.glyphicon-save:before { + content: "\e166"; } - -.radio.inline + .radio.inline, -.checkbox.inline + .checkbox.inline { - margin-left: 10px; +.glyphicon-open:before { + content: "\e167"; } - -.input-mini { - width: 60px; +.glyphicon-saved:before { + content: "\e168"; } - -.input-small { - width: 90px; +.glyphicon-import:before { + content: "\e169"; } - -.input-medium { - width: 150px; +.glyphicon-export:before { + content: "\e170"; } - -.input-large { - width: 210px; +.glyphicon-send:before { + content: "\e171"; } - -.input-xlarge { - width: 270px; +.glyphicon-floppy-disk:before { + content: "\e172"; } - -.input-xxlarge { - width: 530px; +.glyphicon-floppy-saved:before { + content: "\e173"; } - -input[class*="span"], -select[class*="span"], -textarea[class*="span"], -.uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"] { - float: none; - margin-left: 0; +.glyphicon-floppy-remove:before { + content: "\e174"; } - -.input-append input[class*="span"], -.input-append .uneditable-input[class*="span"], -.input-prepend input[class*="span"], -.input-prepend .uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"], -.row-fluid .input-prepend [class*="span"], -.row-fluid .input-append [class*="span"] { - display: inline-block; +.glyphicon-floppy-save:before { + content: "\e175"; } - -input, -textarea, -.uneditable-input { - margin-left: 0; +.glyphicon-floppy-open:before { + content: "\e176"; } - -.controls-row [class*="span"] + [class*="span"] { - margin-left: 20px; +.glyphicon-credit-card:before { + content: "\e177"; } - -input.span12, -textarea.span12, -.uneditable-input.span12 { - width: 926px; +.glyphicon-transfer:before { + content: "\e178"; } - -input.span11, -textarea.span11, -.uneditable-input.span11 { - width: 846px; +.glyphicon-cutlery:before { + content: "\e179"; } - -input.span10, -textarea.span10, -.uneditable-input.span10 { - width: 766px; +.glyphicon-header:before { + content: "\e180"; } - -input.span9, -textarea.span9, -.uneditable-input.span9 { - width: 686px; +.glyphicon-compressed:before { + content: "\e181"; } - -input.span8, -textarea.span8, -.uneditable-input.span8 { - width: 606px; +.glyphicon-earphone:before { + content: "\e182"; } - -input.span7, -textarea.span7, -.uneditable-input.span7 { - width: 526px; +.glyphicon-phone-alt:before { + content: "\e183"; } - -input.span6, -textarea.span6, -.uneditable-input.span6 { - width: 446px; +.glyphicon-tower:before { + content: "\e184"; } - -input.span5, -textarea.span5, -.uneditable-input.span5 { - width: 366px; +.glyphicon-stats:before { + content: "\e185"; } - -input.span4, -textarea.span4, -.uneditable-input.span4 { - width: 286px; +.glyphicon-sd-video:before { + content: "\e186"; } - -input.span3, -textarea.span3, -.uneditable-input.span3 { - width: 206px; +.glyphicon-hd-video:before { + content: "\e187"; } - -input.span2, -textarea.span2, -.uneditable-input.span2 { - width: 126px; +.glyphicon-subtitles:before { + content: "\e188"; } - -input.span1, -textarea.span1, -.uneditable-input.span1 { - width: 46px; +.glyphicon-sound-stereo:before { + content: "\e189"; } - -.controls-row { - *zoom: 1; +.glyphicon-sound-dolby:before { + content: "\e190"; } - -.controls-row:before, -.controls-row:after { - display: table; - line-height: 0; - content: ""; +.glyphicon-sound-5-1:before { + content: "\e191"; } - -.controls-row:after { - clear: both; +.glyphicon-sound-6-1:before { + content: "\e192"; } - -.controls-row [class*="span"] { - float: left; +.glyphicon-sound-7-1:before { + content: "\e193"; } - -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - cursor: not-allowed; - background-color: #eeeeee; +.glyphicon-copyright-mark:before { + content: "\e194"; } - -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"][readonly], -input[type="checkbox"][readonly] { - background-color: transparent; +.glyphicon-registration-mark:before { + content: "\e195"; } - -.control-group.warning > label, -.control-group.warning .help-block, -.control-group.warning .help-inline { - color: #c09853; +.glyphicon-cloud-download:before { + content: "\e197"; } - -.control-group.warning .checkbox, -.control-group.warning .radio, -.control-group.warning input, -.control-group.warning select, -.control-group.warning textarea { - color: #c09853; +.glyphicon-cloud-upload:before { + content: "\e198"; } - -.control-group.warning input, -.control-group.warning select, -.control-group.warning textarea { - border-color: #c09853; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +.glyphicon-tree-conifer:before { + content: "\e199"; } - -.control-group.warning input:focus, -.control-group.warning select:focus, -.control-group.warning textarea:focus { - border-color: #a47e3c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +.glyphicon-tree-deciduous:before { + content: "\e200"; } - -.control-group.warning .input-prepend .add-on, -.control-group.warning .input-append .add-on { - color: #c09853; - background-color: #fcf8e3; - border-color: #c09853; +.glyphicon-cd:before { + content: "\e201"; } - -.control-group.error > label, -.control-group.error .help-block, -.control-group.error .help-inline { - color: #b94a48; +.glyphicon-save-file:before { + content: "\e202"; } - -.control-group.error .checkbox, -.control-group.error .radio, -.control-group.error input, -.control-group.error select, -.control-group.error textarea { - color: #b94a48; +.glyphicon-open-file:before { + content: "\e203"; } - -.control-group.error input, -.control-group.error select, -.control-group.error textarea { - border-color: #b94a48; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +.glyphicon-level-up:before { + content: "\e204"; } - -.control-group.error input:focus, -.control-group.error select:focus, -.control-group.error textarea:focus { - border-color: #953b39; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +.glyphicon-copy:before { + content: "\e205"; } - -.control-group.error .input-prepend .add-on, -.control-group.error .input-append .add-on { - color: #b94a48; - background-color: #f2dede; - border-color: #b94a48; +.glyphicon-paste:before { + content: "\e206"; } - -.control-group.success > label, -.control-group.success .help-block, -.control-group.success .help-inline { - color: #468847; +.glyphicon-alert:before { + content: "\e209"; } - -.control-group.success .checkbox, -.control-group.success .radio, -.control-group.success input, -.control-group.success select, -.control-group.success textarea { - color: #468847; +.glyphicon-equalizer:before { + content: "\e210"; } - -.control-group.success input, -.control-group.success select, -.control-group.success textarea { - border-color: #468847; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +.glyphicon-king:before { + content: "\e211"; } - -.control-group.success input:focus, -.control-group.success select:focus, -.control-group.success textarea:focus { - border-color: #356635; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +.glyphicon-queen:before { + content: "\e212"; } - -.control-group.success .input-prepend .add-on, -.control-group.success .input-append .add-on { - color: #468847; - background-color: #dff0d8; - border-color: #468847; +.glyphicon-pawn:before { + content: "\e213"; } - -.control-group.info > label, -.control-group.info .help-block, -.control-group.info .help-inline { - color: #3a87ad; +.glyphicon-bishop:before { + content: "\e214"; } - -.control-group.info .checkbox, -.control-group.info .radio, -.control-group.info input, -.control-group.info select, -.control-group.info textarea { - color: #3a87ad; +.glyphicon-knight:before { + content: "\e215"; } - -.control-group.info input, -.control-group.info select, -.control-group.info textarea { - border-color: #3a87ad; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +.glyphicon-baby-formula:before { + content: "\e216"; } - -.control-group.info input:focus, -.control-group.info select:focus, -.control-group.info textarea:focus { - border-color: #2d6987; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +.glyphicon-tent:before { + content: "\26fa"; } - -.control-group.info .input-prepend .add-on, -.control-group.info .input-append .add-on { - color: #3a87ad; - background-color: #d9edf7; - border-color: #3a87ad; +.glyphicon-blackboard:before { + content: "\e218"; } - -input:focus:required:invalid, -textarea:focus:required:invalid, -select:focus:required:invalid { - color: #b94a48; - border-color: #ee5f5b; +.glyphicon-bed:before { + content: "\e219"; } - -input:focus:required:invalid:focus, -textarea:focus:required:invalid:focus, -select:focus:required:invalid:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; +.glyphicon-apple:before { + content: "\f8ff"; } - -.form-actions { - padding: 19px 20px 20px; - margin-top: 20px; - margin-bottom: 20px; - background-color: #f5f5f5; - border-top: 1px solid #e5e5e5; - *zoom: 1; +.glyphicon-erase:before { + content: "\e221"; } - -.form-actions:before, -.form-actions:after { - display: table; - line-height: 0; - content: ""; +.glyphicon-hourglass:before { + content: "\231b"; } - -.form-actions:after { - clear: both; +.glyphicon-lamp:before { + content: "\e223"; } - -.help-block, -.help-inline { - color: #595959; +.glyphicon-duplicate:before { + content: "\e224"; } - -.help-block { - display: block; - margin-bottom: 10px; +.glyphicon-piggy-bank:before { + content: "\e225"; } - -.help-inline { - display: inline-block; - *display: inline; - padding-left: 5px; - vertical-align: middle; - *zoom: 1; +.glyphicon-scissors:before { + content: "\e226"; } - -.input-append, -.input-prepend { - margin-bottom: 5px; - font-size: 0; - white-space: nowrap; +.glyphicon-bitcoin:before { + content: "\e227"; } - -.input-append input, -.input-prepend input, -.input-append select, -.input-prepend select, -.input-append .uneditable-input, -.input-prepend .uneditable-input { - position: relative; - margin-bottom: 0; - *margin-left: 0; - font-size: 14px; - vertical-align: top; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; +.glyphicon-btc:before { + content: "\e227"; } - -.input-append input:focus, -.input-prepend input:focus, -.input-append select:focus, -.input-prepend select:focus, -.input-append .uneditable-input:focus, -.input-prepend .uneditable-input:focus { - z-index: 2; +.glyphicon-xbt:before { + content: "\e227"; } - -.input-append .add-on, -.input-prepend .add-on { - display: inline-block; - width: auto; - height: 20px; - min-width: 16px; - padding: 4px 5px; - font-size: 14px; - font-weight: normal; - line-height: 20px; - text-align: center; - text-shadow: 0 1px 0 #ffffff; - background-color: #eeeeee; - border: 1px solid #ccc; +.glyphicon-yen:before { + content: "\00a5"; } - -.input-append .add-on, -.input-prepend .add-on, -.input-append .btn, -.input-prepend .btn { - vertical-align: top; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; +.glyphicon-jpy:before { + content: "\00a5"; } - -.input-append .active, -.input-prepend .active { - background-color: #a9dba9; - border-color: #46a546; +.glyphicon-ruble:before { + content: "\20bd"; } - -.input-prepend .add-on, -.input-prepend .btn { - margin-right: -1px; +.glyphicon-rub:before { + content: "\20bd"; } - -.input-prepend .add-on:first-child, -.input-prepend .btn:first-child { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; +.glyphicon-scale:before { + content: "\e230"; } - -.input-append input, -.input-append select, -.input-append .uneditable-input { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; +.glyphicon-ice-lolly:before { + content: "\e231"; } - -.input-append .add-on, -.input-append .btn { - margin-left: -1px; +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; } - -.input-append .add-on:last-child, -.input-append .btn:last-child { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; +.glyphicon-education:before { + content: "\e233"; } - -.input-prepend.input-append input, -.input-prepend.input-append select, -.input-prepend.input-append .uneditable-input { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; +.glyphicon-option-horizontal:before { + content: "\e234"; } - -.input-prepend.input-append .add-on:first-child, -.input-prepend.input-append .btn:first-child { - margin-right: -1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; +.glyphicon-option-vertical:before { + content: "\e235"; } - -.input-prepend.input-append .add-on:last-child, -.input-prepend.input-append .btn:last-child { - margin-left: -1px; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; +.glyphicon-menu-hamburger:before { + content: "\e236"; } - -input.search-query { - padding-right: 14px; - padding-right: 4px \9; - padding-left: 14px; - padding-left: 4px \9; - /* IE7-8 doesn't have border-radius, so don't indent the padding */ - - margin-bottom: 0; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; +.glyphicon-modal-window:before { + content: "\e237"; } - -/* Allow for input prepend/append in search forms */ - -.form-search .input-append .search-query, -.form-search .input-prepend .search-query { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; +.glyphicon-oil:before { + content: "\e238"; } - -.form-search .input-append .search-query { - -webkit-border-radius: 14px 0 0 14px; - -moz-border-radius: 14px 0 0 14px; - border-radius: 14px 0 0 14px; +.glyphicon-grain:before { + content: "\e239"; } - -.form-search .input-append .btn { - -webkit-border-radius: 0 14px 14px 0; - -moz-border-radius: 0 14px 14px 0; - border-radius: 0 14px 14px 0; +.glyphicon-sunglasses:before { + content: "\e240"; } - -.form-search .input-prepend .search-query { - -webkit-border-radius: 0 14px 14px 0; - -moz-border-radius: 0 14px 14px 0; - border-radius: 0 14px 14px 0; +.glyphicon-text-size:before { + content: "\e241"; } - -.form-search .input-prepend .btn { - -webkit-border-radius: 14px 0 0 14px; - -moz-border-radius: 14px 0 0 14px; - border-radius: 14px 0 0 14px; +.glyphicon-text-color:before { + content: "\e242"; } - -.form-search input, -.form-inline input, -.form-horizontal input, -.form-search textarea, -.form-inline textarea, -.form-horizontal textarea, -.form-search select, -.form-inline select, -.form-horizontal select, -.form-search .help-inline, -.form-inline .help-inline, -.form-horizontal .help-inline, -.form-search .uneditable-input, -.form-inline .uneditable-input, -.form-horizontal .uneditable-input, -.form-search .input-prepend, -.form-inline .input-prepend, -.form-horizontal .input-prepend, -.form-search .input-append, -.form-inline .input-append, -.form-horizontal .input-append { - display: inline-block; - *display: inline; - margin-bottom: 0; - vertical-align: middle; - *zoom: 1; +.glyphicon-text-background:before { + content: "\e243"; } - -.form-search .hide, -.form-inline .hide, -.form-horizontal .hide { - display: none; +.glyphicon-object-align-top:before { + content: "\e244"; } - -.form-search label, -.form-inline label, -.form-search .btn-group, -.form-inline .btn-group { - display: inline-block; +.glyphicon-object-align-bottom:before { + content: "\e245"; } - -.form-search .input-append, -.form-inline .input-append, -.form-search .input-prepend, -.form-inline .input-prepend { - margin-bottom: 0; +.glyphicon-object-align-horizontal:before { + content: "\e246"; } - -.form-search .radio, -.form-search .checkbox, -.form-inline .radio, -.form-inline .checkbox { - padding-left: 0; - margin-bottom: 0; - vertical-align: middle; +.glyphicon-object-align-left:before { + content: "\e247"; } - -.form-search .radio input[type="radio"], -.form-search .checkbox input[type="checkbox"], -.form-inline .radio input[type="radio"], -.form-inline .checkbox input[type="checkbox"] { - float: left; - margin-right: 3px; - margin-left: 0; +.glyphicon-object-align-vertical:before { + content: "\e248"; } - -.control-group { - margin-bottom: 10px; +.glyphicon-object-align-right:before { + content: "\e249"; } - -legend + .control-group { - margin-top: 20px; - -webkit-margin-top-collapse: separate; +.glyphicon-triangle-right:before { + content: "\e250"; } - -.form-horizontal .control-group { - margin-bottom: 20px; - *zoom: 1; +.glyphicon-triangle-left:before { + content: "\e251"; } - -.form-horizontal .control-group:before, -.form-horizontal .control-group:after { - display: table; - line-height: 0; - content: ""; +.glyphicon-triangle-bottom:before { + content: "\e252"; } - -.form-horizontal .control-group:after { - clear: both; +.glyphicon-triangle-top:before { + content: "\e253"; } - -.form-horizontal .control-label { - float: left; - width: 160px; - padding-top: 5px; - text-align: right; +.glyphicon-console:before { + content: "\e254"; } - -.form-horizontal .controls { - *display: inline-block; - *padding-left: 20px; - margin-left: 180px; - *margin-left: 0; +.glyphicon-superscript:before { + content: "\e255"; } - -.form-horizontal .controls:first-child { - *padding-left: 180px; +.glyphicon-subscript:before { + content: "\e256"; } - -.form-horizontal .help-block { - margin-bottom: 0; +.glyphicon-menu-left:before { + content: "\e257"; } - -.form-horizontal input + .help-block, -.form-horizontal select + .help-block, -.form-horizontal textarea + .help-block { - margin-top: 10px; +.glyphicon-menu-right:before { + content: "\e258"; } - -.form-horizontal .form-actions { - padding-left: 180px; +.glyphicon-menu-down:before { + content: "\e259"; } - -table { - max-width: 100%; - background-color: transparent; - border-collapse: collapse; - border-spacing: 0; +.glyphicon-menu-up:before { + content: "\e260"; } - -.table { - width: 100%; - margin-bottom: 20px; +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } - -.table th, -.table td { - padding: 8px; - line-height: 20px; - text-align: left; - vertical-align: top; - border-top: 1px solid #dddddd; +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } +html { + font-size: 10px; -.table th { - font-weight: bold; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } - -.table thead th { - vertical-align: bottom; +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff; } - -.table caption + thead tr:first-child th, -.table caption + thead tr:first-child td, -.table colgroup + thead tr:first-child th, -.table colgroup + thead tr:first-child td, -.table thead:first-child tr:first-child th, -.table thead:first-child tr:first-child td { - border-top: 0; +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; } - -.table tbody + tbody { - border-top: 2px solid #dddddd; +a { + color: #337ab7; + text-decoration: none; } - -.table-condensed th, -.table-condensed td { - padding: 4px 5px; +a:hover, +a:focus { + color: #23527c; + text-decoration: underline; } - -.table-bordered { - border: 1px solid #dddddd; - border-collapse: separate; - *border-collapse: collapse; - border-left: 0; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } - -.table-bordered th, -.table-bordered td { - border-left: 1px solid #dddddd; +figure { + margin: 0; } - -.table-bordered caption + thead tr:first-child th, -.table-bordered caption + tbody tr:first-child th, -.table-bordered caption + tbody tr:first-child td, -.table-bordered colgroup + thead tr:first-child th, -.table-bordered colgroup + tbody tr:first-child th, -.table-bordered colgroup + tbody tr:first-child td, -.table-bordered thead:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child td { - border-top: 0; +img { + vertical-align: middle; } - -.table-bordered thead:first-child tr:first-child th:first-child, -.table-bordered tbody:first-child tr:first-child td:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; } - -.table-bordered thead:first-child tr:first-child th:last-child, -.table-bordered tbody:first-child tr:first-child td:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; +.img-rounded { + border-radius: 6px; } - -.table-bordered thead:last-child tr:last-child th:first-child, -.table-bordered tbody:last-child tr:last-child td:first-child, -.table-bordered tfoot:last-child tr:last-child td:first-child { - -webkit-border-radius: 0 0 0 4px; - -moz-border-radius: 0 0 0 4px; - border-radius: 0 0 0 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; } - -.table-bordered thead:last-child tr:last-child th:last-child, -.table-bordered tbody:last-child tr:last-child td:last-child, -.table-bordered tfoot:last-child tr:last-child td:last-child { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; +.img-circle { + border-radius: 50%; } - -.table-bordered caption + thead tr:first-child th:first-child, -.table-bordered caption + tbody tr:first-child td:first-child, -.table-bordered colgroup + thead tr:first-child th:first-child, -.table-bordered colgroup + tbody tr:first-child td:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; } - -.table-bordered caption + thead tr:first-child th:last-child, -.table-bordered caption + tbody tr:first-child td:last-child, -.table-bordered colgroup + thead tr:first-child th:last-child, -.table-bordered colgroup + tbody tr:first-child td:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-topleft: 4px; +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; } - -.table-striped tbody tr:nth-child(odd) td, -.table-striped tbody tr:nth-child(odd) th { - background-color: #f9f9f9; +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; } - -.table-hover tbody tr:hover td, -.table-hover tbody tr:hover th { - background-color: #f5f5f5; +[role="button"] { + cursor: pointer; } - -table [class*=span], -.row-fluid table [class*=span] { - display: table-cell; - float: none; - margin-left: 0; +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; } - -.table .span1 { - float: none; - width: 44px; - margin-left: 0; +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #777; } - -.table .span2 { - float: none; - width: 124px; - margin-left: 0; +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; } - -.table .span3 { - float: none; - width: 204px; - margin-left: 0; +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; } - -.table .span4 { - float: none; - width: 284px; - margin-left: 0; +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10px; + margin-bottom: 10px; } - -.table .span5 { - float: none; - width: 364px; - margin-left: 0; +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; } - -.table .span6 { - float: none; - width: 444px; - margin-left: 0; +h1, +.h1 { + font-size: 36px; } - -.table .span7 { - float: none; - width: 524px; - margin-left: 0; +h2, +.h2 { + font-size: 30px; } - -.table .span8 { - float: none; - width: 604px; - margin-left: 0; +h3, +.h3 { + font-size: 24px; } - -.table .span9 { - float: none; - width: 684px; - margin-left: 0; +h4, +.h4 { + font-size: 18px; } - -.table .span10 { - float: none; - width: 764px; - margin-left: 0; +h5, +.h5 { + font-size: 14px; } - -.table .span11 { - float: none; - width: 844px; - margin-left: 0; +h6, +.h6 { + font-size: 12px; } - -.table .span12 { - float: none; - width: 924px; - margin-left: 0; +p { + margin: 0 0 10px; } - -.table .span13 { - float: none; - width: 1004px; - margin-left: 0; +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; } - -.table .span14 { - float: none; - width: 1084px; - margin-left: 0; +@media (min-width: 768px) { + .lead { + font-size: 21px; + } } - -.table .span15 { - float: none; - width: 1164px; - margin-left: 0; +small, +.small { + font-size: 85%; } - -.table .span16 { - float: none; - width: 1244px; - margin-left: 0; +mark, +.mark { + padding: .2em; + background-color: #fcf8e3; } - -.table .span17 { - float: none; - width: 1324px; - margin-left: 0; +.text-left { + text-align: left; } - -.table .span18 { - float: none; - width: 1404px; - margin-left: 0; +.text-right { + text-align: right; } - -.table .span19 { - float: none; - width: 1484px; - margin-left: 0; +.text-center { + text-align: center; } - -.table .span20 { - float: none; - width: 1564px; - margin-left: 0; +.text-justify { + text-align: justify; } - -.table .span21 { - float: none; - width: 1644px; - margin-left: 0; +.text-nowrap { + white-space: nowrap; } - -.table .span22 { - float: none; - width: 1724px; - margin-left: 0; +.text-lowercase { + text-transform: lowercase; } - -.table .span23 { - float: none; - width: 1804px; - margin-left: 0; +.text-uppercase { + text-transform: uppercase; } - -.table .span24 { - float: none; - width: 1884px; - margin-left: 0; +.text-capitalize { + text-transform: capitalize; } - -.table tbody tr.success td { - background-color: #dff0d8; +.text-muted { + color: #777; } - -.table tbody tr.error td { - background-color: #f2dede; +.text-primary { + color: #337ab7; } - -.table tbody tr.warning td { - background-color: #fcf8e3; +a.text-primary:hover, +a.text-primary:focus { + color: #286090; } - -.table tbody tr.info td { - background-color: #d9edf7; +.text-success { + color: #3c763d; } - -.table-hover tbody tr.success:hover td { - background-color: #d0e9c6; +a.text-success:hover, +a.text-success:focus { + color: #2b542c; } - -.table-hover tbody tr.error:hover td { - background-color: #ebcccc; +.text-info { + color: #31708f; } - -.table-hover tbody tr.warning:hover td { - background-color: #faf2cc; +a.text-info:hover, +a.text-info:focus { + color: #245269; } - -.table-hover tbody tr.info:hover td { - background-color: #c4e3f3; +.text-warning { + color: #8a6d3b; } - -[class^="icon-"], -[class*=" icon-"] { - display: inline-block; - width: 14px; - height: 14px; - margin-top: 1px; - *margin-right: .3em; - line-height: 14px; - vertical-align: text-top; - background-image: url("../img/glyphicons-halflings.png"); - background-position: 14px 14px; - background-repeat: no-repeat; +a.text-warning:hover, +a.text-warning:focus { + color: #66512c; } - -/* White icons with optional class, or on hover/active states of certain elements */ - -.icon-white, -.nav-tabs > .active > a > [class^="icon-"], -.nav-tabs > .active > a > [class*=" icon-"], -.nav-pills > .active > a > [class^="icon-"], -.nav-pills > .active > a > [class*=" icon-"], -.nav-list > .active > a > [class^="icon-"], -.nav-list > .active > a > [class*=" icon-"], -.navbar-inverse .nav > .active > a > [class^="icon-"], -.navbar-inverse .nav > .active > a > [class*=" icon-"], -.dropdown-menu > li > a:hover > [class^="icon-"], -.dropdown-menu > li > a:hover > [class*=" icon-"], -.dropdown-menu > .active > a > [class^="icon-"], -.dropdown-menu > .active > a > [class*=" icon-"] { - background-image: url("../img/glyphicons-halflings-white.png"); +.text-danger { + color: #a94442; } - -.icon-glass { - background-position: 0 0; +a.text-danger:hover, +a.text-danger:focus { + color: #843534; } - -.icon-music { - background-position: -24px 0; +.bg-primary { + color: #fff; + background-color: #337ab7; } - -.icon-search { - background-position: -48px 0; +a.bg-primary:hover, +a.bg-primary:focus { + background-color: #286090; } - -.icon-envelope { - background-position: -72px 0; +.bg-success { + background-color: #dff0d8; } - -.icon-heart { - background-position: -96px 0; +a.bg-success:hover, +a.bg-success:focus { + background-color: #c1e2b3; } - -.icon-star { - background-position: -120px 0; +.bg-info { + background-color: #d9edf7; } - -.icon-star-empty { - background-position: -144px 0; +a.bg-info:hover, +a.bg-info:focus { + background-color: #afd9ee; } - -.icon-user { - background-position: -168px 0; +.bg-warning { + background-color: #fcf8e3; } - -.icon-film { - background-position: -192px 0; +a.bg-warning:hover, +a.bg-warning:focus { + background-color: #f7ecb5; } - -.icon-th-large { - background-position: -216px 0; +.bg-danger { + background-color: #f2dede; } - -.icon-th { - background-position: -240px 0; +a.bg-danger:hover, +a.bg-danger:focus { + background-color: #e4b9b9; } - -.icon-th-list { - background-position: -264px 0; +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; } - -.icon-ok { - background-position: -288px 0; +ul, +ol { + margin-top: 0; + margin-bottom: 10px; } - -.icon-remove { - background-position: -312px 0; +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; } - -.icon-zoom-in { - background-position: -336px 0; +.list-unstyled { + padding-left: 0; + list-style: none; } - -.icon-zoom-out { - background-position: -360px 0; -} - -.icon-off { - background-position: -384px 0; -} - -.icon-signal { - background-position: -408px 0; -} - -.icon-cog { - background-position: -432px 0; -} - -.icon-trash { - background-position: -456px 0; -} - -.icon-home { - background-position: 0 -24px; -} - -.icon-file { - background-position: -24px -24px; -} - -.icon-time { - background-position: -48px -24px; -} - -.icon-road { - background-position: -72px -24px; -} - -.icon-download-alt { - background-position: -96px -24px; -} - -.icon-download { - background-position: -120px -24px; -} - -.icon-upload { - background-position: -144px -24px; -} - -.icon-inbox { - background-position: -168px -24px; -} - -.icon-play-circle { - background-position: -192px -24px; -} - -.icon-repeat { - background-position: -216px -24px; -} - -.icon-refresh { - background-position: -240px -24px; +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; } - -.icon-list-alt { - background-position: -264px -24px; +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; } - -.icon-lock { - background-position: -287px -24px; +dl { + margin-top: 0; + margin-bottom: 20px; } - -.icon-flag { - background-position: -312px -24px; +dt, +dd { + line-height: 1.42857143; } - -.icon-headphones { - background-position: -336px -24px; +dt { + font-weight: bold; } - -.icon-volume-off { - background-position: -360px -24px; +dd { + margin-left: 0; } - -.icon-volume-down { - background-position: -384px -24px; +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } } - -.icon-volume-up { - background-position: -408px -24px; +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777; } - -.icon-qrcode { - background-position: -432px -24px; +.initialism { + font-size: 90%; + text-transform: uppercase; } - -.icon-barcode { - background-position: -456px -24px; +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; } - -.icon-tag { - background-position: 0 -48px; +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; } - -.icon-tags { - background-position: -25px -48px; +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; } - -.icon-book { - background-position: -48px -48px; +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; } - -.icon-bookmark { - background-position: -72px -48px; +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; } - -.icon-print { - background-position: -96px -48px; +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; } - -.icon-camera { - background-position: -120px -48px; +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; } - -.icon-font { - background-position: -144px -48px; +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; } - -.icon-bold { - background-position: -167px -48px; +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } - -.icon-italic { - background-position: -192px -48px; +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; } - -.icon-text-height { - background-position: -216px -48px; +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); } - -.icon-text-width { - background-position: -240px -48px; +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; } - -.icon-align-left { - background-position: -264px -48px; +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; } - -.icon-align-center { - background-position: -288px -48px; +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; } - -.icon-align-right { - background-position: -312px -48px; +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; } - -.icon-align-justify { - background-position: -336px -48px; +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; } - -.icon-list { - background-position: -360px -48px; +@media (min-width: 768px) { + .container { + width: 750px; + } } - -.icon-indent-left { - background-position: -384px -48px; +@media (min-width: 992px) { + .container { + width: 970px; + } } - -.icon-indent-right { - background-position: -408px -48px; +@media (min-width: 1200px) { + .container { + width: 1170px; + } } - -.icon-facetime-video { - background-position: -432px -48px; +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; } - -.icon-picture { - background-position: -456px -48px; +.row { + margin-right: -15px; + margin-left: -15px; } - -.icon-pencil { - background-position: 0 -72px; +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; } - -.icon-map-marker { - background-position: -24px -72px; +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; } - -.icon-adjust { - background-position: -48px -72px; +.col-xs-12 { + width: 100%; } - -.icon-tint { - background-position: -72px -72px; +.col-xs-11 { + width: 91.66666667%; } - -.icon-edit { - background-position: -96px -72px; +.col-xs-10 { + width: 83.33333333%; } - -.icon-share { - background-position: -120px -72px; +.col-xs-9 { + width: 75%; } - -.icon-check { - background-position: -144px -72px; +.col-xs-8 { + width: 66.66666667%; } - -.icon-move { - background-position: -168px -72px; +.col-xs-7 { + width: 58.33333333%; } - -.icon-step-backward { - background-position: -192px -72px; +.col-xs-6 { + width: 50%; } - -.icon-fast-backward { - background-position: -216px -72px; +.col-xs-5 { + width: 41.66666667%; } - -.icon-backward { - background-position: -240px -72px; +.col-xs-4 { + width: 33.33333333%; } - -.icon-play { - background-position: -264px -72px; +.col-xs-3 { + width: 25%; } - -.icon-pause { - background-position: -288px -72px; +.col-xs-2 { + width: 16.66666667%; } - -.icon-stop { - background-position: -312px -72px; +.col-xs-1 { + width: 8.33333333%; } - -.icon-forward { - background-position: -336px -72px; +.col-xs-pull-12 { + right: 100%; } - -.icon-fast-forward { - background-position: -360px -72px; +.col-xs-pull-11 { + right: 91.66666667%; } - -.icon-step-forward { - background-position: -384px -72px; +.col-xs-pull-10 { + right: 83.33333333%; } - -.icon-eject { - background-position: -408px -72px; +.col-xs-pull-9 { + right: 75%; } - -.icon-chevron-left { - background-position: -432px -72px; +.col-xs-pull-8 { + right: 66.66666667%; } - -.icon-chevron-right { - background-position: -456px -72px; +.col-xs-pull-7 { + right: 58.33333333%; } - -.icon-plus-sign { - background-position: 0 -96px; +.col-xs-pull-6 { + right: 50%; } - -.icon-minus-sign { - background-position: -24px -96px; +.col-xs-pull-5 { + right: 41.66666667%; } - -.icon-remove-sign { - background-position: -48px -96px; +.col-xs-pull-4 { + right: 33.33333333%; } - -.icon-ok-sign { - background-position: -72px -96px; +.col-xs-pull-3 { + right: 25%; } - -.icon-question-sign { - background-position: -96px -96px; +.col-xs-pull-2 { + right: 16.66666667%; } - -.icon-info-sign { - background-position: -120px -96px; +.col-xs-pull-1 { + right: 8.33333333%; } - -.icon-screenshot { - background-position: -144px -96px; +.col-xs-pull-0 { + right: auto; } - -.icon-remove-circle { - background-position: -168px -96px; +.col-xs-push-12 { + left: 100%; } - -.icon-ok-circle { - background-position: -192px -96px; +.col-xs-push-11 { + left: 91.66666667%; } - -.icon-ban-circle { - background-position: -216px -96px; +.col-xs-push-10 { + left: 83.33333333%; } - -.icon-arrow-left { - background-position: -240px -96px; +.col-xs-push-9 { + left: 75%; } - -.icon-arrow-right { - background-position: -264px -96px; +.col-xs-push-8 { + left: 66.66666667%; } - -.icon-arrow-up { - background-position: -289px -96px; +.col-xs-push-7 { + left: 58.33333333%; } - -.icon-arrow-down { - background-position: -312px -96px; +.col-xs-push-6 { + left: 50%; } - -.icon-share-alt { - background-position: -336px -96px; +.col-xs-push-5 { + left: 41.66666667%; } - -.icon-resize-full { - background-position: -360px -96px; +.col-xs-push-4 { + left: 33.33333333%; } - -.icon-resize-small { - background-position: -384px -96px; +.col-xs-push-3 { + left: 25%; } - -.icon-plus { - background-position: -408px -96px; +.col-xs-push-2 { + left: 16.66666667%; } - -.icon-minus { - background-position: -433px -96px; +.col-xs-push-1 { + left: 8.33333333%; } - -.icon-asterisk { - background-position: -456px -96px; +.col-xs-push-0 { + left: auto; } - -.icon-exclamation-sign { - background-position: 0 -120px; +.col-xs-offset-12 { + margin-left: 100%; } - -.icon-gift { - background-position: -24px -120px; +.col-xs-offset-11 { + margin-left: 91.66666667%; } - -.icon-leaf { - background-position: -48px -120px; +.col-xs-offset-10 { + margin-left: 83.33333333%; } - -.icon-fire { - background-position: -72px -120px; +.col-xs-offset-9 { + margin-left: 75%; } - -.icon-eye-open { - background-position: -96px -120px; +.col-xs-offset-8 { + margin-left: 66.66666667%; } - -.icon-eye-close { - background-position: -120px -120px; +.col-xs-offset-7 { + margin-left: 58.33333333%; } - -.icon-warning-sign { - background-position: -144px -120px; +.col-xs-offset-6 { + margin-left: 50%; } - -.icon-plane { - background-position: -168px -120px; +.col-xs-offset-5 { + margin-left: 41.66666667%; } - -.icon-calendar { - background-position: -192px -120px; +.col-xs-offset-4 { + margin-left: 33.33333333%; } - -.icon-random { - width: 16px; - background-position: -216px -120px; +.col-xs-offset-3 { + margin-left: 25%; } - -.icon-comment { - background-position: -240px -120px; +.col-xs-offset-2 { + margin-left: 16.66666667%; } - -.icon-magnet { - background-position: -264px -120px; +.col-xs-offset-1 { + margin-left: 8.33333333%; } - -.icon-chevron-up { - background-position: -288px -120px; +.col-xs-offset-0 { + margin-left: 0; } - -.icon-chevron-down { - background-position: -313px -119px; +@media (min-width: 768px) { + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0; + } } - -.icon-retweet { - background-position: -336px -120px; +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0; + } +} +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0; + } +} +table { + background-color: transparent; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777; + text-align: left; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #ddd; +} +.table .table { + background-color: #fff; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9; +} +.table-hover > tbody > tr:hover { + background-color: #f5f5f5; +} +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #d9edf7; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; +} +.table-responsive { + min-height: .01%; + overflow-x: auto; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; +} +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); +} +.form-control::-moz-placeholder { + color: #999; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #999; +} +.form-control::-webkit-input-placeholder { + color: #999; +} +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #eee; + opacity: 1; +} +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} +textarea.form-control { + height: auto; +} +input[type="search"] { + -webkit-appearance: none; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"].form-control, + input[type="time"].form-control, + input[type="datetime-local"].form-control, + input[type="month"].form-control { + line-height: 34px; + } + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"] { + line-height: 30px; + } + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"] { + line-height: 46px; + } +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} +.form-control-static { + min-height: 34px; + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.form-group-sm select.form-control { + height: 30px; + line-height: 30px; +} +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { + height: auto; +} +.form-group-sm .form-control-static { + height: 30px; + min-height: 32px; + padding: 6px 10px; + font-size: 12px; + line-height: 1.5; +} +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-lg { + height: 46px; + line-height: 46px; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.form-group-lg select.form-control { + height: 46px; + line-height: 46px; +} +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { + height: auto; +} +.form-group-lg .form-control-static { + height: 46px; + min-height: 38px; + padding: 11px 16px; + font-size: 18px; + line-height: 1.3333333; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 42.5px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; +} +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #3c763d; +} +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; +} +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; +} +.has-success .form-control-feedback { + color: #3c763d; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #8a6d3b; +} +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; +} +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; +} +.has-warning .form-control-feedback { + color: #8a6d3b; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; +} +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; +} +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; +} +.has-error .form-control-feedback { + color: #a94442; +} +.has-feedback label ~ .form-control-feedback { + top: 25px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 11px; + font-size: 18px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + font-size: 12px; + } +} +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + color: #333; + text-decoration: none; +} +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65; +} +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; +} +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} +.btn-default:focus, +.btn-default.focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active:hover, +.btn-default.active:hover, +.open > .dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open > .dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open > .dropdown-toggle.btn-default.focus { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus { + background-color: #fff; + border-color: #ccc; +} +.btn-default .badge { + color: #fff; + background-color: #333; +} +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary:focus, +.btn-primary.focus { + color: #fff; + background-color: #286090; + border-color: #122b40; +} +.btn-primary:hover { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active:hover, +.btn-primary.active:hover, +.open > .dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open > .dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open > .dropdown-toggle.btn-primary.focus { + color: #fff; + background-color: #204d74; + border-color: #122b40; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus { + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary .badge { + color: #337ab7; + background-color: #fff; +} +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:focus, +.btn-success.focus { + color: #fff; + background-color: #449d44; + border-color: #255625; +} +.btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active:hover, +.btn-success.active:hover, +.open > .dropdown-toggle.btn-success:hover, +.btn-success:active:focus, +.btn-success.active:focus, +.open > .dropdown-toggle.btn-success:focus, +.btn-success:active.focus, +.btn-success.active.focus, +.open > .dropdown-toggle.btn-success.focus { + color: #fff; + background-color: #398439; + border-color: #255625; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info:focus, +.btn-info.focus { + color: #fff; + background-color: #31b0d5; + border-color: #1b6d85; +} +.btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active:hover, +.btn-info.active:hover, +.open > .dropdown-toggle.btn-info:hover, +.btn-info:active:focus, +.btn-info.active:focus, +.open > .dropdown-toggle.btn-info:focus, +.btn-info:active.focus, +.btn-info.active.focus, +.open > .dropdown-toggle.btn-info.focus { + color: #fff; + background-color: #269abc; + border-color: #1b6d85; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:focus, +.btn-warning.focus { + color: #fff; + background-color: #ec971f; + border-color: #985f0d; +} +.btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active:hover, +.btn-warning.active:hover, +.open > .dropdown-toggle.btn-warning:hover, +.btn-warning:active:focus, +.btn-warning.active:focus, +.open > .dropdown-toggle.btn-warning:focus, +.btn-warning:active.focus, +.btn-warning.active.focus, +.open > .dropdown-toggle.btn-warning.focus { + color: #fff; + background-color: #d58512; + border-color: #985f0d; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19; +} +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active:hover, +.btn-danger.active:hover, +.open > .dropdown-toggle.btn-danger:hover, +.btn-danger:active:focus, +.btn-danger.active:focus, +.open > .dropdown-toggle.btn-danger:focus, +.btn-danger:active.focus, +.btn-danger.active.focus, +.open > .dropdown-toggle.btn-danger.focus { + color: #fff; + background-color: #ac2925; + border-color: #761c19; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} +.btn-link { + font-weight: normal; + color: #337ab7; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -o-transition: opacity .15s linear; + transition: opacity .15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + right: 0; + left: auto; +} +.dropdown-menu-left { + right: auto; + left: 0; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; +} +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } } - -.icon-shopping-cart { - background-position: -360px -120px; +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; } - -.icon-folder-close { - background-position: -384px -120px; +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; } - -.icon-folder-open { - width: 16px; - background-position: -408px -120px; +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; } - -.icon-resize-vertical { - background-position: -432px -119px; +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; } - -.icon-resize-horizontal { - background-position: -456px -118px; +.btn-toolbar { + margin-left: -5px; } - -.icon-hdd { - background-position: 0 -144px; +.btn-toolbar .btn, +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; } - -.icon-bullhorn { - background-position: -24px -144px; +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; } - -.icon-bell { - background-position: -48px -144px; +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; } - -.icon-certificate { - background-position: -72px -144px; +.btn-group > .btn:first-child { + margin-left: 0; } - -.icon-thumbs-up { - background-position: -96px -144px; +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } - -.icon-thumbs-down { - background-position: -120px -144px; +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } - -.icon-hand-right { - background-position: -144px -144px; +.btn-group > .btn-group { + float: left; } - -.icon-hand-left { - background-position: -168px -144px; +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; } - -.icon-hand-up { - background-position: -192px -144px; +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } - -.icon-hand-down { - background-position: -216px -144px; +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } - -.icon-circle-arrow-right { - background-position: -240px -144px; +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; } - -.icon-circle-arrow-left { - background-position: -264px -144px; +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; } - -.icon-circle-arrow-up { - background-position: -288px -144px; +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; } - -.icon-circle-arrow-down { - background-position: -312px -144px; +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); } - -.icon-globe { - background-position: -336px -144px; +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; } - -.icon-wrench { - background-position: -360px -144px; +.btn .caret { + margin-left: 0; } - -.icon-tasks { - background-position: -384px -144px; +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; } - -.icon-filter { - background-position: -408px -144px; +.dropup .btn-lg .caret { + border-width: 0 5px 5px; } - -.icon-briefcase { - background-position: -432px -144px; +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; } - -.icon-fullscreen { - background-position: -456px -144px; +.btn-group-vertical > .btn-group > .btn { + float: none; } - -.dropup, -.dropdown { - position: relative; +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; } - -.dropdown-toggle { - *margin-bottom: -3px; +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; } - -.dropdown-toggle:active, -.open .dropdown-toggle { - outline: 0; +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } - -.caret { - display: inline-block; - width: 0; - height: 0; - vertical-align: top; - border-top: 4px solid #000000; - border-right: 4px solid transparent; - border-left: 4px solid transparent; - content: ""; +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; } - -.dropdown .caret { - margin-top: 8px; - margin-left: 2px; +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; } - -.dropdown-menu { +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; + width: 100%; + margin-bottom: 0; } - -.dropdown-menu.pull-right { - right: 0; - left: auto; +.input-group .form-control:focus { + z-index: 3; } - -.dropdown-menu .divider { - *width: 100%; - height: 1px; - margin: 9px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; } - -.dropdown-menu a { - display: block; - padding: 3px 20px; - clear: both; +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 6px 12px; + font-size: 14px; font-weight: normal; - line-height: 20px; - color: #333333; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; white-space: nowrap; } - -.dropdown-menu li > a:hover, -.dropdown-menu li > a:focus, -.dropdown-submenu:hover > a { - color: #ffffff; +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + z-index: 2; + margin-left: -1px; +} +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { text-decoration: none; - background-color: #0088cc; - background-color: #0081c2; - background-image: -moz-linear-gradient(top, #0088cc, #0077b3); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); - background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); - background-image: -o-linear-gradient(top, #0088cc, #0077b3); - background-image: linear-gradient(to bottom, #0088cc, #0077b3); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); + background-color: #eee; } - -.dropdown-menu .active > a, -.dropdown-menu .active > a:hover { - color: #ffffff; +.nav > li.disabled > a { + color: #777; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #777; text-decoration: none; - background-color: #0088cc; - background-color: #0081c2; - background-image: linear-gradient(to bottom, #0088cc, #0077b3); - background-image: -moz-linear-gradient(top, #0088cc, #0077b3); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); - background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); - background-image: -o-linear-gradient(top, #0088cc, #0077b3); - background-repeat: repeat-x; - outline: 0; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); + cursor: not-allowed; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eee; + border-color: #337ab7; +} +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eee #eee #ddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 4px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #fff; + background-color: #337ab7; +} +.nav-stacked > li { + float: none; } - -.dropdown-menu .disabled > a, -.dropdown-menu .disabled > a:hover { - color: #999999; +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; } - -.dropdown-menu .disabled > a:hover { - text-decoration: none; - cursor: default; - background-color: transparent; +.nav-justified { + width: 100%; } - -.open { - *z-index: 1000; +.nav-justified > li { + float: none; } - -.open > .dropdown-menu { - display: block; +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; } - -.pull-right > .dropdown-menu { - right: 0; +.nav-justified > .dropdown .dropdown-menu { + top: auto; left: auto; } - -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid #000000; - content: ""; +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } } - -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; +.nav-tabs-justified { + border-bottom: 0; } - -.dropdown-submenu { - position: relative; +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; } - -.dropdown-submenu > .dropdown-menu { - top: 0; - left: 100%; - margin-top: -6px; - margin-left: -1px; - -webkit-border-radius: 0 6px 6px 6px; - -moz-border-radius: 0 6px 6px 6px; - border-radius: 0 6px 6px 6px; +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #ddd; } - -.dropdown-submenu:hover > .dropdown-menu { - display: block; +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #fff; + } } - -.dropdown-submenu > a:after { +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { display: block; - float: right; - width: 0; - height: 0; - margin-top: 5px; - margin-right: -10px; - border-color: transparent; - border-left-color: #cccccc; - border-style: solid; - border-width: 5px 0 5px 5px; - content: " "; } - -.dropdown-submenu:hover > a:after { - border-left-color: #ffffff; +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; } - -.dropdown .dropdown-menu .nav-header { - padding-right: 20px; - padding-left: 20px; +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; } - -.typeahead { - margin-top: 2px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } } - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +@media (min-width: 768px) { + .navbar-header { + float: left; + } } - -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); } - -.well-large { - padding: 24px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; +.navbar-collapse.in { + overflow-y: auto; } - -.well-small { - padding: 9px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } } - -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -moz-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; } - -.fade.in { - opacity: 1; +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } } - -.collapse { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height 0.35s ease; - -moz-transition: height 0.35s ease; - -o-transition: height 0.35s ease; - transition: height 0.35s ease; +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; } - -.collapse.in { - height: auto; +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } } - -.close { - float: right; - font-size: 20px; - font-weight: bold; - line-height: 20px; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; } - -.close:hover { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.4; - filter: alpha(opacity=40); +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } } - -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; } - -.btn { - display: inline-block; - *display: inline; - padding: 4px 14px; - margin-bottom: 0; - *margin-left: .3em; - font-size: 14px; - line-height: 20px; - *line-height: 20px; - color: #333333; - text-align: center; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - vertical-align: middle; - cursor: pointer; - background-color: #f5f5f5; - *background-color: #e6e6e6; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); - background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); - background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); - background-repeat: repeat-x; - border: 1px solid #bbbbbb; - *border: 0; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-bottom-color: #a2a2a2; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); - *zoom: 1; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } } - -.btn:hover, -.btn:active, -.btn.active, -.btn.disabled, -.btn[disabled] { - color: #333333; - background-color: #e6e6e6; - *background-color: #d9d9d9; +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; } - -.btn:active, -.btn.active { - background-color: #cccccc \9; +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; } - -.btn:first-child { - *margin-left: 0; +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; } - -.btn:hover { - color: #333333; +.navbar-brand:hover, +.navbar-brand:focus { text-decoration: none; - background-color: #e6e6e6; - *background-color: #d9d9d9; - /* Buttons in IE7 don't get borders, so darken on hover */ - - background-position: 0 -15px; - -webkit-transition: background-position 0.1s linear; - -moz-transition: background-position 0.1s linear; - -o-transition: background-position 0.1s linear; - transition: background-position 0.1s linear; } - -.btn:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; +.navbar-brand > img { + display: block; } - -.btn.active, -.btn:active { - background-color: #e6e6e6; - background-color: #d9d9d9 \9; - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } } - -.btn.disabled, -.btn[disabled] { - cursor: default; - background-color: #e6e6e6; +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; background-image: none; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -.btn-large { - padding: 9px 14px; - font-size: 16px; - line-height: normal; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -.btn-large [class^="icon-"] { - margin-top: 2px; -} - -.btn-small { - padding: 3px 9px; - font-size: 12px; - line-height: 18px; -} - -.btn-small [class^="icon-"] { - margin-top: 0; + border: 1px solid transparent; + border-radius: 4px; } - -.btn-mini { - padding: 2px 6px; - font-size: 11px; - line-height: 17px; +.navbar-toggle:focus { + outline: 0; } - -.btn-block { +.navbar-toggle .icon-bar { display: block; - width: 100%; - padding-right: 0; - padding-left: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + width: 22px; + height: 2px; + border-radius: 1px; } - -.btn-block + .btn-block { - margin-top: 5px; +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; } - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } } - -.btn-primary.active, -.btn-warning.active, -.btn-danger.active, -.btn-success.active, -.btn-info.active, -.btn-inverse.active { - color: rgba(255, 255, 255, 0.75); +.navbar-nav { + margin: 7.5px -15px; } - -.btn { - border-color: #c5c5c5; - border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; } - -.btn-primary { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #006dcc; - *background-color: #0044cc; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); - background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); - background-image: -o-linear-gradient(top, #0088cc, #0044cc); - background-image: linear-gradient(to bottom, #0088cc, #0044cc); - background-image: -moz-linear-gradient(top, #0088cc, #0044cc); - background-repeat: repeat-x; - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } } - -.btn-primary:hover, -.btn-primary:active, -.btn-primary.active, -.btn-primary.disabled, -.btn-primary[disabled] { - color: #ffffff; - background-color: #0044cc; - *background-color: #003bb3; +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } } - -.btn-primary:active, -.btn-primary.active { - background-color: #003399 \9; +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } } - -.btn-warning { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #faa732; - *background-color: #f89406; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(to bottom, #fbb450, #f89406); - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-repeat: repeat-x; - border-color: #f89406 #f89406 #ad6704; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } } - -.btn-warning:hover, -.btn-warning:active, -.btn-warning.active, -.btn-warning.disabled, -.btn-warning[disabled] { - color: #ffffff; - background-color: #f89406; - *background-color: #df8505; +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } } - -.btn-warning:active, -.btn-warning.active { - background-color: #c67605 \9; +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } - -.btn-danger { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #da4f49; - *background-color: #bd362f; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); - background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); - background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); - background-repeat: repeat-x; - border-color: #bd362f #bd362f #802420; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } - -.btn-danger:hover, -.btn-danger:active, -.btn-danger.active, -.btn-danger.disabled, -.btn-danger[disabled] { - color: #ffffff; - background-color: #bd362f; - *background-color: #a9302a; +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; } - -.btn-danger:active, -.btn-danger.active { - background-color: #942a25 \9; +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; } - -.btn-success { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #5bb75b; - *background-color: #51a351; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); - background-image: -webkit-linear-gradient(top, #62c462, #51a351); - background-image: -o-linear-gradient(top, #62c462, #51a351); - background-image: linear-gradient(to bottom, #62c462, #51a351); - background-image: -moz-linear-gradient(top, #62c462, #51a351); - background-repeat: repeat-x; - border-color: #51a351 #51a351 #387038; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; } - -.btn-success:hover, -.btn-success:active, -.btn-success.active, -.btn-success.disabled, -.btn-success[disabled] { - color: #ffffff; - background-color: #51a351; - *background-color: #499249; +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } } - -.btn-success:active, -.btn-success.active { - background-color: #408140 \9; +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -15px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } } - -.btn-info { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #49afcd; - *background-color: #2f96b4; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); - background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); - background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); - background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); - background-repeat: repeat-x; - border-color: #2f96b4 #2f96b4 #1f6377; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; } - -.btn-info:hover, -.btn-info:active, -.btn-info.active, -.btn-info.disabled, -.btn-info[disabled] { - color: #ffffff; - background-color: #2f96b4; - *background-color: #2a85a0; +.navbar-default .navbar-brand { + color: #777; } - -.btn-info:active, -.btn-info.active { - background-color: #24748c \9; +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; } - -.btn-inverse { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #363636; - *background-color: #222222; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); - background-image: -webkit-linear-gradient(top, #444444, #222222); - background-image: -o-linear-gradient(top, #444444, #222222); - background-image: linear-gradient(to bottom, #444444, #222222); - background-image: -moz-linear-gradient(top, #444444, #222222); - background-repeat: repeat-x; - border-color: #222222 #222222 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); +.navbar-default .navbar-text { + color: #777; } - -.btn-inverse:hover, -.btn-inverse:active, -.btn-inverse.active, -.btn-inverse.disabled, -.btn-inverse[disabled] { - color: #ffffff; - background-color: #222222; - *background-color: #151515; +.navbar-default .navbar-nav > li > a { + color: #777; } - -.btn-inverse:active, -.btn-inverse.active { - background-color: #080808 \9; +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333; + background-color: transparent; } - -button.btn, -input[type="submit"].btn { - *padding-top: 3px; - *padding-bottom: 3px; +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555; + background-color: #e7e7e7; } - -button.btn::-moz-focus-inner, -input[type="submit"].btn::-moz-focus-inner { - padding: 0; - border: 0; +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #ccc; + background-color: transparent; } - -button.btn.btn-large, -input[type="submit"].btn.btn-large { - *padding-top: 7px; - *padding-bottom: 7px; +.navbar-default .navbar-toggle { + border-color: #ddd; } - -button.btn.btn-small, -input[type="submit"].btn.btn-small { - *padding-top: 3px; - *padding-bottom: 3px; +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #ddd; } - -button.btn.btn-mini, -input[type="submit"].btn.btn-mini { - *padding-top: 1px; - *padding-bottom: 1px; +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; } - -.btn-link, -.btn-link:active, -.btn-link[disabled] { - background-color: transparent; - background-image: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; } - -.btn-link { - color: #0088cc; - cursor: pointer; - border-color: transparent; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555; + background-color: #e7e7e7; } - -.btn-link:hover { - color: #005580; - text-decoration: underline; - background-color: transparent; +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } } - -.btn-link[disabled]:hover { - color: #333333; - text-decoration: none; +.navbar-default .navbar-link { + color: #777; } - -.btn-group { - position: relative; - *margin-left: .3em; - font-size: 0; - white-space: nowrap; - vertical-align: middle; +.navbar-default .navbar-link:hover { + color: #333; } - -.btn-group:first-child { - *margin-left: 0; +.navbar-default .btn-link { + color: #777; } - -.btn-group + .btn-group { - margin-left: 5px; +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333; } - -.btn-toolbar { - margin-top: 10px; - margin-bottom: 10px; - font-size: 0; +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; } - -.btn-toolbar .btn-group { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; +.navbar-inverse { + background-color: #222; + border-color: #080808; } - -.btn-toolbar .btn + .btn, -.btn-toolbar .btn-group + .btn, -.btn-toolbar .btn + .btn-group { - margin-left: 5px; +.navbar-inverse .navbar-brand { + color: #9d9d9d; } - -.btn-group > .btn { - position: relative; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; } - -.btn-group > .btn + .btn { - margin-left: -1px; +.navbar-inverse .navbar-text { + color: #9d9d9d; } - -.btn-group > .btn, -.btn-group > .dropdown-menu { - font-size: 14px; +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; } - -.btn-group > .btn-mini { - font-size: 11px; +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #fff; + background-color: transparent; } - -.btn-group > .btn-small { - font-size: 12px; +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #fff; + background-color: #080808; } - -.btn-group > .btn-large { - font-size: 16px; +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444; + background-color: transparent; } - -.btn-group > .btn:first-child { - margin-left: 0; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-topleft: 4px; +.navbar-inverse .navbar-toggle { + border-color: #333; } - -.btn-group > .btn:last-child, -.btn-group > .dropdown-toggle { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 4px; +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333; } - -.btn-group > .btn.large:first-child { - margin-left: 0; - -webkit-border-bottom-left-radius: 6px; - border-bottom-left-radius: 6px; - -webkit-border-top-left-radius: 6px; - border-top-left-radius: 6px; - -moz-border-radius-bottomleft: 6px; - -moz-border-radius-topleft: 6px; +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; } - -.btn-group > .btn.large:last-child, -.btn-group > .large.dropdown-toggle { - -webkit-border-top-right-radius: 6px; - border-top-right-radius: 6px; - -webkit-border-bottom-right-radius: 6px; - border-bottom-right-radius: 6px; - -moz-border-radius-topright: 6px; - -moz-border-radius-bottomright: 6px; +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; } - -.btn-group > .btn:hover, -.btn-group > .btn:focus, -.btn-group > .btn:active, -.btn-group > .btn.active { - z-index: 2; +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #fff; + background-color: #080808; } - -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #fff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444; + background-color: transparent; + } } - -.btn-group > .btn + .dropdown-toggle { - *padding-top: 5px; - padding-right: 8px; - *padding-bottom: 5px; - padding-left: 8px; - -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +.navbar-inverse .navbar-link { + color: #9d9d9d; } - -.btn-group > .btn-mini + .dropdown-toggle { - *padding-top: 2px; - padding-right: 5px; - *padding-bottom: 2px; - padding-left: 5px; +.navbar-inverse .navbar-link:hover { + color: #fff; } - -.btn-group > .btn-small + .dropdown-toggle { - *padding-top: 5px; - *padding-bottom: 4px; +.navbar-inverse .btn-link { + color: #9d9d9d; } - -.btn-group > .btn-large + .dropdown-toggle { - *padding-top: 7px; - padding-right: 12px; - *padding-bottom: 7px; - padding-left: 12px; +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #fff; } - -.btn-group.open .dropdown-toggle { - background-image: none; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444; } - -.btn-group.open .btn.dropdown-toggle { - background-color: #e6e6e6; +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; } - -.btn-group.open .btn-primary.dropdown-toggle { - background-color: #0044cc; +.breadcrumb > li { + display: inline-block; } - -.btn-group.open .btn-warning.dropdown-toggle { - background-color: #f89406; +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0"; } - -.btn-group.open .btn-danger.dropdown-toggle { - background-color: #bd362f; +.breadcrumb > .active { + color: #777; } - -.btn-group.open .btn-success.dropdown-toggle { - background-color: #51a351; +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; } - -.btn-group.open .btn-info.dropdown-toggle { - background-color: #2f96b4; +.pagination > li { + display: inline; } - -.btn-group.open .btn-inverse.dropdown-toggle { - background-color: #222222; +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; } - -.btn .caret { - margin-top: 8px; +.pagination > li:first-child > a, +.pagination > li:first-child > span { margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 2; + color: #23527c; + background-color: #eee; + border-color: #ddd; } - -.btn-mini .caret, -.btn-small .caret, -.btn-large .caret { - margin-top: 6px; +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 3; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; } - -.btn-large .caret { - border-top-width: 5px; - border-right-width: 5px; - border-left-width: 5px; +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; } - -.dropup .btn-large .caret { - border-top: 0; - border-bottom: 5px solid #000000; +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; } - -.btn-primary .caret, -.btn-warning .caret, -.btn-danger .caret, -.btn-info .caret, -.btn-success .caret, -.btn-inverse .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; } - -.btn-group-vertical { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; } - -.btn-group-vertical .btn { - display: block; - float: none; - width: 100%; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } - -.btn-group-vertical .btn + .btn { - margin-top: -1px; - margin-left: 0; +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; } - -.btn-group-vertical .btn:first-child { - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; } - -.btn-group-vertical .btn:last-child { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; +.pager li { + display: inline; } - -.btn-group-vertical .btn-large:first-child { - -webkit-border-radius: 6px 6px 0 0; - -moz-border-radius: 6px 6px 0 0; - border-radius: 6px 6px 0 0; +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; } - -.btn-group-vertical .btn-large:last-child { - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eee; } - -.alert { - padding: 8px 35px 8px 14px; - margin-bottom: 20px; - color: #c09853; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - background-color: #fcf8e3; - border: 1px solid #fbeed5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; +.pager .next > a, +.pager .next > span { + float: right; } - -.alert h4 { - margin: 0; +.pager .previous > a, +.pager .previous > span { + float: left; } - -.alert .close { - position: relative; - top: -2px; - right: -21px; - line-height: 20px; +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #777; + cursor: not-allowed; + background-color: #fff; +} +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; } - -.alert-success { - color: #468847; - background-color: #dff0d8; - border-color: #d6e9c6; +a.label:hover, +a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; } - -.alert-danger, -.alert-error { - color: #b94a48; - background-color: #f2dede; - border-color: #eed3d7; +.label:empty { + display: none; } - -.alert-info { - color: #3a87ad; - background-color: #d9edf7; - border-color: #bce8f1; +.btn .label { + position: relative; + top: -1px; } - -.alert-block { - padding-top: 14px; - padding-bottom: 14px; +.label-default { + background-color: #777; } - -.alert-block > p, -.alert-block > ul { - margin-bottom: 0; +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; } - -.alert-block p + p { - margin-top: 5px; +.label-primary { + background-color: #337ab7; } - -.nav { - margin-bottom: 20px; - margin-left: 0; - list-style: none; +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; } - -.nav > li > a { - display: block; +.label-success { + background-color: #5cb85c; } - -.nav > li > a:hover { - text-decoration: none; - background-color: #eeeeee; +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; } - -.nav > .pull-right { - float: right; +.label-info { + background-color: #5bc0de; } - -.nav-header { - display: block; - padding: 3px 15px; - font-size: 11px; - font-weight: bold; - line-height: 20px; - color: #999999; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - text-transform: uppercase; +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; } - -.nav li + .nav-header { - margin-top: 9px; +.label-warning { + background-color: #f0ad4e; } - -.nav-list { - padding-right: 15px; - padding-left: 15px; - margin-bottom: 0; +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; } - -.nav-list > li > a, -.nav-list .nav-header { - margin-right: -15px; - margin-left: -15px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +.label-danger { + background-color: #d9534f; } - -.nav-list > li > a { - padding: 3px 15px; +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; } - -.nav-list > .active > a, -.nav-list > .active > a:hover { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); - background-color: #0088cc; +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: #777; + border-radius: 10px; } - -.nav-list [class^="icon-"] { - margin-right: 2px; +.badge:empty { + display: none; } - -.nav-list .divider { - *width: 100%; - height: 1px; - margin: 9px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; +.btn .badge { + position: relative; + top: -1px; } - -.nav-tabs, -.nav-pills { - *zoom: 1; +.btn-xs .badge, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; } - -.nav-tabs:before, -.nav-pills:before, -.nav-tabs:after, -.nav-pills:after { - display: table; - line-height: 0; - content: ""; +a.badge:hover, +a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; } - -.nav-tabs:after, -.nav-pills:after { - clear: both; +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff; } - -.nav-tabs > li, -.nav-pills > li { - float: left; +.list-group-item > .badge { + float: right; } - -.nav-tabs > li > a, -.nav-pills > li > a { - padding-right: 12px; - padding-left: 12px; - margin-right: 2px; - line-height: 14px; +.list-group-item > .badge + .badge { + margin-right: 5px; } - -.nav-tabs { - border-bottom: 1px solid #ddd; +.nav-pills > li > a > .badge { + margin-left: 3px; } - -.nav-tabs > li { - margin-bottom: -1px; +.jumbotron { + padding-top: 30px; + padding-bottom: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; } - -.nav-tabs > li > a { - padding-top: 8px; - padding-bottom: 8px; - line-height: 20px; - border: 1px solid transparent; - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; +.jumbotron h1, +.jumbotron .h1 { + color: inherit; } - -.nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #dddddd; +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; } - -.nav-tabs > .active > a, -.nav-tabs > .active > a:hover { - color: #555555; - cursor: default; - background-color: #ffffff; - border: 1px solid #ddd; - border-bottom-color: transparent; +.jumbotron > hr { + border-top-color: #d5d5d5; } - -.nav-pills > li > a { - padding-top: 8px; - padding-bottom: 8px; - margin-top: 2px; - margin-bottom: 2px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; +.container .jumbotron, +.container-fluid .jumbotron { + padding-right: 15px; + padding-left: 15px; + border-radius: 6px; } - -.nav-pills > .active > a, -.nav-pills > .active > a:hover { - color: #ffffff; - background-color: #0088cc; +.jumbotron .container { + max-width: 100%; } - -.nav-stacked > li { - float: none; +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } } - -.nav-stacked > li > a { - margin-right: 0; +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border .2s ease-in-out; + -o-transition: border .2s ease-in-out; + transition: border .2s ease-in-out; } - -.nav-tabs.nav-stacked { - border-bottom: 0; +.thumbnail > img, +.thumbnail a > img { + margin-right: auto; + margin-left: auto; } - -.nav-tabs.nav-stacked > li > a { - border: 1px solid #ddd; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #337ab7; } - -.nav-tabs.nav-stacked > li:first-child > a { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; +.thumbnail .caption { + padding: 9px; + color: #333; } - -.nav-tabs.nav-stacked > li:last-child > a { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomright: 4px; - -moz-border-radius-bottomleft: 4px; +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; } - -.nav-tabs.nav-stacked > li > a:hover { - z-index: 2; - border-color: #ddd; +.alert h4 { + margin-top: 0; + color: inherit; } - -.nav-pills.nav-stacked > li > a { - margin-bottom: 3px; +.alert .alert-link { + font-weight: bold; } - -.nav-pills.nav-stacked > li:last-child > a { - margin-bottom: 1px; +.alert > p, +.alert > ul { + margin-bottom: 0; } - -.nav-tabs .dropdown-menu { - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; +.alert > p + p { + margin-top: 5px; } - -.nav-pills .dropdown-menu { - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; } - -.nav .dropdown-toggle .caret { - margin-top: 6px; - border-top-color: #0088cc; - border-bottom-color: #0088cc; +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; } - -.nav .dropdown-toggle:hover .caret { - border-top-color: #005580; - border-bottom-color: #005580; +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; } - -/* move down carets for tabs */ - -.nav-tabs .dropdown-toggle .caret { - margin-top: 8px; +.alert-success hr { + border-top-color: #c9e2b3; } - -.nav .active .dropdown-toggle .caret { - border-top-color: #fff; - border-bottom-color: #fff; +.alert-success .alert-link { + color: #2b542c; } - -.nav-tabs .active .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; } - -.nav > .dropdown.active > a:hover { - cursor: pointer; +.alert-info hr { + border-top-color: #a6e1ec; } - -.nav-tabs .open .dropdown-toggle, -.nav-pills .open .dropdown-toggle, -.nav > li.dropdown.open.active > a:hover { - color: #ffffff; - background-color: #999999; - border-color: #999999; +.alert-info .alert-link { + color: #245269; } - -.nav li.dropdown.open .caret, -.nav li.dropdown.open.active .caret, -.nav li.dropdown.open a:hover .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; - opacity: 1; - filter: alpha(opacity=100); +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; } - -.tabs-stacked .open > a:hover { - border-color: #999999; +.alert-warning hr { + border-top-color: #f7e1b5; } - -.tabbable { - *zoom: 1; +.alert-warning .alert-link { + color: #66512c; } - -.tabbable:before, -.tabbable:after { - display: table; - line-height: 0; - content: ""; +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; } - -.tabbable:after { - clear: both; +.alert-danger hr { + border-top-color: #e4b9c0; } - -.tab-content { - overflow: auto; +.alert-danger .alert-link { + color: #843534; } - -.tabs-below > .nav-tabs, -.tabs-right > .nav-tabs, -.tabs-left > .nav-tabs { - border-bottom: 0; +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } } - -.tab-content > .tab-pane, -.pill-content > .pill-pane { - display: none; +@-o-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } } - -.tab-content > .active, -.pill-content > .active { - display: block; +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } } - -.tabs-below > .nav-tabs { - border-top: 1px solid #ddd; +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); } - -.tabs-below > .nav-tabs > li { - margin-top: -1px; - margin-bottom: 0; +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + -webkit-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease; +} +.progress-striped .progress-bar, +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + background-size: 40px 40px; } - -.tabs-below > .nav-tabs > li > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; } - -.tabs-below > .nav-tabs > li > a:hover { - border-top-color: #ddd; - border-bottom-color: transparent; +.progress-bar-success { + background-color: #5cb85c; +} +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } - -.tabs-below > .nav-tabs > .active > a, -.tabs-below > .nav-tabs > .active > a:hover { - border-color: transparent #ddd #ddd #ddd; +.progress-bar-info { + background-color: #5bc0de; } - -.tabs-left > .nav-tabs > li, -.tabs-right > .nav-tabs > li { - float: none; +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } - -.tabs-left > .nav-tabs > li > a, -.tabs-right > .nav-tabs > li > a { - min-width: 74px; - margin-right: 0; - margin-bottom: 3px; +.progress-bar-warning { + background-color: #f0ad4e; } - -.tabs-left > .nav-tabs { - float: left; - margin-right: 19px; - border-right: 1px solid #ddd; +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } - -.tabs-left > .nav-tabs > li > a { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; +.progress-bar-danger { + background-color: #d9534f; } - -.tabs-left > .nav-tabs > li > a:hover { - border-color: #eeeeee #dddddd #eeeeee #eeeeee; +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } - -.tabs-left > .nav-tabs .active > a, -.tabs-left > .nav-tabs .active > a:hover { - border-color: #ddd transparent #ddd #ddd; - *border-right-color: #ffffff; +.media { + margin-top: 15px; } - -.tabs-right > .nav-tabs { - float: right; - margin-left: 19px; - border-left: 1px solid #ddd; +.media:first-child { + margin-top: 0; } - -.tabs-right > .nav-tabs > li > a { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; +.media, +.media-body { + overflow: hidden; + zoom: 1; } - -.tabs-right > .nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #eeeeee #dddddd; +.media-body { + width: 10000px; } - -.tabs-right > .nav-tabs .active > a, -.tabs-right > .nav-tabs .active > a:hover { - border-color: #ddd #ddd #ddd transparent; - *border-left-color: #ffffff; +.media-object { + display: block; } - -.nav > .disabled > a { - color: #999999; +.media-object.img-thumbnail { + max-width: none; } - -.nav > .disabled > a:hover { - text-decoration: none; - cursor: default; - background-color: transparent; +.media-right, +.media > .pull-right { + padding-left: 10px; } - -.navbar { - *position: relative; - *z-index: 2; - margin-bottom: 20px; - overflow: visible; - color: #777777; +.media-left, +.media > .pull-left { + padding-right: 10px; } - -.navbar-inner { - min-height: 40px; - padding-right: 20px; - padding-left: 20px; - background-color: #fafafa; - background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); - background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); - background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); - background-repeat: repeat-x; - border: 1px solid #d4d4d4; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); - *zoom: 1; - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; } - -.navbar-inner:before, -.navbar-inner:after { - display: table; - line-height: 0; - content: ""; +.media-middle { + vertical-align: middle; } - -.navbar-inner:after { - clear: both; +.media-bottom { + vertical-align: bottom; } - -.navbar .container { - width: auto; +.media-heading { + margin-top: 0; + margin-bottom: 5px; } - -.nav-collapse.collapse { - height: auto; +.media-list { + padding-left: 0; + list-style: none; } - -.navbar .brand { +.list-group { + padding-left: 0; + margin-bottom: 20px; +} +.list-group-item { + position: relative; display: block; - float: left; - padding: 10px 20px 10px; - margin-left: -20px; - font-size: 20px; - font-weight: 200; - color: #777777; - text-shadow: 0 1px 0 #ffffff; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; } - -.navbar .brand:hover { - text-decoration: none; +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } - -.navbar-text { +.list-group-item:last-child { margin-bottom: 0; - line-height: 40px; -} - -.navbar-link { - color: #777777; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +a.list-group-item, +button.list-group-item { + color: #555; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #333; +} +a.list-group-item:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + color: #555; + text-decoration: none; + background-color: #f5f5f5; } - -.navbar-link:hover { - color: #333333; +button.list-group-item { + width: 100%; + text-align: left; } - -.navbar .divider-vertical { - height: 40px; - margin: 0 9px; - border-right: 1px solid #ffffff; - border-left: 1px solid #f2f2f2; +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + color: #777; + cursor: not-allowed; + background-color: #eee; } - -.navbar .btn, -.navbar .btn-group { - margin-top: 5px; +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; } - -.navbar .btn-group .btn, -.navbar .input-prepend .btn, -.navbar .input-append .btn { - margin-top: 0; +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777; } - -.navbar-form { - margin-bottom: 0; - *zoom: 1; +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; } - -.navbar-form:before, -.navbar-form:after { - display: table; - line-height: 0; - content: ""; +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #c7ddef; } - -.navbar-form:after { - clear: both; +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; } - -.navbar-form input, -.navbar-form select, -.navbar-form .radio, -.navbar-form .checkbox { - margin-top: 5px; +a.list-group-item-success, +button.list-group-item-success { + color: #3c763d; } - -.navbar-form input, -.navbar-form select, -.navbar-form .btn { - display: inline-block; - margin-bottom: 0; +a.list-group-item-success .list-group-item-heading, +button.list-group-item-success .list-group-item-heading { + color: inherit; } - -.navbar-form input[type="image"], -.navbar-form input[type="checkbox"], -.navbar-form input[type="radio"] { - margin-top: 3px; +a.list-group-item-success:hover, +button.list-group-item-success:hover, +a.list-group-item-success:focus, +button.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; } - -.navbar-form .input-append, -.navbar-form .input-prepend { - margin-top: 6px; - white-space: nowrap; +a.list-group-item-success.active, +button.list-group-item-success.active, +a.list-group-item-success.active:hover, +button.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; } - -.navbar-form .input-append input, -.navbar-form .input-prepend input { - margin-top: 0; +a.list-group-item-info, +button.list-group-item-info { + color: #31708f; } - -.navbar-search { - position: relative; - float: left; - margin-top: 5px; - margin-bottom: 0; +a.list-group-item-info .list-group-item-heading, +button.list-group-item-info .list-group-item-heading { + color: inherit; } - -.navbar-search .search-query { - padding: 4px 14px; - margin-bottom: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 1; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; +a.list-group-item-info:hover, +button.list-group-item-info:hover, +a.list-group-item-info:focus, +button.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; } - -.navbar-static-top { - position: static; - width: 100%; - margin-bottom: 0; +a.list-group-item-info.active, +button.list-group-item-info.active, +a.list-group-item-info.active:hover, +button.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; } - -.navbar-static-top .navbar-inner { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; +a.list-group-item-warning, +button.list-group-item-warning { + color: #8a6d3b; } - -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; - margin-bottom: 0; +a.list-group-item-warning .list-group-item-heading, +button.list-group-item-warning .list-group-item-heading { + color: inherit; } - -.navbar-fixed-top .navbar-inner, -.navbar-static-top .navbar-inner { - border-width: 0 0 1px; +a.list-group-item-warning:hover, +button.list-group-item-warning:hover, +a.list-group-item-warning:focus, +button.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; } - -.navbar-fixed-bottom .navbar-inner { - border-width: 1px 0 0; +a.list-group-item-warning.active, +button.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +button.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; } - -.navbar-fixed-top .navbar-inner, -.navbar-fixed-bottom .navbar-inner { - padding-right: 0; - padding-left: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; +a.list-group-item-danger, +button.list-group-item-danger { + color: #a94442; } - -.navbar-static-top .container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; +a.list-group-item-danger .list-group-item-heading, +button.list-group-item-danger .list-group-item-heading { + color: inherit; } - -.navbar-fixed-top { - top: 0; +a.list-group-item-danger:hover, +button.list-group-item-danger:hover, +a.list-group-item-danger:focus, +button.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; } - -.navbar-fixed-top .navbar-inner, -.navbar-static-top .navbar-inner { - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); +a.list-group-item-danger.active, +button.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +button.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; } - -.navbar-fixed-bottom { - bottom: 0; +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; } - -.navbar-fixed-bottom .navbar-inner { - -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); } - -.navbar .nav { - position: relative; - left: 0; - display: block; - float: left; - margin: 0 10px 0 0; +.panel-body { + padding: 15px; } - -.navbar .nav.pull-right { - float: right; - margin-right: 0; +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; } - -.navbar .nav > li { - float: left; +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; } - -.navbar .nav > li > a { - float: none; - padding: 10px 15px 10px; - color: #777777; - text-decoration: none; - text-shadow: 0 1px 0 #ffffff; +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; } - -.navbar .nav .dropdown-toggle .caret { - margin-top: 8px; +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a { + color: inherit; } - -.navbar .nav > li > a:focus, -.navbar .nav > li > a:hover { - color: #333333; - text-decoration: none; - background-color: transparent; +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; } - -.navbar .nav > .active > a, -.navbar .nav > .active > a:hover, -.navbar .nav > .active > a:focus { - color: #555555; - text-decoration: none; - background-color: #e5e5e5; - -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); - -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; } - -.navbar .btn-navbar { - display: none; - float: right; - padding: 7px 10px; - margin-right: 5px; - margin-left: 5px; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #ededed; - *background-color: #e5e5e5; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); - background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); - background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); - background-repeat: repeat-x; - border-color: #e5e5e5 #e5e5e5 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; } - -.navbar .btn-navbar:hover, -.navbar .btn-navbar:active, -.navbar .btn-navbar.active, -.navbar .btn-navbar.disabled, -.navbar .btn-navbar[disabled] { - color: #ffffff; - background-color: #e5e5e5; - *background-color: #d9d9d9; +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; } - -.navbar .btn-navbar:active, -.navbar .btn-navbar.active { - background-color: #cccccc \9; +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; } - -.navbar .btn-navbar .icon-bar { - display: block; - width: 18px; - height: 2px; - background-color: #f5f5f5; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; } - -.btn-navbar .icon-bar + .icon-bar { - margin-top: 3px; +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; } - -.navbar .nav > li > .dropdown-menu:before { - position: absolute; - top: -7px; - left: 9px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; +.list-group + .panel-footer { + border-top-width: 0; } - -.navbar .nav > li > .dropdown-menu:after { - position: absolute; - top: -6px; - left: 10px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - border-left: 6px solid transparent; - content: ''; +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; } - -.navbar-fixed-bottom .nav > li > .dropdown-menu:before { - top: auto; - bottom: -7px; - border-top: 7px solid #ccc; - border-bottom: 0; - border-top-color: rgba(0, 0, 0, 0.2); +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-right: 15px; + padding-left: 15px; } - -.navbar-fixed-bottom .nav > li > .dropdown-menu:after { - top: auto; - bottom: -6px; - border-top: 6px solid #ffffff; - border-bottom: 0; +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; } - -.navbar .nav li.dropdown.open > .dropdown-toggle, -.navbar .nav li.dropdown.active > .dropdown-toggle, -.navbar .nav li.dropdown.open.active > .dropdown-toggle { - color: #555555; - background-color: #e5e5e5; +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; } - -.navbar .nav li.dropdown > .dropdown-toggle .caret { - border-top-color: #777777; - border-bottom-color: #777777; +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; } - -.navbar .nav li.dropdown.open > .dropdown-toggle .caret, -.navbar .nav li.dropdown.active > .dropdown-toggle .caret, -.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; } - -.navbar .pull-right > li > .dropdown-menu, -.navbar .nav > li > .dropdown-menu.pull-right { - right: 0; - left: auto; +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; } - -.navbar .pull-right > li > .dropdown-menu:before, -.navbar .nav > li > .dropdown-menu.pull-right:before { - right: 12px; - left: auto; +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; } - -.navbar .pull-right > li > .dropdown-menu:after, -.navbar .nav > li > .dropdown-menu.pull-right:after { - right: 13px; - left: auto; +.panel > .table-responsive { + margin-bottom: 0; + border: 0; } - -.navbar .pull-right > li > .dropdown-menu .dropdown-menu, -.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { - right: 100%; - left: auto; - margin-right: -1px; - margin-left: 0; - -webkit-border-radius: 6px 0 6px 6px; - -moz-border-radius: 6px 0 6px 6px; - border-radius: 6px 0 6px 6px; +.panel-group { + margin-bottom: 20px; } - -.navbar-inverse { - color: #999999; +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; } - -.navbar-inverse .navbar-inner { - background-color: #1b1b1b; - background-image: -moz-linear-gradient(top, #222222, #111111); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); - background-image: -webkit-linear-gradient(top, #222222, #111111); - background-image: -o-linear-gradient(top, #222222, #111111); - background-image: linear-gradient(to bottom, #222222, #111111); - background-repeat: repeat-x; - border-color: #252525; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); +.panel-group .panel + .panel { + margin-top: 5px; } - -.navbar-inverse .brand, -.navbar-inverse .nav > li > a { - color: #999999; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +.panel-group .panel-heading { + border-bottom: 0; } - -.navbar-inverse .brand:hover, -.navbar-inverse .nav > li > a:hover { - color: #ffffff; +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #ddd; } - -.navbar-inverse .nav > li > a:focus, -.navbar-inverse .nav > li > a:hover { - color: #ffffff; - background-color: transparent; +.panel-group .panel-footer { + border-top: 0; } - -.navbar-inverse .nav .active > a, -.navbar-inverse .nav .active > a:hover, -.navbar-inverse .nav .active > a:focus { - color: #ffffff; - background-color: #111111; +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd; } - -.navbar-inverse .navbar-link { - color: #999999; +.panel-default { + border-color: #ddd; } - -.navbar-inverse .navbar-link:hover { - color: #ffffff; +.panel-default > .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; } - -.navbar-inverse .divider-vertical { - border-right-color: #222222; - border-left-color: #111111; +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd; } - -.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, -.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, -.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { - color: #ffffff; - background-color: #111111; +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333; } - -.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { - border-top-color: #999999; - border-bottom-color: #999999; +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; } - -.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, -.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, -.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; +.panel-primary { + border-color: #337ab7; } - -.navbar-inverse .navbar-search .search-query { - color: #ffffff; - background-color: #515151; - border-color: #111111; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; +.panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7; } - -.navbar-inverse .navbar-search .search-query:-moz-placeholder { - color: #cccccc; +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; } - -.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { - color: #cccccc; +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; } - -.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { - color: #cccccc; +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; } - -.navbar-inverse .navbar-search .search-query:focus, -.navbar-inverse .navbar-search .search-query.focused { - padding: 5px 15px; - color: #333333; - text-shadow: 0 1px 0 #ffffff; - background-color: #ffffff; - border: 0; - outline: 0; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +.panel-success { + border-color: #d6e9c6; } - -.navbar-inverse .btn-navbar { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e0e0e; - *background-color: #040404; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); - background-image: -webkit-linear-gradient(top, #151515, #040404); - background-image: -o-linear-gradient(top, #151515, #040404); - background-image: linear-gradient(to bottom, #151515, #040404); - background-image: -moz-linear-gradient(top, #151515, #040404); - background-repeat: repeat-x; - border-color: #040404 #040404 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); - filter: progid:dximagetransform.microsoft.gradient(enabled=false); +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; } - -.navbar-inverse .btn-navbar:hover, -.navbar-inverse .btn-navbar:active, -.navbar-inverse .btn-navbar.active, -.navbar-inverse .btn-navbar.disabled, -.navbar-inverse .btn-navbar[disabled] { - color: #ffffff; - background-color: #040404; - *background-color: #000000; +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; } - -.navbar-inverse .btn-navbar:active, -.navbar-inverse .btn-navbar.active { - background-color: #000000 \9; +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; } - -.breadcrumb { - padding: 8px 15px; - margin: 0 0 20px; - list-style: none; - background-color: #f5f5f5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; } - -.breadcrumb li { - display: inline-block; - *display: inline; - text-shadow: 0 1px 0 #ffffff; - *zoom: 1; +.panel-info { + border-color: #bce8f1; } - -.breadcrumb .divider { - padding: 0 5px; - color: #ccc; +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; } - -.breadcrumb .active { - color: #999999; +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; } - -.pagination { - height: 40px; - margin: 20px 0; +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; } - -.pagination ul { - display: inline-block; - *display: inline; - margin-bottom: 0; - margin-left: 0; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - *zoom: 1; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; } - -.pagination ul > li { - display: inline; +.panel-warning { + border-color: #faebcc; } - -.pagination ul > li > a, -.pagination ul > li > span { - float: left; - padding: 0 14px; - line-height: 38px; - text-decoration: none; - background-color: #ffffff; - border: 1px solid #dddddd; - border-left-width: 0; +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; } - -.pagination ul > li > a:hover, -.pagination ul > .active > a, -.pagination ul > .active > span { - background-color: #f5f5f5; +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; } - -.pagination ul > .active > a, -.pagination ul > .active > span { - color: #999999; - cursor: default; +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; } - -.pagination ul > .disabled > span, -.pagination ul > .disabled > a, -.pagination ul > .disabled > a:hover { - color: #999999; - cursor: default; - background-color: transparent; +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; } - -.pagination ul > li:first-child > a, -.pagination ul > li:first-child > span { - border-left-width: 1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; +.panel-danger { + border-color: #ebccd1; } - -.pagination ul > li:last-child > a, -.pagination ul > li:last-child > span { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; } - -.pagination-centered { - text-align: center; +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; } - -.pagination-right { - text-align: right; +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; } - -.pager { - margin: 20px 0; - text-align: center; - list-style: none; - *zoom: 1; +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; } - -.pager:before, -.pager:after { - display: table; - line-height: 0; - content: ""; +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; } - -.pager:after { - clear: both; +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; } - -.pager li { - display: inline; +.embed-responsive-16by9 { + padding-bottom: 56.25%; } - -.pager a, -.pager span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; +.embed-responsive-4by3 { + padding-bottom: 75%; } - -.pager a:hover { - text-decoration: none; +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); } - -.pager .next a, -.pager .next span { - float: right; +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, .15); } - -.pager .previous a { - float: left; +.well-lg { + padding: 24px; + border-radius: 6px; } - -.pager .disabled a, -.pager .disabled a:hover, -.pager .disabled span { - color: #999999; - cursor: default; - background-color: #fff; +.well-sm { + padding: 9px; + border-radius: 3px; } - -.modal-open .modal .dropdown-menu { - z-index: 2050; +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2; } - -.modal-open .modal .dropdown.open { - *z-index: 2050; +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5; } - -.modal-open .modal .popover { - z-index: 2060; +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; } - -.modal-open .modal .tooltip { - z-index: 2080; +.modal-open { + overflow: hidden; } - -.modal-backdrop { +.modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; - z-index: 1040; - background-color: #000000; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; } - -.modal-backdrop.fade { - opacity: 0; +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; } - -.modal-backdrop, -.modal-backdrop.fade.in { - opacity: 0.8; - filter: alpha(opacity=80); +.modal-dialog { + position: relative; + width: auto; + margin: 10px; } - -.modal { - position: fixed; - top: 50%; - left: 50%; - z-index: 1050; - width: 560px; - margin: -250px 0 0 -280px; - overflow: auto; - background-color: #ffffff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.3); - *border: 1px solid #999; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +.modal-content { + position: relative; + background-color: #fff; -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); } - -.modal.fade { - top: -25%; - -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; - -moz-transition: opacity 0.3s linear, top 0.3s ease-out; - -o-transition: opacity 0.3s linear, top 0.3s ease-out; - transition: opacity 0.3s linear, top 0.3s ease-out; +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; } - -.modal.fade.in { - top: 50%; +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; +} +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: .5; } - .modal-header { - padding: 9px 15px; - border-bottom: 1px solid #eee; + padding: 15px; + border-bottom: 1px solid #e5e5e5; } - .modal-header .close { - margin-top: 2px; + margin-top: -2px; } - -.modal-header h3 { +.modal-title { margin: 0; - line-height: 30px; + line-height: 1.42857143; } - .modal-body { - max-height: 400px; + position: relative; padding: 15px; - overflow-y: auto; -} - -.modal-form { - margin-bottom: 0; } - .modal-footer { - padding: 14px 15px 15px; - margin-bottom: 0; + padding: 15px; text-align: right; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - *zoom: 1; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; -} - -.modal-footer:before, -.modal-footer:after { - display: table; - line-height: 0; - content: ""; -} - -.modal-footer:after { - clear: both; + border-top: 1px solid #e5e5e5; } - .modal-footer .btn + .btn { margin-bottom: 0; margin-left: 5px; } - .modal-footer .btn-group .btn + .btn { margin-left: -1px; } - +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} .tooltip { position: absolute; - z-index: 1030; + z-index: 1070; display: block; - padding: 5px; - font-size: 11px; - opacity: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; filter: alpha(opacity=0); - visibility: visible; -} + opacity: 0; + line-break: auto; +} .tooltip.in { - opacity: 0.8; - filter: alpha(opacity=80); + filter: alpha(opacity=90); + opacity: .9; } - .tooltip.top { + padding: 5px 0; margin-top: -3px; } - .tooltip.right { + padding: 0 5px; margin-left: 3px; } - .tooltip.bottom { + padding: 5px 0; margin-top: 3px; } - .tooltip.left { + padding: 0 5px; margin-left: -3px; } - .tooltip-inner { max-width: 200px; padding: 3px 8px; - color: #ffffff; + color: #fff; text-align: center; - text-decoration: none; - background-color: #000000; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; + background-color: #000; + border-radius: 4px; } - .tooltip-arrow { position: absolute; width: 0; @@ -5040,735 +6048,713 @@ input[type="submit"].btn.btn-mini { border-color: transparent; border-style: solid; } - .tooltip.top .tooltip-arrow { bottom: 0; left: 50%; margin-left: -5px; - border-top-color: #000000; border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; } - .tooltip.right .tooltip-arrow { top: 50%; left: 0; margin-top: -5px; - border-right-color: #000000; border-width: 5px 5px 5px 0; + border-right-color: #000; } - .tooltip.left .tooltip-arrow { top: 50%; right: 0; margin-top: -5px; - border-left-color: #000000; border-width: 5px 0 5px 5px; + border-left-color: #000; } - .tooltip.bottom .tooltip-arrow { top: 0; left: 50%; margin-left: -5px; - border-bottom-color: #000000; border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; } - .popover { position: absolute; top: 0; left: 0; - z-index: 1010; + z-index: 1060; display: none; - width: 236px; + max-width: 276px; padding: 1px; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.popover.top { - margin-bottom: 10px; -} - -.popover.right { - margin-left: 10px; -} - -.popover.bottom { - margin-top: 10px; -} - -.popover.left { - margin-right: 10px; -} - -.popover-title { - padding: 8px 14px; - margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; + font-style: normal; font-weight: normal; - line-height: 18px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - -webkit-border-radius: 5px 5px 0 0; - -moz-border-radius: 5px 5px 0 0; - border-radius: 5px 5px 0 0; -} - -.popover-content { - padding: 9px 14px; -} - -.popover-content p, -.popover-content ul, -.popover-content ol { - margin-bottom: 0; -} - -.popover .arrow, -.popover .arrow:after { - position: absolute; - display: inline-block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.popover .arrow:after { - z-index: -1; - content: ""; -} - -.popover.top .arrow { - bottom: -10px; - left: 50%; - margin-left: -10px; - border-top-color: #ffffff; - border-width: 10px 10px 0; -} - -.popover.top .arrow:after { - bottom: -1px; - left: -11px; - border-top-color: rgba(0, 0, 0, 0.25); - border-width: 11px 11px 0; -} - -.popover.right .arrow { - top: 50%; - left: -10px; - margin-top: -10px; - border-right-color: #ffffff; - border-width: 10px 10px 10px 0; -} - -.popover.right .arrow:after { - bottom: -11px; - left: -1px; - border-right-color: rgba(0, 0, 0, 0.25); - border-width: 11px 11px 11px 0; -} - -.popover.bottom .arrow { - top: -10px; - left: 50%; - margin-left: -10px; - border-bottom-color: #ffffff; - border-width: 0 10px 10px; -} - -.popover.bottom .arrow:after { - top: -1px; - left: -11px; - border-bottom-color: rgba(0, 0, 0, 0.25); - border-width: 0 11px 11px; -} - -.popover.left .arrow { - top: 50%; - right: -10px; - margin-top: -10px; - border-left-color: #ffffff; - border-width: 10px 0 10px 10px; -} - -.popover.left .arrow:after { - right: -1px; - bottom: -11px; - border-left-color: rgba(0, 0, 0, 0.25); - border-width: 11px 0 11px 11px; -} - -.thumbnails { - margin-left: -20px; - list-style: none; - *zoom: 1; -} - -.thumbnails:before, -.thumbnails:after { - display: table; - line-height: 0; - content: ""; -} - -.thumbnails:after { - clear: both; -} - -.row-fluid .thumbnails { - margin-left: 0; -} - -.thumbnails > li { - float: left; - margin-bottom: 20px; - margin-left: 20px; -} - -.thumbnail { - display: block; - padding: 4px; - line-height: 20px; - border: 1px solid #ddd; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} - -a.thumbnail:hover { - border-color: #0088cc; - -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); -} - -.thumbnail > img { - display: block; - max-width: 100%; - margin-right: auto; - margin-left: auto; -} - -.thumbnail .caption { - padding: 9px; - color: #555555; -} - -.label, -.badge { - font-size: 11.844px; - font-weight: bold; - line-height: 14px; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - white-space: nowrap; - vertical-align: baseline; - background-color: #999999; -} - -.label { - padding: 1px 4px 2px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.badge { - padding: 1px 9px 2px; - -webkit-border-radius: 9px; - -moz-border-radius: 9px; - border-radius: 9px; -} - -a.label:hover, -a.badge:hover { - color: #ffffff; + line-height: 1.42857143; + text-align: left; + text-align: start; text-decoration: none; - cursor: pointer; -} - -.label-important, -.badge-important { - background-color: #b94a48; -} - -.label-important[href], -.badge-important[href] { - background-color: #953b39; -} - -.label-warning, -.badge-warning { - background-color: #f89406; -} - -.label-warning[href], -.badge-warning[href] { - background-color: #c67605; -} - -.label-success, -.badge-success { - background-color: #468847; -} - -.label-success[href], -.badge-success[href] { - background-color: #356635; -} - -.label-info, -.badge-info { - background-color: #3a87ad; -} - -.label-info[href], -.badge-info[href] { - background-color: #2d6987; -} - -.label-inverse, -.badge-inverse { - background-color: #333333; -} - -.label-inverse[href], -.badge-inverse[href] { - background-color: #1a1a1a; -} - -.btn .label, -.btn .badge { - position: relative; - top: -1px; -} - -.btn-mini .label, -.btn-mini .badge { - top: 0; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-moz-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-ms-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-o-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f7f7f7; - background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); - background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); - background-repeat: repeat-x; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} - -.progress .bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - color: #ffffff; - text-align: center; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e90d2; - background-image: -moz-linear-gradient(top, #149bdf, #0480be); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); - background-image: -webkit-linear-gradient(top, #149bdf, #0480be); - background-image: -o-linear-gradient(top, #149bdf, #0480be); - background-image: linear-gradient(to bottom, #149bdf, #0480be); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-transition: width 0.6s ease; - -moz-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); -.progress .bar + .bar { - -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + line-break: auto; } - -.progress-striped .bar { - background-color: #149bdf; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - -moz-background-size: 40px 40px; - -o-background-size: 40px 40px; - background-size: 40px 40px; +.popover.top { + margin-top: -10px; } - -.progress.active .bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -moz-animation: progress-bar-stripes 2s linear infinite; - -ms-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; +.popover.right { + margin-left: 10px; } - -.progress-danger .bar, -.progress .bar-danger { - background-color: #dd514c; - background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); - background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +.popover.bottom { + margin-top: 10px; } - -.progress-danger.progress-striped .bar, -.progress-striped .bar-danger { - background-color: #ee5f5b; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +.popover.left { + margin-left: -10px; } - -.progress-success .bar, -.progress .bar-success { - background-color: #5eb95e; - background-image: -moz-linear-gradient(top, #62c462, #57a957); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); - background-image: -webkit-linear-gradient(top, #62c462, #57a957); - background-image: -o-linear-gradient(top, #62c462, #57a957); - background-image: linear-gradient(to bottom, #62c462, #57a957); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; } - -.progress-success.progress-striped .bar, -.progress-striped .bar-success { - background-color: #62c462; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +.popover-content { + padding: 9px 14px; } - -.progress-info .bar, -.progress .bar-info { - background-color: #4bb1cf; - background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); - background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); - background-image: -o-linear-gradient(top, #5bc0de, #339bb9); - background-image: linear-gradient(to bottom, #5bc0de, #339bb9); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } - -.progress-info.progress-striped .bar, -.progress-striped .bar-info { - background-color: #5bc0de; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +.popover > .arrow { + border-width: 11px; } - -.progress-warning .bar, -.progress .bar-warning { - background-color: #faa732; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(to bottom, #fbb450, #f89406); - background-repeat: repeat-x; - filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); +.popover > .arrow:after { + content: ""; + border-width: 10px; } - -.progress-warning.progress-striped .bar, -.progress-striped .bar-warning { - background-color: #fbb450; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, .25); + border-bottom-width: 0; } - -.accordion { - margin-bottom: 20px; +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; } - -.accordion-group { - margin-bottom: 2px; - border: 1px solid #e5e5e5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, .25); + border-left-width: 0; } - -.accordion-heading { - border-bottom: 0; +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; } - -.accordion-heading .accordion-toggle { - display: block; - padding: 8px 15px; +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, .25); } - -.accordion-toggle { - cursor: pointer; +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; } - -.accordion-inner { - padding: 9px 15px; - border-top: 1px solid #e5e5e5; +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, .25); +} +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; } - .carousel { position: relative; - margin-bottom: 20px; - line-height: 1; } - .carousel-inner { position: relative; width: 100%; overflow: hidden; } - -.carousel .item { +.carousel-inner > .item { position: relative; display: none; - -webkit-transition: 0.6s ease-in-out left; - -moz-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; + -webkit-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; } - -.carousel .item > img { - display: block; +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { line-height: 1; } +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform .6s ease-in-out; + -o-transition: -o-transform .6s ease-in-out; + transition: transform .6s ease-in-out; -.carousel .active, -.carousel .next, -.carousel .prev { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + } + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { display: block; } - -.carousel .active { +.carousel-inner > .active { left: 0; } - -.carousel .next, -.carousel .prev { +.carousel-inner > .next, +.carousel-inner > .prev { position: absolute; top: 0; width: 100%; } - -.carousel .next { +.carousel-inner > .next { left: 100%; } - -.carousel .prev { +.carousel-inner > .prev { left: -100%; } - -.carousel .next.left, -.carousel .prev.right { +.carousel-inner > .next.left, +.carousel-inner > .prev.right { left: 0; } - -.carousel .active.left { +.carousel-inner > .active.left { left: -100%; } - -.carousel .active.right { +.carousel-inner > .active.right { left: 100%; } - .carousel-control { position: absolute; - top: 40%; - left: 15px; - width: 40px; - height: 40px; - margin-top: -20px; - font-size: 60px; - font-weight: 100; - line-height: 30px; - color: #ffffff; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; text-align: center; - background: #222222; - border: 3px solid #ffffff; - -webkit-border-radius: 23px; - -moz-border-radius: 23px; - border-radius: 23px; - opacity: 0.5; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + background-color: rgba(0, 0, 0, 0); filter: alpha(opacity=50); + opacity: .5; +} +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; } - .carousel-control.right { - right: 15px; + right: 0; left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; } - -.carousel-control:hover { - color: #ffffff; +.carousel-control:hover, +.carousel-control:focus { + color: #fff; text-decoration: none; - opacity: 0.9; filter: alpha(opacity=90); + outline: 0; + opacity: .9; } - -.carousel-caption { +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { position: absolute; - right: 0; - bottom: 0; - left: 0; - padding: 15px; - background: #333333; - background: rgba(0, 0, 0, 0.75); + top: 50%; + z-index: 5; + display: inline-block; + margin-top: -10px; } - -.carousel-caption h4, -.carousel-caption p { - line-height: 20px; - color: #ffffff; +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; } - -.carousel-caption h4 { - margin: 0 0 5px; +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; } - -.carousel-caption p { - margin-bottom: 0; +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + font-family: serif; + line-height: 1; } - -.hero-unit { - padding: 60px; - margin-bottom: 30px; - background-color: #eeeeee; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; +.carousel-control .icon-prev:before { + content: '\2039'; } - -.hero-unit h1 { - margin-bottom: 0; - font-size: 60px; - line-height: 1; - letter-spacing: -1px; - color: inherit; +.carousel-control .icon-next:before { + content: '\203a'; } - -.hero-unit p { - font-size: 18px; - font-weight: 200; - line-height: 30px; - color: inherit; +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px; +} +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; +} +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -10px; + font-size: 30px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -10px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -10px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-header:before, +.modal-header:after, +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-header:after, +.modal-footer:after { + clear: both; +} +.center-block { + display: block; + margin-right: auto; + margin-left: auto; } - .pull-right { - float: right; + float: right !important; } - .pull-left { - float: left; + float: left !important; } - .hide { - display: none; + display: none !important; } - .show { - display: block; + display: block !important; } - .invisible { visibility: hidden; } - +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; +} .affix { position: fixed; } +@-ms-viewport { + width: device-width; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} +/*# sourceMappingURL=bootstrap.css.map */ diff --git a/plugins/org.yakindu.sct.doc.user/css/custom.css b/plugins/org.yakindu.sct.doc.user/css/custom.css deleted file mode 100644 index c1d1ed2b94..0000000000 --- a/plugins/org.yakindu.sct.doc.user/css/custom.css +++ /dev/null @@ -1,300 +0,0 @@ -@CHARSET "ISO-8859-1"; - -#seperator { - height: 60px; - overflow: hidden; - margin-bottom: 25px; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, - 255, 0.15) ), color-stop(0.25, transparent), - color-stop(0.5, transparent), - color-stop(0.5, rgba(255, 255, 255, 0.15) ), - color-stop(0.75, rgba(255, 255, 255, 0.15) ), - color-stop(0.75, transparent), to(transparent) ); - background-image: -webkit-linear-gradient(135deg, rgba(255, 255, 255, 0.15) - 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); - background-image: -moz-linear-gradient(135deg, rgba(255, 255, 255, 0.15) - 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); - background-image: -o-linear-gradient(135deg, rgba(255, 255, 255, 0.15) - 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); - background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, - transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); - -webkit-background-size: 60px 60px; - -moz-background-size: 60px 60px; - -o-background-size: 60px 60px; - background-size: 60px 60px; - z-index: 1000; -} - -.modal { - position: fixed; - left: 50%; - right : 50%; - width : 1000px; - margin: -420px 0 0 -500px; -} - -.modal-body { - max-height: 730px; -} - -.twitter-follow-button { - padding: 5px; -} - -. -.green { - background-color: rgba(126, 181, 25, 0.45); -} - -.blue { - background-color: rgba(7, 46, 99, 0.45); -} - -.orange { - background-color: rgba(247, 169, 15, 0.45); -} - -.white { - background-color: white; -} - -.shadowed { - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); -} - -.wrapping { - padding: 20px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.small { - width: 270px; - height: 180px; -} - -#bgimg { - background: #bee2fc - url(http://www.yakindu.org/wp-content/themes/yakindu/layout/images/Hintergrund-oben.jpg) - top center no-repeat; -} - -#screencast { - height: 320px; - width: 440px; - background-image: url("http://www.itemis.com/binary.ashx?id=43434"); - background-position: center; - z-index: 8; -} - -#glass-effect { - padding-top: 40px; - background-image: url(img/pattern1.jpg) top left; - background-color: rgba(238, 238, 238, 0.6); -} - -.screencast_overlay:hover { - opacity: 1; - filter: alpha(opacity = 100); -} - -.screencast_overlay { - height: 100%; - width: 100%; - opacity: 0.4; - filter: alpha(opacity = 40); - background: url("../img/player_play.png") center center no-repeat; - z-index: 10; -} - -body { - margin: 2%; -} - - -img.standard-image { - max-width: 61.8%; - min-width: 38.2%; - height: auto; - text-align: center; - display: block; - margin-left: auto; - margin-right: auto; - - box-shadow: 10px 10px 20px #888888; - border-radius: 4px; - margin-top: 1.5ex; - margin-bottom: 2.5ex; -} - -img.tiny { - width:14.6%; - min-width:14.6%; -} - -img.small { - width:38.2%; -} - -img.large { - width:61.8%; -} - -img.full { - width:100%; - max-width:100%; -} - -img.shadowless { - box-shadow: none; - margin-bottom: 0px; -} - -img.inlinemediaobject { - display: inline; - height: 1.1em; - width: auto; /* For keeping aspect ratio */ - min-width: 0; /* Overrides min-width from img, as 'initial' does not work as intended */ -} - - - -/* Tables */ - -.informaltable td { - border-color: #000; - border-radius: 0%; - border-style: solid; - border-width: 1px; - padding: 1ex; - vertical-align: top; -} - - - -/* The class "scedit" is used in tables describing working with the statechart editor. - These tables typically consist of two columns with a textual description in the - left column and a screenshot on the right. */ - -table.scedit { - width: auto; - border-collapse: collapse; -} - -tr.scedit { - vertical-align: top; -} - -table.scedit td { - border-color: #000; - border-radius: 0%; - border-style: solid; - border-width: 0px; - padding-bottom: 1ex; - vertical-align: top; -} - -table.scedit img { - max-width: 100%; - margin-left: 0px; - margin-right: 0px; - box-shadow: 4px 4px 2px #bbb; -} - -.application, .eclipse-view, .guibutton, .guimenuitem, .sct-state, .sct-variable, .sct-event, .sct-trigger { - font-style: italic; -} - -.application-ysct { - font-weight: bold; - color: #555566; -} - - -.note { - padding-left: 1em; - border-style: solid; - border-width: 1px; - border-color: black; - background: #d0d0d0; - font-size: 50%; - line-height: 100%; - margin-top: 0ex; - margin-left: 0ex; - margin-right: 0ex; - margin-bottom: 2ex; -} - -.warning { - padding-left: 1em; - border-style: solid; - border-width: 1px; - border-color: black; - background: #ffd0d0; - margin-top: 0ex; - margin-left: 0ex; - margin-right: 0ex; - margin-bottom: 2ex; -} - -.note h3 { - font-size: 60%; - line-height: 100%; -} - - - -/* Settings for "synopsys" sub-elements: */ -pre.synopsis code.literal { - font-weight: bold; - font-style: normal; -} - -pre.synopsis code.varname { - font-weight: normal; - font-style: italic; -} - -pre { - line-height: 100%; -} - - - -div.example { - padding-left: 2%; - padding-right: 2%; - padding-top: 2%; - padding-bottom: 1%; - border-style: solid; - border-width: 1px; -} - - -.to-be-written { - background-color: yellow; -} - - -body {counter-reset: h1} -h1 {counter-reset: h2} -h2 {counter-reset: h3} -h3 {counter-reset: h4} -h4 {counter-reset: h5} -h5 {counter-reset: h6} - -h1:before {counter-increment: h1; content: counter(h1) ". "} -h2:before {counter-increment: h2; content: counter(h1) "." counter(h2) ". "} -h3:before {counter-increment: h3; content: counter(h1) "." counter(h2) "." counter(h3) ". "} -h4:before {counter-increment: h4; content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) ". "} -h5:before {counter-increment: h5; content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) ". "} -h6:before {counter-increment: h6; content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) ". "} - -h1.nocount:before h2.nocount:before, h3.nocount:before, h4.nocount:before, h5.nocount:before, h6.nocount:before { content: ""; counter-increment: none } diff --git a/plugins/org.yakindu.sct.doc.user/css/local.css b/plugins/org.yakindu.sct.doc.user/css/local.css new file mode 100644 index 0000000000..2ebe365513 --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/css/local.css @@ -0,0 +1,5 @@ +@CHARSET "ISO-8859-1"; + +body { + margin: 2%; +} diff --git a/plugins/org.yakindu.sct.doc.user/css/style.css b/plugins/org.yakindu.sct.doc.user/css/style.css index 6d31e365e2..077b58e61e 100644 --- a/plugins/org.yakindu.sct.doc.user/css/style.css +++ b/plugins/org.yakindu.sct.doc.user/css/style.css @@ -1,2 +1,3 @@ @import url("../css/bootstrap.css"); -@import url("../css/custom.css"); \ No newline at end of file +@import url("../css/local.css"); +@import url("../css/ysct.css"); diff --git a/plugins/org.yakindu.sct.doc.user/css/ysct.css b/plugins/org.yakindu.sct.doc.user/css/ysct.css new file mode 100644 index 0000000000..36321cc444 --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/css/ysct.css @@ -0,0 +1,81 @@ +/* Images */ +img.standard-image { + max-width: 61.8%; + min-width: 38.2%; + height: auto; + text-align: center; + display: block; + margin-left: auto; + margin-right: auto; + box-shadow: 10px 10px 20px #888888; + -webkit-box-shadow: 10px 10px 20px #888888; + -moz-box-shadow: 10px 10px 20px #888888; + border-radius: 4px; + margin-top: 1.5ex; + margin-bottom: 2.5ex; +} +img.small { + width:38.2%; +} +img.full { + width:100%; + max-width:100%; +} +img.shadowless { + box-shadow: none; + margin-bottom: 0px; +} +img.inlinemediaobject { + line-height: 1; + vertical-align: middle; +} + +/* Tables */ +/* The class "scedit" is used in tables describing working with the statechart editor. + These tables typically consist of two columns with a textual description in the + left column and a screenshot on the right. */ +table.scedit { + width: auto; + border-collapse: collapse; +} +tr.scedit { + vertical-align: top +} +table.scedit td { + border-color: #000; + border-radius: 0%; + border-style: solid; + border-width: 0px; + padding-bottom: 1ex; + vertical-align: top; +} +table.scedit img { + max-width: 100%; + margin-left: 0px; + margin-right: 0px; + box-shadow: 4px 4px 2px #bbb; +} + +/* Counter */ +body {counter-reset: h1} +h1 {counter-reset: h2} +h2 {counter-reset: h3} +h3 {counter-reset: h4} +h4 {counter-reset: h5} +h5 {counter-reset: h6} + +.body-container h1:before {counter-increment: h1; content: counter(h1) ". "} +.body-container h2:before {counter-increment: h2; content: counter(h1) "." counter(h2) ". "} +.body-container h3:before {counter-increment: h3; content: counter(h1) "." counter(h2) "." counter(h3) ". "} +.body-container h4:before {counter-increment: h4; content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) ". "} +.body-container h5:before {counter-increment: h5; content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) ". "} +.body-container h6:before {counter-increment: h6; content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) ". "} + +h1.nocount:before h2.nocount:before, h3.nocount:before, h4.nocount:before, h5.nocount:before, h6.nocount:before { content: ""; counter-increment: none } + + +@media (max-width: 767px) { + code { + word-wrap: break-word; + } +} diff --git a/plugins/org.yakindu.sct.doc.user/plugin.xml b/plugins/org.yakindu.sct.doc.user/plugin.xml index 716d7d81b7..459afb1c4f 100644 --- a/plugins/org.yakindu.sct.doc.user/plugin.xml +++ b/plugins/org.yakindu.sct.doc.user/plugin.xml @@ -4,13 +4,17 @@ - - - - - - - + + + + + + + + + + + diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_010_eclipse_menu_install_new_software.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_010_eclipse_menu_install_new_software.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_010_eclipse_menu_install_new_software.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_010_eclipse_menu_install_new_software.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_020_eclipse_install_wizard.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_020_eclipse_install_wizard.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_020_eclipse_install_wizard.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_020_eclipse_install_wizard.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_030_eclipse_add_repository.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_030_eclipse_add_repository.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_030_eclipse_add_repository.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_030_eclipse_add_repository.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_030_eclipse_add_repository.xcf b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_030_eclipse_add_repository.xcf similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_030_eclipse_add_repository.xcf rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_030_eclipse_add_repository.xcf diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_040_eclipse_software_items.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_040_eclipse_software_items.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_040_eclipse_software_items.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_040_eclipse_software_items.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_040_eclipse_software_items.xcf b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_040_eclipse_software_items.xcf similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_040_eclipse_software_items.xcf rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_040_eclipse_software_items.xcf diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_040_eclipse_software_items_all.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_040_eclipse_software_items_all.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_040_eclipse_software_items_all.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_040_eclipse_software_items_all.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_050_eclipse_trouble.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_050_eclipse_trouble.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_050_eclipse_trouble.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_050_eclipse_trouble.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_060_eclipse_review.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_060_eclipse_review.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_060_eclipse_review.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_060_eclipse_review.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_070_eclipse_licenses.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_070_eclipse_licenses.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_070_eclipse_licenses.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_070_eclipse_licenses.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_080_eclipse_installation.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_080_eclipse_installation.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_080_eclipse_installation.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_080_eclipse_installation.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_090_eclipse_restart.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_090_eclipse_restart.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_090_eclipse_restart.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_090_eclipse_restart.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_100_eclipse_sct_help.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_100_eclipse_sct_help.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_install_100_eclipse_sct_help.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_100_eclipse_sct_help.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_update_010_eclipse_menu_check_for_updates.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_update_010_eclipse_menu_check_for_updates.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_update_010_eclipse_menu_check_for_updates.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_update_010_eclipse_menu_check_for_updates.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_update_020_eclipse_automatic_updates.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_update_020_eclipse_automatic_updates.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/eclipse_update_020_eclipse_automatic_updates.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_eclipse_update_020_eclipse_automatic_updates.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/installed_jres_010.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_installed_jres_010.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/installed_jres_010.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_installed_jres_010.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_010_eclipse_folder.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_010_eclipse_folder.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_010_eclipse_folder.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_010_eclipse_folder.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_020_eclipse_contents.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_020_eclipse_contents.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_020_eclipse_contents.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_020_eclipse_contents.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_030_eclipse_splash.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_030_eclipse_splash.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_030_eclipse_splash.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_030_eclipse_splash.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_040_eclipse_workspace_dialog.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_040_eclipse_workspace_dialog.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_040_eclipse_workspace_dialog.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_040_eclipse_workspace_dialog.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_050_eclipse_welcome.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_050_eclipse_welcome.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_050_eclipse_welcome.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_050_eclipse_welcome.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_060_eclipse_workbench.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_060_eclipse_workbench.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/linux_install_060_eclipse_workbench.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_linux_060_eclipse_workbench.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_010_applications.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_010_applications.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_010_applications.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_010_applications.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_020_security_warning.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_020_security_warning.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_020_security_warning.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_020_security_warning.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_050_eclipse_splash.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_050_eclipse_splash.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_050_eclipse_splash.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_050_eclipse_splash.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_060_eclipse_workspace_dialog.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_060_eclipse_workspace_dialog.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_060_eclipse_workspace_dialog.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_060_eclipse_workspace_dialog.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_070_eclipse_welcome.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_070_eclipse_welcome.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_070_eclipse_welcome.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_070_eclipse_welcome.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_080_eclipse_workbench.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_080_eclipse_workbench.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/macosx_install_080_eclipse_workbench.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_macosx_080_eclipse_workbench.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_010_eclipse_extract_1.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_010_eclipse_extract_1.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_010_eclipse_extract_1.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_010_eclipse_extract_1.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_020_eclipse_extract_2.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_020_eclipse_extract_2.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_020_eclipse_extract_2.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_020_eclipse_extract_2.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_030_eclipse_folder.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_030_eclipse_folder.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_030_eclipse_folder.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_030_eclipse_folder.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_040_eclipse_contents.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_040_eclipse_contents.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_040_eclipse_contents.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_040_eclipse_contents.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_045_security_warning.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_045_security_warning.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_045_security_warning.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_045_security_warning.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_050_eclipse_splash.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_050_eclipse_splash.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_050_eclipse_splash.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_050_eclipse_splash.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_060_eclipse_workspace_dialog.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_060_eclipse_workspace_dialog.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_060_eclipse_workspace_dialog.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_060_eclipse_workspace_dialog.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_070_eclipse_welcome.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_070_eclipse_welcome.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_070_eclipse_welcome.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_070_eclipse_welcome.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_080_eclipse_workbench.png b/plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_080_eclipse_workbench.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/images/windows7_install_080_eclipse_workbench.png rename to plugins/org.yakindu.sct.doc.user/src/installation/images/inst_windows7_080_eclipse_workbench.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/00_installation.textile b/plugins/org.yakindu.sct.doc.user/src/installation/installation.textile similarity index 82% rename from plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/00_installation.textile rename to plugins/org.yakindu.sct.doc.user/src/installation/installation.textile index a09889a41b..b28525b924 100644 --- a/plugins/org.yakindu.sct.doc.user/src/Part1-Installation-Guide/00_installation.textile +++ b/plugins/org.yakindu.sct.doc.user/src/installation/installation.textile @@ -48,7 +48,7 @@ h3(#unpacking-the-downloaded-file). Unpacking the downloaded file Unpack the software distribution file. Use the file explorer to open the directory you downloaded the software distribution file to, right-click on the latter, and select _Extract All..._ in the context menu. -!(standard-image)images/windows7_install_010_eclipse_extract_1.png(Unpacking the downloaded file on Windows [1])! +!(standard-image)images/inst_windows7_010_eclipse_extract_1.png(Unpacking the downloaded file on Windows [1])! p=. Unpacking the downloaded file on Windows [1] @@ -56,7 +56,7 @@ Choose a directory for YAKINDU Statechart Tools (YAKINDU SCT). The example below Depending on your permissions, you might not be able to create a directory and install software under _C:\Program Files_. In this case, please choose another installation directory at a location you are allowed to write to. -!(standard-image)images/windows7_install_020_eclipse_extract_2.png(Unpacking the downloaded file on Windows [2])! +!(standard-image)images/inst_windows7_020_eclipse_extract_2.png(Unpacking the downloaded file on Windows [2])! p=. Unpacking the downloaded file on Windows [2] @@ -64,13 +64,13 @@ Click on _Extract_ to start the extraction process. With Window's built-in unpac After unpacking, you will find a folder _yakindu-sct_ in your installation directory, i. e. _C:\Program Files\YAKINDU\yakindu-sct_ in our example, as shown in the image below: -!(standard-image)images/windows7_install_030_eclipse_folder.png(The extracted "yakindu-sct" folder)! +!(standard-image)images/inst_windows7_030_eclipse_folder.png(The extracted "yakindu-sct" folder)! p=. The extracted _yakindu-sct_ folder The contents of the _yakindu-sct_ folder looks like this: -!(standard-image)images/windows7_install_040_eclipse_contents.png(Contents of the extracted "yakindu-sct" folder)! +!(standard-image)images/inst_windows7_040_eclipse_contents.png(Contents of the extracted "yakindu-sct" folder)! p=. Contents of the extracted _yakindu-sct_ folder @@ -84,7 +84,7 @@ To do so, please double-click (or single-click, depending on your Windows settin Depending on the Windows settings and your permissions, you might get the following security warning, indicating that you downloaded the application from a potentially unsecure source: -!(standard-image)images/windows7_install_045_security_warning.png(Windows security warning)! +!(standard-image)images/inst_windows7_045_security_warning.png(Windows security warning)! p=. Windows security warning @@ -92,7 +92,7 @@ Uncheck the _Always ask before opening this file_ option. Click _Run_ to continu While YAKINDU Statechart Tools is starting up, it is showing a splash screen: -!(standard-image)images/windows7_install_050_eclipse_splash.png(YAKINDU Statechart Tools starting up and showing a splash screen)! +!(standard-image)images/inst_windows7_050_eclipse_splash.png(YAKINDU Statechart Tools starting up and showing a splash screen)! p=. YAKINDU Statechart Tools starting up and showing a splash screen @@ -100,7 +100,7 @@ The software needs a _workspace_ directory where it stores its so-called project In the example below, we chose the _C:\Users\joedoe\workspace_ directory as our workspace. We also checked the _"Use this as the default and do not ask again"_ option. This is sensible, because on subsequent startups, YAKINDU Statechart Tools won't ask for a workspace directory again. Instead it will always use the one we chose once and forever. (You can still change the workspace later via _File → Switch Workspace_ in the main menu.) -!(standard-image)images/windows7_install_060_eclipse_workspace_dialog.png(Selecting a workspace)! +!(standard-image)images/inst_windows7_060_eclipse_workspace_dialog.png(Selecting a workspace)! p=. Selecting a workspace @@ -108,19 +108,19 @@ Click on the _OK_ button to proceed. On the first start, YAKINDU Statechart Tools presents a _Welcome_ window: -!(standard-image)images/windows7_install_070_eclipse_welcome.png(YAKINDU Statechart Tools presenting the "Welcome" window)! +!(standard-image)images/inst_windows7_070_eclipse_welcome.png(YAKINDU Statechart Tools presenting the "Welcome" window)! p=. YAKINDU Statechart Tools presenting the "Welcome" window You can browse the material shown here, if you want. When you are done, please close the _Welcome_ tab or click on _Workbench_ at the upper right. Both actions are leading to the workbench: -!(standard-image)images/windows7_install_080_eclipse_workbench.png(The YAKINDU Statechart Tools workbench)! +!(standard-image)images/inst_windows7_080_eclipse_workbench.png(The YAKINDU Statechart Tools workbench)! p=. The YAKINDU Statechart Tools workbench This is your working environment now. Congratulations, you have just installed YAKINDU Statechart Tools with Eclipse! -You can "proceed":../Part2-User-Guide/20_tutorial.html#oss_comprehensive-tutorial now to create your first YAKINDU Statecharts Tools project. +You can "proceed":../tutorials/tutorials.html now to create your first YAKINDU Statecharts Tools project. h2(#installing-on-macosx). Installing on Mac OS X @@ -134,7 +134,7 @@ Unpacking will provide you with the _YAKINDU SCT_ application bundle. Move the unpacked application bundle to your _Applications_ folder. Alternatively, you can also move it somewhere else as you see fit. The screenshot below shows the _YAKINDU SCT_ application bundle having been moved to _Applications_. -!(standard-image shadowless)images/macosx_install_010_applications.png(The YAKINDU Statecharts Tools application in the "Applications" directory)! +!(standard-image shadowless)images/inst_macosx_010_applications.png(The YAKINDU Statecharts Tools application in the "Applications" directory)! p=. The YAKINDU Statecharts Tools application in the "Applications" directory @@ -148,7 +148,7 @@ To do so, please double-click on the _YAKINDU_ symbol shown in the sample screen Upon the first start, Mac OS X will verify the application and show you the following security warning, indicating that you did not download the application from Apple's App Store, but from a potentially unsecure source instead: -!(standard-image shadowless)images/macosx_install_020_security_warning.png(Mac OS X warning)! +!(standard-image shadowless)images/inst_macosx_020_security_warning.png(Mac OS X warning)! p=. Mac OS X warning @@ -156,7 +156,7 @@ Click _Open_ to continue starting the application. Subsequently starting YAKINDU While YAKINDU Statechart Tools is starting up, it is showing a splash screen: -!(standard-image shadowless)images/macosx_install_050_eclipse_splash.png(YAKINDU Statechart Tools starting up and showing a splash screen)! +!(standard-image shadowless)images/inst_macosx_050_eclipse_splash.png(YAKINDU Statechart Tools starting up and showing a splash screen)! p=. YAKINDU Statechart Tools starting up and showing a splash screen @@ -164,7 +164,7 @@ The software needs a _workspace_ directory where it stores its so-called project In the example below, we chose the _/Users/joedoe/workspace_ directory as our workspace. We also checked the _"Use this as the default and do not ask again"_ option. This is sensible, because on subsequent startups, YAKINDU Statechart Tools won't ask for a workspace directory again. Instead it will always use the one we chose once and forever. (You can still change the workspace later via _File → Switch Workspace_ in the main menu.) -!(standard-image shadowless)images/macosx_install_060_eclipse_workspace_dialog.png(Selecting a workspace)! +!(standard-image shadowless)images/inst_macosx_060_eclipse_workspace_dialog.png(Selecting a workspace)! p=. Selecting a workspace @@ -172,19 +172,19 @@ Click on the _OK_ button to proceed. On the first start, YAKINDU Statechart Tools presents a _Welcome_ window: -!(standard-image shadowless)images/macosx_install_070_eclipse_welcome.png(YAKINDU Statechart Tools presenting the "Welcome" window)! +!(standard-image shadowless)images/inst_macosx_070_eclipse_welcome.png(YAKINDU Statechart Tools presenting the "Welcome" window)! p=. YAKINDU Statechart Tools presenting the "Welcome" window You can browse the material shown here, if you want. When you are done, please close the _Welcome_ tab or click on _Workbench_ at the upper right. Both actions are leading to the workbench: -!(standard-image shadowless)images/macosx_install_080_eclipse_workbench.png(The YAKINDU Statechart Tools workbench)! +!(standard-image shadowless)images/inst_macosx_080_eclipse_workbench.png(The YAKINDU Statechart Tools workbench)! p=. The YAKINDU Statechart Tools workbench This is your working environment now. Congratulations, you have just installed YAKINDU Statechart Tools with Eclipse! -You can "proceed":../Part2-User-Guide/20_tutorial.html#oss_comprehensive-tutorial now to create your first YAKINDU Statecharts Tools project. +You can "proceed":../tutorials/tutorials.html now to create your first YAKINDU Statecharts Tools project. h2(#installing-on-linux). Installing on Linux @@ -206,13 +206,13 @@ bc. unzip /download/sct-linux.gtk.x86_64.zip This will create a folder _yakindu-sct_ in your installation directory, i. e. _/my/software/yakindu-sct_ in our example, as shown in the image below: -!(standard-image)images/linux_install_010_eclipse_folder.png(The extracted "yakindu-sct" folder)! +!(standard-image)images/inst_linux_010_eclipse_folder.png(The extracted "yakindu-sct" folder)! p=. The extracted "yakindu-sct" folder The contents of the _yakindu-sct_ folder looks like this: -!(standard-image)images/linux_install_020_eclipse_contents.png(Contents of the extracted "yakindu-sct" folder)! +!(standard-image)images/inst_linux_020_eclipse_contents.png(Contents of the extracted "yakindu-sct" folder)! p=. Contents of the extracted "yakindu-sct" folder @@ -238,7 +238,7 @@ From a file browser, you can start YAKINDU Statechart Tools by clicking on the _ While YAKINDU Statechart Tools is starting up, it is showing a splash screen: -!(standard-image)images/linux_install_030_eclipse_splash.png(YAKINDU Statechart Tools starting up and showing a splash screen)! +!(standard-image)images/inst_linux_030_eclipse_splash.png(YAKINDU Statechart Tools starting up and showing a splash screen)! p=. YAKINDU Statechart Tools starting up and showing a splash screen @@ -246,7 +246,7 @@ The software needs a _workspace_ directory where it stores its so-called project In the example below, we chose the _/my/workspace_ directory as our workspace. We also checked the _"Use this as the default and do not ask again"_ option. This is sensible, because on subsequent startups, YAKINDU Statechart Tools won't ask for a workspace directory again. Instead it will always use the one we chose once and forever. (You can still change the workspace later via _File → Switch Workspace_ in the main menu.) -!(standard-image)images/linux_install_040_eclipse_workspace_dialog.png(Selecting a workspace)! +!(standard-image)images/inst_linux_040_eclipse_workspace_dialog.png(Selecting a workspace)! p=. Selecting a workspace @@ -254,19 +254,19 @@ Click on the _OK_ button to proceed. On the first start, YAKINDU Statechart Tools presents a _Welcome_ window: -!(standard-image)images/linux_install_050_eclipse_welcome.png(YAKINDU Statechart Tools presenting the "Welcome" window)! +!(standard-image)images/inst_linux_050_eclipse_welcome.png(YAKINDU Statechart Tools presenting the "Welcome" window)! p=. YAKINDU Statechart Tools presenting the "Welcome" window You can browse the material shown here, if you want. When you are done, please close the _Welcome_ tab or click on _Workbench_ at the upper right. Both actions are leading to the workbench: -!(standard-image)images/linux_install_060_eclipse_workbench.png(The YAKINDU Statechart Tools workbench)! +!(standard-image)images/inst_linux_060_eclipse_workbench.png(The YAKINDU Statechart Tools workbench)! p=. The YAKINDU Statechart Tools workbench This is your working environment now. Congratulations, you have just started YAKINDU Statechart Tools! -You can "proceed":../Part2-User-Guide/20_tutorial.html#oss_comprehensive-tutorial now to create your first YAKINDU Statecharts Tools project. +You can "proceed":../tutorials/tutorials.html now to create your first YAKINDU Statecharts Tools project. h2(#installing-to-an-existing-eclipse-instance). Installing to an existing Eclipse instance @@ -274,13 +274,13 @@ This chapter describes the steps that are needed to install YAKINDU Statechart T In the the _Help_ menu, select the _Install New Software_ menu item: -!(standard-image)images/eclipse_install_010_eclipse_menu_install_new_software.png(Selecting "Help → Install New Software" in the main menu)! +!(standard-image)images/inst_eclipse_010_eclipse_menu_install_new_software.png(Selecting "Help → Install New Software" in the main menu)! p=. Selecting "Help → Install New Software" in the main menu The _Install_ wizard opens: -!(standard-image)images/eclipse_install_020_eclipse_install_wizard.png(The "Install" wizard)! +!(standard-image)images/inst_eclipse_020_eclipse_install_wizard.png(The "Install" wizard)! p=. The "Install" wizard @@ -299,7 +299,7 @@ p. Please note that YAKINDU Statechart Tools might take some time to catch up wi Enter some text into the _Name_ field. This text is abitrary in principle, but you should choose something that makes it easier for you to identify this particular update repository among other update repositories. In the example below, the repository's name is @YAKINDU Statechart Tools (Luna)@. It describes which piece of software the repository provides (YAKINDU Statechart Tools) and which Eclipse release that software is compatible with (Luna, i. e. Eclipse 4.4). -!(standard-image)images/eclipse_install_030_eclipse_add_repository.png(Adding a software repository)! +!(standard-image)images/inst_eclipse_030_eclipse_add_repository.png(Adding a software repository)! p=. Adding a software repository @@ -307,7 +307,7 @@ After entering name and location of the update repository, click _OK_. Eclipse establishes a network connection to the update repository, asks it for available software items and shows them in the install wizard: -!(standard-image)images/eclipse_install_040_eclipse_software_items.png(Selecting YAKINDU Statechart Tools software items)! +!(standard-image)images/inst_eclipse_040_eclipse_software_items.png(Selecting YAKINDU Statechart Tools software items)! p=. Selecting YAKINDU Statechart Tools software items @@ -317,7 +317,7 @@ Click _Next >_. Eclipse tries to integrate the new software with the software that is already installed. If it detects any mismatches between requirements and provisions, Eclipse will try to find a solution in order to mitigate this problem. The screenshot below shows such a case: -!(standard-image)images/eclipse_install_050_eclipse_trouble.png(Install remediation page)! +!(standard-image)images/inst_eclipse_050_eclipse_trouble.png(Install remediation page)! p=. Install remediation page @@ -325,7 +325,7 @@ Select the most appropriate solution, then click _Next >_. The wizard shows the software to be installed and gives you the opportunity to review the changes: -!(standard-image)images/eclipse_install_060_eclipse_review.png(Reviewing the items to be installed)! +!(standard-image)images/inst_eclipse_060_eclipse_review.png(Reviewing the items to be installed)! p=. Reviewing the items to be installed @@ -333,7 +333,7 @@ Click _Next >_. The wizard asks you to review and accept the terms of the new software's license agreements. -!(standard-image)images/eclipse_install_070_eclipse_licenses.png(Accepting the new software's license agreements)! +!(standard-image)images/inst_eclipse_070_eclipse_licenses.png(Accepting the new software's license agreements)! p=. Accepting the new software's license agreements @@ -341,19 +341,19 @@ Select the radio button labelled _I accept the terms of the license agreements_ Eclipse starts to download the software and installs it on your computer. This may take some time. -!(standard-image)images/eclipse_install_080_eclipse_installation.png(Installing software in progress ...)! +!(standard-image)images/inst_eclipse_080_eclipse_installation.png(Installing software in progress ...)! p=. Installing software in progress ... If the installation was completed successfully, Eclipse needs a restart in order to have the changes take effect. A dialog asks whether you want to restart Eclipse right now or later: -!(standard-image)images/eclipse_install_090_eclipse_restart.png(Restarting Eclipse after software installation)! +!(standard-image)images/inst_eclipse_090_eclipse_restart.png(Restarting Eclipse after software installation)! p=. Restarting Eclipse after software installation After the restart, Eclipse displays its _Welcome_ window, now also featuring YAKINDU Statechart Tools: -!(standard-image)images/eclipse_install_100_eclipse_sct_help.png(Eclipse presenting the "Welcome" window)! +!(standard-image)images/inst_eclipse_100_eclipse_sct_help.png(Eclipse presenting the "Welcome" window)! p=. Eclipse presenting the "Welcome" window @@ -361,7 +361,7 @@ h2(#updating-yakindu-statechart-tools). Updating YAKINDU Statechart Tools To check whether a new YAKINDU Statechart Tools release is available and to install it, please select the _Help → Check for Updates_ menu item. -!(standard-image)images/eclipse_update_010_eclipse_menu_check_for_updates.png(Selecting "Help → Check for Updates" in the main menu)! +!(standard-image)images/inst_eclipse_update_010_eclipse_menu_check_for_updates.png(Selecting "Help → Check for Updates" in the main menu)! p=. Selecting "Help → Check for Updates" in the main menu @@ -373,7 +373,7 @@ Select the _Window → Preferences_ menu item. The _Preferences_ dialog opens. Go to the _Install/Update → Automatic Updates_ section. Here you can configure whether and when Eclipse should check for updates and what to do when it finds any. -!(standard-image)images/eclipse_update_020_eclipse_automatic_updates.png(Configuring automatic update)! +!(standard-image)images/inst_eclipse_update_020_eclipse_automatic_updates.png(Configuring automatic update)! p=. Configuring automatic update @@ -390,7 +390,7 @@ In order to check whether you are affected, proceed as follows: If the list of installed JREs is empty, you are affected by the problem and will have to manually add a JRE definition. Click on the _Add…_ button and follow the _Add JRE_ wizard. The Eclipse documentation explains in more detail how to "add a new JRE definition":http://help.eclipse.org/neon/index.jsp?topic=%252Forg.eclipse.jdt.doc.user%252Ftasks%252Ftask-add_new_jre.htm to your workspace. -!(standard-image)images/installed_jres_010.png(Installed JREs)! +!(standard-image)images/inst_installed_jres_010.png(Installed JREs)! p=. Installed JREs diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_010_close_welcome.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_010_close_welcome.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_010_close_welcome.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_010_close_welcome.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_020_expand_project.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_020_expand_project.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_020_expand_project.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_020_expand_project.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_110_new_code_generator_model.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_110_new_code_generator_model.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_110_new_code_generator_model.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_110_new_code_generator_model.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_120_naming_the_code_generator_model.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_120_naming_the_code_generator_model.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_120_naming_the_code_generator_model.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_120_naming_the_code_generator_model.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_130_selecting_the_statechart_model.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_130_selecting_the_statechart_model.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_130_selecting_the_statechart_model.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_130_selecting_the_statechart_model.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_140_generated_java_source_code.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_140_generated_java_source_code.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/5min_140_generated_java_source_code.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_5min_140_generated_java_source_code.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_010_create_java_project.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_010_create_java_project.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_010_create_java_project.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_010_create_java_project.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_020_new_java_project.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_020_new_java_project.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_020_new_java_project.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_020_new_java_project.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_030_model_folder_created.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_030_model_folder_created.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_030_model_folder_created.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_030_model_folder_created.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_040_create_model_new_statechart_model.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_040_create_model_new_statechart_model.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_040_create_model_new_statechart_model.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_040_create_model_new_statechart_model.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_050_create_model_specify_name.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_050_create_model_specify_name.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_050_create_model_specify_name.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_050_create_model_specify_name.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_060_create_model_modeling_perspective_dialog.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_060_create_model_modeling_perspective_dialog.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_060_create_model_modeling_perspective_dialog.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_060_create_model_modeling_perspective_dialog.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_070_create_model_completed.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_070_create_model_completed.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_070_create_model_completed.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_070_create_model_completed.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_080_editing_editor.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_080_editing_editor.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_080_editing_editor.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_080_editing_editor.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_090_editing_interfaces.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_090_editing_interfaces.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_090_editing_interfaces.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_090_editing_interfaces.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_200_generation_create_generator_model.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_200_generation_create_generator_model.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_200_generation_create_generator_model.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_200_generation_create_generator_model.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_210_generation_new_sgen_model_1.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_210_generation_new_sgen_model_1.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_210_generation_new_sgen_model_1.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_210_generation_new_sgen_model_1.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_220_generation_new_sgen_model_2.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_220_generation_new_sgen_model_2.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_220_generation_new_sgen_model_2.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_220_generation_new_sgen_model_2.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_230_generation_new_sgen_model_3.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_230_generation_new_sgen_model_3.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_230_generation_new_sgen_model_3.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_230_generation_new_sgen_model_3.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_240_generation_timer_service.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_240_generation_timer_service.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_240_generation_timer_service.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_240_generation_timer_service.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_250_generation_use_as_source_folder.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_250_generation_use_as_source_folder.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_250_generation_use_as_source_folder.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_250_generation_use_as_source_folder.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_300_java_integration_create_new_class.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_300_java_integration_create_new_class.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_300_java_integration_create_new_class.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_300_java_integration_create_new_class.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_example_final.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_example_final.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_example_final.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_example_final.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_example_finished.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_example_finished.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_example_finished.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_example_finished.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_model.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_model.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/callhandling_model.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_callhandling_model.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_010_menu_file_new_project.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_010_menu_file_new_project.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_010_menu_file_new_project.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_010_menu_file_new_project.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_020_wizard_new_project_general_project.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_020_wizard_new_project_general_project.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_020_wizard_new_project_general_project.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_020_wizard_new_project_general_project.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_030_wizard_new_project_java_java_project.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_030_wizard_new_project_java_java_project.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_030_wizard_new_project_java_java_project.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_030_wizard_new_project_java_java_project.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_040_wizard_new_java_project.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_040_wizard_new_java_project.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_040_wizard_new_java_project.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_040_wizard_new_java_project.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_040_wizard_new_project.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_040_wizard_new_project.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_040_wizard_new_project.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_040_wizard_new_project.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_050_dialog_open_associated_perspective.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_050_dialog_open_associated_perspective.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_050_dialog_open_associated_perspective.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_050_dialog_open_associated_perspective.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_060_java_project_created.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_060_java_project_created.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_060_java_project_created.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_060_java_project_created.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_060_project_created.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_060_project_created.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_060_project_created.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_060_project_created.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_080_editing_editor.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_080_editing_editor.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_080_editing_editor.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_080_editing_editor.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_100_menu_new_folder.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_100_menu_new_folder.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_100_menu_new_folder.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_100_menu_new_folder.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_110_wizard_new_folder.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_110_wizard_new_folder.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_110_wizard_new_folder.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_110_wizard_new_folder.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_120_menu_new_other.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_120_menu_new_other.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_120_menu_new_other.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_120_menu_new_other.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_130_wizard_new.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_130_wizard_new.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_130_wizard_new.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_130_wizard_new.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_140_wizard_new_yakindu_statechart.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_140_wizard_new_yakindu_statechart.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_140_wizard_new_yakindu_statechart.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_140_wizard_new_yakindu_statechart.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_150_dialog_confirm_perspective_switch.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_150_dialog_confirm_perspective_switch.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_150_dialog_confirm_perspective_switch.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_150_dialog_confirm_perspective_switch.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_200_empty_statechart_created.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_200_empty_statechart_created.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_200_empty_statechart_created.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_200_empty_statechart_created.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_210_error_marker_and_popup.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_210_error_marker_and_popup.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_210_error_marker_and_popup.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_210_error_marker_and_popup.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_220_statechart_editor.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_220_statechart_editor.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_220_statechart_editor.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_220_statechart_editor.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_220_statechart_editor_raw.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_220_statechart_editor_raw.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_220_statechart_editor_raw.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_220_statechart_editor_raw.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_01.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_01.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_01.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_01.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_02.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_02.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_02.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_02.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_03.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_03.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_03.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_03.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_04.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_04.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_04.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_04.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_05.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_05.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_05.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_05.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_06.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_06.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_230_statechart_editor_change_state_name_06.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_230_statechart_editor_change_state_name_06.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_240_statechart_editor_create_state_01.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_240_statechart_editor_create_state_01.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_240_statechart_editor_create_state_01.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_240_statechart_editor_create_state_01.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_240_statechart_editor_create_state_02.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_240_statechart_editor_create_state_02.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_240_statechart_editor_create_state_02.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_240_statechart_editor_create_state_02.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_240_statechart_editor_create_state_03.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_240_statechart_editor_create_state_03.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_240_statechart_editor_create_state_03.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_240_statechart_editor_create_state_03.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_240_statechart_editor_create_state_04.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_240_statechart_editor_create_state_04.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_240_statechart_editor_create_state_04.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_240_statechart_editor_create_state_04.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_240_statechart_editor_create_state_05.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_240_statechart_editor_create_state_05.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_240_statechart_editor_create_state_05.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_240_statechart_editor_create_state_05.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_250_statechart_editor_create_transition_01.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_250_statechart_editor_create_transition_01.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_250_statechart_editor_create_transition_01.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_250_statechart_editor_create_transition_01.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_250_statechart_editor_create_transition_02.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_250_statechart_editor_create_transition_02.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_250_statechart_editor_create_transition_02.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_250_statechart_editor_create_transition_02.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_250_statechart_editor_create_transition_03.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_250_statechart_editor_create_transition_03.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_250_statechart_editor_create_transition_03.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_250_statechart_editor_create_transition_03.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_250_statechart_editor_create_transition_04.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_250_statechart_editor_create_transition_04.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_250_statechart_editor_create_transition_04.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_250_statechart_editor_create_transition_04.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_250_statechart_editor_create_transition_05.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_250_statechart_editor_create_transition_05.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_250_statechart_editor_create_transition_05.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_250_statechart_editor_create_transition_05.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_260_statechart_editor_create_definitions_01.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_260_statechart_editor_create_definitions_01.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_260_statechart_editor_create_definitions_01.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_260_statechart_editor_create_definitions_01.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_260_statechart_editor_create_definitions_02.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_260_statechart_editor_create_definitions_02.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_260_statechart_editor_create_definitions_02.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_260_statechart_editor_create_definitions_02.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_270_statechart_editor_create_transition_01.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_270_statechart_editor_create_transition_01.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_270_statechart_editor_create_transition_01.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_270_statechart_editor_create_transition_01.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_270_statechart_editor_create_transition_02.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_270_statechart_editor_create_transition_02.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_270_statechart_editor_create_transition_02.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_270_statechart_editor_create_transition_02.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_270_statechart_editor_create_transition_03.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_270_statechart_editor_create_transition_03.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_270_statechart_editor_create_transition_03.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_270_statechart_editor_create_transition_03.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_300_statechart_simulator_run_as_statechart_simulation.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_300_statechart_simulator_run_as_statechart_simulation.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_300_statechart_simulator_run_as_statechart_simulation.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_300_statechart_simulator_run_as_statechart_simulation.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_310_statechart_simulator_state_off.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_310_statechart_simulator_state_off.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_310_statechart_simulator_state_off.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_310_statechart_simulator_state_off.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_320_statechart_simulator_state_events.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_320_statechart_simulator_state_events.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_320_statechart_simulator_state_events.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_320_statechart_simulator_state_events.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_330_statechart_simulator_state_on.png b/plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_330_statechart_simulator_state_on.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/light_switch_330_statechart_simulator_state_on.png rename to plugins/org.yakindu.sct.doc.user/src/tutorials/images/tuto_light_switch_330_statechart_simulator_state_on.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/20_tutorial.textile b/plugins/org.yakindu.sct.doc.user/src/tutorials/tutorials.textile similarity index 83% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/20_tutorial.textile rename to plugins/org.yakindu.sct.doc.user/src/tutorials/tutorials.textile index 9f3d0ffd1c..c66c6f7611 100644 --- a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/20_tutorial.textile +++ b/plugins/org.yakindu.sct.doc.user/src/tutorials/tutorials.textile @@ -3,7 +3,7 @@ h1(#oss_five-minutes-tutorial). Five-minutes tutorial The five-minutes tutorial gives you a brief introduction into YAKINDU Statechart Tools by a simple example. It models a light switch, which has the states _on_ and _off_. Operating the switch repeatedly turns the light on, off, back on again, and so forth. You can simulate this behavior in a dynamic statechart model. Here's how this looks like: -!(standard-image full)images/light_switch_330_statechart_simulator_state_on.png(Interactive light switch statechart simulation)! +!(standard-image full)images/tuto_light_switch_330_statechart_simulator_state_on.png(Interactive light switch statechart simulation)! p=. Interactive light switch statechart simulation @@ -11,22 +11,22 @@ In the simulation screenshot above, the light switch is currently in the _on_ st h2(#oss_importing-light-switch-example). Importing light switch example -Now try this for yourself. We are assuming that you have already installed and started YAKINDU Statechart Tools. If you don't, please see the "Installation Guide":../Part1-Installation-Guide/00_installation.html for details. +Now try this for yourself. We are assuming that you have already installed and started YAKINDU Statechart Tools. If you don't, please see the "Installation Guide":../installation/installation.html for details. -# If the "Welcome" page is still open, close it.

!(standard-image small)images/5min_010_close_welcome.png(Closing the "Welcome" page)!

+# If the "Welcome" page is still open, close it.

!(standard-image small)images/tuto_5min_010_close_welcome.png(Closing the "Welcome" page)!

# In the main menu, select _File → New → Example…_. # In the dialog, select _YAKINDU SCT Examples → Light Switch Example_, then click _Next >_. # In the next dialog, click _Finish_. The sample project named _light_switch_ is created. -# In the project explorer on the left-hand side of the window, open the _light_switch_ project by clicking on the small triangle left from the project name ("light_switch").

!(standard-image small)images/5min_020_expand_project.png(Expand project)!

+# In the project explorer on the left-hand side of the window, open the _light_switch_ project by clicking on the small triangle left from the project name ("light_switch").

!(standard-image small)images/tuto_5min_020_expand_project.png(Expand project)!

# The light switch statechart is defined in _LightSwitch.sct_. Double click on this file to open the model. h2(#oss_running-the-light-switch-simulation). Simulating the light switch # Right-click on _LightSwitch.sct_ and select _Run As → Statechart Simulation_ in the context menu. -# The statechart simulation starts and shows the light switch model in its _off_ state. The rectangle named *Off* is highlighted in red, meaning it is the active state.

!(standard-image)images/light_switch_320_statechart_simulator_state_events.png(Light switch simulation in "off" state)!

+# The statechart simulation starts and shows the light switch model in its _off_ state. The rectangle named *Off* is highlighted in red, meaning it is the active state.

!(standard-image)images/tuto_light_switch_320_statechart_simulator_state_events.png(Light switch simulation in "off" state)!

# At the right-bottom side of the window, the simulation view is located. In this view, you can change variable values and raise events during a simulation run. Click on the small triangle left from _internal_ to unfold the _operate_ link. This link represents the _operate_ event to switch the light on or off. -# Click on the _operate_ link. The active state changes accordingly from *Off* to *On*.

!(standard-image)images/light_switch_330_statechart_simulator_state_on.png(Light switch simulation in "on" state)!

+# Click on the _operate_ link. The active state changes accordingly from *Off* to *On*.

!(standard-image)images/tuto_light_switch_330_statechart_simulator_state_on.png(Light switch simulation in "on" state)!

# Click on _operate_ again to switch off the light. h2(standard #oss_generating-statechart-code). Generating statechart code @@ -35,10 +35,10 @@ You have developed and tested your statechart model, and now you need it as a C, As an example, we will take the light switch statechart and generate Java source code from it. Please proceed as follows: -# In the project explorer, right-click on _LightSwitch.sct_ and select _New → Code Generator Model_ in the context menu.

!(standard-image)images/5min_110_new_code_generator_model.png(Creating a new code generator model)!

+# In the project explorer, right-click on _LightSwitch.sct_ and select _New → Code Generator Model_ in the context menu.

!(standard-image)images/tuto_5min_110_new_code_generator_model.png(Creating a new code generator model)!

# In the dialog, replace @default.sgen@ by @light_switch.sgen@, then click _Next >_. # In the next dialog, check the checkbox left from _LightSwitch.sct_, then click _Finish_. -# Java classes implementing the statechart model are generated. You can find the generated source code in the folders _src_ and _src-gen_ within the _light_switch_ project.

!(standard-image)images/5min_140_generated_java_source_code.png(Generated Java source code)!

+# Java classes implementing the statechart model are generated. You can find the generated source code in the folders _src_ and _src-gen_ within the _light_switch_ project.

!(standard-image)images/tuto_5min_140_generated_java_source_code.png(Generated Java source code)!

That's it. If you want to know more, take the time and work through the "Comprehensive Tutorial":#oss_comprehensive-tutorial. @@ -54,9 +54,9 @@ This tutorial you will teach how to Please note that this tutorial will not explain statecharts in general, so you should familiarize yourself with the basic concepts of state machines first, see "UML state machine":http://en.wikipedia.org/wiki/UML_state_machine. -In order to get a fully-working statechart implementation that you can integrate with your project, you will have to familiarize yourself with _code generation_, which is covered by chapter "Code generation":#code-generation in this documentation. You can generate your state machine implementation as source code in C, C++, and Java out of the box. Alternatively, you can write your own code generator for other programming languages or for other purposes. +In order to get a fully-working statechart implementation that you can integrate with your project, you will have to familiarize yourself with _code generation_, which is covered by chapter "Code generation":#code-generation in this documentation. You can generate your state machine implementation as source code in C, C++, and Java out of the box. Alternatively, you can write your own code generator for other programming languages or for other purposes. -Before we get started, make sure you have YAKINDU Statechart Tools installed. For installation instructions, see the "YAKINDU Statechart Tools Installation Guide":00_installation#installation-guide. +Before we get started, make sure you have YAKINDU Statechart Tools installed. For installation instructions, see the "YAKINDU Statechart Tools Installation Guide":../installation/installation.html. h2(#the-light-switch-example). The light switch example @@ -82,13 +82,13 @@ h3(#creating-an-eclipse-project). Creating an Eclipse project The first step is to create a new Eclipse project that can serve as a container for our model. From the main menu, select _File → New → Project..._: -!(standard-image)images/light_switch_010_menu_file_new_project.png(Selecting "File → New → Project..." in the main menu)! +!(standard-image)images/tuto_light_switch_010_menu_file_new_project.png(Selecting "File → New → Project..." in the main menu)! p=. Selecting "File → New → Project..." in the main menu The _New Project_ wizard opens, showing a couple of different project types structured in various folders. -!(standard-image)images/light_switch_020_wizard_new_project_general_project.png(The "New Project" wizard)! +!(standard-image)images/tuto_light_switch_020_wizard_new_project_general_project.png(The "New Project" wizard)! p=. The "New Project" wizard @@ -96,7 +96,7 @@ Select _General → Project_ and click _Next >_. The wizard shows its next page: -!(standard-image)images/light_switch_040_wizard_new_project.png(Specifying project name and location)! +!(standard-image)images/tuto_light_switch_040_wizard_new_project.png(Specifying project name and location)! p=. Specifying project name and location @@ -106,7 +106,7 @@ Click _Finish_. Eclipse creates the new project: -!(standard-image)images/light_switch_060_project_created.png(Project "LightSwitch" created)! +!(standard-image)images/tuto_light_switch_060_project_created.png(Project "LightSwitch" created)! p=. Project "LightSwitch" created @@ -116,13 +116,13 @@ Now that we have created the Eclipse project, we can establish the statechart mo Right-click on the project's root, i. e. on *LightSwitch*, then select _New → Folder_ from the context menu. -!(standard-image)images/light_switch_100_menu_new_folder.png(Selecting "New → Folder" in the context menu)! +!(standard-image)images/tuto_light_switch_100_menu_new_folder.png(Selecting "New → Folder" in the context menu)! p=. Selecting "New → Folder" in the context menu The _New Folder_ wizard opens: -!(standard-image)images/light_switch_110_wizard_new_folder.png(The "New Folder" wizard)! +!(standard-image)images/tuto_light_switch_110_wizard_new_folder.png(The "New Folder" wizard)! p=. The "New Folder" wizard @@ -136,19 +136,19 @@ h4(#using-the-yakindu-statechart-wizard). Using the YAKINDU Statechart wizard Now we are going to create an empty statechart model in the _model_ folder. Right-click on the _model_ folder and select _New → Other_ in the context menu: -!(standard-image)images/light_switch_120_menu_new_other.png(Selecting "New → Other" in the context menu)! +!(standard-image)images/tuto_light_switch_120_menu_new_other.png(Selecting "New → Other" in the context menu)! p=. Selecting "New → Other" in the context menu The _New_ wizard opens. Select _YAKINDU SCT → Statechart model_ -!(standard-image)images/light_switch_130_wizard_new.png(Selecting "YAKINDU SCT → Statechart model")! +!(standard-image)images/tuto_light_switch_130_wizard_new.png(Selecting "YAKINDU SCT → Statechart model")! p=. Selecting "YAKINDU SCT → Statechart model" Click _Next >_. The wizard shows the _New YAKINDU Statechart_ dialog: -!(standard-image)images/light_switch_140_wizard_new_yakindu_statechart.png(The "New YAKINDU Statechart" dialog)! +!(standard-image)images/tuto_light_switch_140_wizard_new_yakindu_statechart.png(The "New YAKINDU Statechart" dialog)! p=. The "New YAKINDU Statechart" dialog @@ -160,7 +160,7 @@ Click _Finish_. Since there's a dedicated perspective for statechart models, Eclipse asks you whether you want to change to it now or not: -!(standard-image)images/light_switch_150_dialog_confirm_perspective_switch.png(Dialog "Confirm Perspective Switch")! +!(standard-image)images/tuto_light_switch_150_dialog_confirm_perspective_switch.png(Dialog "Confirm Perspective Switch")! p=. Dialog "Confirm Perspective Switch" @@ -173,7 +173,7 @@ h4(#the-initial-model). The initial model An empty statechart is created and displayed in the *statechart editor* in the middle of the Eclipse workbench. In the screenshot below the statechart editor is marked by a red rectangle. Subsequently, we will use the statechart editor to graphically develop the light switch statechart. p(#light_switch_220_statechart_editor). -!(standard-image)images/light_switch_220_statechart_editor.png(The statechart editor)! +!(standard-image)images/tuto_light_switch_220_statechart_editor.png(The statechart editor)! p=. The statechart editor @@ -199,7 +199,7 @@ This error marker exemplifies YAKINDU Statechart Tools' model validation capabil Hovering with the mouse over the error marker in the statechart editor reveals what the problem is. A small popup appears and displays the error description: "A state must have a name." -!(standard-image)images/light_switch_210_error_marker_and_popup.png(An error marker and a popup window explaining it)! +!(standard-image)images/tuto_light_switch_210_error_marker_and_popup.png(An error marker and a popup window explaining it)! p=. An error marker and a popup window explaining it @@ -221,41 +221,41 @@ As we have seen, the initial statechart is erroneous insofar as the state does n Remember the requirements of our light switch example? The first requirement demands the switch to be off initially. The erroneous state is reached from the initial state immediately, so it is appropriate to name it *Off*. table(scedit). -|<. Double-click on the string @@ in the state object. The string turns into a text input field with @@ being highlighted:|<. !(standard-image)images/light_switch_230_statechart_editor_change_state_name_01.png!| -|<. Type the state's new name, i. e. @Off@:|<. !(standard-image)images/light_switch_230_statechart_editor_change_state_name_02.png!| -|<. Hit the @[Enter]@ key or click anywhere outside the text field. Bingo! The state now has a proper name and the error marker disappears:|<. !(standard-image)images/light_switch_230_statechart_editor_change_state_name_03.png!| +|<. Double-click on the string @@ in the state object. The string turns into a text input field with @@ being highlighted:|<. !(standard-image)images/tuto_light_switch_230_statechart_editor_change_state_name_01.png!| +|<. Type the state's new name, i. e. @Off@:|<. !(standard-image)images/tuto_light_switch_230_statechart_editor_change_state_name_02.png!| +|<. Hit the @[Enter]@ key or click anywhere outside the text field. Bingo! The state now has a proper name and the error marker disappears:|<. !(standard-image)images/tuto_light_switch_230_statechart_editor_change_state_name_03.png!| |<. However, since the state box's size is smaller than before now while the box's left position remains unchanged, the graph looks crooked.|<. | -|<. We can improve it by dragging the state box a little bit to the right. When it is centered below the initial state symbol, a vertical blue line appears giving the user a visual hint:|<. !(standard-image)images/light_switch_230_statechart_editor_change_state_name_04.png!| -|<. Drop the state box at this very place, and everything looks much better now:|<. !(standard-image)images/light_switch_230_statechart_editor_change_state_name_05.png!| -|<. Alternatively, we could have used the state box's handles to resize it. However, we just deselect the box by clicking elsewhere:|<. !(standard-image)images/light_switch_230_statechart_editor_change_state_name_06.png!| +|<. We can improve it by dragging the state box a little bit to the right. When it is centered below the initial state symbol, a vertical blue line appears giving the user a visual hint:|<. !(standard-image)images/tuto_light_switch_230_statechart_editor_change_state_name_04.png!| +|<. Drop the state box at this very place, and everything looks much better now:|<. !(standard-image)images/tuto_light_switch_230_statechart_editor_change_state_name_05.png!| +|<. Alternatively, we could have used the state box's handles to resize it. However, we just deselect the box by clicking elsewhere:|<. !(standard-image)images/tuto_light_switch_230_statechart_editor_change_state_name_06.png!| h3(#creating-a-state). Creating a state With the *Off* state only, the light switch statechart isn't complete yet. We also need an *On* state, and we going to create it now. table(scedit). -|<. In order to add another state, move the mouse pointer to the _Palette_ compartment at the right-hand side of the statechart editor. Click on the _State_ symbol in the palette without releasing the mouse button, and drag the symbol over to the editing area.|<. !(standard-image)images/light_switch_240_statechart_editor_create_state_01.png!| -|<. Release the mouse button over a gray area, a region:|<. !(standard-image)images/light_switch_240_statechart_editor_create_state_02.png!| -|<. The new state appears in the model graph:|<. !(standard-image)images/light_switch_240_statechart_editor_create_state_03.png!| -|<. Rename the new state to *On*. Vertically align it to the *Off* state, if you like:|<. !(standard-image)images/light_switch_240_statechart_editor_create_state_04.png!| +|<. In order to add another state, move the mouse pointer to the _Palette_ compartment at the right-hand side of the statechart editor. Click on the _State_ symbol in the palette without releasing the mouse button, and drag the symbol over to the editing area.|<. !(standard-image)images/tuto_light_switch_240_statechart_editor_create_state_01.png!| +|<. Release the mouse button over a gray area, a region:|<. !(standard-image)images/tuto_light_switch_240_statechart_editor_create_state_02.png!| +|<. The new state appears in the model graph:|<. !(standard-image)images/tuto_light_switch_240_statechart_editor_create_state_03.png!| +|<. Rename the new state to *On*. Vertically align it to the *Off* state, if you like:|<. !(standard-image)images/tuto_light_switch_240_statechart_editor_create_state_04.png!| |<. You'll notice that the new state is showing an error marker. The reason is that it is not yet possible to reach the *On* state.|<. | -|<. Before we'll go on and fix that problem, here's another way to create a new state. When you are hovering with the mouse pointer over the main region, i. e. the large rectangle with a gray background, a popup menu shows up. If you click on the ‘S' symbol in that menu, a new state will be created. Other options in this menu are to create an initial state, a final state, or a choice.|<. !(standard-image)images/light_switch_240_statechart_editor_create_state_05.png!| +|<. Before we'll go on and fix that problem, here's another way to create a new state. When you are hovering with the mouse pointer over the main region, i. e. the large rectangle with a gray background, a popup menu shows up. If you click on the ‘S' symbol in that menu, a new state will be created. Other options in this menu are to create an initial state, a final state, or a choice.|<. !(standard-image)images/tuto_light_switch_240_statechart_editor_create_state_05.png!| h3(#creating-a-transition). Creating a transition As we have seen above, the *On* state is not reachable as of yet. So let's model switching the light switch from "off" to "on" as a transition leading from the *Off* state to the *On* state. table(scedit). -|<. In the _Palette_, click on the _Transition_ symbol. The symbol's background turns blue.|<. !(standard-image)images/light_switch_250_statechart_editor_create_transition_01.png!| -|<. Click on the *Off* state, but don't release the mouse button. Drag the mouse pointer towards the *On* state. The arrow representing the transition to be established is drawn.:|<. !(standard-image)images/light_switch_250_statechart_editor_create_transition_02.png!| -|<. Once the mouse pointer reaches the target state, it changes its shape:|<. !(standard-image)images/light_switch_250_statechart_editor_create_transition_03.png!| -|<. Releasing the mouse button establishes the transition. A text input field to specify event trigger, guard condition and effect appears. We want the transition to be triggered when the light switch is operated, so let's type @operate@ into the text field.|<. !(standard-image)images/light_switch_250_statechart_editor_create_transition_04.png!| +|<. In the _Palette_, click on the _Transition_ symbol. The symbol's background turns blue.|<. !(standard-image)images/tuto_light_switch_250_statechart_editor_create_transition_01.png!| +|<. Click on the *Off* state, but don't release the mouse button. Drag the mouse pointer towards the *On* state. The arrow representing the transition to be established is drawn.:|<. !(standard-image)images/tuto_light_switch_250_statechart_editor_create_transition_02.png!| +|<. Once the mouse pointer reaches the target state, it changes its shape:|<. !(standard-image)images/tuto_light_switch_250_statechart_editor_create_transition_03.png!| +|<. Releasing the mouse button establishes the transition. A text input field to specify event trigger, guard condition and effect appears. We want the transition to be triggered when the light switch is operated, so let's type @operate@ into the text field.|<. !(standard-image)images/tuto_light_switch_250_statechart_editor_create_transition_04.png!| |<. If you suspect that something is not in order, because the input text is underlined in red, you are right. We will explain and deal with that in a minute.|<. | -|<. Clicking anywhere outside the text field terminates the editing mode:|<. !(standard-image)images/light_switch_250_statechart_editor_create_transition_05.png!| +|<. Clicking anywhere outside the text field terminates the editing mode:|<. !(standard-image)images/tuto_light_switch_250_statechart_editor_create_transition_05.png!| The event trigger _operate_ is flagged as an error. The reason is that an event with that name is not known yet. The screenshot below shows how to change that: -!(standard-image)images/light_switch_260_statechart_editor_create_definitions_01.png(Creating definitions [1])! +!(standard-image)images/tuto_light_switch_260_statechart_editor_create_definitions_01.png(Creating definitions [1])! p=. Creating definitions [1] @@ -267,20 +267,20 @@ bc. internal: event operate -The keyword @internal@ makes the following definition of the _operate_ event belong to the internal scope. The latter is explained in section ""Internal scope"":documentation#internal-scope. +The keyword @internal@ makes the following definition of the _operate_ event belong to the internal scope. The latter is explained in section ""Internal scope"":../user-guide/statechart_language.html#internal-scope. Click anywhere outside of the text field, which terminates editing the definition section. The statechart editor digests the definition, recognizes the definition of the _operate_ event, and validates the model as being okay: -!(standard-image)images/light_switch_260_statechart_editor_create_definitions_02.png(Creating definitions [2])! +!(standard-image)images/tuto_light_switch_260_statechart_editor_create_definitions_02.png(Creating definitions [2])! p=. Creating definitions [2] In its current state the model would not allow to turn the light switch off again, which is somewhat unsatisfactory. Operating the light switch while it is on should turn it off again. Let's model this by adding another transition. It should lead from the source state *On* to the target state *Off*. table(scedit). -|<. However, in order to not get two straight lines being close together in the graph, let's first make some room and turn the present line into an arc. Move the mouse pointer over the transition line, but not over the text. The mouse pointer changes its shape to indicate that you can insert a control point. Click and hold to add the control point, then drag it to an appropriate position.|<. !(standard-image)images/light_switch_270_statechart_editor_create_transition_01.png!| -|<. Now let's insert the second transition. This time we won't use the palette, but instead use another method. Hover the mouse pointer over the source state, i. e. *On*. An incoming and an outgoing arrow appear, both with a handle. Click and hold the handle of the outgoing arrow and drag it to the *Off* target state.|<. !(standard-image)images/light_switch_270_statechart_editor_create_transition_02.png!| -|<. Upon releasing the mouse button the transition is established. Type @operate@ as the transition's event trigger into the text field. Reshape the transition arrow to make the graph look nice.|<. !(standard-image)images/light_switch_270_statechart_editor_create_transition_03.png!| +|<. However, in order to not get two straight lines being close together in the graph, let's first make some room and turn the present line into an arc. Move the mouse pointer over the transition line, but not over the text. The mouse pointer changes its shape to indicate that you can insert a control point. Click and hold to add the control point, then drag it to an appropriate position.|<. !(standard-image)images/tuto_light_switch_270_statechart_editor_create_transition_01.png!| +|<. Now let's insert the second transition. This time we won't use the palette, but instead use another method. Hover the mouse pointer over the source state, i. e. *On*. An incoming and an outgoing arrow appear, both with a handle. Click and hold the handle of the outgoing arrow and drag it to the *Off* target state.|<. !(standard-image)images/tuto_light_switch_270_statechart_editor_create_transition_02.png!| +|<. Upon releasing the mouse button the transition is established. Type @operate@ as the transition's event trigger into the text field. Reshape the transition arrow to make the graph look nice.|<. !(standard-image)images/tuto_light_switch_270_statechart_editor_create_transition_03.png!| h2(#simulating-the-light-switch-model). Simulating the light switch model @@ -288,7 +288,7 @@ Simulating a statechart model means to execute it, raise events manually, have t Start the simulation by right-clicking on the _LightSwitch.sct_ file in the project explorer and selecting _Run As → Statechart Simulation_: -!(standard-image)images/light_switch_300_statechart_simulator_run_as_statechart_simulation.png(Selecting "Run As → Statechart Simulation" in the context menu)! +!(standard-image)images/tuto_light_switch_300_statechart_simulator_run_as_statechart_simulation.png(Selecting "Run As → Statechart Simulation" in the context menu)! p=. Selecting "Run As → Statechart Simulation" in the context menu @@ -301,7 +301,7 @@ Not surprisingly, the simulation starts at the initial state and then transition p(#fig_light_switch_simulation_in_off_state). -!(standard-image)images/light_switch_310_statechart_simulator_state_off.png(Light switch simulation in "off" state)! +!(standard-image)images/tuto_light_switch_310_statechart_simulator_state_off.png(Light switch simulation in "off" state)! p=. Light switch simulation in "off" state @@ -309,7 +309,7 @@ Now that the light switch is off, let's turn the lights on by operating the swit In the _Simulation_ view at the right-hand side of the Eclipse workbench, click on the _internal_ entry's show/hide symbol to display its contents. -!(standard-image)images/light_switch_320_statechart_simulator_state_events.png(Displaying event names in the statechart simulator's _Simulation_ view)! +!(standard-image)images/tuto_light_switch_320_statechart_simulator_state_events.png(Displaying event names in the statechart simulator's _Simulation_ view)! p=. Displaying event names in the statechart simulator's _Simulation_ view @@ -317,7 +317,7 @@ The _operate_ event is shown. Click on it to raise the event, i. e. to operate The transition arc leading from the *Off* state to the *On* state flashes briefly in red, and then the *On* state becomes active. Its background color changes to red while the *Off* state's background color becomes normal again. -!(standard-image)images/light_switch_330_statechart_simulator_state_on.png(Light switch simulation in "on" state)! +!(standard-image)images/tuto_light_switch_330_statechart_simulator_state_on.png(Light switch simulation in "on" state)! p=. Light switch simulation in "on" state @@ -340,7 +340,7 @@ The state machine handling a phone call works as follows: The complete statechart model is shown below: -!(standard-image)images/callhandling_model.png(The CallHandling statechart model)! +!(standard-image)images/tuto_callhandling_model.png(The CallHandling statechart model)! p=. The CallHandling statechart model @@ -348,7 +348,7 @@ In order to eventually obtain the *CallHandling* example in the form of executab h3(#creating-the-statechart-model). Creating the statechart model -In the above "tutorial":#starting-with-an-empty-statechart-model we have seen how to work with the statechart editor. So let's create a new project now and use the statechart editor to create the *CallHandling* statechart model as outlined above. +In the "previous section":#starting-with-an-empty-statechart-model we have seen how to work with the statechart editor. So let's create a new project now and use the statechart editor to create the *CallHandling* statechart model as outlined above. Since we are going to generate Java code, we should use a Java project to host the statechart model. Use _File → New → Java Project_ and follow the _New Java Project_ wizard to create one. @@ -377,7 +377,7 @@ p. As you can see, the _Phone_ interface also has an integer variable _duration_ If everything went well, any error markers in the model are gone. Your model should look like the one in the screenshot below: -!(standard-image)images/callhandling_example_final.png(The CallHandling statechart modeled in the statechart editor)! +!(standard-image)images/tuto_callhandling_example_final.png(The CallHandling statechart modeled in the statechart editor)! p=. The CallHandling statechart modeled in the statechart editor @@ -387,13 +387,13 @@ For code generation, YAKINDU Statechart Tools use a textual generator model call The first step to code generation is to create a new SGen model. Right-click on the _model_ folder in the project explorer and select _New → Code Generator Model_ from the context menu. -!(standard-image)images/callhandling_200_generation_create_generator_model.png(Selecting "New → Code Generator Model" in the context menu)! +!(standard-image)images/tuto_callhandling_200_generation_create_generator_model.png(Selecting "New → Code Generator Model" in the context menu)! p=. Selecting "New → Code Generator Model" in the context menu The _YAKINDU Generator Model_ wizard opens. Change the _File name_ to *CallHandling.sgen*, then click _Next >_. -!(standard-image)images/callhandling_210_generation_new_sgen_model_1.png(Selecting a filename for the generator model)! +!(standard-image)images/tuto_callhandling_210_generation_new_sgen_model_1.png(Selecting a filename for the generator model)! p=. Selecting a filename for the generator model @@ -401,13 +401,13 @@ From the _Generator_ drop-down menu at the top, select _YAKINDU SCT Java Code Ge In the statechart tree beneath that menu, check the *CallHandling.sct* model, then click _Finish_. -!(standard-image)images/callhandling_220_generation_new_sgen_model_2.png(Selecting generator type and statechart model)! +!(standard-image)images/tuto_callhandling_220_generation_new_sgen_model_2.png(Selecting generator type and statechart model)! p=. Selecting generator type and statechart model Now the wizard creates the default SGen model for Java code generation and opens it in an SGen editor. The project explorer on the left-hand side shows the new model file _CallHandling.sgen_. -!(standard-image)images/callhandling_230_generation_new_sgen_model_3.png(The generator model)! +!(standard-image)images/tuto_callhandling_230_generation_new_sgen_model_3.png(The generator model)! p=. The generator model @@ -455,13 +455,13 @@ The generator model is executed by a so-called Eclipse _builder_. That is, as lo As you can see in the project explorer, the folder _src-gen_ has been created and populated with the generated Java source code artifacts. -!(standard-image)images/callhandling_240_generation_timer_service.png(Adding the timer service feature)! +!(standard-image)images/tuto_callhandling_240_generation_timer_service.png(Adding the timer service feature)! p=. Adding the timer service feature Add the generated artifacts to the Java build path by right-clicking on the _src-gen_ folder and selecting _Build Path → Use as source folder_ in the context menu. -!(standard-image)images/callhandling_250_generation_use_as_source_folder.png(Declaring "src-gen" as a source folder)! +!(standard-image)images/tuto_callhandling_250_generation_use_as_source_folder.png(Declaring "src-gen" as a source folder)! p=. Declaring "src-gen" as a source folder @@ -477,7 +477,7 @@ Let's establish a new Java class _CallHandlingClient_ and integrate the state ma # Right-click on the _src_ folder. # Select _New → Class_ in the context menu. -# Name it _CallHandlingClient_.
!(standard-image)images/callhandling_300_java_integration_create_new_class.png! +# Name it _CallHandlingClient_.
!(standard-image)images/tuto_callhandling_300_java_integration_create_new_class.png! # Click _Finish_. Next, copy the following code into the created class: diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/advanced_simulation.textile b/plugins/org.yakindu.sct.doc.user/src/user-guide/advanced_simulation.textile new file mode 100644 index 0000000000..313a79ca9e --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/user-guide/advanced_simulation.textile @@ -0,0 +1,221 @@ + +p. + +==
== + +h1(#advsim_simulation). Debugging with breakpoints and snapshots + +h2(#advsim_introduction). Introduction + +This advanced feature makes it possible to attach *breakpoints* to states and transitions. If a statechart simulation reaches a transition or a state with a breakpoint, it suspends execution of the simulation. A breakpoint can be amended with a _condition_ in order to suspend the simulation only if the condition is fulfilled (true). + +You can also create *snapshots* of your statechart simulation. A snapshot contains everything making up your state machine simulation at any point in time. It describes the state of the state machine, if you will. Snapshots can be saved and restored later in order to continue the simulation from that point on that is specified by the snapshot. + +h3(#advsim_the-light-switch-example). The light switch example + +Throughout this chapter we will be using the _light switch_ statechart as an example. It models a lamp which can be turned on and off and also supports various brightness values. + +If you press the _pressLightOn_ button, the lamp turns on at its lowest brightness value. If you operate _pressLightOn_ repeatedly, each time the lamp becomes brighter until it reaches its maximum brightness. Pressing the _pressLightOff_ button, immediately turns off the light completely. The brightness can only be raised as long as it hasn't yet reached its maximum value of five. After that, the guard condition disallows to raise it any further. + +p(#advsim_fig-the-light-switch-sample-statechart). +!(standard-image)images/advsim_010_lightswitch_010_statechart.png(The light switch sample statechart)! + +p=. The light switch sample statechart + +h2(#advsim-breakpoints). Breakpoints + +Breakpoints allow for automatically suspending the simulation when a certain element of the state machine is activated. Optionally, a halting condition can be specified to better control the behavior of a breakpoint. Breakpoints can be set on transitions or states. When a breakpoint is reached, the simulation pauses and the current state of variable values can be examined in the simulation view. It is possible to change values and to trigger events that will be raised when the simulation run is manually resumed. + +h2(#advsim_executing-in-debugging-mode). Executing in debugging mode + +To make use of breakpoints, the statechart simulation needs to be executed in debugging mode: + +# Right-click on the statechart model. The context menu opens. +# Select _Debug As→Statechart Simulation_, see "Figure "Starting a simulation in debugging mode"":#advsim_fig-starting-a-simulation-in-debugging-mode. +# The statechart simulation starts in the debugging mode. + +p(#advsim_fig-starting-a-simulation-in-debugging-mode). +!(standard-image)images/advsim_020_start_debugging_010_debug_as_menu.png(Starting a simulation in debugging mode)! + +p=. Starting a simulation in debugging mode + +h3(#advsim_setting-a-breakpoint). Setting a breakpoint + +# Right-click on a state or transition. The context menu opens. +# Select _Toggle Breakpoint_ from the context menu, see "Figure "Setting a breakpoint"":#advsim_fig-setting-a-breakpoint. + +p(#advsim_fig-setting-a-breakpoint). +!(standard-image)images/advsim_030_breakpoint_010_setting_on_transition.png(Setting a breakpoint)! + +p=. Setting a breakpoint + +States and transitions having a breakpoint attached are labeled with a !(inlinemediaobject)images/advsim_symbol_breakpoint_enabled.png! symbol. "Figure "Breakpoints on transition and state"":#advsim_fig-breakpoints-on-transition-and-state shows an example. + +p(#advsim_fig-breakpoints-on-transition-and-state). +!(standard-image)images/advsim_030_breakpoint_020_transition_and_state_with_breakpoints.png(Breakpoints on transition and state)! + +p=. Breakpoints on transition and state + +h3(#advsim_hitting-a-breakpoint). Hitting a breakpoint + +If the simulation runs into a state with a breakpoint, the state's entry actions, if any, are executed. After that, execution of the state machine is suspended. The state is highlighted by a small green border. + +!(standard-image)images/advsim_030_breakpoint_030_suspending_at_state.png(Highlighting a suspended state)! + +p=. Highlighting a suspended state + +If the simulation runs into a transition with a breakpoint, execution of the state machine is suspended. The transition is highlighted by drawing the transition arrow in green. The transition's actions, if any, are executed when the state machine is resumed. + +!(standard-image)images/advsim_030_breakpoint_040_suspending_at_transition.png(Highlighting a suspended transition)! + +p=. Highlighting a suspended transition + + +h3(#advsim_continuing-the-simulation). Continuing the simulation + +In order to continue from a breakpoint, you have two options: + +* To continue execution, click the resume button !(inlinemediaobject)images/advsim_symbol_resume.png! or select _Run → Resume_ in the main menu. The statechart simulation continues until the next breakpoint is hit or the simulation is terminated. +* To execute the next run-cycle of the simulation only and then suspend again, click the step-over button !(inlinemediaobject)images/advsim_symbol_stepover.png! or select _Run → Step Over_ in the main menu. + +h3(#advsim_using-the-breakpoints-view). Using the breakpoints view + +The _breakpoints_ view shows a list of all breakpoints. The respective breakpoint name identifies the state or transition in question. See "figure "Breakpoints view"":#advsim_fig-breakpoints-view for an example. + +You can use the _breakpoints_ view for disabling, enabling, and removing breakpoints as well as defining "conditional breakpoints":#advsim_conditional-breakpoints. + +p(#advsim_fig-breakpoints-view). +!(standard-image)images/advsim_030_breakpoint_050_enabled_and_disabled_breakpoints.png(Breakpoints view)! + +p=. Breakpoints view + +h3(#advsim_enabling-and-disabling-breakpoints). Enabling and disabling breakpoints + +A breakpoint is either enabled or disabled. + +* An enabled breakpoint causes the statechart simulation to suspend when reaching it. In the statechart and in the _breakpoints_ view, an enabled breakpoint is visualized by a filled light blue circle with a grey border: !(inlinemediaobject)images/advsim_symbol_breakpoint_enabled.png!. +* A disabled breakpoint is ignored by the statechart simulation. In the statechart and in the _breakpoints_ view, a disabled breakpoint is visualized by a hollow circle with a grey border: !(inlinemediaobject)images/advsim_symbol_breakpoint_disabled.png!. + +"Figure "Breakpoints view"":#advsim_fig-breakpoints-view is showing an enabled and a disabled breakpoint in the statechart editor and in the breakpoints view, respectively. + +You can instruct the statechart simulation to skip all breakpoints by clicking at the !(inlinemediaobject)images/advsim_button_breakpoint_skip_disengaged.png! button in the breakpoints view. The button will appear "pressed", and while it is, the "skip breakpoints" functionality is engaged. That means, the simulation will not suspend at any breakpoint. + +This is different from disabling all breakpoints, in that each breakpoint keeps its state of being enabled or disabled. Once you disengage the skip breakpoints functionality by clicking at the !(inlinemediaobject)images/advsim_button_breakpoint_skip_engaged.png! button again, the simulation will suspend again at enabled breakpoints and will not suspend at disabled breakpoints. + +h3(#advsim_removing-breakpoints). Removing breakpoints + +In order to remove _some_ breakpoints, select these breakpoints in the breakpoints view, then click at the !(inlinemediaobject)images/advsim_button_remove.png(remove)! button. The selected breakpoints will be removed. + +To remove _all_ breakpoints, click at the !(inlinemediaobject)images/advsim_button_remove_all.png(remove all)! button + +h3(#advsim_conditional-breakpoints). Conditional breakpoints + +A _conditional_ breakpoint has an associated condition and suspends the simulation only if +* that condition is fulfilled (true) and +* the breakpoint is enabled. + +In order to attach a condition to a breakpoint, proceed as follows: +* In the _breakpoints_ view, select the breakpoint in question. +* Check the _Conditional_ checkbox, see "figure "Breakpoints view"":#advsim_fig-breakpoints-view in the lower right area. The associated text field becomes writable. + +Enter the condition into the text field. Like in the statechart editor, a content assist is available when pressing @[Ctrl+Space]@. The expression is validated automatically. In the example shown in "figure "Breakpoints view"":#advsim_fig-breakpoints-view the transition suspends the simulation only if the variable _brightness_ has a value of 4. + +h2(#advsim_debugging-a-statechart). Debugging a statechart + +h3. Changing variable values + +In the suspended status of a statechart simulation you can change variable values using the _simulation_ view. When continuing execution – see section "Continuing the simulation":#advsim_continuing-the-simulation – you can observe how your state machine behaves with those modified values. + +h3. Raising multiple events simultaneously + +If you click on an event's name in the _simulation_ view to raise that event in normal simulation, i. e. while execution isn't suspended, the state machine immediately processes that event and takes the corresponding transition, if any. + +However, while the simulation is suspended, you can raise multiple events, without instant execution. Once execution resumes, both events are handled at the same time, or, to be more exact, in the same run-to-completion step (RTS). + +Consider for example, you want to press the "light on" and "light off" buttons at the same time and observe what happens. "Figure "Raising multiple events simultaneously"":#advsim_fig-raising-multiple-events-simultaneously-1 is showing the scenario: + +p(#advsim_fig-raising-multiple-events-simultaneously-1). +!(standard-image)images/advsim_040_multiple_events_010_events_not_raised.png(Raising multiple events simultaneously 1)! + +p=. Raising multiple events simultaneously 1 + +* The simulation has encountered a breakpoint at the _LightOn_ state and has been suspended there. +* The _simulation_ view shows the _LightOn_ and the _LightOff_ events. Both events are labeled with a !(inlinemediaobject)images/advsim_symbol_event.png(event)! symbol, meaning the respective event is not raised. + +p(#advsim_fig-raising-multiple-events-simultaneously-2). +!(standard-image)images/advsim_040_multiple_events_020_events_raised.png(Raising multiple events simultaneously 2)! + +p=. Raising multiple events simultaneously 2 + +* Clicking at an event raises it and adds a blue triangle to the event symbol: !(inlinemediaobject)images/advsim_symbol_event_raised.png(event raised)!. Since the simulation remains suspended, the user can raise multiple events. + +Both events are raised and will be handled by the state machine during the next run-to-completion step. The latter will be performed as soon as the user clicks on the step-over button !(inlinemediaobject)images/advsim_symbol_stepover.png! or the resume button !(inlinemediaobject)images/advsim_symbol_resume.png!. + +bq. Please note: While the execution is still suspended, you can "unraise" an already raised event by clicking at the event symbol !(inlinemediaobject)images/advsim_symbol_event_raised.png(event raised)! a second time. The blue triangle will disappear, and upon continuation of the simulation the event will not be handled. + +h4. Transition priorities + +It is important to understand that there is not queue of events. That is, in case several events occur simultaneously, the state machine consults the active state's transitions priorities in the order that is specified in the corresponding property, see "figure "Transition priorities"":#advsim_fig-transition-priorities. You can change the transitions priorities by selecting a transition and moving it up or down by clicking at the respective button. + +The first transition whose condition is fulfilled will be executed. All remaining events are quashed. + +p(#advsim_fig-transition-priorities). +!(standard-image)images/advsim_040_multiple_events_030_transition-priorities.png(Transition priorities)! + +p=. Transition priorities + +h2(#advsim_snapshots). Snapshots + +The snapshot feature allows to store and restore the state of a simulation run. A snapshot comprises all *active states* of the state machine as well as all *variable values* at the time of snapshot creation. + +This feature is especially useful when testing complex state machines in which a number of steps need to be taken before reaching a desired situation. Using snapshots, you can store this desired situation once and simply restore it again without repeating all the steps to reach it. Depending on the complexity of the usecase, this can be a huge time-saver. + +h3. Creating a snapshot + +To create a snapshot of the current statechart simulation, proceed as follows: + +# Change to _Snapshots_ view. +# Click at the camera button !(inlinemediaobject)images/advsim_button_camera.png(camera)! in the view's toolbar. +# The snapshot is taken and appears in the snapshot list. It is labeled as "Snapshot" and tagged with the current timestamp. See "figure "A freshly taken snapshot"":#advsim_fig-a-freshly-taken-snapshot. + +p(#advsim_fig-a-freshly-taken-snapshot). +!(standard-image)images/advsim_050_snapshots_010_a-freshly-taken-snapshot.png(A freshly taken snapshot)! + +p=. A freshly taken snapshot + + +h3. The snapshots view + +The _snapshots_ view consists of two parts. +* The _snapshot list_ contains all snapshots with their respective names and timestamps. +* The _snapshot details_ part displays the contents of the snapshot. It contains two different views which can be toggled via the toolbar buttons: +** !(inlinemediaobject)images/advsim_button_snapshot_variable_overview.png(image overview)!: shows all variable values +** !(inlinemediaobject)images/advsim_button_snapshot_image_overview.png(image overview)!: shows an image of the state machine with highlighted active elements + +p(#advsim_fig-inspecting-the-variables-of-a-snapshots). +!(standard-image)images/advsim_050_snapshots_025_details_view.png(Inspecting the variables of a snapshots)! + +p=. Inspecting snapshot details, on the left variables and the right its active elements + +h3. Restoring a snapshot + +To restore a snapshot for execution, proceed as follows: +# Select the snapshot to be restored. +# Click at the _restore_ button !(inlinemediaobject)images/advsim_button_snapshot_restore.png(restore snapshot)!. +# The snapshot is restored as an additional executing state machine instance. + +bq. Please note: When the semantics of the underlying state machine have been changed, it might not be possible to restore a snapshot, e.g. when the active state has been deleted. + +h3. Naming a snapshot + +The label of a snapshot can be changed as follows: +# Click at its label. The label becomes an editable field. +# Enter the new snapshot name and press @[Return]@ or click anywhere outside the editable field. + +h3. Deleting a snapshot + +* To delete one or more snapshots, select the snapshots to be deleted, then click at the _remove_ button !(inlinemediaobject)images/advsim_button_remove_red.png(remove)!. +* To delete _all_ snapshots, click at the _remove all_ button !(inlinemediaobject)images/advsim_button_remove_all.png(remove all)!. + +==
== + diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/c-domain.textile b/plugins/org.yakindu.sct.doc.user/src/user-guide/c-domain.textile new file mode 100644 index 0000000000..557e08e036 --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/user-guide/c-domain.textile @@ -0,0 +1,551 @@ + +p. + +==
== + +h1(#cdom_deep-c-integration). Deep C Integration: Integrating your C source code with your statecharts + +h2(#cdom_introduction). Introduction + +The YAKINDU Statechart Tools Professional Edition comes with a _Deep C Integration_ feature which allows for using C types, variables, and operations directly within the statechart model. C header files located in your workspace are automatically recognized by the tool and all contained type and operation declarations are made accessible in the statechart editor with all its editing features like code completion and validation. In addition to your custom C types, the C99 standard primitive types, like _int16_t_, are also available out of the box. + +Making your self-defined C types, structs, and unions available in YAKINDU statechart saves you a lot of time and hassle that would otherwise be needed to map data from your C-type variables to statechart variables and vice versa. The _Deep C Integration_, however, allows you to _directly_ create and manipulate your data structures in their native C types. + + +bq.. *Please note:* + +Instead of "types, structs, and unions", subsequently we will speak of "types" only. While this does not precisely confirm with the C programming language nomenclature, it is much easier to read in a text. From a statechart's point of view, there is no relevant difference between types, structs, and unions anyway. Should it become necessary to differentiate between types, structs, and unions, we will do so explicitly. + +bq.. *Please also note:* + +This preliminary version of *YAKINDU Statechart Tools Professional Edition* does not support pointers and arrays yet. These types will be supported in the full version. + +p. The subsequent sections will explain how to use the C integration in practice, using a sample project. In this example, we will define some geometry types like _Point_ or _Triangle_ in C header files and demonstrate how to make them available and use them in a statechart model. + + +h2(#cdom_creating_a_new_c_project). Creating a new C project + +# In the Eclipse main menu, select _File → New → Project…_. The _New Project_ wizard opens. +# Select _C/C++ → C Project_.
!(standard-image)images/cdom_geometry_010_new_c_project_010.png(Creating a new C project)! +# Click _Next >_. The _C Project_ dialog appears. +# Enter the name of your project into the _Project name_ field. For the sake of this example, we call the project *Geometry*. +# Specify the location of the project folder by either using the default location or by explicitly specifying a directory in the _Location_ field. +# Select the _Project type_. In order to keep things plain and simple, for this example we create an _Empty Project_. +# Select the toolchain you want to work with. It contains the necessary tools for C development. By default only the toolchains supporting your local platform are displayed. Since this example has been created on a Linux machine, the toolchain *Linux GCC* is shown.
!(standard-image)images/cdom_geometry_010_new_c_project_020.png(Specifying the C project's properties)! +# Click _Next >_. +# Specify platforms, configurations, and project settings. This is more specific to C than to YAKINDU Statechart Tools, so we won't go into any details here.
!(standard-image)images/cdom_geometry_010_new_c_project_030.png(Specifying platforms, configurations, and project settings)! +# Click _Finish_. +# Eclipse asks whether it should associate this kind of project with the C/C++ perspective. Usually this is what you want, so set a checkmark at _Remember my decision_ and click _Yes_. +# Eclipse creates the C project, here *Geometry*. + +h2(#cdom_creating_a_c_header_file). Creating a C header file + +Now we can create a C header file specifying our own C type definitions which we can use in a statechart later. In order to create the file, let's proceed as follows: + +# In the project explorer view, right-click on the project. The context menu opens. +# In the context menu, select _New → Header File_.
!(standard-image)images/cdom_geometry_020_new_header_file_010.png(Creating a C header file)! +# The dialog _New Header File_ is shown. Specify the name of the header file. Here we choose *point.h*.
!(standard-image)images/cdom_geometry_020_new_header_file_020.png(Select a header file name)! +# Click _Finish_. +# The header file *point.h* is created.
+ +h2(#cdom_defining_a_c_struct). Defining a C struct + +In the created header file we define a struct type named *Point*, which we will later use in a statechart. A (two-dimensional) point consists of an _x_ and a _y_ coordinate. We choose *int16_t* to represent a coordinate, i. e. a 16-bit signed integer. The complete header file containing the struct definition looks like this: + +bc.. +/* + * point.h + * + */ + +#ifndef POINT_H_ +#define POINT_H_ + +#include + +typedef struct { + int16_t x; + int16_t y; +} Point; + +#endif /* POINT_H_ */ + +bq.. *Please note:* + +In C it is possible to define structs, unions and enums without a _typedef_. They can be referenced by using the corresponding qualifying keyword (_struct_, _union_, or _enum_, respectively). As the statechart language does *not* support these qualifiers, the usage of struct, union and enumeration types is currently restricted to those defined by a _typedef_. + +h2(#cdom_using_a_c_struct_in_a_statechart). Using C types in a statechart + +h3(#cdom_creating_a_statechart_model). Creating a statechart model + +Let's create a statechart model now to make use of the C type _Point_ we have just defined. + +# Right-click on the project. The context menu opens. +# Select _New → C Statechart Model …_. The _New YAKINDU Statechart_ wizard is shown. +# In the dialog, specify the directory and the filename for the new statechart model file. The filename should end with @.sct@. +# Click _Finish_. If Eclipse asks you whether to switch to the _YAKINDU Modeling_ perspective, please confirm. +# The new statechart model is created:
!(standard-image)images/cdom_geometry_030_new_statechart_model_030.png(New statechart model)! + +h3(#cdom_defining_a_c_type_variable). Defining a C-type variable in a statechart + +Variables are defined in the definition section on the left-hand side of the statechart editor. Double-click into the section to edit it. + +Let's declare a variable *pointA* of the _Point_ type defined above. In the statechart's definition section, enter the following text: + +bc. +interface: + var pointA: + +On the right-hand side of the colon in the variable declaration, the variable's type must follow. In order to see which types are available, press @[Ctrl+Space]@. The content assist opens and shows the C types available in our C project, i. e. +* the C basic standard types, +* the C99 types provided by including _stdint.h_, +* the self-defined _Point_ type. + +!(standard-image)images/cdom_geometry_040_c_types_010.png(Using the content assist to display available types)! + +p=. Using the content assist to display available types + +Selecting the _Point_ menu entry completes the variable definition: + +!(standard-image)images/cdom_geometry_040_c_types_020.png(A Point variable)! + +p=. A Point variable + +h3(#cdom_using_a_c_type_variable_in_a_statechart). Using a C-type variable in a statechart + +A statechart variable with a C type can be used everywhere a "normal" statechart variable can be used. + +Let's consider the above example extended by an additional *count* variable of the C99 _int8_t_ standard type. Additionally, we add an event that will be used as a trigger to switch between states. + +bc. interface: + var count: int8_t + var pointA: point.Point + in event tick + +The statechart below uses these variables in various places, i. e. in transition actions, in internal actions, and in guard conditions. + +!(standard-image)images/cdom_geometry_050_using_c_type_variables_010.png(Using C-type variables)! + +p=. Using C-type variables + +Variables of primitive types like @var count: int8_t@ are accessed as expected, e. g. @count = 0@ or @count += 1;@ + +The dot notation is used to access structure elements. For example, @pointA.x = 0; pointA.y = 0@ sets *pointA* to the origin of the coordinate system. + + +h3(#cdom_the_statechart_type_system). The statechart type system + +When parsing a C header file YAKINDU Statechart Tools are mapping the C data types to an internal type system. You can open a C header file in Eclipse with the _Sample Reflective Ecore Model Editor_ to see how the mapping result looks like. + +In case you are interested in the EMF model underlying SCT's type system, you can find it in the source code of the YAKINDU Statechart Tools open edition at _/org.yakindu.base.types/model/types.ecore_. + + + +h2(#cdom_namespaces). Namespaces + +h3(#cdom_importing_a_namespace). Importing a namespace + +Instead of using the fully-qualified type name – as in _point.Point_ – it is also possible to import the definitions provided by a C header file as a namespace. + +At the beginning of the definition section, enter @import:@ and hit @[Ctrl+Space]@. The content assist shows all namespaces you can import, besides other syntactical elements that would be valid here. In our example there's a single namespace _point_ that can be imported. The content assist explains that it comes from _/Geometry/point.h_, i. e. from the file _point.h_ in the _Geometry_ project. + +!(standard-image)images/cdom_geometry_060_importing_namespace_010.png(Selecting a namespace to import)! + +p=. Using C-type variables + +If we had more than a single header file in the project, we would see them all. The content assist shows all header files in a project, including those in subdirectories. + +Click on the namespace entry in the menu to complete the @import@ statement. The result looks like this: + +bc.. import: point + +interface: + var pointA: point.Point + +p. Please note that adding the @import@ statement does not change the variable declaration. However, you can now change the latter to: + +bc. var pointA: Point + + +h3(#cdom_differentiating_between_namespaces). Differentiating between namespaces + +Let's consider a scenario with several different _Point_ definitions now. There are two header files, each defining a _Point_ type, but with different properties. + +The file *point.h* in the main project directory contains the following defintion: + +bc. typedef struct { + int16_t x; + int16_t y; +} Point; + +Additionally, there is a file *three-d/point.h* which also defines a @struct Point@, but with different properties. This _Point_ is three-dimensional and supports _double_ coordinates: + +bc. typedef struct { + double x; + double y; + double z; +} Point; + +On the C side we would run into problems if we tried to use both _Point_ definitions simultaneously. However, in a statechart this is possible, because each header file represents a different namespace. + +A statechart definition section using a two-dimensional *pointA* and a three-dimensional *pointB* would look like this: + +bc. interface: + var pointA: point.Point + var pointB: three_d.point.Point + +The example above shows that pathnames of header files are mapped to namespace names. The example also shows that characters that are valid in a filesystem pathname (here: '-') are mapped to replacement characters that are allowed to occur in statechart type names (here: '_'). If you are unsure how to map a pathname to a type name, you can always use the content assist to do the mapping for you. + +Although it is possible to *import* both namespaces as described in section ""Importing a namespace"":#cdom_importing_a_namespace, it is not advisable. Consider the following example: + +bc.. import: point +import: three_d.point + +interface: + var pointA: Point + var pointB: Point + +p. This won't work, because _Point_ is ambiguous. To define *pointA* and *pointB* correctly, you would still have to fully-qualify the _Point_ types: + +bc.. import: point +import: three_d.point + +interface: + var pointA: point.Point + var pointB: three_d.point.Point + +p. However, in this case the imports would be pointless (pun intended). What you could do is to import only one of the namespaces. Then an unqualified _Point_ denotes the one in the imported namespace, while all other _Point_ types must be fully-qualified. Example: + +bc.. import: point + +interface: + var pointA: Point + var pointB: three_d.point.Point + +h2(#cdom_data_structure_traversal_via_dot_notation). Data structure traversal via dot notation + +The dot notation to access structure members can traverse an arbitrary number of stages. As an example, let's define a datatype named _Triangle_. A triangle is defined by three points. Using dot notation in a statechart, you can navigate from a triangle to its individual points and further on to the points' coordinates. + +The C header file *triangle.h* specifies the _Triangle_ type: + +bc.. #ifndef TRIANGLE_H_ +#define TRIANGLE_H_ + +#include "./point.h" + +typedef struct { + Point a, b, c; +} Triangle; + +#endif /* TRIANGLE_H_ */ + +p. A _Triangle_ consists of the three _Points_ _a_, _b_, and _c_. Let's define a _Triangle_ _t_ in a statechart's definition section as follows: + +bc.. import: triangle + +interface: + var t: Triangle + +p. With this definition we can use expressions like @t.a.x@, see the image below. Regardless of where you are currently editing an expression, you can always use the code assist to explore which fields are available at that very point and of which types these fields are. Example: + +!(standard-image)images/cdom_geometry_170_data_structure_traversal_010.png(Content assist in data structure traversal)! + +p=. Content assist in data structure traversal + + +h2(#cdom_simulation). Simulation + +During a statechart model simulation full access to the C data structures is possible on all layers. The user can inspect them as well as modify them in the simulation view. + +The state machine below exemplifies this. Initially it defines two rectangles _a_ and _b_ with certain widths and heights. The state machine calculates the rectangles' respective area size, stores their sizes in two _int32_t_ variables named _area_a_ and _area_b_, and compares them. Depending on the result, it proceeds to state *A is larger* or to *A is smaller*. Only if both _a_ and _b_ have the same area – not necessarily the same width and height –, the state machine proceeds to its final state. + +When one of the states *A is larger* or *A is smaller* is active, the rectangles' properties can be changed. Triggering the _compare_size_ event transitions to the *Check* state which repeats the area size comparison as described above. + +!(standard-image)images/cdom_geometry_080_simulation_010_statechart.png(The rectangle comparison statechart)! + +p=. The rectangle comparison statechart + +The state machine's definitions are as follows: + +bc.. import: rectangle + +interface: + var a: Rectangle + var b: Rectangle + var area_a: int16_t + var area_b: int16_t + +internal: + event compare_size + +p. The _Rectangle_ datatype is defined in a new header file _rectangle.h_ with the following contents: + +bc.. #include "./point.h" + +typedef struct { + Point lowerLeft; + int16_t width, height; +} Rectangle; + +p. In order to simulate the statechart, right-click on the statechart file in the project explorer and select _Run As → Statechart Simulation_ from the context menu. + +The statechart simulation +* starts, +* performs the initializing actions specified in the transition from the initial state to the *Check* state, +* in the *Check* state, calculates the rectangles' areas and stores the results in the _area_a_ and _area_b_ variables, +* transitions to the *A is larger* state, because its guard condition is fulfilled, and +* stops, waiting for the _compare_size_ event to occur. + +h3(#cdom_inspecting_inspecting_c_data_structures). Inspecting C data structures + +!(standard-image)images/cdom_geometry_080_simulation_020_inspecting.png(Inspecting C data structures)! + +p=. Inspecting C data structures + +The simulation view in the screenshot above is showing the state machine's variables and their values. Click to open or close the nested data structures. The image below shows in particular +* the rectangles' respective width and height values as have been set initially, +* the calculated areas of the _a_ and _b_ rectangles, +* the coordinates of the points defining the respective lower left corner of the rectangles. + +bq.. *Warning:* + +Simple C variables and fields in C data structure are *not* initialized. Never try to read a variable or field you haven't written before, because it might contain arbitrary values. + +Even if the _Point_ data structures in the example above look like having been initialized to defined values, they are not. Without going into details, in C, variables are generally *not* initialized. This also holds for statechart variables from the C integration. If you are reading a variable, make sure you have written to it before. Otherwise you might get surprising and non-deterministic results. + +h3(#cdom_inspecting_modifying_c_data_structures). Modifying C data structures + +Change a variable's or field's value as follows: +# Click on the _value_ displayed in the simulation view. +# Enter the new value into the text field, see figure ""Modifying C data values"":#cdom_fig_modifying_c_data_values where _a.height_ is being edited and the previous value 7 is replaced by 3. +# Press the @[Enter]@ key to quit editing and to write the new value to the variable or field. Giving the input focus to another window has the same effect. +# You can cancel editing by pressing the @[Esc]@ key. The variable's or field's value remains unchanged. + +p(#cdom_fig_modifying_c_data_values). + +!(standard-image)images/cdom_geometry_080_simulation_030_modifying.png(Modifying C data values)! + +p=. Modifying C data values + +In the example, click _compare_size_ to trigger the event. The state machine transitions to the *Check* state, recalculates the areas, and behaves as explained above. + +!(standard-image)images/cdom_geometry_080_simulation_040_rechecked.png(Rectangle areas modified and rechecked)! + +p=. Rectangle areas modified and rechecked + + +h2(#cdom_looking_up_a_type_definition). Looking up a type definition + +Given a variable definition in a statechart's definition section, you can lookup the corresponding type definition. The definition section must be in editing mode, i. e. you must have double-clicked into it. Now press the @[Ctrl]@ key and move the mouse pointer over the type name. The former changes its shape into a hand symbol and the latter changes into a hyperlink: + +!(standard-image)images/cdom_geometry_160_type_lookup_010.png(Looking up a C type)! + +p=. Looking up a C type + +Click on the hyperlink to open the header file containing the respective type declaration. + +p=. Showing the C type definition + + +h2(#cdom_enums). Enums + +Besides specifying structure types, it is also possible to declare enumeration types in a C header. Here's the header file *color.h* which defines the _Color_ enumeration type: + +bc.. #ifndef COLOR_H_ +#define COLOR_H_ + +typedef enum { + RED, GREEN, BLUE, YELLOW, BLACK, WHITE +} Color; + +#endif /* COLOR_H_ */ + +p. Now let's extend the _Triangle_ defined above by a fill color: + +bc.. #ifndef TRIANGLE_H_ +#define TRIANGLE_H_ + +#include "./point.h" +#include "./color.h" + +typedef struct { + Point a, b, c; + Color fillColor; + +} Triangle; + +#endif /* TRIANGLE_H_ */ + + +p. Similar to the _Triangle_ type or any other C type, the _Color_ enumeration type can be used in the statechart, e. g. by declaring an additional interface variable: + +bc.. import: color +import: triangle + +interface: + var t: Triangle + var c: Color = Color.BLUE + +p. Please note that in contrast to structured types, enumeration variables can be initialized directly in their definitions. + +In order to see which values are available the content assist, triggered by @[Ctrl+Space]@, is helpful again. + +!(standard-image)images/cdom_geometry_083_enum_010_content_assist.png(Using content assist to select an enumeration value)! + +p=. Using content assist to select an enumeration value + +Once initialized, the _c_ variable can now be used e. g. in an assignment to the triangle _t_'s fill color: + +bc. t.fillColor = c; + +Accordingly, during simulation the values of enum variables are displayed in the simulation view. It is also possible to modify them manually. + +!(standard-image)images/cdom_geometry_083_enum_020_simulation.png(Using content assist to select an enumeration value)! + +p=. Using content assist to select an enumeration value + +h2(#cdom_operations). Operations + +Functions declared in a C header file become available in a statechart. The state machine can call it as an _operation_. + +Let's say our *rectangle.h* header file not only defines the data type, but also declares one or more C functions to operate on them. The following line declares a function named _area_, taking a _Rectangle_ parameter by value and returning an _int32_t_ result. + +bc. extern int32_t area(Rectangle r); + +For the sake of the example, let's assume the function calculates the area of the given rectangle. Of course we could also do this with means built into the statechart language. However, in the general case you neither _can_ nor _want_ to do that. +* Implementing the functionality in the statechart language might not be possible, because the latter does not provide the necessary means, e. g. to pull some data from an external source. +* Even if it would be possible to implement the functionality in the statechart language, it might still not be desirable, if the functionality has been developed and fully tested in C already. You will neither want to re-invent the wheel nor would you want to introduce any new errors into an alternative implementation. + +YAKINDU Statechart Tools parses function declarations in header files and makes the functions available in the statechart language. It doesn't care where those functions are defined – or whether they are defined at all – nor what they do. Questions like these will become relevant later when the state machine is generated as C source code, compiled and linked to the functions' implementations. + +For now, once the statechart knows about the _area_ function's declaration in the C header file, the function can be used immediately in statechart language operations. Any @operation@ declaration in the statechart's definition section is not needed. Example: + +!(standard-image)images/cdom_geometry_090_operations_010_content_assist.png(Using content assist to enter a C function call)! + +p=. Using content assist to enter a C function call + +Here's the complete example with the area calculations done by the _area_ function: + +!(standard-image)images/cdom_geometry_090_operations_020_calling_area.png(Using content assist to enter a C function call)! + +p=. Using content assist to enter a C function call + + +bq.. *Please note:* + +State machines calling C functions as operations are debarred from simulation and debugging. The simulator is not yet capable to call C functions. + + +h2(#cdom_generating_c_source_code). Generating C source code + +Code generation, i. e. turning a statechart model into source code of a programming language, is explained in the section _Generating state machine code_. Therefore we won't go into the details here, but instead only put some emphasis on code generation specialties of the _Deep C Integration_. + +h3(#cdom_creating_a_generator_model). Creating a generator model + +In the statechart model introduced above, do the following: + +# In the project view, right-click on the project's name. The context menu opens. +# In the context menu, select _New → Code Generator Model_. The _YAKINDU Generator Model_ wizard opens. +# Enter a file name into the _File name_ field, e. g. *c.sgen*, and click _Next >_. +# In the _Generator_ drop-down menu, select *YAKINDU SCT C Code Generator*. +# Select the statechart models to generate C source code for. Click _Finish_. + +YAKINDU Statechart Tools creates the following generator model in the file *c.sgen*: + +bc.. GeneratorModel for yakindu::c { + + statechart statechart { + + feature Outlet { + targetProject = "Geometry" + targetFolder = "src-gen" + libraryTargetFolder = "src" + } + } +} + +p. YAKINDU Statechart Tools creates the target folders _src_ and _src-gen_ and generates the C source representing the statemachine into them. + +h3(#cdom_the_generated_c_code). The generated C code + +Particularly interesting are the files *Statechart.h* and *Statechart.c*. + +*Statechart.h* first includes the *sc_types.h* header followed by very same C header files that have been included in the statechart: + +bc. #include "sc_types.h" +#include "rectangle.h" + +The generated code in *Statechart.h* then uses the native standard and user-defined C data types. For example, the statechart implementation defines the type _StatechartIface_ as follows: + +bc. /*! Type definition of the data structure for the StatechartIface interface scope. */ +typedef struct +{ + Rectangle a; + Rectangle b; + int32_t area_a; + int32_t area_b; + Point p; +} StatechartIface; + +By including *Statechart.h* all definitions are available in *Statechart.c*, too. For example, a getter and a setter function for the _Rectangle_ variable _a_ are defined as follows: + +bc. Rectangle statechartIface_get_a(const Statechart* handle) +{ + return handle->iface.a; +} +void statechartIface_set_a(Statechart* handle, Rectangle value) +{ + handle->iface.a = value; +} + +The external _area_ function is called in the entry actions section of state _Check_: + +bc. /* Entry action for state 'Check'. */ +static void statechart_enact_main_region_Check(Statechart* handle) +{ + /* Entry action for state 'Check'. */ + handle->iface.area_a = area(handle->iface.a); + handle->iface.area_b = area(handle->iface.b); +} + + +h2(#cdom_currently_supported_primitive_types). Currently supported primitive types + +The _Deep C Integration_ natively supports the following primitive C types. That is, in a statechart without any additional data type definitions, the following types are readily available: + +* _bool_ +* _double_ +* _float_ +* _int16_t_ +* _int32_t_ +* _int64_t_ +* _int8_t_ +* _string_ +* _uint16_t_ +* _uint32_t_ +* _uint64_t_ +* _uint8_t_ +* _void_ + + +h2(#cdom_current_restrictions). Current restrictions + +The current beta version of the YAKINDU Statechart Tools is still missing some essential C functionalities that will be approached as soon as possible by subsequent releases. Among others, the following issues are known to be not available yet: + +h3(#cdom_current_restrictions_arrays_pointers). Arrays and pointers + +Currently YAKINDU Statechart Tools cannot handle arrays and pointers. This also means that all structs containing arrays or pointer types as members, or operations using these types as parameters can not be accessed. Usage of these types will produce error markers in the statechart, stating "The used type is not supported". + +h3(#cdom_current_restrictions_ranges). Type range checks + +Type range validations are currently not implemented. As a consequence, it is possible to e. g. assign an _int32_t_ value to an _int8_t_ variable one without any warning. + +h3(#cdom_plain-struct-union-and-enum-types). Plain struct, union, and enum types + +In C it is possible to define structs, unions and enums without a _typedef_. They can be referenced by using the corresponding qualifying keyword (_struct_, _union_, or _enum_, respectively). As the statechart language does *not* support these qualifiers, the usage of struct, union and enumeration types is currently restricted to those defined by a _typedef_. + +h3(#cdom_please_get_in_touch_with_us). Please get in touch with us + +Please note that the preceding list of restrictions might not be complete. If you discover any further problems, please do not hesitate to contact us! Your feedback is highly appreciated! + +==
== diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/40_editing_statecharts.textile b/plugins/org.yakindu.sct.doc.user/src/user-guide/editing_statecharts.textile similarity index 87% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/40_editing_statecharts.textile rename to plugins/org.yakindu.sct.doc.user/src/user-guide/editing_statecharts.textile index 826a23fc2c..d1dc9fd7cd 100644 --- a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/40_editing_statecharts.textile +++ b/plugins/org.yakindu.sct.doc.user/src/user-guide/editing_statecharts.textile @@ -58,7 +58,7 @@ _SC Modeling_ is an Eclipse perspective supporting the modeling of statecharts. h3(#canvas). Canvas -The canvas is the statechart editor's drawing area. When you create a new statechart model, the canvas comprises the definition section and a single "region":30_statechart_language#region. +The canvas is the statechart editor's drawing area. When you create a new statechart model, the canvas comprises the definition section and a single "region":../user-guide/statechart_language#region. The following list gives an overview of what kind of actions you can perform on the canvas: * Add or remove a region @@ -74,34 +74,34 @@ The editor palette provides you with a set of various actions and statechart edi You can hide the palette by clicking on the small triangle in the palette's title bar. Click on the triangle again to make the palette reappear. -!(standard-image)images/editor-palette_010_overview.png(Editor palette)! +!(standard-image)images/docu_editor-palette_010_overview.png(Editor palette)! p=. Editor palette h4(#oss-editing-action-tools). Editing action tools Below its title bar, the palette contains a toolbar with the following editing action tools (from left to right): -| !images/editor-palette_020_symbol_select.png(Editor palette symbol "Select")! | Select | | -| !images/editor-palette_030_symbol_zoom_in.png(Editor palette symbol "Zoom in")! | Zoom in | Left-click to zoom in. Press @[Shift]@ and left-click to zoom out. Drag to zoom to selection. | -| !images/editor-palette_040_symbol_zoom_out.png(Editor palette symbol "Zoom out")! | Zoom out | Left-click to zoom out. Press @[Shift]@ and left-click to zoom in. | -| !images/editor-palette_070_symbol_note.png(Editor palette symbol "Note")! | Note | Create a note, a text or a note attachment. | +| !images/docu_editor-palette_020_symbol_select.png(Editor palette symbol "Select")! | Select | | +| !images/docu_editor-palette_030_symbol_zoom_in.png(Editor palette symbol "Zoom in")! | Zoom in | Left-click to zoom in. Press @[Shift]@ and left-click to zoom out. Drag to zoom to selection. | +| !images/docu_editor-palette_040_symbol_zoom_out.png(Editor palette symbol "Zoom out")! | Zoom out | Left-click to zoom out. Press @[Shift]@ and left-click to zoom in. | +| !images/docu_editor-palette_070_symbol_note.png(Editor palette symbol "Note")! | Note | Create a note, a text or a note attachment. | h4(#oss-statechart-elements-tools). Statechart elements tools The palette comprises a couple of tools serving to add statechart elements to the diagram (from top to bottom): -| !images/editor-palette_210_tool_transition.png(Editor palette element tool "Transition")! | -| !images/editor-palette_220_tool_state.png(Editor palette element tool "State")! | -| !images/editor-palette_230_tool_composite_state.png(Editor palette element tool "Composite state")! | -| !images/editor-palette_240_tool_orthogonal_state.png(Editor palette element tool "Orthogonal state")! | -| !images/editor-palette_250_tool_region.png(Editor palette element tool "Region")! | -| !images/editor-palette_260_tool_entry.png(Editor palette element tool "Entry")! | -| !images/editor-palette_270_tool_shallow_history.png(Editor palette element tool "Shallow history")! | -| !images/editor-palette_280_tool_deep_history.png(Editor palette element tool "Deep history")! | -| !images/editor-palette_290_tool_final_state.png(Editor palette element tool "Final state")! | -| !images/editor-palette_300_tool_exit_node.png(Editor palette element tool "Exit node")! | -| !images/editor-palette_310_tool_choice.png(Editor palette element tool "Choice")! | -| !images/editor-palette_320_tool_synchronization.png(Editor palette element tool "Synchronization")! | +| !images/docu_editor-palette_210_tool_transition.png(Editor palette element tool "Transition")! | +| !images/docu_editor-palette_220_tool_state.png(Editor palette element tool "State")! | +| !images/docu_editor-palette_230_tool_composite_state.png(Editor palette element tool "Composite state")! | +| !images/docu_editor-palette_240_tool_orthogonal_state.png(Editor palette element tool "Orthogonal state")! | +| !images/docu_editor-palette_250_tool_region.png(Editor palette element tool "Region")! | +| !images/docu_editor-palette_260_tool_entry.png(Editor palette element tool "Entry")! | +| !images/docu_editor-palette_270_tool_shallow_history.png(Editor palette element tool "Shallow history")! | +| !images/docu_editor-palette_280_tool_deep_history.png(Editor palette element tool "Deep history")! | +| !images/docu_editor-palette_290_tool_final_state.png(Editor palette element tool "Final state")! | +| !images/docu_editor-palette_300_tool_exit_node.png(Editor palette element tool "Exit node")! | +| !images/docu_editor-palette_310_tool_choice.png(Editor palette element tool "Choice")! | +| !images/docu_editor-palette_320_tool_synchronization.png(Editor palette element tool "Synchronization")! | h3(#outline-view). Outline view @@ -163,7 +163,7 @@ You can change the name of a region in the statechart editor as well as in the p h2(#editing-hierarchies). Editing hierarchies -Statecharts can get rather big and complex. *"Composite states":30_statechart_language#composite-state* are a way to reduce complexity and thus make statecharts easier to create, comprehend and maintain. A composite state comprises a state machine of its own within a "region":30_statechart_language#region. The states belonging to such a nested state machine are called *substates*. *"Orthogonal states":30_statechart_language#orthogonal-states* are a generalization of composite states, comprising two or more independent state machines in separate regions that are executed in parallel. +Statecharts can get rather big and complex. *"Composite states":../user-guide/statechart_language#composite-state* are a way to reduce complexity and thus make statecharts easier to create, comprehend and maintain. A composite state comprises a state machine of its own within a "region":../user-guide/statechart_language#region. The states belonging to such a nested state machine are called *substates*. *"Orthogonal states":../user-guide/statechart_language#orthogonal-states* are a generalization of composite states, comprising two or more independent state machines in separate regions that are executed in parallel. A complementary way to mitigate size are *subdiagrams*. A subdiagram externalizes the possibly large region(s) contained by a composite state into a subdiagram. In this case the composite state no longer displays its substates. Instead it is visualized very similar to a regular state, aside from a small label marking it as a composite state and giving access to its internal structure: the subdiagram. In this way a composite state consumes much less space and gives the user the opportunity to better see the overall picture. Section "Using subdiagrams":#using-subdiagrams explains how to work with subdiagrams, how to create them and how to inline them again, if needed. @@ -175,7 +175,7 @@ h2(#using-subdiagrams). Using subdiagrams When using composite states, a statechart model may easily become too big to give a comprehensive overview of the whole diagram. Subdiagrams come as a solution. -!(standard-image)images/subdiagram_010_inline.png(Composite state)! +!(standard-image)images/docu_subdiagram_010_inline.png(Composite state)! p=. Composite state @@ -183,13 +183,13 @@ When the _Extract Subdiagram_ "refactoring":#refactorings is executed on a compo Extracting a subdiagram creates entry and exit nodes in the subdiagram as needed. -!(standard-image)images/subdiagram_020_preview.png(Subdiagram popup window)! +!(standard-image)images/docu_subdiagram_020_preview.png(Subdiagram popup window)! p=. Subdiagram popup window A click on the decorator opens the subdiagram in a separate editor tab. The breadcrumb at the top allows easy navigation throughout the hierachy levels. -!(standard-image)images/subdiagram_030_subdiagram-editor.png(Subdiagram editor)! +!(standard-image)images/docu_subdiagram_030_subdiagram-editor.png(Subdiagram editor)! p=. Subdiagram editor @@ -206,7 +206,7 @@ Using the _Rename_ refactoring, you can change the name of a variable, event or To initiate renaming, right-click on the name of a variable, event or interface in the diagram editor, in the definition section, or in a text field in the _Properties_ view, then select _Rename …_. -!(standard-image)images/refactoring-rename_010_renaming-variable.png(Renaming a variable)! +!(standard-image)images/docu_refactoring-rename_010_renaming-variable.png(Renaming a variable)! p=. Renaming a variable @@ -220,7 +220,7 @@ The _Fold Incoming Actions_ refactoring moves these actions from the transitions Consider the following model: -!(standard-image)images/refactoring-fold-incoming-actions_010_example_01.png(Moving incoming actions to entry block)! +!(standard-image)images/docu_refactoring-fold-incoming-actions_010_example_01.png(Moving incoming actions to entry block)! p=. Moving incoming actions to entry block @@ -228,7 +228,7 @@ Only the most-right action _y += 42_ can be moved to the entry block of the targ Another aspect to take into account are transitions leading to target states that are nested in composite states. Consider the following example: -!(standard-image)images/refactoring-fold-incoming-actions_020_example_02.png(Moving incoming actions into a nested state's entry block)! +!(standard-image)images/docu_refactoring-fold-incoming-actions_020_example_02.png(Moving incoming actions into a nested state's entry block)! p=. Moving incoming actions into a nested state's entry block @@ -242,7 +242,7 @@ The _Fold Outgoing Actions_ refactoring is similar to "folding incoming actions" Preconditions for this refactoring are analog to ""Folding incoming actions"":#folding-incoming-actions. Consider the following example: -!(standard-image)images/refactoring-fold-outgoing-actions_010_example_01.png(Moving outgoing actions to exit block)! +!(standard-image)images/docu_refactoring-fold-outgoing-actions_010_example_01.png(Moving outgoing actions to exit block)! p=. Moving outgoing actions to exit block @@ -264,7 +264,7 @@ This refactoring is the reverse of "folding outgoing actions":#folding-outgoing- Transitions crossing the borders of composite states enclosing the source state might inhibit refactoring. Consider the following example: -!(standard-image)images/refactoring-unfold-outgoing-actions_010_example_01.png(Unfolding exit actions to outgoing transitions)! +!(standard-image)images/docu_refactoring-unfold-outgoing-actions_010_example_01.png(Unfolding exit actions to outgoing transitions)! p=. Unfolding exit actions to outgoing transitions @@ -319,7 +319,7 @@ The statechart editor allows for comparing two or even three statecharts to each p(#oss_fig_comparing_two_statecharts). -!(standard-image)images/comparing_statecharts_010_result.png(Comparing two statecharts)! +!(standard-image)images/docu_comparing_statecharts_010_result.png(Comparing two statecharts)! p=. Comparing two statecharts @@ -352,13 +352,13 @@ A statechart can be saved as an image file as shown in the following steps: In the statechart editor, right-click on the main region. The context menu appears. -!(standard-image)images/exporting_statechart_as_image_010_save_as_menu_item.png(Selecting the "Save As Image File..." menu item)! +!(standard-image)images/docu_exporting_statechart_as_image_010_save_as_menu_item.png(Selecting the "Save As Image File..." menu item)! p=. Selecting the "Save As Image File..." menu item In the context menu, select File → Save As Image File.... The _Save As Image_ dialog appears. -!(standard-image)images/exporting_statechart_as_image_020_save_as_dialog.png(The "Save As Image File" dialog)! +!(standard-image)images/docu_exporting_statechart_as_image_020_save_as_dialog.png(The "Save As Image File" dialog)! p=. The "Save As Image File" dialog @@ -393,7 +393,7 @@ The nice thing is that you don't have to remember all the places you took a note p(#oss_fig_tasks-defined-by-tags-in-the-statechart-showing-up-in-the-tasks-view). -!(standard-image)images/task_tags_010_task_view.png(Tasks defined by tags in the statechart showing up in the _Tasks_ view)! +!(standard-image)images/docu_task_tags_010_task_view.png(Tasks defined by tags in the statechart showing up in the _Tasks_ view)! p=. Tasks defined by tags in the statechart showing up in the _Tasks_ view diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/60_generating_code.textile b/plugins/org.yakindu.sct.doc.user/src/user-guide/generating_code.textile similarity index 97% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/60_generating_code.textile rename to plugins/org.yakindu.sct.doc.user/src/user-guide/generating_code.textile index eb7c7c5b0a..6c61e889b9 100644 --- a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/60_generating_code.textile +++ b/plugins/org.yakindu.sct.doc.user/src/user-guide/generating_code.textile @@ -10,7 +10,7 @@ To create a generator model with the wizard, proceed as follows: # Choose the desired generator, i. e. _YAKINDU SCT Java Code Generator_. # Check the model(s) to generate code from and click _Finish_. -!images/genmodelwizardchooselanguage.jpg(Selecting code generator and models)! +!images/docu_genmodelwizardchooselanguage.jpg(Selecting code generator and models)! The result is an @.sgen@ file of the following format: @@ -40,7 +40,7 @@ All generators can be customized by a generator model. This is a textual model i To get started with the generator model, YAKINDU Statechart Tools includes a wizard that creates a basic configuration file with default values. -!(standard-image)images/sGenEditor.png(SGen generator model with default values)! +!(standard-image)images/docu_sGenEditor.png(SGen generator model with default values)! p=. SGen generator model with default values @@ -195,7 +195,7 @@ h2(#specifications-of-c-code). Specification of C code The explanations below are using the _TrafficLight_ sample state machine to describe the API specifications of the code generated by the YAKINDU C and Java code generators. The image below is showing the statechart. It models a pedestrian crossing with push-button operated traffic lights ("pelican crossing"). -!(standard-image)images/TrafficLight.png(The traffic light model)! +!(standard-image)images/docu_TrafficLight.png(The traffic light model)! p=. The traffic light model @@ -530,7 +530,7 @@ h3(#c-operation-callbacks). Operation callbacks YAKINDU Statechart Tools support client code operations that can be used by a state machine and are executed as as actions. These operations have to be implemented in order to make a statechart executable. The figure below shows a sample statechart using an operation: -!(standard-image)images/operationExample.png(Specifying an operation callback in the model)! +!(standard-image)images/docu_operationExample.png(Specifying an operation callback in the model)! p=. Specifying an operation callback in the model @@ -739,7 +739,7 @@ h2(#cpp-code-specification). Specification of C++ code The explanations below are using the _TrafficLight_ sample state machine to describe the API specifications of the code generated by the YAKINDU C and Java code generators. The image below is showing the statechart. It models a pedestrian crossing with push-button operated traffic lights ("pelican crossing"). -!(standard-image)images/TrafficLight.png(The traffic light model)! +!(standard-image)images/docu_TrafficLight.png(The traffic light model)! p=. The traffic light model @@ -1107,7 +1107,7 @@ h3(#cpp-operation-callbacks). Operation callbacks YAKINDU Statechart Tools support client code operations that can be used by a state machine and are executed as as actions. These operations have to be implemented in order to make a statechart executable. The figure below shows a sample statechart using an operation: -!(standard-image)images/operationExample.png(Specifying an operation callback in the model)! +!(standard-image)images/docu_operationExample.png(Specifying an operation callback in the model)! p=. Specifying an operation callback in the model @@ -1233,7 +1233,7 @@ h2(#java-code-specification). Specification of Java code The explanations below are using the _TrafficLight_ sample state machine to describe the API specifications of the code generated by the YAKINDU C and Java code generators. The image below is showing the statechart. It models a pedestrian crossing with push-button operated traffic lights ("pelican crossing"). -!(standard-image)images/TrafficLight.png(The traffic light model)! +!(standard-image)images/docu_TrafficLight.png(The traffic light model)! p=. The traffic light model @@ -1845,7 +1845,7 @@ h3(#java-operation-callback). Operation callbacks YAKINDU Statechart Tools support _operations_ that are executed by a state machine as actions, but are implemented by client-side code. The figure below shows a sample statechart using an operation: -!(standard-image)images/operationExample.png(Specifying an operation callback in the model)! +!(standard-image)images/docu_operationExample.png(Specifying an operation callback in the model)! p=. Specifying an operation callback in the model @@ -1912,15 +1912,15 @@ h3(#JavaIntegratingGeneratedCode). Integrating generated code To get a clue how to integrate a generated Java state machine with your project have a look at the @CrossingDemoCycleBased@ class and its abstract superclass @CrossingDemoBase@. The @main()@ method is in @CrossingDemoCycleBased@: -bc. +bc.. public static void main(String[] args) { new CrossingDemoCycleBased().runTrafficLight(); } -A new instance of the class is created and the method @runTrafficLight()@ is called. This method can be found in the superclass: +p. A new instance of the class is created and the method @runTrafficLight()@ is called. This method can be found in the superclass: -bc. +bc.. public void runTrafficLight() { setUpAndRunStatemachine(); @@ -1941,9 +1941,9 @@ public void runTrafficLight() { tearDownStatemachine(); } -This method sets up the state machine and creates the GUI content. In a while loop it reads the content of the state machine and repaints the GUI. If the user exits the GUI shell, the loop terminates and the state machine is torn down. The really interesting methods are setUpAndRunStatemachine(), readStatemachineOutput(), and tearDownStatemachine(): +p. This method sets up the state machine and creates the GUI content. In a while loop it reads the content of the state machine and repaints the GUI. If the user exits the GUI shell, the loop terminates and the state machine is torn down. The really interesting methods are setUpAndRunStatemachine(), readStatemachineOutput(), and tearDownStatemachine(): -bc. +bc.. protected void setUpAndRunStatemachine() { statemachine = new TrafficLightWaitingStatemachine(); @@ -1954,7 +1954,7 @@ protected void setUpAndRunStatemachine() { RuntimeService.getInstance().registerStatemachine(statemachine, 100); } -First a new instance of the generated state machine is created. Since the traffic light statechart uses timing clauses, it is provided with a timer service, here with the default implementation of the @ITimerService@ interface. In the next steps the state machine is initialized and entered. After the @enter()@ method has been executed, the machine is in a defined state. +p. First a new instance of the generated state machine is created. Since the traffic light statechart uses timing clauses, it is provided with a timer service, here with the default implementation of the @ITimerService@ interface. In the next steps the state machine is initialized and entered. After the @enter()@ method has been executed, the machine is in a defined state. Finally the state machine is passed to the runtime service. This service executes the @runCycle()@ method of the state machine every 100 ms, that is the state machine executes a run-to-completion step every 100 ms. @@ -1991,7 +1991,7 @@ h3(#simulating-operations-with-custom-java-code). Simulating operations with cus To simulate a model with operations it is possible to use custom Java code that mocks the desired behavior or even to simulate against an existing Java backend. For this purpose it is required to provide one or more custom Java classes having a method with a matching signature. -!(standard-image)images/java_simulating_operation_010_statechart_with_operation.png(A statechart model with an operation)! +!(standard-image)images/docu_java_simulating_operation_010_statechart_with_operation.png(A statechart model with an operation)! p=. A statechart model with an operation @@ -2020,7 +2020,7 @@ This custom class can be passed to Eclipse's run configuration as an _Operation When the simulation is executed, the variable _result_ gets the value 2. -!(standard-image)images/java_simulating_operation_020_run_configuration.png(Configuring an operations class)! +!(standard-image)images/docu_java_simulating_operation_020_run_configuration.png(Configuring an operations class)! p=. Configuring an operations class @@ -2040,7 +2040,7 @@ Creating custom code generators is a first-level concept in YAKINDU Statechart T To set up a new (Xtend2/Java) generator project, select _File → New → Other... → YAKINDU SCT_ → Xtend2/Java Generator Project_ and click _Next_. -!(standard-image)images/xtendGenerator.png(Creating an Xtend2 generator project)! +!(standard-image)images/docu_xtendGenerator.png(Creating an Xtend2 generator project)! p=. Creating an Xtend2 generator project @@ -2048,7 +2048,7 @@ The wizard asks for a *Project name* and the name of the *Generator class*, whic The check box *Configure for Plugin Export* adds all required extension point registrations to the new project for exporting it as a plugin. The generator model can refer to the new generator plugin via its unique *Generator ID*. If you want to contribute custom generator features for your code generator, check the *Create Feature Library* check box. Click _Finish_ to close the wizard. -!images/generatornavigator.png(Created generator project)! +!images/docu_generatornavigator.png(Created generator project)! Voilà! The wizard creates a new generator project for you with a structure as shown above. The file _CustomGenerator.xtend_ contains a simple default code generator that simply prints the name of the statechart and all of its states to the target file. @@ -2130,7 +2130,7 @@ h2. Different meta models for different use cases *The SGraph meta model* The SGraph meta model defines the structural aspects of the Statechart model and is similiar to the statemachine model defined by the Unified Modeling Language (UML). A simplified version is shown in the following diagram. -!images/sgraph_simple.png(Simplified SGraph meta model)! +!images/docu_sgraph_simple.png(Simplified SGraph meta model)! * *Statechart* extends __CompositeElement__, therefore it contains 0..* __Regions__. It is the root element of the model. * *CompositeElement* is an abstract type that contains __Regions__. Known subclasses are __Statechart__ and __State__. diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_010_lightswitch_010_statechart.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_010_lightswitch_010_statechart.png new file mode 100644 index 0000000000..b1a562b6b3 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_010_lightswitch_010_statechart.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/advsim_010_lightswitch_020_simulation.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_010_lightswitch_020_simulation.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/advsim_010_lightswitch_020_simulation.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_010_lightswitch_020_simulation.png diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_020_start_debugging_010_debug_as_menu.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_020_start_debugging_010_debug_as_menu.png new file mode 100644 index 0000000000..f3274a79ff Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_020_start_debugging_010_debug_as_menu.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_010_setting_on_transition.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_010_setting_on_transition.png new file mode 100644 index 0000000000..e803baf640 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_010_setting_on_transition.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_020_transition_and_state_with_breakpoints.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_020_transition_and_state_with_breakpoints.png new file mode 100644 index 0000000000..ac6b15e46d Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_020_transition_and_state_with_breakpoints.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_030_suspending_at_state.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_030_suspending_at_state.png new file mode 100644 index 0000000000..c19fec0038 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_030_suspending_at_state.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_040_suspending_at_transition.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_040_suspending_at_transition.png new file mode 100644 index 0000000000..e873d7f861 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_040_suspending_at_transition.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_050_enabled_and_disabled_breakpoints.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_050_enabled_and_disabled_breakpoints.png new file mode 100644 index 0000000000..bb2c414671 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_030_breakpoint_050_enabled_and_disabled_breakpoints.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_040_multiple_events_010_events_not_raised.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_040_multiple_events_010_events_not_raised.png new file mode 100644 index 0000000000..4816377ffb Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_040_multiple_events_010_events_not_raised.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_040_multiple_events_020_events_raised.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_040_multiple_events_020_events_raised.png new file mode 100644 index 0000000000..63086466aa Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_040_multiple_events_020_events_raised.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_040_multiple_events_030_transition-priorities.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_040_multiple_events_030_transition-priorities.png new file mode 100644 index 0000000000..f735b0e754 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_040_multiple_events_030_transition-priorities.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_010_a-freshly-taken-snapshot.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_010_a-freshly-taken-snapshot.png new file mode 100644 index 0000000000..94588cb6dd Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_010_a-freshly-taken-snapshot.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_020_inspecting_variables.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_020_inspecting_variables.png new file mode 100644 index 0000000000..2240cf2ffe Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_020_inspecting_variables.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_025_details_view.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_025_details_view.png new file mode 100644 index 0000000000..8da81d8182 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_025_details_view.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_030_inspecting-a-snapshots-state-machine.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_030_inspecting-a-snapshots-state-machine.png new file mode 100644 index 0000000000..d9ff8a1b16 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_030_inspecting-a-snapshots-state-machine.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_040_restoring-a-snapshot.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_040_restoring-a-snapshot.png new file mode 100644 index 0000000000..bda6e224dd Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_050_snapshots_040_restoring-a-snapshot.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_breakpoint_skip_disengaged.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_breakpoint_skip_disengaged.png new file mode 100644 index 0000000000..f8d092eefe Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_breakpoint_skip_disengaged.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_breakpoint_skip_engaged.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_breakpoint_skip_engaged.png new file mode 100644 index 0000000000..0297698b9f Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_breakpoint_skip_engaged.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_camera.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_camera.png new file mode 100644 index 0000000000..839b0c2c6c Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_camera.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_remove.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_remove.png new file mode 100644 index 0000000000..917136ae52 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_remove.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_remove_all.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_remove_all.png new file mode 100644 index 0000000000..9b3e4e3484 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_remove_all.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_remove_red.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_remove_red.png new file mode 100644 index 0000000000..2e511f9284 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_remove_red.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_snapshot_image_overview.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_snapshot_image_overview.png new file mode 100644 index 0000000000..e2f0cf2323 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_snapshot_image_overview.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_snapshot_restore.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_snapshot_restore.png new file mode 100644 index 0000000000..d366b637bd Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_snapshot_restore.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_snapshot_variable_overview.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_snapshot_variable_overview.png new file mode 100644 index 0000000000..92918fba55 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_button_snapshot_variable_overview.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_breakpoint_disabled.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_breakpoint_disabled.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_breakpoint_disabled.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_breakpoint_disabled.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_breakpoint_enabled.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_breakpoint_enabled.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_breakpoint_enabled.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_breakpoint_enabled.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_breakpoint_skip.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_breakpoint_skip.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_breakpoint_skip.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_breakpoint_skip.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_event.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_event.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_event.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_event.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_event_raised.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_event_raised.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_event_raised.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_event_raised.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_resume.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_resume.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_resume.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_resume.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_stepover.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_stepover.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_stepover.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/advsim_symbol_stepover.png diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_010_new_c_project_010.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_010_new_c_project_010.png new file mode 100644 index 0000000000..c786699579 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_010_new_c_project_010.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_010_new_c_project_020.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_010_new_c_project_020.png new file mode 100644 index 0000000000..28009372f6 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_010_new_c_project_020.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_010_new_c_project_030.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_010_new_c_project_030.png new file mode 100644 index 0000000000..059bae88ce Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_010_new_c_project_030.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_020_new_header_file_010.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_020_new_header_file_010.png new file mode 100644 index 0000000000..ab868dea94 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_020_new_header_file_010.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_020_new_header_file_020.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_020_new_header_file_020.png new file mode 100644 index 0000000000..f905fcea6e Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_020_new_header_file_020.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_020_new_header_file_030.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_020_new_header_file_030.png new file mode 100644 index 0000000000..25a0d1045a Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_020_new_header_file_030.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_030_new_statechart_model_010.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_030_new_statechart_model_010.png new file mode 100644 index 0000000000..219e07eff8 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_030_new_statechart_model_010.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_030_new_statechart_model_030.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_030_new_statechart_model_030.png new file mode 100644 index 0000000000..fc185d4002 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_030_new_statechart_model_030.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_040_c_types_010.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_040_c_types_010.png new file mode 100644 index 0000000000..fa397c90cd Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_040_c_types_010.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_040_c_types_020.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_040_c_types_020.png new file mode 100644 index 0000000000..8ffca5f252 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_040_c_types_020.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_050_using_c_type_variables_010.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_050_using_c_type_variables_010.png new file mode 100644 index 0000000000..de94b4b5db Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_050_using_c_type_variables_010.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_060_importing_namespace_010.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_060_importing_namespace_010.png new file mode 100644 index 0000000000..f80093be36 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_060_importing_namespace_010.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_070_typedefs_and_structs_010.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_070_typedefs_and_structs_010.png new file mode 100644 index 0000000000..4cb546a4f1 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_070_typedefs_and_structs_010.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_010_statechart.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_010_statechart.png new file mode 100644 index 0000000000..ed720ddc45 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_010_statechart.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_020_inspecting.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_020_inspecting.png new file mode 100644 index 0000000000..8b7d05f601 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_020_inspecting.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_030_modifying.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_030_modifying.png new file mode 100644 index 0000000000..76ec353166 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_030_modifying.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_040_rechecked.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_040_rechecked.png new file mode 100644 index 0000000000..45fe227e86 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_080_simulation_040_rechecked.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_083_enum_010_content_assist.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_083_enum_010_content_assist.png new file mode 100644 index 0000000000..4d2d226708 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_083_enum_010_content_assist.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_083_enum_020_simulation.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_083_enum_020_simulation.png new file mode 100644 index 0000000000..d20a8b87de Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_083_enum_020_simulation.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_090_operations_010_content_assist.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_090_operations_010_content_assist.png new file mode 100644 index 0000000000..b3cb5baa05 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_090_operations_010_content_assist.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_090_operations_020_calling_area.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_090_operations_020_calling_area.png new file mode 100644 index 0000000000..78ee03704d Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_090_operations_020_calling_area.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_160_type_lookup_010.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_160_type_lookup_010.png new file mode 100644 index 0000000000..0ad2f69e56 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_160_type_lookup_010.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_160_type_lookup_020.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_160_type_lookup_020.png new file mode 100644 index 0000000000..8462d49002 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_160_type_lookup_020.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_170_data_structure_traversal_010.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_170_data_structure_traversal_010.png new file mode 100644 index 0000000000..d54b3f8d3d Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/cdom_geometry_170_data_structure_traversal_010.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/TrafficLight.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_TrafficLight.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/TrafficLight.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_TrafficLight.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/YAKINDU_features.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_YAKINDU_features.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/YAKINDU_features.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_YAKINDU_features.png diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_advsim_010_lightswitch_020_simulation.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_advsim_010_lightswitch_020_simulation.png new file mode 100644 index 0000000000..a2c30fecf9 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_advsim_010_lightswitch_020_simulation.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/comparing_statecharts_010_result.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_comparing_statecharts_010_result.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/comparing_statecharts_010_result.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_comparing_statecharts_010_result.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/cycleBasedVsEventDriven.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_cycleBasedVsEventDriven.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/cycleBasedVsEventDriven.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_cycleBasedVsEventDriven.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_010_overview.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_010_overview.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_010_overview.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_010_overview.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_020_symbol_select.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_020_symbol_select.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_020_symbol_select.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_020_symbol_select.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_030_symbol_zoom_in.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_030_symbol_zoom_in.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_030_symbol_zoom_in.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_030_symbol_zoom_in.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_040_symbol_zoom_out.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_040_symbol_zoom_out.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_040_symbol_zoom_out.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_040_symbol_zoom_out.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_070_symbol_note.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_070_symbol_note.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_070_symbol_note.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_070_symbol_note.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_210_tool_transition.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_210_tool_transition.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_210_tool_transition.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_210_tool_transition.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_220_tool_state.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_220_tool_state.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_220_tool_state.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_220_tool_state.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_230_tool_composite_state.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_230_tool_composite_state.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_230_tool_composite_state.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_230_tool_composite_state.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_240_tool_orthogonal_state.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_240_tool_orthogonal_state.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_240_tool_orthogonal_state.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_240_tool_orthogonal_state.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_250_tool_region.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_250_tool_region.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_250_tool_region.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_250_tool_region.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_260_tool_entry.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_260_tool_entry.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_260_tool_entry.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_260_tool_entry.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_270_tool_shallow_history.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_270_tool_shallow_history.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_270_tool_shallow_history.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_270_tool_shallow_history.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_280_tool_deep_history.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_280_tool_deep_history.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_280_tool_deep_history.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_280_tool_deep_history.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_290_tool_final_state.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_290_tool_final_state.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_290_tool_final_state.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_290_tool_final_state.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_300_tool_exit_node.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_300_tool_exit_node.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_300_tool_exit_node.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_300_tool_exit_node.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_310_tool_choice.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_310_tool_choice.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_310_tool_choice.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_310_tool_choice.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_320_tool_synchronization.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_320_tool_synchronization.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/editor-palette_320_tool_synchronization.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_editor-palette_320_tool_synchronization.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/exporting_statechart_as_image_010_save_as_menu_item.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_exporting_statechart_as_image_010_save_as_menu_item.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/exporting_statechart_as_image_010_save_as_menu_item.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_exporting_statechart_as_image_010_save_as_menu_item.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/exporting_statechart_as_image_020_save_as_dialog.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_exporting_statechart_as_image_020_save_as_dialog.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/exporting_statechart_as_image_020_save_as_dialog.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_exporting_statechart_as_image_020_save_as_dialog.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/generatornavigator.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_generatornavigator.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/generatornavigator.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_generatornavigator.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/genmodelwizardchooselanguage.jpg b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_genmodelwizardchooselanguage.jpg similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/genmodelwizardchooselanguage.jpg rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_genmodelwizardchooselanguage.jpg diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/java_simulating_operation_010_statechart_with_operation.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_java_simulating_operation_010_statechart_with_operation.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/java_simulating_operation_010_statechart_with_operation.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_java_simulating_operation_010_statechart_with_operation.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/java_simulating_operation_020_run_configuration.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_java_simulating_operation_020_run_configuration.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/java_simulating_operation_020_run_configuration.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_java_simulating_operation_020_run_configuration.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/launch_configuration_01.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_launch_configuration_01.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/launch_configuration_01.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_launch_configuration_01.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/launch_configuration_02.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_launch_configuration_02.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/launch_configuration_02.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_launch_configuration_02.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/launch_configuration_03.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_launch_configuration_03.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/launch_configuration_03.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_launch_configuration_03.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/launch_configuration_04.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_launch_configuration_04.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/launch_configuration_04.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_launch_configuration_04.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/operationExample.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_operationExample.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/operationExample.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_operationExample.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/operationsExample.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_operationsExample.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/operationsExample.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_operationsExample.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/orthogonalState_example.jpg b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_orthogonalState_example.jpg similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/orthogonalState_example.jpg rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_orthogonalState_example.jpg diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/parallelRegions.jpg b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_parallelRegions.jpg similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/parallelRegions.jpg rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_parallelRegions.jpg diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/refactoring-fold-incoming-actions_010_example_01.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_refactoring-fold-incoming-actions_010_example_01.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/refactoring-fold-incoming-actions_010_example_01.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_refactoring-fold-incoming-actions_010_example_01.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/refactoring-fold-incoming-actions_020_example_02.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_refactoring-fold-incoming-actions_020_example_02.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/refactoring-fold-incoming-actions_020_example_02.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_refactoring-fold-incoming-actions_020_example_02.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/refactoring-fold-outgoing-actions_010_example_01.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_refactoring-fold-outgoing-actions_010_example_01.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/refactoring-fold-outgoing-actions_010_example_01.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_refactoring-fold-outgoing-actions_010_example_01.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/refactoring-rename_010_renaming-variable.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_refactoring-rename_010_renaming-variable.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/refactoring-rename_010_renaming-variable.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_refactoring-rename_010_renaming-variable.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/refactoring-unfold-outgoing-actions_010_example_01.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_refactoring-unfold-outgoing-actions_010_example_01.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/refactoring-unfold-outgoing-actions_010_example_01.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_refactoring-unfold-outgoing-actions_010_example_01.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/sGenEditor.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_sGenEditor.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/sGenEditor.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_sGenEditor.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/sGenWizard.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_sGenWizard.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/sGenWizard.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_sGenWizard.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/sgraphMetaModel.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_sgraphMetaModel.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/sgraphMetaModel.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_sgraphMetaModel.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/sgraph_simple.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_sgraph_simple.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/sgraph_simple.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_sgraph_simple.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/shallowHistory01.jpg b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_shallowHistory01.jpg similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/shallowHistory01.jpg rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_shallowHistory01.jpg diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/shallowHistory02.jpg b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_shallowHistory02.jpg similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/shallowHistory02.jpg rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_shallowHistory02.jpg diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/shallowHistory03.jpg b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_shallowHistory03.jpg similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/shallowHistory03.jpg rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_shallowHistory03.jpg diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/simulationRunConfiguration.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_simulationRunConfiguration.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/simulationRunConfiguration.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_simulationRunConfiguration.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_entry.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_entry.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_entry.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_entry.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_entry_exit.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_entry_exit.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_entry_exit.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_entry_exit.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_entry_exit_final.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_entry_exit_final.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_entry_exit_final.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_entry_exit_final.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_entry_exit_final_explained.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_entry_exit_final_explained.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_entry_exit_final_explained.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_entry_exit_final_explained.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_entry_exit_final_explained.svg b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_entry_exit_final_explained.svg similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_entry_exit_final_explained.svg rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_entry_exit_final_explained.svg diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_initial_final.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_initial_final.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_initial_final.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_initial_final.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_synchronization.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_synchronization.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/state_synchronization.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_state_synchronization.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/subdiagram_010_inline.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_subdiagram_010_inline.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/subdiagram_010_inline.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_subdiagram_010_inline.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/subdiagram_020_preview.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_subdiagram_020_preview.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/subdiagram_020_preview.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_subdiagram_020_preview.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/subdiagram_030_subdiagram-editor.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_subdiagram_030_subdiagram-editor.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/subdiagram_030_subdiagram-editor.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_subdiagram_030_subdiagram-editor.png diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_breakpoint_disabled.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_breakpoint_disabled.png new file mode 100644 index 0000000000..d34da3e928 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_breakpoint_disabled.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_breakpoint_enabled.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_breakpoint_enabled.png new file mode 100644 index 0000000000..a05d051c0a Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_breakpoint_enabled.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_breakpoint_skip.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_breakpoint_skip.png new file mode 100644 index 0000000000..0ff13be086 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_breakpoint_skip.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_event.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_event.png new file mode 100644 index 0000000000..3703d9eb84 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_event.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_event_raised.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_event_raised.png new file mode 100644 index 0000000000..5b4dded241 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_event_raised.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_resume.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_resume.png new file mode 100644 index 0000000000..2d8e8eaa1b Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_resume.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_stepover.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_stepover.png new file mode 100644 index 0000000000..d6ab821144 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_stepover.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_suspend.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_suspend.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_suspend.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_suspend.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_terminate.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_terminate.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/symbol_terminate.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_symbol_terminate.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/task_tags_010_task_view.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_task_tags_010_task_view.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/task_tags_010_task_view.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_task_tags_010_task_view.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/xtendGenerator.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_xtendGenerator.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/xtendGenerator.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_xtendGenerator.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/xtendwizard.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_xtendwizard.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/images/xtendwizard.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/docu_xtendwizard.png diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/licenses.txt b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/licenses.txt new file mode 100644 index 0000000000..8e1c4443dc --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/licenses.txt @@ -0,0 +1,8 @@ +Image Licenses: +--------------- + +camera16x16.png + created by FatCow Web Hosting (http://www.fatcow.com/free-icons/) + Licensed under the Creative Commons Attribution 3.0 United States license. + http://creativecommons.org/licenses/by/3.0/us/deed.en + Taken from http://commons.wikimedia.org/wiki/File:Farm-Fresh_camera.png diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_call_example.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_call_example.png new file mode 100644 index 0000000000..57a542fd81 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_call_example.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_example_final.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_example_final.png new file mode 100644 index 0000000000..8c76497925 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_example_final.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_genArtifacts.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_genArtifacts.png new file mode 100644 index 0000000000..c8df4c4152 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_genArtifacts.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_junitSuc2.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_junitSuc2.png new file mode 100644 index 0000000000..6979a40ef1 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_junitSuc2.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_namespace_sctunit.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_namespace_sctunit.png new file mode 100644 index 0000000000..dbbb94bd4b Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_namespace_sctunit.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_project_after.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_project_after.png new file mode 100644 index 0000000000..a7d03c6707 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_project_after.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_project_before.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_project_before.png new file mode 100644 index 0000000000..f7d5430172 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_project_before.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sctunit32.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sctunit32.png new file mode 100644 index 0000000000..e4db740325 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sctunit32.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sgenStatemachine.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sgenStatemachine.png new file mode 100644 index 0000000000..da0d35179c Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sgenStatemachine.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sgenTest.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sgenTest.png new file mode 100644 index 0000000000..5b52cfc29c Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sgenTest.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sgen_generic.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sgen_generic.png new file mode 100644 index 0000000000..bda511ea6a Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_sgen_generic.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_strg_statechart.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_strg_statechart.png new file mode 100644 index 0000000000..34e1744894 Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_strg_statechart.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_testcase.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_testcase.png new file mode 100644 index 0000000000..5f1db6bcbf Binary files /dev/null and b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/sctu_testcase.png differ diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/tuto_light_switch_300_statechart_simulator_run_as_statechart_simulation.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/tuto_light_switch_300_statechart_simulator_run_as_statechart_simulation.png new file mode 120000 index 0000000000..fb3951da9a --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/tuto_light_switch_300_statechart_simulator_run_as_statechart_simulation.png @@ -0,0 +1 @@ +../../tutorials/images/tuto_light_switch_300_statechart_simulator_run_as_statechart_simulation.png \ No newline at end of file diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/images/tuto_light_switch_310_statechart_simulator_state_off.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/tuto_light_switch_310_statechart_simulator_state_off.png new file mode 120000 index 0000000000..516e0d6ad9 --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/tuto_light_switch_310_statechart_simulator_state_off.png @@ -0,0 +1 @@ +../../tutorials/images/tuto_light_switch_310_statechart_simulator_state_off.png \ No newline at end of file diff --git a/plugins/org.yakindu.sct.doc.user/src/images/custom_generator_010_create_generator_project.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/unused_custom_generator_010_create_generator_project.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/images/custom_generator_010_create_generator_project.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/unused_custom_generator_010_create_generator_project.png diff --git a/plugins/org.yakindu.sct.doc.user/src/images/custom_generator_020_default_generator_project.png b/plugins/org.yakindu.sct.doc.user/src/user-guide/images/unused_custom_generator_020_default_generator_project.png similarity index 100% rename from plugins/org.yakindu.sct.doc.user/src/images/custom_generator_020_default_generator_project.png rename to plugins/org.yakindu.sct.doc.user/src/user-guide/images/unused_custom_generator_020_default_generator_project.png diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/10_overview.textile b/plugins/org.yakindu.sct.doc.user/src/user-guide/overview.textile similarity index 97% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/10_overview.textile rename to plugins/org.yakindu.sct.doc.user/src/user-guide/overview.textile index f8e3bea922..31a3a88b07 100644 --- a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/10_overview.textile +++ b/plugins/org.yakindu.sct.doc.user/src/user-guide/overview.textile @@ -11,7 +11,7 @@ The statechart tools are a central part of YAKINDU: the modular toolkit for mode The following graph shows these features and their relation to each other: -!(standard-image)images/YAKINDU_features.png(Features of YAKINDU Statechart Tools)! +!(standard-image)images/docu_YAKINDU_features.png(Features of YAKINDU Statechart Tools)! p=. Features of YAKINDU Statechart Tools diff --git a/plugins/org.yakindu.sct.doc.user/src/user-guide/sctunit.textile b/plugins/org.yakindu.sct.doc.user/src/user-guide/sctunit.textile new file mode 100644 index 0000000000..d3573367c1 --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/user-guide/sctunit.textile @@ -0,0 +1,349 @@ + +p. + +==
== + +h1. SCTUnit + +h2. What is SCTUnit for? + +!(inlinemediaobject){float: right; height: 10ex}images/sctu_sctunit32.png! + +In test driven development, the developer creates automated unit tests before writing the implementation logic. These unit tests define the behavior of a particular piece of code using assertions and are very important to avoid regression when refactoring code. + +Test driven development can and should also be used in the context of model-driven development. Since YAKINDU statecharts provide an interface definition for every statechart model, it is possible to write unit tests against these interfaces before creating the implementing statechart model. + +SCTUnit is a testing framework which allows to write unit tests for the YAKINDU Statechart Tools. You can validate the behavior of your statechart by writing a well-defined operational sequence with assertions about active states and values of variables. It allows test driven development of statechart models on the semantic level of statecharts. + +Based on these Unit tests, the framework generates JUnit tests to test the generated Java statechart as well as Google Tests for the generated C code. +h1. Getting started + +h2. Introduction + +This tutorial will introduce the YAKINDU Statechart Tools Testing Framework *SCTUnit*. SCTUnit allows to write tests for statecharts in the the well known XUnit style. Now you can act test driven while creating a statechart for your need. + +In this tutorial you will learn how to create a test for a statechart and generate JUnit test code out of the model. You should already be familiar with statecharts and YAKINDU Statechart Tools should be installed.[ref Help SCT] + + +h2. CallHandling example explained + +Let's assume that we want to create a software to control a simple phone. The example application we will create during this tutorial is a system for handling of incoming phone calls. After start up, the system is in an Idle state and waits for incoming calls. If a call comes in, the user can either accept the call and open a connection or dismiss it. If the connection is opened, the system tracks the duration of the call and waits for the user to hang up. After hang up, the system displays the total time of call and returns to its idle state. The complete statechart model is shown below: + +!(standard-image)images/sctu_call_example.png! + + +h2. Prepare a project + +The first step is to create a new Project by choosing _File -> New -> Project_. The dialog offers a couple of different project types. Since we want to generate Java code later on, choose _Java -> Java Project_ from the wizard menu. Give the project a meaningful name, i.e. CallHandling and click finish. It is good practice to separate your models from the source code. Therefore, create a new folder to the projects root by choosing _File -> New -> Folder_ from the projects context menu and call it "model". You also need to create a folder for the generated code, create two more folders with the names "src-gen" and "test-gen". Further you need another folder for the generator file, call this folder "genmodel". At last we need a folder for our test files (.sctunit), call this folder "tests". +You now need to add **src-gen** (**test-gen** will be automatically added) to the Java build path as source (_Properties-> Java Build Path-> Source Tab-> "AddFolder"_) and add JUnit to the Libraries (_Properties-> Java Build Path-> Libraries Tab->"Add Libary..."-> JUnit -> Next -> Finish_). Your project should now look like this picture: + +!(standard-image)images/sctu_project_before.png! + + +h2. Create the statechart model + +Next, create a new statechart model by choosing _File -> New -> Other -> YAKINDU -> YAKINDU Statechart Model_. The wizard asks for the parent folder and we choose "CallHandling/model". Name the File CallHandling.sct and finish the wizard. Last, confirm the perspective switch with Yes. The statechart editor opens and show the definition of a very simple statechart. You should know how to create this statechart below (ref SCT help) : + + +!(standard-image)images/sctu_example_final.png! + + +h2. Create SCTUnit Test + +Now we create a "CallHandling.sctunit" file in the "tests" folder. In this example there are two tests, in the first test we accept the call and talk for 10s. In the second test we dismiss the call. + +!(standard-image)images/sctu_testcase.png! + + +h2. Create Java-Code + +You cannot run the SCTUnit file directly, you have to generate Code first. In this tutorial we will generate Java code, but it's also possible to create C code. First of all we have to create a generator file for the tests. For this we create a new file in the folder "genmodel" and call it "tests.sgen". +In this file you can specify what tests should be generated and where to. It looks like this: + +!(standard-image)images/sctu_sgentest.png! + +In Java we need also a statemachine which act like the statechart. For this we create another generator file which is called "model.sgen": + + +!(standard-image)images/sctu_sgenstatemachine.png! + +You now have to create the Java code for both, tests and statemachine. Rightclick on the two generator files ("tests.sgen" and "model.sgen") and *generate the Statechart Artifacts*. + + +!(standard-image)images/sctu_genArtifacts.png! + +After you did this, your project should look like this: + +!(standard-image)images/sctu_project_after.png! + + +h2. Running the Test + +The most important reason to create something is to use it, so do we. For running the test you just have to rightclick on the "CallHandlingTest.java" file in the "test-gen" folder. Now the test should success like this: + +!(standard-image)images/sctu_junitSuc2.png! + +Grats, you just successfully created your first SCTUnit JUnit test. More details will be provided in the next chapter. +h1. Details of SCTUnit + + +h2. Creating a Test Group / Test Suite + +A SCTUnit file can contain a Test group or a Test Suite. In this chapter we introduce some useful details about the SCTUnit test files at all. + +h3. Test Group + +A Test Group is started by the keyword *testgroup* followed by the name of the Test Group. Further it's mandatory to define a statechart for which the test is written. This happens through the keywords *for statechart* followed by the Name of the statechart. The list of all possible statecharts is provided by *STRG+SPACE* (as seen on next picture). + +!(standard-image)images/sctu_strg_statechart.png! + +A Test group needs at least one test and a test needs at least one *enter* statement. It's not allowed to create more than one Test group per file. Following picture shows the minimum of a Test Group. + +!(standard-image)images/sctu_minimum_testgrp.png! + +h3. Test Suite + +In SCTUnit it is also possible to create Test Suites which contains a list of Test Groups that should be executed. Just create a Suite with the keyword *testsuite* followed by a name. Inside you can write the Test Groups you want to execute. In the picture below we have created another Test Group called "CallHandling2". As you can see the Test Groups are seperated by commas. + +!(standard-image)images/sctu_minimum_suite.png! + +h3. Namespaces + +It's not mandatory but you can use packages for your tests. This makes sense when you got a bunch of them. Write "namespace" followed by the name you wish. It's also possible to use full qualified names, look below: + +!(standard-image)images/sctu_namespace_sctunit.png! + +h2. SGen HowTo + +The Generator files (.sgen) are used to specify where the generated files are put. But SGen is not only used for this, you also can define many other attributes like for example a LiscenceHeader or debug information. + +A Generator file always starts with the keywords *GeneratorModel for* followed by the kind of generator and the subtype. With *STRG+SPACE* you get a list of possible Generators. As you can see there is not only SCTUnit: + +!(standard-image)images/sctu_sgen_generic.png! + +For a SCTUnit Generator we choose "sctunit::" followed by "java" for this example. This matches the "SCTUnit Generator for Java". + +!(standard-image)images/sctu_sgen_java_01.png! + +Further we need to define a test, started with the keyword "test". With *STRG+SPACE* we get again all possible entries: + +!(standard-image)images/sctu_sgen_java_04.png! + +For a test a "Outlet Feature" is mandatory, so we create it. The outlet feature got two attributes which also need to be defined: "target Project" and "targetFolder". There is a macro which can be used to create a default outlet feature. + +!(standard-image)images/sctu_sgen_java_02.png! + +The "targetProject" describes the Project in the actual Workspace where the test should be created. The default name is the project in which the file exist, but it's also possible to choose another project. For a better overview we change the default "targetFolder" from "src-gen" to "test-gen". This is not a must, just best practise, you can call the directory anything you want. + +!(standard-image)images/sctu_sgen_java_03.png! + +h3. Statemachine + +In java we also need a statemachine which is created in a similar way than the tests. We have to create another Generator file. Now we choose a *GeneratorModel for* for "yakindu::java". + +!(standard-image)images/sctu_sgen_yakindu_01.png! + +In this Generator file we have to add the stetechart for which the statemachine should be generated. With *STRG+SPACE* we get all possible entries, just like before in the Generator file for the tests. This artifact also need a outlet feature, so we use the macro as we seen before. We can keep the "src-gen" as "targetFolder" because we allready put the tests into "test-gen". The name of the folder is not a must, just best practise, you can call the directory anything you want. + +!(standard-image)images/sctu_sgen_yakindu_02.png! + +h2. Folders meaning + +Take a look at the following picture. There are many different folders. The following list gives an overview about the function of each. + +!(standard-image)images/sctu_project_after.png! + +* *src*: This is the default source folder, it's not used by SCTUnit. + +* *src-gen*: If you use SCTUnit for java this folder is used for the mandatory statemachine. You can change the name of this directory in the corresponding generator file. + +* *test-gen*: This folder is the output directory for the tests. It's the same in java and C. You can change the name of this directory in the corresponding generator file. + +* *genmodel*: This folder contents the Generator files. In java you need two Generator files (statemachine and tests), in C only one Generator file is used (tests). You can execute them by right clicking on them and use *Generate Statechartart Artifacts*. + +* *model*: In this directory the statecharts itself should be stored. + +* *tests*: This directory contains the SCTUnit files. A SCTUnit file can contain a Test group or a Test Suite. + +All names are recommendations, you can change them as you want. + ++*Warning:*+ When *Generating Statechart Artifacts* the files in the target folder will be overwritten! Also the directory will not be cleaned from old code. So take care if you change a namespace or something else. Best practise is to delete the generated content in the target folder if you have any issues. + + +h2. Reference + +h3. Test Group / Test Suite + +A SCTUnit file (*.sctunit*) can contain either a test group or a test suite. A test group contains one or more test cases. A test suite is a composite of tests groups. + +==== + +h4. Testgroup + +A test group consists of one ore more tests (the namespace is not required and optionally splits the testgroups into packages). Further its possible to create a testsuite or testgroup. In this example we create a testgroup which needs a name and is used for an existing statechart, which is shown with the *for* keyword. A testgroup needs at least one *test* which needs at least one *enter* statement. + +Following example shows a minimal Test Group with namespace: + +bc(sctunit). +testgroup MyExample for statechart SomeStatechart { + test firstTest{ + enter + } +} + +p. ==== +==== + +h4. Testsuite + +A Test Suite also can contain a namespace, just as seen at Test Group. A Test Suite is made to hold a list of Test Groups. Following example shows a minimal Test Suite: + +bc(sctunit). +testsuite MySuite{ + TestGroup1, + Testgroup2 +} + +p. ==== + +==== + +h4. Test + +A Testgroup needs at least one test. A test is like a script with commands and asserts that are executed from above to bottom. A test must at least contain a "enter" statement. An example for a test is shown here: + +bc(sctunit). +testgroup MyExample for statechart SomeStatechart { + test MyTest{ + enter + raise exampleEvent1 + cycle + assert active (StateName) + } +} + +p. ==== + + +==== + +h4(#namespace). Namespace + +It is optional possible to create namespaces. This namespaces work like packages. You can use full qualified names for a namespace. + +bc(sctunit). +namespace my.namespace.is.here +testgroup MyTestGroup{ +... +} + +p. ==== + + +h3. Statements + +*SCTUnit* provides a list of statements that should be familiar for most programmers: + +==== + +h4. assert + +The expression followed by the 'assert' keyword expects a boolean condition to be true, the test will fail otherwise. It is possible to add an optional message to the assertion statement to clarify the expressions intention. The following example shows a statement that asserts if a state is 'active' or not. + +bc(prettyprint). assert active(MyStatechart.regionName.StateName) "Expected StateName to be active" +assert !active(MyStatechart.regionName.AnotherStateName) + +It is also possible to assert variable values. You can use any boolean comparator and its also possible to access variables in Interfaces and values of events: + +bc(prettyprint). assert myVariable1 == 42 +assert myVariable2 == "Sense of life" +assert myVariable3 => 41 +assert InterfaceName.MyEvent == 5 + +p. ==== +==== + +h4. cycle + +Since SCTUnit does not make any assumptions on the the execution behavior of the statemachine, it is required to execute a cycle manually with the 'cycle' keyword. + +bc(prettyprint). cycle + +p. ==== +==== +==== + +h4. enter / exit + +The 'enter' statements marks the entry of a statechart and is mandatory in every test. The 'exit' statement is only used if a statechart is leaved while the test is running. + +bc(prettyprint). enter +exit + +==== +==== +==== + + +h4. raise + +With the 'raise' statement it is possible to raise in events. Since SCTUnit tests are considered as black-box-tests, it is only allowed to raise in-events. Internal and out-events are not raisable from SCTUnit. + +bc(prettyprint). raise myEvent +raise MyInterface.myEvent + +==== +==== +==== + +h4. if / else + +The 'if' statement works like in every other programming language. The only thing noticeable is, that the condition expression is surrounded by square brackets. The body must contain at least one statement. + +bc(prettyprint). if[variable1 > variable2]{ + raise MyInterface.myEvent +} else { + raise MyInterface.myEvent2 +} + +==== +==== +==== + +h4. while + +The 'while' statement continually executes a block of statements while a particular condition evaluates to true. The while statement evaluates the conditional expression. If the expression is true, the while statement executes the statement(s) in the while body. The body must contain at least one statement. + +bc(prettyprint). while [value < 5] { + cycle + value=+1 +} + +==== +==== + + +h4. var + +SCTUnit supports the declaration of local variables. A variable can be declared with the 'var' statement, followed by an unique identifier and a type. Optionally, a default value can be specificed. + +bc(prettyprint). var myVar1 : integer +var myVar2 : integer = 42 +var readonly const : string = "SCTUnit" +var external ext : boolean = true + +==== +==== + +h4. wait + +The 'wait' statement causes the currently executing test to sleep for the specified time interval. the following time units are supported: seconds (s), milliseconds (ms), microseconds (us) and nanoseconds (ns). This statement depends on the precision and accuracy of system timers and schedulers. + +bc(prettyprint). wait 500 ms +wait 1000 us +wait 10000 ns +wait 5s + +==== + +==
== diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/50_simulating_statecharts.textile b/plugins/org.yakindu.sct.doc.user/src/user-guide/simulating_statecharts.textile similarity index 87% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/50_simulating_statecharts.textile rename to plugins/org.yakindu.sct.doc.user/src/user-guide/simulating_statecharts.textile index 0237da64fe..1fcc326e1c 100644 --- a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/50_simulating_statecharts.textile +++ b/plugins/org.yakindu.sct.doc.user/src/user-guide/simulating_statecharts.textile @@ -5,7 +5,7 @@ Simulating a statechart model means to execute it, raise events manually, have t You can run multiple state machines in parallel and even multiple instances of the same state machine. -An introduction to simulation is given in section ""Simulating the light switch model"":20_tutorial#simulating-the-light-switch-model. +An introduction to simulation is given in section ""Simulating the light switch model"":../tutorials/tutorials#simulating-the-light-switch-model. h2(#starting-a-simulation). Starting a simulation @@ -19,7 +19,7 @@ The most direct way is to start the simulation based on the statechart model fil p(#oss_fig_run-as-statechart-simulation). -!(standard-image)images/light_switch_300_statechart_simulator_run_as_statechart_simulation.png(Selecting "Run As → Statechart Simulation" in the context menu)! +!(standard-image)images/tuto_light_switch_300_statechart_simulator_run_as_statechart_simulation.png(Selecting "Run As → Statechart Simulation" in the context menu)! p=. Selecting "Run As → Statechart Simulation" in the context menu @@ -85,7 +85,7 @@ When a transition is taken, the transition arc leading from the source state to p(#oss_fig_the-sc-simulation-perspective). -!(standard-image)images/light_switch_310_statechart_simulator_state_off.png(The _SC Simulation_ perspective)! +!(standard-image)images/tuto_light_switch_310_statechart_simulator_state_off.png(The _SC Simulation_ perspective)! p=. The _SC Simulation_ perspective @@ -103,16 +103,16 @@ Depending on your screen resolution and font size settings, you might not be abl "Figure "The SC Simulation perspective"":#oss_fig_the-sc-simulation-perspective is demonstrating this: The user has hovered the mouse pointer over a tab that is just displaying the starting letter 'S' of its title. However, a popup window right besides the pointer is showing the tab's full title "Simulation". p(#oss_fig-simulation-view). -!(standard-image)images/advsim_010_lightswitch_020_simulation.png(Simulation view)! +!(standard-image)images/docu_advsim_010_lightswitch_020_simulation.png(Simulation view)! p=. Simulation view – The actual _Simulation_ view is the pane right from the statechart editor. h2(#controlling-a-simulation). Controlling a simulation -* To terminate the simulation, click on the _Terminate_ button !(inlinemediaobject)images/symbol_terminate.png! or select _Run → Terminate_ in the main menu. -* To suspend the simulation, click on the _Suspend_ button !(inlinemediaobject)images/symbol_suspend.png! or select _Run → Suspend_ in the main menu. -* To resume a suspended simulation, click on the _Resume_ button !(inlinemediaobject)images/symbol_resume.png! or select _Run → Resume_ in the main menu. -* Use the _Step Over_ button !(inlinemediaobject)images/symbol_stepover.png! or select _Run → Step Over_ in the main menu to execute a single run-to-completion step. +* To terminate the simulation, click on the _Terminate_ button !(inlinemediaobject)images/docu_symbol_terminate.png! or select _Run → Terminate_ in the main menu. +* To suspend the simulation, click on the _Suspend_ button !(inlinemediaobject)images/docu_symbol_suspend.png! or select _Run → Suspend_ in the main menu. +* To resume a suspended simulation, click on the _Resume_ button !(inlinemediaobject)images/docu_symbol_resume.png! or select _Run → Resume_ in the main menu. +* Use the _Step Over_ button !(inlinemediaobject)images/docu_symbol_stepover.png! or select _Run → Step Over_ in the main menu to execute a single run-to-completion step. h2(#interacting-with-a-simulation). Interacting with a simulation @@ -146,14 +146,14 @@ Section ""Creating and executing a launch configuration"":#oss_creatin The present chapter describes how to create and configure a new launch configuration for a statechart simulation. -# In the main menu, select _Run → Run Configurations…_. The _Run Configurations_ dialog appears. !(standard-image)images/launch_configuration_01.png(The _Run Configurations_ dialog)! -# In the _Run Configurations_ dialog, right-click on _Statechart Simulation_ and select _New_ in the context menu. !(standard-image)images/launch_configuration_02.png(The _Run Configurations_ dialog)!
Alternatively, you can select _Statechart Simulation_ and then click on the _New_ symbol near the top-left corner of the dialog. !(standard-image)images/launch_configuration_03.png(The _Run Configurations_ dialog)!
However you do it, a new launch configuration is created and displayed in the main area of the _Run Configurations_ dialog. The launch configuration's _Main_ tab is opened. +# In the main menu, select _Run → Run Configurations…_. The _Run Configurations_ dialog appears. !(standard-image)images/docu_launch_configuration_01.png(The _Run Configurations_ dialog)! +# In the _Run Configurations_ dialog, right-click on _Statechart Simulation_ and select _New_ in the context menu. !(standard-image)images/docu_launch_configuration_02.png(The _Run Configurations_ dialog)!
Alternatively, you can select _Statechart Simulation_ and then click on the _New_ symbol near the top-left corner of the dialog. !(standard-image)images/docu_launch_configuration_03.png(The _Run Configurations_ dialog)!
However you do it, a new launch configuration is created and displayed in the main area of the _Run Configurations_ dialog. The launch configuration's _Main_ tab is opened. # Enter the launch configuration's parameters as necessary: ** In the _Name_ text field, change the default name @New_configuration@ to something sensible, e. g. @Light switch@. ** In the _Model file_ text field, enter the path to the statechart model you want to simulate. Click on the _Search_ button to browse for statechart models. ** If your model uses Java operations, specify the Java class implementing those operations in the _Operation class_ text field. If you have multiple Java classes, specify them as a comma-separated list. ** Specify the _Execution type_ as being either _cycle-based_ (default) or _event-based_. In a _cycle-based execution_, the simulation performs a run-to-completion step in regular intervalls and processes the events that have occurred since the previous run-to-completion step. See the next field for the period of time between two consecutive run-to-completion steps. – In an _event-based execution_, the simulation performs a run-to-completion step each time an event occurs. _Please note: In contrast to the statechart simulation any generated code does not necessarily conform to the event-based execution semantics._ -** If the execution type is cycle-based, specify the period of time between two run-to-completion steps in the _Cycle time_ text field. If the execution type is event-based, this field is deactivated. !(standard-image)images/launch_configuration_04.png(The _Run Configurations_ dialog)! +** If the execution type is cycle-based, specify the period of time between two run-to-completion steps in the _Cycle time_ text field. If the execution type is event-based, this field is deactivated. !(standard-image)images/docu_launch_configuration_04.png(The _Run Configurations_ dialog)! bq.. *Note* diff --git a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/30_statechart_language.textile b/plugins/org.yakindu.sct.doc.user/src/user-guide/statechart_language.textile similarity index 93% rename from plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/30_statechart_language.textile rename to plugins/org.yakindu.sct.doc.user/src/user-guide/statechart_language.textile index 547d9ba1be..dce1815cf2 100644 --- a/plugins/org.yakindu.sct.doc.user/src/Part2-User-Guide/30_statechart_language.textile +++ b/plugins/org.yakindu.sct.doc.user/src/user-guide/statechart_language.textile @@ -36,7 +36,7 @@ h3(#region). Region As already mentioned, the YAKINDU statecharts are self-contained. They are organized in regions. Due to this it is possible to organize multiple state machines in different regions and to run them concurrently. -!(standard-image)images/parallelRegions.jpg(Parallel regions)! +!(standard-image)images/docu_parallelRegions.jpg(Parallel regions)! p=. Parallel regions @@ -48,7 +48,7 @@ h3(#transition). Transition A transition is the transfer of one state to another. Transitions are diagrammed as arrows. They can have events and actions, but don't need to. -The syntax of events and actions is defined by a "textual description language":#the-statechart-language. Please refer to section "Events":#events of this documentation for more details! For more details on actions please see chapter "Actions":#reaction-triggers. +The syntax of events and actions is defined by a "textual description language":#the-statechart-language. Please refer to "section "Events"":#events for more details. "Section "Reaction triggers"":#reaction-triggers has more on actions. If a state has more than a single outgoing transition without event, then among those transitions the one that has been modeled first will be carried out. @@ -61,7 +61,7 @@ An entry has a single outgoing transistion and no incoming ones. Its outgoing tr An entry is depicted as a filled circle, see "figure "Entry, exit, and final state"":#fig_state_entry_exit_final_explained. p(#fig_state_entry_exit_final_explained). -!(standard-image)images/state_entry_exit_final_explained.png(Entry, exit, and final state)! +!(standard-image)images/docu_state_entry_exit_final_explained.png(Entry, exit, and final state)! p=. Entry, exit, and final state @@ -86,7 +86,7 @@ Named entries have no equivalent in the UML. The sample statechart in "Figure "Entry state"":#fig_state_entry has a composite state named _Handle result_. This composite state has a default entry as well as an entry called _failure_. If state _A_ is active and the _error_ trigger fires, control is transitioned to the _Handle result_ composite state. The notation @error # >failure@ specifies that the _failure_ entry is to be used. p(#fig_state_entry). -!(standard-image)images/state_entry.png(Entry state)! +!(standard-image)images/docu_state_entry.png(Entry state)! p=. Entry state @@ -125,13 +125,13 @@ The order of exit and entry points in a transition specification is irrelevant. Alternatively, _Process_ could have been modeled with two different error exit states, say _error_1_ and _error_2_. This would allow to respond differently to different error conditions, while still enabling to catch them both with a single flow. A transition with @# >error_1 >error_2 problem>@ would do so. p(#fig_state_entry_exit). -!(standard-image)images/state_entry_exit.png(Entries and exits)! +!(standard-image)images/docu_state_entry_exit.png(Entries and exits)! p=. Entries and exits h3(#final). Final state -A _final state_ denotes the end of the execution flow of a state machine or region. See "section "Exit state"":#exit for a different way to terminate a composite state. +A _final state_ denotes the end of the execution flow of a state machine or region. See "section "Exit"":#exit for a different way to terminate a composite state. A final state is depicted as an unfilled circle with a smaller filled black circle inside, see "figure "Entry, exit, and final state"":#fig_state_entry_exit_final_explained. @@ -139,7 +139,7 @@ A final state can have multiple incoming transitions and has no outgoing ones. Within a region, only a single final state is allowed, but each region may have its own final state. -When a region reaches its final state, control stops there and waits until all other orthogonal regions, if any, have reached their respective final states, too. The semantics of final states is different from that of exits; please see "section "Exit state"":#exit for details. +When a region reaches its final state, control stops there and waits until all other orthogonal regions, if any, have reached their respective final states, too. The semantics of final states is different from that of exits; please see "section "Exit"":#exit for details. bq.. *Note* @@ -165,7 +165,7 @@ A synchronization state is shown as a thick horizontal or vertical line, as can p(#fig_state_synchronization). -!(standard-image)images/state_synchronization.png(Synchronization state)! +!(standard-image)images/docu_state_synchronization.png(Synchronization state)! p=. Synchronization state @@ -175,7 +175,7 @@ For a synchronization to actually join the incoming transitions and execute the * All guard conditions that are specified must be fulfilled. * If one or more triggers are defined, at least one trigger must fire at a point in time while the conditions above are met. -"Synchronization state":#fig_state_synchronization shows an sample statechart containing a forking and a joining synchronization. After having left the @Initialize@ state, the synchronization state forks the execution flow into two regions @r1@ and @r2@. Both are part of the @Process@ composite state and both are executed in parallel. That is, when activating @Process@, the substates @Line A 1@ and @Line B 1@ also become active. When the flows continues and both @Line A 2@ and @Line B 2@ have been reached, the synchronization state on the right-hand side joins the flows and transitions to substates @Cleanup@, making it the active state. However, as long as only one of them is active, the synchronization will wait for the other one to also become active before proceeding to @Process@. +"Figure "Synchronization state"":#fig_state_synchronization shows a sample statechart containing a forking and a joining synchronization. After having left the @Initialize@ state, the synchronization state forks the execution flow into two regions @r1@ and @r2@. Both are part of the @Process@ composite state and both are executed in parallel. That is, when activating @Process@, the substates @Line A 1@ and @Line B 1@ also become active. When the flows continues and both @Line A 2@ and @Line B 2@ have been reached, the synchronization state on the right-hand side joins the flows and transitions to substates @Cleanup@, making it the active state. However, as long as only one of them is active, the synchronization will wait for the other one to also become active before proceeding to @Process@. The example also demonstrates different lengths and orientations of the synchronization symbol. In the statechart editor, first select the synchronization symbol, the use a handle in one of the symbol's corners to change length or orientation. The handles in the middle of the symbol have no effect. @@ -191,7 +191,7 @@ h3(#orthogonal-states). Orthogonal states In the context of state machines orthogonal states are states that are independent of each other. The presumably most famous example is the keyboard example: -!(standard-image)images/orthogonalState_example.jpg(Orthogonal states)! +!(standard-image)images/docu_orthogonalState_example.jpg(Orthogonal states)! p=. Orthogonal states @@ -201,17 +201,17 @@ The shallow history state is a pseudo state that is placed inside regions of com The following example, showing the answering of a questionaire, explains this: -!(standard-image)images/shallowHistory01.jpg(Shallow history [1])! +!(standard-image)images/docu_shallowHistory01.jpg(Shallow history [1])! p=. Shallow history [1] Particularly interesting in this statechart are the events @checkProgress@ and @goon@. The event @checkProgress@ jumps back to the @init@ state while assigning the current progress count to the variable @temp@. The event @goon@ jumps to the shallow history state that was placed inside the composite state. -!(standard-image)images/shallowHistory02.jpg(Shallow history [2])! +!(standard-image)images/docu_shallowHistory02.jpg(Shallow history [2])! p=. Shallow history [2] -!(standard-image)images/shallowHistory03.jpg(Shallow history [3])! +!(standard-image)images/docu_shallowHistory03.jpg(Shallow history [3])! p=. Shallow history [3] diff --git a/plugins/org.yakindu.sct.doc.user/src/website/calltoaction.download.htmlf b/plugins/org.yakindu.sct.doc.user/src/website/calltoaction.download.htmlf new file mode 100644 index 0000000000..e005301128 --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/website/calltoaction.download.htmlf @@ -0,0 +1,10 @@ + + + +   Download SCT + + + + diff --git a/plugins/org.yakindu.sct.doc.user/src/website/calltoaction.download.local.files.htmlf b/plugins/org.yakindu.sct.doc.user/src/website/calltoaction.download.local.files.htmlf new file mode 100644 index 0000000000..d663f88cca --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/website/calltoaction.download.local.files.htmlf @@ -0,0 +1,4 @@ + + Contact us \ No newline at end of file diff --git a/plugins/org.yakindu.sct.doc.user/src/website/footer.htmlf b/plugins/org.yakindu.sct.doc.user/src/website/footer.htmlf new file mode 100644 index 0000000000..b2ae4d9cca --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/website/footer.htmlf @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + {{ standard_footer_includes }} + + diff --git a/plugins/org.yakindu.sct.doc.user/src/website/footer.local.files.htmlf b/plugins/org.yakindu.sct.doc.user/src/website/footer.local.files.htmlf new file mode 100644 index 0000000000..f3d950066b --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/website/footer.local.files.htmlf @@ -0,0 +1,369 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/org.yakindu.sct.doc.user/src/website/header.htmlf b/plugins/org.yakindu.sct.doc.user/src/website/header.htmlf new file mode 100644 index 0000000000..81853ff69f --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/website/header.htmlf @@ -0,0 +1,121 @@ + + + + + + + + + + + {{ page_meta.html_title }} + {% if site_settings.favicon_src %}{% endif %} + + +{{ standard_header_includes }} + {% style include_default_custom_css="true" %} + + + +
+
+ +
+
+
+{% include 'generated_global_groups/3772713661.html' %} +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
diff --git a/plugins/org.yakindu.sct.doc.user/src/website/header.local.files.htmlf b/plugins/org.yakindu.sct.doc.user/src/website/header.local.files.htmlf new file mode 100644 index 0000000000..a8c7e84a6e --- /dev/null +++ b/plugins/org.yakindu.sct.doc.user/src/website/header.local.files.htmlf @@ -0,0 +1,292 @@ + + + + + + YAKINDU Statechart Tools Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+ +
+
+
+ +
+
+ + +
+
+ +
+
+
+
+ + + Contact us +
+
+
+
+ +
+
+
+
+ +
+
+
+ + + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
diff --git a/plugins/org.yakindu.sct.doc.user/toc.xml b/plugins/org.yakindu.sct.doc.user/toc.xml index 1a37535486..40a37b5fe2 100644 --- a/plugins/org.yakindu.sct.doc.user/toc.xml +++ b/plugins/org.yakindu.sct.doc.user/toc.xml @@ -3,16 +3,23 @@ - + + + - - - - - - - - + + + + + + + + + + + + +