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 }