public String[] getColorNames() { ArrayList<ColorSwatch> a = new ArrayList<ColorSwatch>(userColors.values()); Collections.sort(a); ArrayList<String> names = new ArrayList<String>(a.size() + standardColors.length); for (ColorSwatch cs : a) { names.add(cs.getConfigureName()); } names.addAll(Arrays.asList(standardColorNames)); return names.toArray(new String[names.size()]); }
public void add(Buildable b) { super.add(b); if (b instanceof ColorSwatch) { ColorSwatch def = (ColorSwatch) b; userColors.put(def.getConfigureName(), def); def.addPropertyChangeListener( new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (Configurable.NAME_PROPERTY.equals(evt.getPropertyName())) { userColors.remove((String) evt.getOldValue()); userColors.put((String) evt.getNewValue(), (ColorSwatch) evt.getSource()); } } }); } }