Hi Glen,

I dont know much about the AUTOMATIC colour (Ha! another Aussie with the
right spelling ;-) ) however with regards to the class vs instance issue, I
have the same problems as you suggest. There is no reason why they need to
be classes.

In fact i have attached a patch that does this, although it doesnt fix the
places where it breaks the existing code (except for the Workbook class). I
could create a patch that uses this new scheme if everyone agrees that this
approach is the best way to go. 

I think that in the long run when the custom colours are decoded correctly,
the HSSFColor will need to change into something like this patch and provide
a constructor that allows a triplet (R,G,B value) to be passed in. Any
existing methods that return an index (short) to reference a colour whould
then need to return a HSSFColor directly.

I hope that makes sense.

Anyhow if people think that this patch is OK then i will make all of the
necessary example changes so that the code can be built.

Jason

PS Sorry about the size of this email. It is a large patch after all.....

Index: jakarta-poi/src/java/org/apache/poi/hssf/model/Workbook.java
===================================================================
RCS file:
/home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/model/Workbook.java
,v
retrieving revision 1.13
diff -w -r1.13 Workbook.java
1482,1485c1482,1485
<         retval.setTopBorderPaletteIdx(HSSFColor.BLACK.index);
<         retval.setBottomBorderPaletteIdx(HSSFColor.BLACK.index);
<         retval.setLeftBorderPaletteIdx(HSSFColor.BLACK.index);
<         retval.setRightBorderPaletteIdx(HSSFColor.BLACK.index);
---
>         retval.setTopBorderPaletteIdx(HSSFColor.BLACK.getIndex());
>         retval.setBottomBorderPaletteIdx(HSSFColor.BLACK.getIndex());
>         retval.setLeftBorderPaletteIdx(HSSFColor.BLACK.getIndex());
>         retval.setRightBorderPaletteIdx(HSSFColor.BLACK.getIndex());
Index: jakarta-poi/src/java/org/apache/poi/hssf/util/HSSFColor.java
===================================================================
RCS file:
/home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/util/HSSFColor.java
,v
retrieving revision 1.5
diff -w -r1.5 HSSFColor.java
75a76,78
>     private short[] triplet;
>     private int index;
>     private String hexString;
77a81,83
>     public HSSFColor(short[] triplet) {
>       this(triplet, -1, "");
>     }
79c85
<     public HSSFColor()
---
>     private HSSFColor(short[] triplet, int index, String hexString)
80a87,89
>       this.triplet = triplet;
>       this.index = index;
>       this.hexString = hexString;
97,145c106,154
<         hash.put(new Integer(HSSFColor.BLACK.index), new
HSSFColor.BLACK());
<         hash.put(new Integer(HSSFColor.BROWN.index), new
HSSFColor.BROWN());
<         hash.put(new Integer(HSSFColor.OLIVE_GREEN.index),
<                  new HSSFColor.OLIVE_GREEN());
<         hash.put(new Integer(HSSFColor.DARK_GREEN.index), new
HSSFColor.DARK_GREEN());
<         hash.put(new Integer(HSSFColor.DARK_TEAL.index), new
HSSFColor.DARK_TEAL());
<         hash.put(new Integer(HSSFColor.DARK_BLUE.index), new
HSSFColor.DARK_BLUE());
<         hash.put(new Integer(HSSFColor.INDIGO.index), new
HSSFColor.INDIGO());
<         hash.put(new Integer(HSSFColor.GREY_80_PERCENT.index),
<                  new HSSFColor.GREY_80_PERCENT());
<         hash.put(new Integer(HSSFColor.ORANGE.index), new
HSSFColor.ORANGE());
<         hash.put(new Integer(HSSFColor.DARK_YELLOW.index),
<                  new HSSFColor.DARK_YELLOW());
<         hash.put(new Integer(HSSFColor.GREEN.index), new
HSSFColor.GREEN());
<         hash.put(new Integer(HSSFColor.TEAL.index), new HSSFColor.TEAL());
<         hash.put(new Integer(HSSFColor.BLUE.index), new HSSFColor.BLUE());
<         hash.put(new Integer(HSSFColor.BLUE_GREY.index), new
HSSFColor.BLUE_GREY());
<         hash.put(new Integer(HSSFColor.GREY_50_PERCENT.index),
<                  new HSSFColor.GREY_50_PERCENT());
<         hash.put(new Integer(HSSFColor.RED.index), new HSSFColor.RED());
<         hash.put(new Integer(HSSFColor.LIGHT_ORANGE.index),
<                  new HSSFColor.LIGHT_ORANGE());
<         hash.put(new Integer(HSSFColor.LIME.index), new HSSFColor.LIME());
<         hash.put(new Integer(HSSFColor.SEA_GREEN.index), new
HSSFColor.SEA_GREEN());
<         hash.put(new Integer(HSSFColor.AQUA.index), new HSSFColor.AQUA());
<         hash.put(new Integer(HSSFColor.LIGHT_BLUE.index), new
HSSFColor.LIGHT_BLUE());
<         hash.put(new Integer(HSSFColor.VIOLET.index), new
HSSFColor.VIOLET());
<         hash.put(new Integer(HSSFColor.GREY_40_PERCENT.index),
<                  new HSSFColor.GREY_40_PERCENT());
<         hash.put(new Integer(HSSFColor.PINK.index), new HSSFColor.PINK());
<         hash.put(new Integer(HSSFColor.GOLD.index), new HSSFColor.GOLD());
<         hash.put(new Integer(HSSFColor.YELLOW.index), new
HSSFColor.YELLOW());
<         hash.put(new Integer(HSSFColor.BRIGHT_GREEN.index),
<                  new HSSFColor.BRIGHT_GREEN());
<         hash.put(new Integer(HSSFColor.BRIGHT_GREEN.index), new
HSSFColor.TURQUOISE());
<         hash.put(new Integer(HSSFColor.SKY_BLUE.index), new
HSSFColor.SKY_BLUE());
<         hash.put(new Integer(HSSFColor.PLUM.index), new HSSFColor.PLUM());
<         hash.put(new Integer(HSSFColor.GREY_25_PERCENT.index),
<                  new HSSFColor.GREY_25_PERCENT());
<         hash.put(new Integer(HSSFColor.ROSE.index), new HSSFColor.ROSE());
<         hash.put(new Integer(HSSFColor.LIGHT_YELLOW.index),
<                  new HSSFColor.LIGHT_YELLOW());
<         hash.put(new Integer(HSSFColor.LIGHT_GREEN.index),
<                  new HSSFColor.LIGHT_GREEN());
<         hash.put(new Integer(HSSFColor.LIGHT_TURQUOISE.index),
<                  new HSSFColor.LIGHT_TURQUOISE());
<         hash.put(new Integer(HSSFColor.PALE_BLUE.index), new
HSSFColor.PALE_BLUE());
<         hash.put(new Integer(HSSFColor.LAVENDER.index), new
HSSFColor.LAVENDER());
<         hash.put(new Integer(HSSFColor.WHITE.index), new
HSSFColor.WHITE());
---
>         hash.put(new Integer(HSSFColor.BLACK.getIndex()), BLACK);
>         hash.put(new Integer(HSSFColor.BROWN.getIndex()), BROWN);
>         hash.put(new Integer(HSSFColor.OLIVE_GREEN.getIndex()),
>                  OLIVE_GREEN);
>         hash.put(new Integer(HSSFColor.DARK_GREEN.getIndex()),
DARK_GREEN);
>         hash.put(new Integer(HSSFColor.DARK_TEAL.getIndex()), DARK_TEAL);
>         hash.put(new Integer(HSSFColor.DARK_BLUE.getIndex()), DARK_BLUE);
>         hash.put(new Integer(HSSFColor.INDIGO.getIndex()), INDIGO);
>         hash.put(new Integer(HSSFColor.GREY_80_PERCENT.getIndex()),
>                  GREY_80_PERCENT);
>         hash.put(new Integer(HSSFColor.ORANGE.getIndex()), ORANGE);
>         hash.put(new Integer(HSSFColor.DARK_YELLOW.getIndex()),
>                  DARK_YELLOW);
>         hash.put(new Integer(HSSFColor.GREEN.getIndex()), GREEN);
>         hash.put(new Integer(HSSFColor.TEAL.getIndex()), TEAL);
>         hash.put(new Integer(HSSFColor.BLUE.getIndex()), BLUE);
>         hash.put(new Integer(HSSFColor.BLUE_GREY.getIndex()), BLUE_GREY);
>         hash.put(new Integer(HSSFColor.GREY_50_PERCENT.getIndex()),
>                  GREY_50_PERCENT);
>         hash.put(new Integer(HSSFColor.RED.getIndex()), RED);
>         hash.put(new Integer(HSSFColor.LIGHT_ORANGE.getIndex()),
>                  LIGHT_ORANGE);
>         hash.put(new Integer(HSSFColor.LIME.getIndex()), LIME);
>         hash.put(new Integer(HSSFColor.SEA_GREEN.getIndex()), SEA_GREEN);
>         hash.put(new Integer(HSSFColor.AQUA.getIndex()), AQUA);
>         hash.put(new Integer(HSSFColor.LIGHT_BLUE.getIndex()),
LIGHT_BLUE);
>         hash.put(new Integer(HSSFColor.VIOLET.getIndex()), VIOLET);
>         hash.put(new Integer(HSSFColor.GREY_40_PERCENT.getIndex()),
>                  GREY_40_PERCENT);
>         hash.put(new Integer(HSSFColor.PINK.getIndex()), PINK);
>         hash.put(new Integer(HSSFColor.GOLD.getIndex()), GOLD);
>         hash.put(new Integer(HSSFColor.YELLOW.getIndex()), YELLOW);
>         hash.put(new Integer(HSSFColor.BRIGHT_GREEN.getIndex()),
>                  BRIGHT_GREEN);
>         hash.put(new Integer(HSSFColor.BRIGHT_GREEN.getIndex()),
TURQUOISE);
>         hash.put(new Integer(HSSFColor.SKY_BLUE.getIndex()), SKY_BLUE);
>         hash.put(new Integer(HSSFColor.PLUM.getIndex()), PLUM);
>         hash.put(new Integer(HSSFColor.GREY_25_PERCENT.getIndex()),
>                  GREY_25_PERCENT);
>         hash.put(new Integer(HSSFColor.ROSE.getIndex()), ROSE);
>         hash.put(new Integer(HSSFColor.LIGHT_YELLOW.getIndex()),
>                  LIGHT_YELLOW);
>         hash.put(new Integer(HSSFColor.LIGHT_GREEN.getIndex()),
>                  LIGHT_GREEN);
>         hash.put(new Integer(HSSFColor.LIGHT_TURQUOISE.getIndex()),
>                  LIGHT_TURQUOISE);
>         hash.put(new Integer(HSSFColor.PALE_BLUE.getIndex()), PALE_BLUE);
>         hash.put(new Integer(HSSFColor.LAVENDER.getIndex()), LAVENDER);
>         hash.put(new Integer(HSSFColor.WHITE.getIndex()), WHITE);
164,212c173,221
<         hash.put(HSSFColor.BLACK.hexString, new HSSFColor.BLACK());
<         hash.put(HSSFColor.BROWN.hexString, new HSSFColor.BROWN());
<         hash.put(HSSFColor.OLIVE_GREEN.hexString,
<                  new HSSFColor.OLIVE_GREEN());
<         hash.put(HSSFColor.DARK_GREEN.hexString, new
HSSFColor.DARK_GREEN());
<         hash.put(HSSFColor.DARK_TEAL.hexString, new
HSSFColor.DARK_TEAL());
<         hash.put(HSSFColor.DARK_BLUE.hexString, new
HSSFColor.DARK_BLUE());
<         hash.put(HSSFColor.INDIGO.hexString, new HSSFColor.INDIGO());
<         hash.put(HSSFColor.GREY_80_PERCENT.hexString,
<                  new HSSFColor.GREY_80_PERCENT());
<         hash.put(HSSFColor.ORANGE.hexString, new HSSFColor.ORANGE());
<         hash.put(HSSFColor.DARK_YELLOW.hexString,
<                  new HSSFColor.DARK_YELLOW());
<         hash.put(HSSFColor.GREEN.hexString, new HSSFColor.GREEN());
<         hash.put(HSSFColor.TEAL.hexString, new HSSFColor.TEAL());
<         hash.put(HSSFColor.BLUE.hexString, new HSSFColor.BLUE());
<         hash.put(HSSFColor.BLUE_GREY.hexString, new
HSSFColor.BLUE_GREY());
<         hash.put(HSSFColor.GREY_50_PERCENT.hexString,
<                  new HSSFColor.GREY_50_PERCENT());
<         hash.put(HSSFColor.RED.hexString, new HSSFColor.RED());
<         hash.put(HSSFColor.LIGHT_ORANGE.hexString,
<                  new HSSFColor.LIGHT_ORANGE());
<         hash.put(HSSFColor.LIME.hexString, new HSSFColor.LIME());
<         hash.put(HSSFColor.SEA_GREEN.hexString, new
HSSFColor.SEA_GREEN());
<         hash.put(HSSFColor.AQUA.hexString, new HSSFColor.AQUA());
<         hash.put(HSSFColor.LIGHT_BLUE.hexString, new
HSSFColor.LIGHT_BLUE());
<         hash.put(HSSFColor.VIOLET.hexString, new HSSFColor.VIOLET());
<         hash.put(HSSFColor.GREY_40_PERCENT.hexString,
<                  new HSSFColor.GREY_40_PERCENT());
<         hash.put(HSSFColor.PINK.hexString, new HSSFColor.PINK());
<         hash.put(HSSFColor.GOLD.hexString, new HSSFColor.GOLD());
<         hash.put(HSSFColor.YELLOW.hexString, new HSSFColor.YELLOW());
<         hash.put(HSSFColor.BRIGHT_GREEN.hexString,
<                  new HSSFColor.BRIGHT_GREEN());
<         hash.put(HSSFColor.BRIGHT_GREEN.hexString, new
HSSFColor.TURQUOISE());
<         hash.put(HSSFColor.SKY_BLUE.hexString, new HSSFColor.SKY_BLUE());
<         hash.put(HSSFColor.PLUM.hexString, new HSSFColor.PLUM());
<         hash.put(HSSFColor.GREY_25_PERCENT.hexString,
<                  new HSSFColor.GREY_25_PERCENT());
<         hash.put(HSSFColor.ROSE.hexString, new HSSFColor.ROSE());
<         hash.put(HSSFColor.LIGHT_YELLOW.hexString,
<                  new HSSFColor.LIGHT_YELLOW());
<         hash.put(HSSFColor.LIGHT_GREEN.hexString,
<                  new HSSFColor.LIGHT_GREEN());
<         hash.put(HSSFColor.LIGHT_TURQUOISE.hexString,
<                  new HSSFColor.LIGHT_TURQUOISE());
<         hash.put(HSSFColor.PALE_BLUE.hexString, new
HSSFColor.PALE_BLUE());
<         hash.put(HSSFColor.LAVENDER.hexString, new HSSFColor.LAVENDER());
<         hash.put(HSSFColor.WHITE.hexString, new HSSFColor.WHITE());
---
>         hash.put(HSSFColor.BLACK.getHexString(), BLACK);
>         hash.put(HSSFColor.BROWN.getHexString(), BROWN);
>         hash.put(HSSFColor.OLIVE_GREEN.getHexString(),
>                  OLIVE_GREEN);
>         hash.put(HSSFColor.DARK_GREEN.getHexString(), DARK_GREEN);
>         hash.put(HSSFColor.DARK_TEAL.getHexString(), DARK_TEAL);
>         hash.put(HSSFColor.DARK_BLUE.getHexString(), DARK_BLUE);
>         hash.put(HSSFColor.INDIGO.getHexString(), INDIGO);
>         hash.put(HSSFColor.GREY_80_PERCENT.getHexString(),
>                  GREY_80_PERCENT);
>         hash.put(HSSFColor.ORANGE.getHexString(), ORANGE);
>         hash.put(HSSFColor.DARK_YELLOW.getHexString(),
>                  DARK_YELLOW);
>         hash.put(HSSFColor.GREEN.getHexString(), GREEN);
>         hash.put(HSSFColor.TEAL.getHexString(), TEAL);
>         hash.put(HSSFColor.BLUE.getHexString(), BLUE);
>         hash.put(HSSFColor.BLUE_GREY.getHexString(), BLUE_GREY);
>         hash.put(HSSFColor.GREY_50_PERCENT.getHexString(),
>                  GREY_50_PERCENT);
>         hash.put(HSSFColor.RED.getHexString(), RED);
>         hash.put(HSSFColor.LIGHT_ORANGE.getHexString(),
>                  LIGHT_ORANGE);
>         hash.put(HSSFColor.LIME.getHexString(), LIME);
>         hash.put(HSSFColor.SEA_GREEN.getHexString(), SEA_GREEN);
>         hash.put(HSSFColor.AQUA.getHexString(), AQUA);
>         hash.put(HSSFColor.LIGHT_BLUE.getHexString(), LIGHT_BLUE);
>         hash.put(HSSFColor.VIOLET.getHexString(), VIOLET);
>         hash.put(HSSFColor.GREY_40_PERCENT.getHexString(),
>                  GREY_40_PERCENT);
>         hash.put(HSSFColor.PINK.getHexString(), PINK);
>         hash.put(HSSFColor.GOLD.getHexString(), GOLD);
>         hash.put(HSSFColor.YELLOW.getHexString(), YELLOW);
>         hash.put(HSSFColor.BRIGHT_GREEN.getHexString(),
>                  BRIGHT_GREEN);
>         hash.put(HSSFColor.BRIGHT_GREEN.getHexString(), TURQUOISE);
>         hash.put(HSSFColor.SKY_BLUE.getHexString(), SKY_BLUE);
>         hash.put(HSSFColor.PLUM.getHexString(), PLUM);
>         hash.put(HSSFColor.GREY_25_PERCENT.getHexString(),
>                  GREY_25_PERCENT);
>         hash.put(HSSFColor.ROSE.getHexString(), ROSE);
>         hash.put(HSSFColor.LIGHT_YELLOW.getHexString(),
>                  LIGHT_YELLOW);
>         hash.put(HSSFColor.LIGHT_GREEN.getHexString(),
>                  LIGHT_GREEN);
>         hash.put(HSSFColor.LIGHT_TURQUOISE.getHexString(),
>                  LIGHT_TURQUOISE);
>         hash.put(HSSFColor.PALE_BLUE.getHexString(), PALE_BLUE);
>         hash.put(HSSFColor.LAVENDER.getHexString(), LAVENDER);
>         hash.put(HSSFColor.WHITE.getHexString(), WHITE);
222c231
<         return BLACK.index;
---
>         return (short)index;
231c240
<         return BLACK.triplet;
---
>         return triplet;
242,581d250
<         return BLACK.hexString;
<     }
< 
<     /**
<      * Class BLACK
<      *
<      */
< 
<     public final static class BLACK
<         extends HSSFColor
<     {
<         public final static short   index     = 0x8;
<         public final static short[] triplet   =
<         {
<             0, 0, 0
<         };
<         public final static String  hexString = "0:0:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class BROWN
<      *
<      */
< 
<     public final static class BROWN
<         extends HSSFColor
<     {
<         public final static short   index     = 0x3c;
<         public final static short[] triplet   =
<         {
<             153, 51, 0
<         };
<         public final static String  hexString = "9999:3333:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class OLIVE_GREEN
<      *
<      */
< 
<     public static class OLIVE_GREEN
<         extends HSSFColor
<     {
<         public final static short   index     = 0x3b;
<         public final static short[] triplet   =
<         {
<             51, 51, 0
<         };
<         public final static String  hexString = "3333:3333:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class DARK_GREEN
<      *
<      */
< 
<     public final static class DARK_GREEN
<         extends HSSFColor
<     {
<         public final static short   index     = 0x3a;
<         public final static short[] triplet   =
<         {
<             0, 51, 0
<         };
<         public final static String  hexString = "0:3333:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class DARK_TEAL
<      *
<      */
< 
<     public final static class DARK_TEAL
<         extends HSSFColor
<     {
<         public final static short   index     = 0x38;
<         public final static short[] triplet   =
<         {
<             0, 51, 102
<         };
<         public final static String  hexString = "0:3333:6666";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class DARK_BLUE
<      *
<      */
< 
<     public final static class DARK_BLUE
<         extends HSSFColor
<     {
<         public final static short   index     = 0x12;
<         public final static short[] triplet   =
<         {
<             0, 0, 128
<         };
<         public final static String  hexString = "0:0:8080";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class INDIGO
<      *
<      */
< 
<     public final static class INDIGO
<         extends HSSFColor
<     {
<         public final static short   index     = 0x3e;
<         public final static short[] triplet   =
<         {
<             51, 51, 153
<         };
<         public final static String  hexString = "3333:3333:9999";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class GREY_80_PERCENT
<      *
<      */
< 
<     public final static class GREY_80_PERCENT
<         extends HSSFColor
<     {
<         public final static short   index     = 0x3f;
<         public final static short[] triplet   =
<         {
<             51, 51, 51
<         };
<         public final static String  hexString = "3333:3333:3333";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class DARK_RED
<      *
<      */
< 
<     public final static class DARK_RED
<         extends HSSFColor
<     {
<         public final static short   index     = 0x10;
<         public final static short[] triplet   =
<         {
<             128, 0, 0
<         };
<         public final static String  hexString = "8080:0:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class ORANGE
<      *
<      */
< 
<     public final static class ORANGE
<         extends HSSFColor
<     {
<         public final static short   index     = 0x35;
<         public final static short[] triplet   =
<         {
<             255, 102, 0
<         };
<         public final static String  hexString = "FFFF:6666:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class DARK_YELLOW
<      *
<      */
< 
<     public final static class DARK_YELLOW
<         extends HSSFColor
<     {
<         public final static short   index     = 0x13;
<         public final static short[] triplet   =
<         {
<             128, 128, 0
<         };
<         public final static String  hexString = "8080:8080:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
584d252
<     }
587c255
<      * Class GREEN
---
>      * Class BLACK
591,1483c259,298
<     public final static class GREEN
<         extends HSSFColor
<     {
<         public final static short   index     = 0x11;
<         public final static short[] triplet   =
<         {
<             0, 128, 0
<         };
<         public final static String  hexString = "0:8080:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class TEAL
<      *
<      */
< 
<     public final static class TEAL
<         extends HSSFColor
<     {
<         public final static short   index     = 0x15;
<         public final static short[] triplet   =
<         {
<             0, 128, 128
<         };
<         public final static String  hexString = "0:8080:8080";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class BLUE
<      *
<      */
< 
<     public final static class BLUE
<         extends HSSFColor
<     {
<         public final static short   index     = 0xc;
<         public final static short[] triplet   =
<         {
<             0, 0, 255
<         };
<         public final static String  hexString = "0:0:FFFF";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class BLUE_GREY
<      *
<      */
< 
<     public final static class BLUE_GREY
<         extends HSSFColor
<     {
<         public final static short   index     = 0x36;
<         public final static short[] triplet   =
<         {
<             102, 102, 153
<         };
<         public final static String  hexString = "6666:6666:9999";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class GREY_50_PERCENT
<      *
<      */
< 
<     public final static class GREY_50_PERCENT
<         extends HSSFColor
<     {
<         public final static short   index     = 0x17;
<         public final static short[] triplet   =
<         {
<             128, 128, 128
<         };
<         public final static String  hexString = "8080:8080:8080";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class RED
<      *
<      */
< 
<     public final static class RED
<         extends HSSFColor
<     {
<         public final static short   index     = 0xa;
<         public final static short[] triplet   =
<         {
<             255, 0, 0
<         };
<         public final static String  hexString = "FFFF:0:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class LIGHT_ORANGE
<      *
<      */
< 
<     public final static class LIGHT_ORANGE
<         extends HSSFColor
<     {
<         public final static short   index     = 0x34;
<         public final static short[] triplet   =
<         {
<             255, 153, 0
<         };
<         public final static String  hexString = "FFF:9999:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class LIME
<      *
<      */
< 
<     public final static class LIME
<         extends HSSFColor
<     {
<         public final static short   index     = 0x32;
<         public final static short[] triplet   =
<         {
<             153, 204, 0
<         };
<         public final static String  hexString = "9999:CCCC:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class SEA_GREEN
<      *
<      */
< 
<     public final static class SEA_GREEN
<         extends HSSFColor
<     {
<         public final static short   index     = 0x39;
<         public final static short[] triplet   =
<         {
<             51, 153, 102
<         };
<         public final static String  hexString = "3333:9999:6666";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class AQUA
<      *
<      */
< 
<     public final static class AQUA
<         extends HSSFColor
<     {
<         public final static short   index     = 0x31;
<         public final static short[] triplet   =
<         {
<             51, 204, 204
<         };
<         public final static String  hexString = "3333:CCCC:CCCC";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class LIGHT_BLUE
<      *
<      */
< 
<     public final static class LIGHT_BLUE
<         extends HSSFColor
<     {
<         public final static short   index     = 0x30;
<         public final static short[] triplet   =
<         {
<             51, 102, 255
<         };
<         public final static String  hexString = "3333:6666:FFFF";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class VIOLET
<      *
<      */
< 
<     public final static class VIOLET
<         extends HSSFColor
<     {
<         public final static short   index     = 0x14;
<         public final static short[] triplet   =
<         {
<             128, 0, 128
<         };
<         public final static String  hexString = "8080:0:8080";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class GREY_40_PERCENT
<      *
<      */
< 
<     public final static class GREY_40_PERCENT
<         extends HSSFColor
<     {
<         public final static short   index     = 0x37;
<         public final static short[] triplet   =
<         {
<             150, 150, 150
<         };
<         public final static String  hexString = "9696:9696:9696";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class PINK
<      *
<      */
< 
<     public final static class PINK
<         extends HSSFColor
<     {
<         public final static short   index     = 0xe;
<         public final static short[] triplet   =
<         {
<             255, 0, 255
<         };
<         public final static String  hexString = "FFFF:0:FFFF";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class GOLD
<      *
<      */
< 
<     public final static class GOLD
<         extends HSSFColor
<     {
<         public final static short   index     = 0x33;
<         public final static short[] triplet   =
<         {
<             255, 204, 0
<         };
<         public final static String  hexString = "FFFF:CCCC:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class YELLOW
<      *
<      */
< 
<     public final static class YELLOW
<         extends HSSFColor
<     {
<         public final static short   index     = 0xd;
<         public final static short[] triplet   =
<         {
<             255, 255, 0
<         };
<         public final static String  hexString = "FFFF:FFFF:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class BRIGHT_GREEN
<      *
<      */
< 
<     public final static class BRIGHT_GREEN
<         extends HSSFColor
<     {
<         public final static short   index     = 0xb;
<         public final static short[] triplet   =
<         {
<             0, 255, 0
<         };
<         public final static String  hexString = "0:FFFF:0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
<     }
< 
<     /**
<      * Class TURQUOISE
<      *
<      */
< 
<     public final static class TURQUOISE
<         extends HSSFColor
<     {
<         public final static short   index     = 0xf;
<         public final static short[] triplet   =
<         {
<             0, 255, 255
<         };
<         public final static String  hexString = "0:FFFF:FFFF";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class SKY_BLUE
<      *
<      */
< 
<     public final static class SKY_BLUE
<         extends HSSFColor
<     {
<         public final static short   index     = 0x28;
<         public final static short[] triplet   =
<         {
<             0, 204, 255
<         };
<         public final static String  hexString = "0:CCCC:FFFF";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class PLUM
<      *
<      */
< 
<     public final static class PLUM
<         extends HSSFColor
<     {
<         public final static short   index     = 0x3d;
<         public final static short[] triplet   =
<         {
<             153, 51, 102
<         };
<         public final static String  hexString = "9999:3333:6666";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class GREY_25_PERCENT
<      *
<      */
< 
<     public final static class GREY_25_PERCENT
<         extends HSSFColor
<     {
<         public final static short   index     = 0x16;
<         public final static short[] triplet   =
<         {
<             192, 192, 192
<         };
<         public final static String  hexString = "C0C0:C0C0:C0C0";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class ROSE
<      *
<      */
< 
<     public final static class ROSE
<         extends HSSFColor
<     {
<         public final static short   index     = 0x2d;
<         public final static short[] triplet   =
<         {
<             255, 153, 204
<         };
<         public final static String  hexString = "FFFF:9999:CCCC";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class TAN
<      *
<      */
< 
<     public final static class TAN
<         extends HSSFColor
<     {
<         public final static short   index     = 0x2f;
<         public final static short[] triplet   =
<         {
<             255, 204, 153
<         };
<         public final static String  hexString = "FFFF:CCCC:9999";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class LIGHT_YELLOW
<      *
<      */
< 
<     public final static class LIGHT_YELLOW
<         extends HSSFColor
<     {
<         public final static short   index     = 0x2b;
<         public final static short[] triplet   =
<         {
<             255, 255, 153
<         };
<         public final static String  hexString = "FFFF:FFFF:9999";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class LIGHT_GREEN
<      *
<      */
< 
<     public final static class LIGHT_GREEN
<         extends HSSFColor
<     {
<         public final static short   index     = 0x2a;
<         public final static short[] triplet   =
<         {
<             204, 255, 204
<         };
<         public final static String  hexString = "CCCC:FFFF:CCCC";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class LIGHT_TURQUOISE
<      *
<      */
< 
<     public final static class LIGHT_TURQUOISE
<         extends HSSFColor
<     {
<         public final static short   index     = 0x29;
<         public final static short[] triplet   =
<         {
<             204, 255, 255
<         };
<         public final static String  hexString = "CCCC:FFFF:FFFF";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class PALE_BLUE
<      *
<      */
< 
<     public final static class PALE_BLUE
<         extends HSSFColor
<     {
<         public final static short   index     = 0x2c;
<         public final static short[] triplet   =
<         {
<             153, 204, 255
<         };
<         public final static String  hexString = "9999:CCCC:FFFF";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class LAVENDER
<      *
<      */
< 
<     public final static class LAVENDER
<         extends HSSFColor
<     {
<         public final static short   index     = 0x2e;
<         public final static short[] triplet   =
<         {
<             204, 153, 255
<         };
<         public final static String  hexString = "CCCC:9999:FFFF";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
< 
<     /**
<      * Class WHITE
<      *
<      */
< 
<     public final static class WHITE
<         extends HSSFColor
<     {
<         public final static short   index     = 0x9;
<         public final static short[] triplet   =
<         {
<             255, 255, 255
<         };
<         public final static String  hexString = "FFFF:FFFF:FFFF";
< 
<         public short getIndex()
<         {
<             return index;
<         }
< 
<         public short [] getTriplet()
<         {
<             return triplet;
<         }
< 
<         public String getHexString()
<         {
<             return hexString;
<         }
<     }
---
>     public static final HSSFColor BLACK = new HSSFColor(new short[]
{0,0,0}, 0x8, "0:0:0");
>     public static final HSSFColor BROWN = new HSSFColor(new short[] {153,
51, 0}, 0x3c, "9999:3333:0");
>     public static final HSSFColor OLIVE_GREEN = new HSSFColor(new short[]
{51, 51, 0}, 0x3b, "3333:3333:0");
>     public static final HSSFColor DARK_GREEN = new HSSFColor(new short[]
{0, 51, 0}, 0x3a, "0:3333:0");
>     public static final HSSFColor DARK_TEAL = new HSSFColor(new short[]
{0, 51, 102}, 0x38, "0:3333:6666");
>     public static final HSSFColor DARK_BLUE = new HSSFColor(new short[]
{0, 0, 128}, 0x12, "0:0:8080");
>     public static final HSSFColor INDIGO = new HSSFColor(new short[] {51,
51, 153}, 0x3e, "3333:3333:9999");
>     public static final HSSFColor GREY_80_PERCENT = new HSSFColor(new
short[] {51, 51, 5}, 0x3f, "3333:3333:3333");
>     public static final HSSFColor DARK_RED = new HSSFColor(new short[]
{128, 0, 0}, 0x10, "8080:0:0");
>     public static final HSSFColor ORANGE = new HSSFColor(new short[] {255,
102, 0}, 0x35, "FFFF:6666:0");
>     public static final HSSFColor DARK_YELLOW = new HSSFColor(new short[]
{128, 128, 0}, 0x13, "8080:8080:0");
>     public static final HSSFColor GREEN = new HSSFColor(new short[] {0,
128, 0}, 0x11, "0:8080:0");
>     public static final HSSFColor TEAL = new HSSFColor(new short[]
{0,128,128}, 0x15, "0:8080:8080");
>     public static final HSSFColor BLUE = new HSSFColor(new short[]
{0,0,255}, 0xc, "0:0:FFFF");
>     public static final HSSFColor BLUE_GREY = new HSSFColor(new short[]
{102,102,153}, 0x36, "6666:6666:9999");
>     public static final HSSFColor GREY_50_PERCENT = new HSSFColor(new
short[] {128,128,128}, 0x17, "8080:8080:8080");
>     public static final HSSFColor RED = new HSSFColor(new short[]
{255,0,0}, 0xa, "FFFF:0:0");
>     public static final HSSFColor LIGHT_ORANGE = new HSSFColor(new short[]
{255,153,0}, 0x34, "FFFF:9999:0");
>     public static final HSSFColor LIME = new HSSFColor(new short[]
{153,204,0}, 0x32, "9999:CCCC:0");
>     public static final HSSFColor SEA_GREEN = new HSSFColor(new short[]
{51,153,102}, 0x39, "3333:9999:6666");
>     public static final HSSFColor AQUA = new HSSFColor(new short[]
{51,204,204}, 0x31, "3333:CCCC:CCCC");
>     public static final HSSFColor LIGHT_BLUE = new HSSFColor(new short[]
{51,102,255}, 0x30, "3333:6666:FFFF");
>     public static final HSSFColor VIOLET = new HSSFColor(new short[]
{128,0,128}, 0x14, "8080:0:8080");
>     public static final HSSFColor GREY_40_PERCENT = new HSSFColor(new
short[] {150,150,150}, 0x37, "9696:9696:9696");
>     public static final HSSFColor PINK = new HSSFColor(new short[]
{255,0,255}, 0xe, "FFFF:0:FFFF");
>     public static final HSSFColor GOLD = new HSSFColor(new short[]
{255,204,0}, 0x33, "FFFF:CCCC:0");
>     public static final HSSFColor YELLOW = new HSSFColor(new short[]
{255,255,0}, 0xd, "FFFF:FFFF:0");
>     public static final HSSFColor BRIGHT_GREEN = new HSSFColor(new short[]
{0,255,0}, 0xb, "0:FFFF:0");
>     public static final HSSFColor TURQUOISE = new HSSFColor(new short[]
{0,255,255}, 0xf, "0:FFFF:FFFF");
>     public static final HSSFColor SKY_BLUE = new HSSFColor(new short[]
{0,204,255}, 0x28, "0:CCCC:FFFF");
>     public static final HSSFColor PLUM = new HSSFColor(new short[]
{153,51,102}, 0x3d, "9999:3333:6666");
>     public static final HSSFColor GREY_25_PERCENT = new HSSFColor(new
short[] {192,192,192}, 0x16, "C0C0:C0C0:C0C0");
>     public static final HSSFColor ROSE = new HSSFColor(new short[]
{255,153,204}, 0x2d, "FFFF:9999:CCCC");
>     public static final HSSFColor TAN = new HSSFColor(new short[]
{255,104,153}, 0x2f, "FFFF:CCCC:9999");
>     public static final HSSFColor LIGHT_YELLOW = new HSSFColor(new short[]
{255,255,153}, 0x2b, "FFFF:FFFF:9999");
>     public static final HSSFColor LIGHT_GREEN = new HSSFColor(new short[]
{204,255,204}, 0x2a, "CCCC:FFFF:CCCC");
>     public static final HSSFColor LIGHT_TURQUOISE = new HSSFColor(new
short[] {204,255,255}, 0x29, "CCCC:FFFF:FFFF");
>     public static final HSSFColor PALE_BLUE = new HSSFColor(new short[]
{153,204,255}, 0x2c, "9999:CCCC:FFFF");
>     public static final HSSFColor LAVENDER = new HSSFColor(new short[]
{204,153,255}, 0x2e, "CCCC:9999:FFFF");
>     public static final HSSFColor WHITE = new HSSFColor(new short[]
{255,255,255}, 0x9, "FFFF:FFFF:FFFF");

> -----Original Message-----
> From: Glen Stampoultzis [SMTP:[EMAIL PROTECTED]]
> Sent: Saturday, 20 July 2002 21:27
> To:   [EMAIL PROTECTED]
> Subject:      Colours
> 
> At one stage we had an AUTOMATIC colour... anyone know what happened with
> that?
> 
> Also I don't really understand HSSFColor.  What is the evil triplet issue
> and why is each colour implemented as a class and not an instance?
> 
> Thank you for your patience with my small brain.
> 
> Regards,
> 
> Glen Stampoultzis  (TriNexus Pty Ltd)
> Fixed:+61 3 9753-6850     Mob:+61 (0)402 835 458
> ICQ:  62722370    EMail:  [EMAIL PROTECTED]
> URL's:  http://jakarta.apache.org/poi, http://www.krysalis.org
> 
> 
> 
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> 

Reply via email to