01 package de.java2html.properties;
02
03 import java.util.Properties;
04
05 import de.java2html.javasource.SourceType;
06 import de.java2html.options.IConversionOptionsConstants;
07 import de.java2html.options.JavaSourceConversionOptions;
08 import de.java2html.options.JavaSourceStyleEntry;
09 import de.java2html.options.JavaSourceStyleTable;
10 import de.java2html.util.LinkedProperties;
11 import de.java2html.util.RGB;
12
13 /**
14 * @author Markus
15 */
16 public class ConversionOptionsPropertiesWriter {
17
18 public Properties write(JavaSourceConversionOptions options) {
19 final Properties properties = new LinkedProperties();
20 properties.setProperty(IConversionOptionsConstants.DEFAULT_STYLE_NAME, options.getStyleTable().getName());
21 properties.setProperty(IConversionOptionsConstants.SHOW_FILE_NAME, String.valueOf(options.isShowFileName()));
22 properties.setProperty(
23 IConversionOptionsConstants.SHOW_TABLE_BORDER,
24 String.valueOf(options.isShowTableBorder()));
25 properties.setProperty(
26 IConversionOptionsConstants.SHOW_LINE_NUMBERS,
27 String.valueOf(options.isShowLineNumbers()));
28 properties.setProperty(
29 IConversionOptionsConstants.SHOW_JAVA2HTML_LINK,
30 String.valueOf(options.isShowJava2HtmlLink()));
31 properties.setProperty(
32 IConversionOptionsConstants.HORIZONTAL_ALIGNMENT,
33 options.getHorizontalAlignment().getName());
34 properties.setProperty(IConversionOptionsConstants.TAB_SIZE, String.valueOf(options.getTabSize()));
35
36 addStyleEntries(properties, options.getStyleTable());
37 return properties;
38 }
39
40 private void addStyleEntries(Properties properties, JavaSourceStyleTable table) {
41 final SourceType[] sourceTypes = SourceType.getAll();
42 for (int i = 0; i < sourceTypes.length; i++) {
43 final SourceType type = sourceTypes[i];
44 final JavaSourceStyleEntry entry = table.get(type);
45 properties.setProperty(
46 type.getName() + IConversionOptionsConstants.POSTFIX_COLOR,
47 getRgbString(entry.getColor()));
48 properties.setProperty(
49 type.getName() + IConversionOptionsConstants.POSTFIX_BOLD,
50 String.valueOf(entry.isBold()));
51 properties.setProperty(
52 type.getName() + IConversionOptionsConstants.POSTFIX_ITALIC,
53 String.valueOf(entry.isItalic()));
54 }
55 }
56
57 private String getRgbString(RGB color) {
58 return color.getRed() + "," + color.getGreen() + "," + color.getBlue();
59 }
60 }
|