sws 0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/doc/DOC.otl +34 -0
- data/doc/Makefile +13 -0
- data/doc/architecture.dia +0 -0
- data/doc/docbook/architecture.png +0 -0
- data/doc/docbook/concepts.docbook +474 -0
- data/doc/docbook/installation.docbook +57 -0
- data/doc/docbook/introduction.docbook +130 -0
- data/doc/docbook/sws_manual.docbook +35 -0
- data/doc/docbook/todo.docbook +38 -0
- data/doc/docbook/tutorial.docbook +594 -0
- data/examples/README +1 -0
- data/examples/addressbook/CardBrowse/CardBrowse.html +43 -0
- data/examples/addressbook/CardBrowse/CardBrowse.rb +65 -0
- data/examples/addressbook/CardBrowse/CardBrowse.sws +92 -0
- data/examples/addressbook/Login/LoginPage.html +12 -0
- data/examples/addressbook/Login/LoginPage.rb +19 -0
- data/examples/addressbook/Login/LoginPage.sws +15 -0
- data/examples/addressbook/README +1 -0
- data/examples/addressbook/addressbook.rb +70 -0
- data/examples/addressbook/application.yaml +8 -0
- data/examples/addressbook/db.yaml +7 -0
- data/examples/component_demo/CheckBoxDemo/CheckBoxDemo.html +11 -0
- data/examples/component_demo/CheckBoxDemo/CheckBoxDemo.rb +21 -0
- data/examples/component_demo/CheckBoxDemo/CheckBoxDemo.sws +25 -0
- data/examples/component_demo/ComponentDemo.rb +21 -0
- data/examples/component_demo/ConditionalDemo/ConditionalDemo.html +18 -0
- data/examples/component_demo/ConditionalDemo/ConditionalDemo.rb +2 -0
- data/examples/component_demo/ConditionalDemo/ConditionalDemo.sws +22 -0
- data/examples/component_demo/FileUploadDemo/FileUploadDemo.html +10 -0
- data/examples/component_demo/FileUploadDemo/FileUploadDemo.rb +9 -0
- data/examples/component_demo/FileUploadDemo/FileUploadDemo.sws +33 -0
- data/examples/component_demo/FormFieldsDemo/FormFieldsDemo.html +12 -0
- data/examples/component_demo/FormFieldsDemo/FormFieldsDemo.rb +21 -0
- data/examples/component_demo/FormFieldsDemo/FormFieldsDemo.sws +40 -0
- data/examples/component_demo/FormListsDemo/FormListsDemo.html +11 -0
- data/examples/component_demo/FormListsDemo/FormListsDemo.rb +37 -0
- data/examples/component_demo/FormListsDemo/FormListsDemo.sws +47 -0
- data/examples/component_demo/GenericDemo/GenericDemo.html +4 -0
- data/examples/component_demo/GenericDemo/GenericDemo.rb +2 -0
- data/examples/component_demo/GenericDemo/GenericDemo.sws +10 -0
- data/examples/component_demo/HyperlinkDemo/HyperlinkDemo.html +8 -0
- data/examples/component_demo/HyperlinkDemo/HyperlinkDemo.rb +20 -0
- data/examples/component_demo/HyperlinkDemo/HyperlinkDemo.sws +19 -0
- data/examples/component_demo/ImageLinkDemo/ImageLinkDemo.html +11 -0
- data/examples/component_demo/ImageLinkDemo/ImageLinkDemo.rb +2 -0
- data/examples/component_demo/ImageLinkDemo/ImageLinkDemo.sws +14 -0
- data/examples/component_demo/PageWrapper/PageWrapper.html +23 -0
- data/examples/component_demo/PageWrapper/PageWrapper.rb +2 -0
- data/examples/component_demo/PageWrapper/PageWrapper.sws +42 -0
- data/examples/component_demo/README +1 -0
- data/examples/component_demo/RepetitionDemo/RepetitionDemo.html +13 -0
- data/examples/component_demo/RepetitionDemo/RepetitionDemo.rb +19 -0
- data/examples/component_demo/RepetitionDemo/RepetitionDemo.sws +20 -0
- data/examples/component_demo/StringDemo/StringDemo.html +5 -0
- data/examples/component_demo/StringDemo/StringDemo.rb +16 -0
- data/examples/component_demo/StringDemo/StringDemo.sws +14 -0
- data/examples/component_demo/application.yaml +28 -0
- data/examples/component_demo/poweredby.jpg +0 -0
- data/examples/component_demo/style.css +1 -0
- data/examples/movies/Menu/Menu.html +3 -0
- data/examples/movies/Menu/Menu.rb +7 -0
- data/examples/movies/Menu/Menu.sws +7 -0
- data/examples/movies/MovieBrowse/MovieBrowse.html +68 -0
- data/examples/movies/MovieBrowse/MovieBrowse.rb +178 -0
- data/examples/movies/MovieBrowse/MovieBrowse.sws +127 -0
- data/examples/movies/README +1 -0
- data/examples/movies/UserBrowse/UserBrowse.html +50 -0
- data/examples/movies/UserBrowse/UserBrowse.rb +69 -0
- data/examples/movies/UserBrowse/UserBrowse.sws +49 -0
- data/examples/movies/application.yaml +11 -0
- data/examples/movies/da.rb +36 -0
- data/examples/movies/dbmovies.rb +44 -0
- data/examples/movies/frameworks/TestFramework/framework.yaml +4 -0
- data/examples/movies/frameworks/TestFramework/resources/im1.jpg +0 -0
- data/examples/movies/images/pbr1b.jpg +0 -0
- data/examples/movies/movies.rb +28 -0
- data/examples/movies/movies.sds +119 -0
- data/examples/movies/movies.sqlite +0 -0
- data/examples/movies/movies_mysql.sql +28 -0
- data/examples/movies/movies_postgres.sql +27 -0
- data/examples/movies/movies_sqlite.sql +28 -0
- data/lib/sws.rb +89 -0
- data/lib/sws/Core/components/CheckBox/CheckBox.api +5 -0
- data/lib/sws/Core/components/CheckBox/CheckBox.rb +45 -0
- data/lib/sws/Core/components/CheckBoxList/CheckBoxList.api +13 -0
- data/lib/sws/Core/components/CheckBoxList/CheckBoxList.rb +54 -0
- data/lib/sws/Core/components/Conditional/Conditional.api +3 -0
- data/lib/sws/Core/components/Conditional/Conditional.html +1 -0
- data/lib/sws/Core/components/Conditional/Conditional.rb +39 -0
- data/lib/sws/Core/components/Conditional/Conditional.sws +2 -0
- data/lib/sws/Core/components/Content/Content.rb +18 -0
- data/lib/sws/Core/components/ExceptionPage/ExceptionPage.html +13 -0
- data/lib/sws/Core/components/ExceptionPage/ExceptionPage.rb +18 -0
- data/lib/sws/Core/components/ExceptionPage/ExceptionPage.sws +16 -0
- data/lib/sws/Core/components/FileUpload/FileUpload.api +16 -0
- data/lib/sws/Core/components/FileUpload/FileUpload.rb +62 -0
- data/lib/sws/Core/components/Form/Form.api +9 -0
- data/lib/sws/Core/components/Form/Form.html +3 -0
- data/lib/sws/Core/components/Form/Form.rb +55 -0
- data/lib/sws/Core/components/Form/Form.sws +12 -0
- data/lib/sws/Core/components/GenericContainer/GenericContainer.api +10 -0
- data/lib/sws/Core/components/GenericContainer/GenericContainer.html +1 -0
- data/lib/sws/Core/components/GenericContainer/GenericContainer.rb +39 -0
- data/lib/sws/Core/components/GenericContainer/GenericContainer.sws +12 -0
- data/lib/sws/Core/components/GenericElement/GenericElement.api +10 -0
- data/lib/sws/Core/components/GenericElement/GenericElement.rb +34 -0
- data/lib/sws/Core/components/HiddenField/HiddenField.api +7 -0
- data/lib/sws/Core/components/HiddenField/HiddenField.rb +37 -0
- data/lib/sws/Core/components/Hyperlink/Hyperlink.api +13 -0
- data/lib/sws/Core/components/Hyperlink/Hyperlink.html +1 -0
- data/lib/sws/Core/components/Hyperlink/Hyperlink.rb +102 -0
- data/lib/sws/Core/components/Hyperlink/Hyperlink.sws +12 -0
- data/lib/sws/Core/components/Image/Image.api +11 -0
- data/lib/sws/Core/components/Image/Image.rb +49 -0
- data/lib/sws/Core/components/ImageButton/ImageButton.api +16 -0
- data/lib/sws/Core/components/ImageButton/ImageButton.rb +76 -0
- data/lib/sws/Core/components/Link/Link.api +11 -0
- data/lib/sws/Core/components/Link/Link.rb +39 -0
- data/lib/sws/Core/components/PasswordField/PasswordField.api +7 -0
- data/lib/sws/Core/components/PasswordField/PasswordField.rb +41 -0
- data/lib/sws/Core/components/RadioButton/RadioButton.api +7 -0
- data/lib/sws/Core/components/RadioButton/RadioButton.rb +44 -0
- data/lib/sws/Core/components/RadioButtonList/RadioButtonList.api +20 -0
- data/lib/sws/Core/components/RadioButtonList/RadioButtonList.rb +76 -0
- data/lib/sws/Core/components/Repetition/Repetition.api +10 -0
- data/lib/sws/Core/components/Repetition/Repetition.html +1 -0
- data/lib/sws/Core/components/Repetition/Repetition.rb +137 -0
- data/lib/sws/Core/components/Repetition/Repetition.sws +2 -0
- data/lib/sws/Core/components/ResetButton/ResetButton.api +5 -0
- data/lib/sws/Core/components/ResetButton/ResetButton.rb +28 -0
- data/lib/sws/Core/components/Select/Select.api +24 -0
- data/lib/sws/Core/components/Select/Select.rb +57 -0
- data/lib/sws/Core/components/String/String.api +5 -0
- data/lib/sws/Core/components/String/String.rb +28 -0
- data/lib/sws/Core/components/SubmitButton/SubmitButton.api +6 -0
- data/lib/sws/Core/components/SubmitButton/SubmitButton.rb +53 -0
- data/lib/sws/Core/components/TextArea/TextArea.api +9 -0
- data/lib/sws/Core/components/TextArea/TextArea.rb +28 -0
- data/lib/sws/Core/components/TextField/TextField.api +9 -0
- data/lib/sws/Core/components/TextField/TextField.rb +46 -0
- data/lib/sws/Core/framework.yaml +25 -0
- data/lib/sws/JSComponents/components/JSMenu/JSMenu.api +5 -0
- data/lib/sws/JSComponents/components/JSMenu/JSMenu.html +58 -0
- data/lib/sws/JSComponents/components/JSMenu/JSMenu.rb +34 -0
- data/lib/sws/JSComponents/components/JSMenu/JSMenu.sws +37 -0
- data/lib/sws/JSComponents/framework.yaml +3 -0
- data/lib/sws/adaptor.rb +334 -0
- data/lib/sws/application.rb +604 -0
- data/lib/sws/component.rb +656 -0
- data/lib/sws/cookie.rb +27 -0
- data/lib/sws/direct_action.rb +38 -0
- data/lib/sws/extensions.rb +49 -0
- data/lib/sws/parsers.rb +374 -0
- data/lib/sws/request.rb +308 -0
- data/lib/sws/response.rb +70 -0
- data/lib/sws/session.rb +195 -0
- data/lib/sws/slot.rb +198 -0
- metadata +263 -0
@@ -0,0 +1,22 @@
|
|
1
|
+
page_wrapper:
|
2
|
+
_class: PageWrapper
|
3
|
+
|
4
|
+
condition_true_negate_false:
|
5
|
+
_class: SWS::Conditional
|
6
|
+
condition: true
|
7
|
+
negate: false
|
8
|
+
|
9
|
+
condition_true_negate_true:
|
10
|
+
_class: SWS::Conditional
|
11
|
+
condition: true
|
12
|
+
negate: true
|
13
|
+
|
14
|
+
condition_false_negate_true:
|
15
|
+
_class: SWS::Conditional
|
16
|
+
condition: false
|
17
|
+
negate: true
|
18
|
+
|
19
|
+
condition_false_negate_false:
|
20
|
+
_class: SWS::Conditional
|
21
|
+
condition: false
|
22
|
+
negate: false
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<span sws="page_wrapper">
|
2
|
+
<form sws="form">
|
3
|
+
<input type="file" sws="file_upload"><br>
|
4
|
+
<input type="submit" sws="submit_button"><br>
|
5
|
+
File name: <span sws="file_name_string"></span><br>
|
6
|
+
File content-type: <span sws="file_content_type_string"></span><br>
|
7
|
+
File charset: <span sws="file_charset_string"></span><br>
|
8
|
+
File contents: <span sws="file_contents_string"></span><br>
|
9
|
+
</form>
|
10
|
+
</span>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
page_wrapper:
|
2
|
+
_class: PageWrapper
|
3
|
+
|
4
|
+
form:
|
5
|
+
_class: SWS::Form
|
6
|
+
enctype: "'multipart/form-data'"
|
7
|
+
|
8
|
+
file_upload:
|
9
|
+
_class: SWS::FileUpload
|
10
|
+
filename: file_name
|
11
|
+
data: file_contents
|
12
|
+
content_type: file_content_type
|
13
|
+
charset: file_charset
|
14
|
+
|
15
|
+
file_name_string:
|
16
|
+
_class: SWS::String
|
17
|
+
value: file_name
|
18
|
+
|
19
|
+
file_content_type_string:
|
20
|
+
_class: SWS::String
|
21
|
+
value: file_content_type
|
22
|
+
|
23
|
+
file_charset_string:
|
24
|
+
_class: SWS::String
|
25
|
+
value: file_charset
|
26
|
+
|
27
|
+
file_contents_string:
|
28
|
+
_class: SWS::String
|
29
|
+
value: file_contents
|
30
|
+
|
31
|
+
submit_button:
|
32
|
+
_class: SWS::SubmitButton
|
33
|
+
action: form_submitted
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<span sws="page_wrapper">
|
2
|
+
<form sws="form">
|
3
|
+
<input type="hidden" sws="hidden_field">
|
4
|
+
<input type="text" sws="text_field"><br>
|
5
|
+
<input type="password" sws="password_field"><br>
|
6
|
+
<textarea sws="textarea"></textarea><br>
|
7
|
+
<input type="reset" sws="reset_button"><input type="submit" sws="submit_button"><br>
|
8
|
+
Hidden field: <span sws="hidden_string"></span><br>
|
9
|
+
Text field: <span sws="text_string"></span><br>
|
10
|
+
Textarea: <span sws="textarea_string"></span><br>
|
11
|
+
</form>
|
12
|
+
</span>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class FormFieldsDemo < SWS::Component
|
2
|
+
|
3
|
+
attr_accessor :hidden_text, :text, :long_text, :password
|
4
|
+
|
5
|
+
def initialize (*args)
|
6
|
+
|
7
|
+
super(*args)
|
8
|
+
@hidden_text = "Some text in a hidden field"
|
9
|
+
@text = "Some text in Textfield"
|
10
|
+
@long_text = "some text in textarea"
|
11
|
+
@password = "pass"
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
def form_submitted ()
|
17
|
+
puts( "Password: #{@password}" )
|
18
|
+
return self
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
page_wrapper:
|
2
|
+
_class: PageWrapper
|
3
|
+
|
4
|
+
form:
|
5
|
+
_class: SWS::Form
|
6
|
+
|
7
|
+
hidden_field:
|
8
|
+
_class: SWS::HiddenField
|
9
|
+
value: hidden_text
|
10
|
+
|
11
|
+
text_field:
|
12
|
+
_class: SWS::TextField
|
13
|
+
value: text
|
14
|
+
|
15
|
+
password_field:
|
16
|
+
_class: SWS::PasswordField
|
17
|
+
value: password
|
18
|
+
|
19
|
+
textarea:
|
20
|
+
_class: SWS::TextArea
|
21
|
+
value: long_text
|
22
|
+
|
23
|
+
reset_button:
|
24
|
+
_class: SWS::ResetButton
|
25
|
+
|
26
|
+
submit_button:
|
27
|
+
_class: SWS::SubmitButton
|
28
|
+
action: form_submitted
|
29
|
+
|
30
|
+
hidden_string:
|
31
|
+
_class: SWS::String
|
32
|
+
value: hidden_text
|
33
|
+
|
34
|
+
text_string:
|
35
|
+
_class: SWS::String
|
36
|
+
value: text
|
37
|
+
|
38
|
+
textarea_string:
|
39
|
+
_class: SWS::String
|
40
|
+
value: long_text
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<span sws="page_wrapper">
|
2
|
+
<form sws="form">
|
3
|
+
<span sws="checkboxlist"></span><br>
|
4
|
+
<span sws="radiobuttonlist"></span><br>
|
5
|
+
<select sws="select"></select><br>
|
6
|
+
<input type="submit" sws="submit_button"><br>
|
7
|
+
</form>
|
8
|
+
Selected names: <span sws="last_names"></span><br>
|
9
|
+
Selected animal: <span sws="selected_animal_string"></span><br>
|
10
|
+
Selected fruits' weight: <span sws="selected_fruit_string"></span><br>
|
11
|
+
</span>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
Name = Struct.new( :first_name, :last_name )
|
2
|
+
Fruit = Struct.new( :name, :weight )
|
3
|
+
|
4
|
+
class FormListsDemo < SWS::Component
|
5
|
+
|
6
|
+
attr_reader :names, :last_names, :animals, :fruits, :total_fruit_weight
|
7
|
+
attr_accessor :name_cursor, :selected_names, :animal_cursor, :selected_animal, :fruit_cursor, :selected_fruits
|
8
|
+
|
9
|
+
|
10
|
+
def initialize ( *args )
|
11
|
+
|
12
|
+
super( *args )
|
13
|
+
@names = [ Name.new( "John", "Smith" ), Name.new( "Marek", "Janukowicz" ), Name.new( "First","Last" ) ]
|
14
|
+
@animals = [ "Cat", "Dog", "Bird" ]
|
15
|
+
@fruits = [ Fruit.new( "Apple",2 ), Fruit.new( "Banana",1 ), Fruit.new( "Pear", 4 ) ]
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
def form_submitted
|
21
|
+
|
22
|
+
if ( @selected_names )
|
23
|
+
@last_names = @selected_names.collect { |name| "#{name.last_name}, " }
|
24
|
+
else
|
25
|
+
@last_names = nil
|
26
|
+
end
|
27
|
+
if ( @selected_fruits )
|
28
|
+
@total_fruit_weight = @selected_fruits.inject(0) { |sum,fruit| sum + fruit.weight }
|
29
|
+
else
|
30
|
+
@total_fruit_weight = 0
|
31
|
+
end
|
32
|
+
return self
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
page_wrapper:
|
2
|
+
_class: PageWrapper
|
3
|
+
|
4
|
+
form:
|
5
|
+
_class: SWS::Form
|
6
|
+
|
7
|
+
checkboxlist:
|
8
|
+
_class: SWS::CheckBoxList
|
9
|
+
list: names
|
10
|
+
item: name_cursor
|
11
|
+
display_string: name_cursor.first_name
|
12
|
+
selections: selected_names
|
13
|
+
prefix: "'Name: '"
|
14
|
+
suffix: "'<BR>'"
|
15
|
+
disabled: false
|
16
|
+
|
17
|
+
radiobuttonlist:
|
18
|
+
_class: SWS::RadioButtonList
|
19
|
+
list: animals
|
20
|
+
item: animal_cursor
|
21
|
+
selection: selected_animal
|
22
|
+
suffix: "'<BR>'"
|
23
|
+
|
24
|
+
select:
|
25
|
+
_class: SWS::Select
|
26
|
+
list: fruits
|
27
|
+
item: fruit_cursor
|
28
|
+
display_string: fruit_cursor.name
|
29
|
+
selections: selected_fruits
|
30
|
+
size: 3
|
31
|
+
multiple: true
|
32
|
+
|
33
|
+
last_names:
|
34
|
+
_class: SWS::String
|
35
|
+
value: last_names
|
36
|
+
|
37
|
+
selected_animal_string:
|
38
|
+
_class: SWS::String
|
39
|
+
value: selected_animal
|
40
|
+
|
41
|
+
selected_fruit_string:
|
42
|
+
_class: SWS::String
|
43
|
+
value: total_fruit_weight
|
44
|
+
|
45
|
+
submit_button:
|
46
|
+
_class: SWS::SubmitButton
|
47
|
+
action: form_submitted
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<span sws="page_wrapper">
|
2
|
+
This link gets target from "other_tag_string" binding<br>
|
3
|
+
<a sws="page_name_link">Go to StringDemo page</a><br>
|
4
|
+
And this one gets it from regular HTML tag attribute<br>
|
5
|
+
<a sws="href_link" target="_blank">Go to URL</a><br>
|
6
|
+
<a sws="action_link">Call action</a><br>
|
7
|
+
Action called <span sws="action_count_string"></span> times.
|
8
|
+
</span>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
page_wrapper:
|
2
|
+
_class: PageWrapper
|
3
|
+
|
4
|
+
page_name_link:
|
5
|
+
_class: SWS::Hyperlink
|
6
|
+
page_name: "'StringDemo'"
|
7
|
+
other_tag_string: "'target=\"_blank\"'"
|
8
|
+
|
9
|
+
href_link:
|
10
|
+
_class: SWS::Hyperlink
|
11
|
+
href: "'http://www.ruby-lang.org'"
|
12
|
+
|
13
|
+
action_link:
|
14
|
+
_class: SWS::Hyperlink
|
15
|
+
action: increase_counter
|
16
|
+
|
17
|
+
action_count_string:
|
18
|
+
_class: SWS::String
|
19
|
+
value: action_count
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<title>Component Demo</title>
|
4
|
+
<span sws="css_link"></span>
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
No wrapper here, as we need to change the head to add CSS there. Use <a sws="string_demo_link">this link</a> to go back.
|
8
|
+
Some <span class="bold">CSS-ized</span> text.<br>
|
9
|
+
<img sws="logo_image">
|
10
|
+
</body>
|
11
|
+
</html>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
css_link:
|
2
|
+
_class: SWS::Link
|
3
|
+
resource: "'style.css'"
|
4
|
+
rel: "'stylesheet'"
|
5
|
+
type: "'text/css'"
|
6
|
+
framework: "'app'"
|
7
|
+
|
8
|
+
string_demo_link:
|
9
|
+
_class: SWS::Hyperlink
|
10
|
+
page_name: "'StringDemo'"
|
11
|
+
|
12
|
+
logo_image:
|
13
|
+
_class: SWS::Image
|
14
|
+
resource: "'poweredby.jpg'"
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<html>
|
2
|
+
<head><title>Component Demo</title></head>
|
3
|
+
|
4
|
+
<body>
|
5
|
+
<center><h2>This is a demo for builtin SWS components. Select links on the left to view demo pages for particular components.</h2></center>
|
6
|
+
<table width=100%>
|
7
|
+
<tr><td width=20% valign="top">
|
8
|
+
<a sws="string_demo_link">String</a><br>
|
9
|
+
<a sws="repetition_demo_link">Repetition</a><br>
|
10
|
+
<a sws="conditional_demo_link">Conditional</a><br>
|
11
|
+
<a sws="checkbox_demo_link">CheckBox</a><br>
|
12
|
+
<a sws="form_lists_demo_link">Form lists</a><br>
|
13
|
+
<a sws="file_upload_demo_link">FileUpload</a><br>
|
14
|
+
<a sws="generic_demo_link">GenericContainer and GenericElement</a><br>
|
15
|
+
<a sws="form_fields_demo_link">Form fields</a><br>
|
16
|
+
<a sws="hyperlink_demo_link">Hyperlink</a><br>
|
17
|
+
<a sws="image_link_demo_link">Image and Link</a><br>
|
18
|
+
</td>
|
19
|
+
<td><span sws="content"></span></td>
|
20
|
+
</tr>
|
21
|
+
</table>
|
22
|
+
</body>
|
23
|
+
</html>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
string_demo_link:
|
2
|
+
_class: SWS::Hyperlink
|
3
|
+
page_name: "'StringDemo'"
|
4
|
+
|
5
|
+
repetition_demo_link:
|
6
|
+
_class: SWS::Hyperlink
|
7
|
+
page_name: "'RepetitionDemo'"
|
8
|
+
|
9
|
+
conditional_demo_link:
|
10
|
+
_class: SWS::Hyperlink
|
11
|
+
page_name: "'ConditionalDemo'"
|
12
|
+
|
13
|
+
checkbox_demo_link:
|
14
|
+
_class: SWS::Hyperlink
|
15
|
+
page_name: "'CheckBoxDemo'"
|
16
|
+
|
17
|
+
form_lists_demo_link:
|
18
|
+
_class: SWS::Hyperlink
|
19
|
+
page_name: "'FormListsDemo'"
|
20
|
+
|
21
|
+
file_upload_demo_link:
|
22
|
+
_class: SWS::Hyperlink
|
23
|
+
page_name: "'FileUploadDemo'"
|
24
|
+
|
25
|
+
generic_demo_link:
|
26
|
+
_class: SWS::Hyperlink
|
27
|
+
page_name: "'GenericDemo'"
|
28
|
+
|
29
|
+
form_fields_demo_link:
|
30
|
+
_class: SWS::Hyperlink
|
31
|
+
page_name: "'FormFieldsDemo'"
|
32
|
+
|
33
|
+
hyperlink_demo_link:
|
34
|
+
_class: SWS::Hyperlink
|
35
|
+
page_name: "'HyperlinkDemo'"
|
36
|
+
|
37
|
+
image_link_demo_link:
|
38
|
+
_class: SWS::Hyperlink
|
39
|
+
page_name: "'ImageLinkDemo'"
|
40
|
+
|
41
|
+
content:
|
42
|
+
_class: SWS::Content
|
@@ -0,0 +1 @@
|
|
1
|
+
This application contains demo pages for all SWS components.
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<span sws="page_wrapper">
|
2
|
+
<table border=1>
|
3
|
+
<span sws="component_repetition">
|
4
|
+
<tr><th><span sws="component_name_string"></span></th>
|
5
|
+
<td><span sws="attribute_repetition">
|
6
|
+
<input type="text" sws="attribute_name_textfield"><br>
|
7
|
+
</span>
|
8
|
+
</td>
|
9
|
+
</tr>
|
10
|
+
</span>
|
11
|
+
</table>
|
12
|
+
</span>
|
13
|
+
|