@@ -0,0 +1,2293 @@
+/**%0A * %0A */%0Apackage mathsquared.resultswizard2;%0A%0Aimport java.awt.Color;%0Aimport java.io.IOException;%0Aimport java.io.Reader;%0Aimport java.util.AbstractMap;%0Aimport java.util.Collections;%0Aimport java.util.HashSet;%0Aimport java.util.Properties;%0Aimport java.util.Set;%0A%0A/**%0A * Represents a color scheme, containing several %7B@link Color%7D objects referenced by name.%0A * %0A * %3Cp%3E%0A * Note that this object is immutable: any attempt to modify it, whether directly or through any of its views, will throw an %7B@link UnsupportedOperationException%7D.%0A * %3C/p%3E%0A * %0A * @author MathSquared%0A * %0A */%0Apublic class ColorScheme extends AbstractMap%3CString, Color%3E %7B%0A    private Set%3CEntry%3CString, Color%3E%3E ent;%0A%0A    /**%0A     * Reads in details of a color scheme from a line-oriented text description.%0A     * %0A     * %3Cp%3E%0A     * The format for a color scheme file is exactly as specified in %7B@link Properties#load(Reader)%7D. The keys must be names of colors, and the values must be hexadecimal integers representing valid RGB colors, in the format %3Ccode%3E#RRGGBB%3C/code%3E or %3Ccode%3ERRGGBB%3C/code%3E. Color names are not currently supported.%0A     * %3C/p%3E%0A     * %0A     * @param read the %7B@link Reader%7D containing the color scheme description%0A     * @throws IOException if an I/O error occurs when reading the description%0A     * @throws NumberFormatException if a value is not a correctly formatted hexadecimal integer%0A     */%0A    public ColorScheme (Reader read) throws IOException, NumberFormatException %7B%0A        // Read in the file%0A        Properties prop = new Properties();%0A        prop.load(read);%0A%0A        // Set up an entry set%0A        Set%3CEntry%3CString, Color%3E%3E ent2 = new HashSet%3CEntry%3CString, Color%3E%3E();%0A        for (String x : prop.stringPropertyNames()) %7B%0A            String color = prop.getProperty(x);%0A            if (color.charAt(0) == '#') %7B // Accommodate the #RRGGBB syntax as well as the RRGGBB syntax%0A                color = color.substring(1);%0A            %7D%0A            int col = Integer.parseInt(color, 16);%0A            ent2.add(new SimpleEntry%3CString, Color%3E(x, new Color(col)));%0A        %7D%0A%0A        // Assign to the actual entry set--but unmodifiable%0A        ent = Collections.unmodifiableSet(ent2);%0A    %7D%0A%0A    // Inherit documentation%0A    public Set%3CEntry%3CString, Color%3E%3E entrySet () %7B%0A        return ent;%0A    %7D%0A%7D%0A

Add and implement ColorScheme