[AAF-23] Initial code import
[aaf/inno.git] / xgen / src / main / java / com / att / xgen / html / HTML5Gen.java
1 /*******************************************************************************\r
2  * ============LICENSE_START====================================================\r
3  * * org.onap.aai\r
4  * * ===========================================================================\r
5  * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
6  * * Copyright © 2017 Amdocs\r
7  * * ===========================================================================\r
8  * * Licensed under the Apache License, Version 2.0 (the "License");\r
9  * * you may not use this file except in compliance with the License.\r
10  * * You may obtain a copy of the License at\r
11  * * \r
12  *  *      http://www.apache.org/licenses/LICENSE-2.0\r
13  * * \r
14  *  * Unless required by applicable law or agreed to in writing, software\r
15  * * distributed under the License is distributed on an "AS IS" BASIS,\r
16  * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17  * * See the License for the specific language governing permissions and\r
18  * * limitations under the License.\r
19  * * ============LICENSE_END====================================================\r
20  * *\r
21  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
22  * *\r
23  ******************************************************************************/\r
24 package com.att.xgen.html;\r
25 \r
26 import java.io.Writer;\r
27 \r
28 import com.att.xgen.Mark;\r
29 \r
30 public class HTML5Gen extends HTMLGen {\r
31         public HTML5Gen(Writer w) {\r
32                 super(w);\r
33         }\r
34 \r
35         @Override\r
36         public HTMLGen html(String ... attrib) {\r
37                 //forward.println("<!DOCTYPE html>");\r
38                 incr("html",attrib);\r
39                 return this;\r
40         }\r
41         \r
42         @Override\r
43         public Mark head() {\r
44                 Mark head = new Mark("head");\r
45                 incr(head).directive("meta","charset=utf-8");\r
46                 return head;\r
47         }\r
48 \r
49         @Override\r
50         public Mark body(String ... attrs) {\r
51                 Mark body = new Mark("body");\r
52                 incr(body,"body",attrs);\r
53                 //chromeFrame();\r
54                 return body;\r
55         }\r
56         \r
57         @Override\r
58         public HTML5Gen charset(String charset) {\r
59                 forward.append("<meta charset=\"");\r
60                 forward.append(charset);\r
61                 forward.append("\">");\r
62                 prettyln(forward);\r
63                 return this;\r
64         }\r
65 \r
66         @Override\r
67         public Mark header(String ... attribs) {\r
68                 Mark mark = new Mark("header");\r
69                 incr(mark, mark.comment, attribs);\r
70                 return mark;\r
71         }\r
72 \r
73         @Override\r
74         public Mark footer(String ... attribs) {\r
75                 Mark mark = new Mark("footer");\r
76                 incr(mark, mark.comment, attribs);\r
77                 return mark;\r
78         }\r
79 \r
80         @Override\r
81         public Mark section(String ... attribs) {\r
82                 Mark mark = new Mark("section");\r
83                 incr(mark, mark.comment,attribs);\r
84                 return mark;\r
85         }\r
86 \r
87         @Override\r
88         public Mark article(String ... attribs) {\r
89                 Mark mark = new Mark("article");\r
90                 incr(mark, mark.comment,attribs);\r
91                 return mark;\r
92         }\r
93 \r
94         @Override\r
95         public Mark aside(String ... attribs) {\r
96                 Mark mark = new Mark("aside");\r
97                 incr(mark, mark.comment,attribs);\r
98                 return mark;\r
99         }\r
100 \r
101         @Override\r
102         public Mark nav(String ... attribs) {\r
103                 Mark mark = new Mark("nav");\r
104                 incr(mark, mark.comment,attribs);\r
105                 return mark;\r
106         }\r
107         \r
108 \r
109 //      @Override\r
110 //      protected void importCSS(Imports imports) {\r
111 //              if(imports.css.size() == 1) {\r
112 //                      cssInline(imports.css.get(0));\r
113 //              } else {\r
114 //                      for(String str : imports.css) {\r
115 //                              forward.print("<link rel=\"stylesheet\" href=\"");\r
116 //                              forward.print(imports.themePath(null));\r
117 //                              forward.print(str);\r
118 //                              forward.println("\">");\r
119 //                      }\r
120 //              }\r
121 //      }\r
122 //\r
123 \r
124         /*\r
125         public void chromeFrame() {\r
126                 this.textCR(0,"<!--[if IE]>");\r
127                 Mark mark = new Mark();\r
128                 this.leaf(mark, "script","type=text/javascript","src=http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js")\r
129                         .end(mark);\r
130                 this.incr(mark, "style")\r
131                         .textCR(0,".chromeFrameInstallDefaultStyle {")\r
132                         .textCR(1,"width: 100%; /* default is 800px * /")\r
133                         .textCR(1,"border: 5px solid blue;")\r
134                         .textCR(0,"}")\r
135                         .end(mark);\r
136 \r
137                 this.incr(mark,"div","id=prompt"); // auto comment would break IE specific Script\r
138                 // "if IE without GCF, prompt goes here"\r
139                 this.text("Please load this plugin to run ClientSide Websockets")\r
140                         .end(mark);\r
141 \r
142                 this.incr(mark, "script")\r
143                         .textCR(0, "// The conditional ensures that this code will only execute in IE,")\r
144                                 .textCR(0, "// Therefore we can use the IE-specific attachEvent without worry")\r
145                                 .textCR(0, "window.attachEvent('onload', function() {")\r
146                                 .textCR(1,"CFInstall.check({")\r
147                                         .textCR(2,"mode: 'inline', // the default")\r
148                                         .textCR(2,"node: 'prompt'")\r
149                                 .textCR(1, "});")\r
150                         .textCR(0, "});")\r
151                         .end(mark);\r
152                         \r
153                 this.textCR(0,"<![endif]-->");\r
154         }\r
155         */\r
156 \r
157 }\r