Now that we've got pretty colored icons, I thought it'd be nice to
have a slightly more modern looking default color scheme than black on
white.  Alas, like everything else in ArgoUML, this is not a simple
task, but I've taken enough steps towards the goal that someone with a
good eye for color could have a play with changing the color scheme.

As a first step, all the hardwired colors which were scattered
throughout the code have been replaced constants from ArgoFig which
should allow for experimenting with new color schemes (and line
widths) by changing a few constants in a central location.

Some next steps include:

1. Track down all the places where these are not being used.  I've
started this process, but it needs more work.  A good way to do this
is to choose a pastel or translucent or other unusual color scheme
(and a wide line width) which will make places where GEF defaults are
being used more obvious.  Since I think I've found all the hardwired
colors, this will mostly be places where a) colors aren't being
specified in a GEF Fig constructor or b) line widths aren't being set
after construction.

2. Fix positioning code which uses hardwired magic numbers.  Earlier
ArgoUML coders were in love with their magic numbers, so they're
scattered throughout the code.  Anyplace using +1 or -1 should be
reviewed to see if what they really mean is +LINE_WIDTH or
-LINE_WIDTH.  Other places will be harder to find like where 20 and 19
are both used because the programmer "knew" that the line width is 1
and 19==20-1.

3. Get GEF to fix (or work around) places where defaults can't be
overriden (e.g. all edges are hardwired to a width of 1 and can't be
changed).

4. Choose a new color scheme.  This is the fun part.  All modern GPUs
have alpha channel support, so this could even use a little bit of
translucency.

5. Replace constants with values from the DiagramSettings object so
that ArgoFig.LINE_COLOR becomes getSettings().getLineColor().

6. Make control of DiagramSettings objects more fine grained.  Start
with per-diagram settings, then add style sheets (perhaps with style
sheets tied to stereotypes or element types or ...)

Tom

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=1005916

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to