}
private void addShape(ShapeProvider provider) {
if (!providers.containsKey(provider.getId())) {
providers.put(provider.getId(), provider);
Shape shape = provider.getShape();
JButton button = new JButton(shape.getIcon());
button.setActionCommand(provider.getId());
button.setToolTipText(shape.getName());
button.addActionListener(actionListener);
toolbar.add(button);
toolbar.validate();
if (goneComponents.containsKey(provider.getId())) {
for (ShapeComponent comp : goneComponents.get(provider.getId())) {