23 * questions. |
23 * questions. |
24 */ |
24 */ |
25 |
25 |
26 package jdk.javadoc.internal.doclets.formats.html; |
26 package jdk.javadoc.internal.doclets.formats.html; |
27 |
27 |
28 import java.io.IOException; |
|
29 |
|
30 import jdk.javadoc.internal.doclets.formats.html.markup.Comment; |
28 import jdk.javadoc.internal.doclets.formats.html.markup.Comment; |
31 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder; |
29 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder; |
32 import jdk.javadoc.internal.doclets.formats.html.markup.DocType; |
30 import jdk.javadoc.internal.doclets.formats.html.markup.DocType; |
33 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlAttr; |
31 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlAttr; |
34 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants; |
32 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants; |
35 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlDocument; |
33 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlDocument; |
36 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag; |
34 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag; |
37 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree; |
35 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree; |
38 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent; |
36 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent; |
39 import jdk.javadoc.internal.doclets.toolkit.Content; |
37 import jdk.javadoc.internal.doclets.toolkit.Content; |
40 import jdk.javadoc.internal.doclets.toolkit.Messages; |
38 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException; |
41 import jdk.javadoc.internal.doclets.toolkit.util.DocPath; |
39 import jdk.javadoc.internal.doclets.toolkit.util.DocPath; |
42 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths; |
40 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths; |
43 import jdk.javadoc.internal.doclets.toolkit.util.DocletAbortException; |
|
44 |
41 |
45 import static jdk.javadoc.internal.doclets.formats.html.markup.HtmlDocWriter.CONTENT_TYPE; |
42 import static jdk.javadoc.internal.doclets.formats.html.markup.HtmlDocWriter.CONTENT_TYPE; |
46 |
43 |
47 /** |
44 /** |
48 * Writes an index.html file that tries to redirect to an alternate page. |
45 * Writes an index.html file that tries to redirect to an alternate page. |
51 * If neither are supported/enabled in a browser, the page displays the |
48 * If neither are supported/enabled in a browser, the page displays the |
52 * standard "JavaScipt not enabled" message, and a link to the alternate page. |
49 * standard "JavaScipt not enabled" message, and a link to the alternate page. |
53 */ |
50 */ |
54 public class IndexRedirectWriter extends HtmlDocletWriter { |
51 public class IndexRedirectWriter extends HtmlDocletWriter { |
55 |
52 |
56 public static void generate(ConfigurationImpl configuration) { |
53 public static void generate(ConfigurationImpl configuration) |
|
54 throws DocFileIOException { |
57 IndexRedirectWriter indexRedirect; |
55 IndexRedirectWriter indexRedirect; |
58 DocPath filename = DocPath.empty; |
56 DocPath filename = DocPaths.INDEX; |
59 try { |
|
60 filename = DocPaths.INDEX; |
|
61 indexRedirect = new IndexRedirectWriter(configuration, filename); |
57 indexRedirect = new IndexRedirectWriter(configuration, filename); |
62 indexRedirect.generateIndexFile(); |
58 indexRedirect.generateIndexFile(); |
63 } catch (IOException exc) { |
|
64 Messages messages = configuration.getMessages(); |
|
65 messages.error( |
|
66 "doclet.exception_encountered", |
|
67 exc.toString(), filename); |
|
68 throw new DocletAbortException(exc); |
|
69 } |
|
70 } |
59 } |
71 |
60 |
72 IndexRedirectWriter(ConfigurationImpl configuration, DocPath filename) |
61 IndexRedirectWriter(ConfigurationImpl configuration, DocPath filename) { |
73 throws IOException { |
|
74 super(configuration, filename); |
62 super(configuration, filename); |
75 } |
63 } |
76 |
64 |
77 void generateIndexFile() throws IOException { |
65 /** |
|
66 * Generate an index file that redirects to an alternate file. |
|
67 * @throws DocFileIOException if there is a problem generating the file |
|
68 */ |
|
69 void generateIndexFile() throws DocFileIOException { |
78 Content htmlDocType = configuration.isOutputHtml5() |
70 Content htmlDocType = configuration.isOutputHtml5() |
79 ? DocType.HTML5 |
71 ? DocType.HTML5 |
80 : DocType.TRANSITIONAL; |
72 : DocType.TRANSITIONAL; |
81 Content htmlComment = new Comment(configuration.getText("doclet.New_Page")); |
73 Content htmlComment = new Comment(configuration.getText("doclet.New_Page")); |
82 Content head = new HtmlTree(HtmlTag.HEAD); |
74 Content head = new HtmlTree(HtmlTag.HEAD); |