| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #import('dart:html'); | 5 #import('dart:html'); |
| 6 #import('template.dart'); | 6 #import('template.dart'); |
| 7 #import('../lib/file_system_memory.dart'); | 7 #import('../lib/file_system_memory.dart'); |
| 8 | 8 |
| 9 String currSampleTemplate; | 9 String currSampleTemplate; |
| 10 | 10 |
| 11 void changeTemplate() { | 11 void changeTemplate() { |
| 12 final Document doc = window.document; | 12 final Document doc = window.document; |
| 13 final SelectElement samples = doc.query('#templateSamples'); | 13 final SelectElement samples = doc.query('#templateSamples'); |
| 14 final TextAreaElement template = doc.query('#template'); | 14 final TextAreaElement template = doc.query('#template'); |
| 15 template.value = sample(samples.value); | 15 template.value = sample(samples.value); |
| 16 } | 16 } |
| 17 | 17 |
| 18 String sample(String sampleName) { | 18 String sample(String sampleName) { |
| 19 final String each = '\${#each'; | 19 final String each = '\${#each'; |
| 20 final String endEach = '\${/each}'; | 20 final String endEach = '\${/each}'; |
| 21 final String with = '\${#with'; | 21 final String with = '\${#with'; |
| 22 final String endWith = '\${/with}'; | 22 final String endWith = '\${/with}'; |
| 23 | 23 |
| 24 final String simpleTemplate = @''' | 24 final String simpleTemplate = r''' |
| 25 template NameEntry(String name, int age) { | 25 template NameEntry(String name, int age) { |
| 26 <div var=topDiv attr="test" attr1=test1 attr2='test2' attr3=test3> | 26 <div var=topDiv attr="test" attr1=test1 attr2='test2' attr3=test3> |
| 27 <span var=spanElem>${name}</span> | 27 <span var=spanElem>${name}</span> |
| 28 <span>-</span> | 28 <span>-</span> |
| 29 <span>${age}</span> | 29 <span>${age}</span> |
| 30 </div> | 30 </div> |
| 31 } | 31 } |
| 32 '''; | 32 '''; |
| 33 | 33 |
| 34 final String simpleTemplate2 = @''' | 34 final String simpleTemplate2 = r''' |
| 35 template NameEntry(String name, int age) { | 35 template NameEntry(String name, int age) { |
| 36 <div var=topDiv attr="test" attr1=test1 attr2='test2' attr3=test3> | 36 <div var=topDiv attr="test" attr1=test1 attr2='test2' attr3=test3> |
| 37 <h1> | 37 <h1> |
| 38 <h2> | 38 <h2> |
| 39 <h3> | 39 <h3> |
| 40 <span var=spanElem>${name}</span> | 40 <span var=spanElem>${name}</span> |
| 41 <span>-</span> | 41 <span>-</span> |
| 42 <span>${age}</span> | 42 <span>${age}</span> |
| 43 </h3> | 43 </h3> |
| 44 </h2> | 44 </h2> |
| 45 </h1> | 45 </h1> |
| 46 </div> | 46 </div> |
| 47 } | 47 } |
| 48 '''; | 48 '''; |
| 49 | 49 |
| 50 final String simpleTemplateCSS = @''' | 50 final String simpleTemplateCSS = r''' |
| 51 template NameEntry(String name, int age) { | 51 template NameEntry(String name, int age) { |
| 52 css { | 52 css { |
| 53 .foo { | 53 .foo { |
| 54 left: 10px; | 54 left: 10px; |
| 55 } | 55 } |
| 56 } | 56 } |
| 57 <div var=topDiv attr="test" attr1=test1 attr2='test2' attr3=test3> | 57 <div var=topDiv attr="test" attr1=test1 attr2='test2' attr3=test3> |
| 58 <span var=spanElem>${name}</span> | 58 <span var=spanElem>${name}</span> |
| 59 <span>-</span> | 59 <span>-</span> |
| 60 <span>${age}</span> | 60 <span>${age}</span> |
| 61 </div> | 61 </div> |
| 62 } | 62 } |
| 63 '''; | 63 '''; |
| 64 | 64 |
| 65 | 65 |
| 66 final String eachTemplate = @''' | 66 final String eachTemplate = r''' |
| 67 template Applications(var products) { | 67 template Applications(var products) { |
| 68 <div> | 68 <div> |
| 69 ${each} products | 69 ${each} products |
| 70 <div> | 70 <div> |
| 71 <span>${name}</span> | 71 <span>${name}</span> |
| 72 <span>-</span> | 72 <span>-</span> |
| 73 <span>${users}</span> | 73 <span>${users}</span> |
| 74 </div> | 74 </div> |
| 75 ${endEach} | 75 ${endEach} |
| 76 </div> | 76 </div> |
| 77 } | 77 } |
| 78 '''; | 78 '''; |
| 79 | 79 |
| 80 final String withTemplate = @''' | 80 final String withTemplate = r''' |
| 81 template Product(Person person) { | 81 template Product(Person person) { |
| 82 <div> | 82 <div> |
| 83 ${with} person | 83 ${with} person |
| 84 <div> | 84 <div> |
| 85 <span>${name}</span> | 85 <span>${name}</span> |
| 86 <span>-</span> | 86 <span>-</span> |
| 87 <span>${age}</span> | 87 <span>${age}</span> |
| 88 </div> | 88 </div> |
| 89 ${endWith} | 89 ${endWith} |
| 90 </div> | 90 </div> |
| 91 } | 91 } |
| 92 '''; | 92 '''; |
| 93 | 93 |
| 94 final String withTemplate2 = @''' | 94 final String withTemplate2 = r''' |
| 95 template Product(Person person) { | 95 template Product(Person person) { |
| 96 <div> | 96 <div> |
| 97 <span var=a1> | 97 <span var=a1> |
| 98 <h1> | 98 <h1> |
| 99 ${with} person | 99 ${with} person |
| 100 <div> | 100 <div> |
| 101 <span>${name}</span> | 101 <span>${name}</span> |
| 102 <span>-</span> | 102 <span>-</span> |
| 103 <span>${age}</span> | 103 <span>${age}</span> |
| 104 </div> | 104 </div> |
| 105 ${endWith} | 105 ${endWith} |
| 106 </h1> | 106 </h1> |
| 107 </span> | 107 </span> |
| 108 </div> | 108 </div> |
| 109 } | 109 } |
| 110 '''; | 110 '''; |
| 111 | 111 |
| 112 final String complexTemplate = @''' | 112 final String complexTemplate = r''' |
| 113 template ProductsForPerson(Person person, var products) { | 113 template ProductsForPerson(Person person, var products) { |
| 114 <div> | 114 <div> |
| 115 ${with} person person | 115 ${with} person person |
| 116 <div> | 116 <div> |
| 117 <span>${person.name}</span> | 117 <span>${person.name}</span> |
| 118 <span>-</span> | 118 <span>-</span> |
| 119 <span>${person.age}</span> | 119 <span>${person.age}</span> |
| 120 </div> | 120 </div> |
| 121 ${each} products product | 121 ${each} products product |
| 122 <div> | 122 <div> |
| 123 <span>product=${product.name},users=${product.users}</span> | 123 <span>product=${product.name},users=${product.users}</span> |
| 124 </div> | 124 </div> |
| 125 ${endEach} | 125 ${endEach} |
| 126 ${endWith} | 126 ${endWith} |
| 127 </div> | 127 </div> |
| 128 } | 128 } |
| 129 '''; | 129 '''; |
| 130 | 130 |
| 131 final String complexTemplate2 = @''' | 131 final String complexTemplate2 = r''' |
| 132 template ProductsForPerson(Person person, var products) { | 132 template ProductsForPerson(Person person, var products) { |
| 133 <div> | 133 <div> |
| 134 ${with} person person | 134 ${with} person person |
| 135 <div> | 135 <div> |
| 136 <span>${person.name}</span> | 136 <span>${person.name}</span> |
| 137 <span>-</span> | 137 <span>-</span> |
| 138 <span>${person.age}</span> | 138 <span>${person.age}</span> |
| 139 </div> | 139 </div> |
| 140 <div> | 140 <div> |
| 141 ${each} products product | 141 ${each} products product |
| 142 <span>product=${product.name},users=${product.users}</span> | 142 <span>product=${product.name},users=${product.users}</span> |
| 143 ${endEach} | 143 ${endEach} |
| 144 </div> | 144 </div> |
| 145 ${endWith} | 145 ${endWith} |
| 146 </div> | 146 </div> |
| 147 } | 147 } |
| 148 '''; | 148 '''; |
| 149 | 149 |
| 150 final String complexTemplate3 = @''' | 150 final String complexTemplate3 = r''' |
| 151 template ProductsForPerson(Person person, var products) { | 151 template ProductsForPerson(Person person, var products) { |
| 152 css { | 152 css { |
| 153 .sales-item { | 153 .sales-item { |
| 154 font-family: arial; | 154 font-family: arial; |
| 155 background-color: lightgray; | 155 background-color: lightgray; |
| 156 margin-left: 10px; | 156 margin-left: 10px; |
| 157 border-bottom: 1px solid white; | 157 border-bottom: 1px solid white; |
| 158 } | 158 } |
| 159 .ytd-sales { | 159 .ytd-sales { |
| 160 position: absolute; | 160 position: absolute; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 <div var=topDiv class="name-item" attr="test" attr1=test1 attr2='test2' attr3=
test3> | 194 <div var=topDiv class="name-item" attr="test" attr1=test1 attr2='test2' attr3=
test3> |
| 195 <span var=spanElem>${name}</span> | 195 <span var=spanElem>${name}</span> |
| 196 <span> - </span> | 196 <span> - </span> |
| 197 <span>${age}</span> | 197 <span>${age}</span> |
| 198 </div> | 198 </div> |
| 199 } | 199 } |
| 200 '''; | 200 '''; |
| 201 | 201 |
| 202 // Test #each in a #each where the nested #each is a top-level child of the | 202 // Test #each in a #each where the nested #each is a top-level child of the |
| 203 // outer #each. | 203 // outer #each. |
| 204 final String complexTemplate4 = @''' | 204 final String complexTemplate4 = r''' |
| 205 template DivisionSales(var divisions) { | 205 template DivisionSales(var divisions) { |
| 206 <div> | 206 <div> |
| 207 ${each} divisions division | 207 ${each} divisions division |
| 208 <div> | 208 <div> |
| 209 <span>${division.name}</span> | 209 <span>${division.name}</span> |
| 210 <span>-</span> | 210 <span>-</span> |
| 211 <span>${division.id}</span> | 211 <span>${division.id}</span> |
| 212 </div> | 212 </div> |
| 213 <div> | 213 <div> |
| 214 ${each} divisions.products divProduct | 214 ${each} divisions.products divProduct |
| (...skipping 10 matching lines...) Expand all Loading... |
| 225 </div> | 225 </div> |
| 226 ${endEach} | 226 ${endEach} |
| 227 ${endEach} | 227 ${endEach} |
| 228 </div> | 228 </div> |
| 229 ${endEach} | 229 ${endEach} |
| 230 </div> | 230 </div> |
| 231 } | 231 } |
| 232 '''; | 232 '''; |
| 233 | 233 |
| 234 | 234 |
| 235 final String realWorldList = @''' | 235 final String realWorldList = r''' |
| 236 template DivisionSales(var divisions) { | 236 template DivisionSales(var divisions) { |
| 237 css { | 237 css { |
| 238 .division-item { | 238 .division-item { |
| 239 background-color: #bbb; | 239 background-color: #bbb; |
| 240 border-top: 2px solid white; | 240 border-top: 2px solid white; |
| 241 line-height: 20pt; | 241 line-height: 20pt; |
| 242 padding-left: 5px; | 242 padding-left: 5px; |
| 243 } | 243 } |
| 244 .product-item { | 244 .product-item { |
| 245 background-color: lightgray; | 245 background-color: lightgray; |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 564 initHtmlWorld(false); | 564 initHtmlWorld(false); |
| 565 | 565 |
| 566 // Don't display any colors in the UI. | 566 // Don't display any colors in the UI. |
| 567 options.useColors = false; | 567 options.useColors = false; |
| 568 | 568 |
| 569 // Replace error handler bring up alert for any problems. | 569 // Replace error handler bring up alert for any problems. |
| 570 world.printHandler = (String msg) { | 570 world.printHandler = (String msg) { |
| 571 window.alert(msg); | 571 window.alert(msg); |
| 572 }; | 572 }; |
| 573 } | 573 } |
| OLD | NEW |