[no bug] update icons
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/editparts/ConnectableEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/editparts/ConnectableEditPart.java
index 9d9acf1..6d06e32 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/editparts/ConnectableEditPart.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/editparts/ConnectableEditPart.java
@@ -13,12 +13,10 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+
 import org.eclipse.core.runtime.Assert;
-import org.eclipse.draw2d.ColorConstants;
 import org.eclipse.draw2d.Figure;
 import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.gef.EditPart;
 import org.eclipse.gef.EditPartFactory;
 import org.eclipse.gef.EditPolicy;
@@ -27,6 +25,7 @@
 import org.eclipse.wst.xsd.adt.design.editparts.BaseEditPart;
 import org.eclipse.wst.xsd.adt.design.editpolicies.ADTSelectionFeedbackEditPolicy;
 import org.eclipse.wst.xsd.editor.internal.adapters.XSDBaseAdapter;
+import org.eclipse.wst.xsd.editor.internal.design.figures.CenteredIconFigure;
 import org.eclipse.wst.xsd.editor.internal.design.figures.GenericGroupFigure;
 import org.eclipse.wst.xsd.editor.internal.design.figures.IExtendedFigureFactory;
 import org.eclipse.xsd.XSDConcreteComponent;
@@ -139,7 +138,6 @@
     }
   }
   
-  RectangleFigure selectionFeedbackFigure;
   public void addFeedback()
   {
     ReferenceConnection connectionFigure;
@@ -152,15 +150,8 @@
       }
     }
     GenericGroupFigure figure = (GenericGroupFigure)getFigure();
-    Rectangle r = figure.getIconFigure().getBounds();
-    Rectangle zoomedRect = getZoomedBounds(r);
-    selectionFeedbackFigure = new RectangleFigure();
-    selectionFeedbackFigure.setForegroundColor(ColorConstants.blue);
-    selectionFeedbackFigure.setBounds(zoomedRect);
-    selectionFeedbackFigure.setFill(false);
-    selectionFeedbackFigure.setOpaque(true);
-    selectionFeedbackFigure.setLineWidth(1);
-    getLayer(LayerConstants.FEEDBACK_LAYER).add(selectionFeedbackFigure);
+    figure.getIconFigure().setMode(CenteredIconFigure.SELECTED);
+    figure.getIconFigure().refresh();
   }
   
   public void removeFeedback()
@@ -174,25 +165,16 @@
         connectionFigure.setHighlight(false);
       }
     }
-    if (selectionFeedbackFigure != null)
-    {
-      getLayer(LayerConstants.FEEDBACK_LAYER).remove(selectionFeedbackFigure);
-    }
-    selectionFeedbackFigure = null;
+    GenericGroupFigure figure = (GenericGroupFigure)getFigure();
+    figure.getIconFigure().setMode(CenteredIconFigure.NORMAL);
+    figure.getIconFigure().refresh();
   }
   
   protected void refreshVisuals()
   {
     super.refreshVisuals();
-    if (selectionFeedbackFigure != null)
-    {
-      GenericGroupFigure figure = (GenericGroupFigure)getFigure();
-      Rectangle r = figure.getIconFigure().getBounds();
-      Rectangle zoomedRect = getZoomedBounds(r);
-      selectionFeedbackFigure.setBounds(zoomedRect);
-      selectionFeedbackFigure.repaint();
-      selectionFeedbackFigure.revalidate();
-    }
+    GenericGroupFigure figure = (GenericGroupFigure)getFigure();
+    figure.getIconFigure().refresh();
   }
 
   protected void createEditPolicies()
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/editparts/ReferenceConnection.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/editparts/ReferenceConnection.java
index 009bff2..72eb10b 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/editparts/ReferenceConnection.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/editparts/ReferenceConnection.java
@@ -20,7 +20,7 @@
   protected boolean highlight = false;
 
   protected static final Color activeConnection = ColorConstants.black;
-  protected static final Color inactiveConnection = new Color(null, 198, 195, 198);
+  public static final Color inactiveConnection = new Color(null, 198, 195, 198);
 
   public ReferenceConnection()
   {
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/figures/CenteredIconFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/figures/CenteredIconFigure.java
index 3221c8e..88776f2 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/figures/CenteredIconFigure.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/figures/CenteredIconFigure.java
@@ -10,28 +10,50 @@
  *******************************************************************************/
 package org.eclipse.wst.xsd.editor.internal.design.figures;
             
+import org.eclipse.draw2d.ColorConstants;
 import org.eclipse.draw2d.Graphics;
 import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.xsd.editor.internal.design.editparts.ReferenceConnection;
 
-public class CenteredIconFigure extends RectangleFigure
-{                                                
+public class CenteredIconFigure extends RoundedRectangle
+{                         
+  public static final int NORMAL = 0;
+  public static final int SELECTED = 1;
+  public static final int HOVER = 2;
   public Image image;
   protected Label toolTipLabel;
-                               
+  protected int mode = 0;
+  
   public CenteredIconFigure()
   {
     super();
     setFill(true);   
     toolTipLabel = new Label();
+    setCornerDimensions(new Dimension(5,5));
   }
   
+  public void refresh()
+  {
+    repaint();
+  }
   
   protected void outlineShape(Graphics graphics)
   {
+    graphics.pushState();
+    if (mode == NORMAL)
+    { // TODO: common up and organize colors....
+      graphics.setForegroundColor(ReferenceConnection.inactiveConnection);
+    }
+    else if (mode == SELECTED)
+    {
+      graphics.setForegroundColor(ColorConstants.black);
+    }
+    super.outlineShape(graphics);
+    graphics.popState();
   }
 
   protected void fillShape(Graphics g)
@@ -40,16 +62,21 @@
     if (image != null)
     {                         
       Rectangle r = getBounds();
-      Dimension imageSize = new Dimension(16, 16);
-      g.drawImage(image, r.x + (r.width - imageSize.width)/2, r.y + (r.height - imageSize.height)/2);
+      Dimension imageSize = new Dimension(15, 15);
+      g.drawImage(image, r.x + (r.width - imageSize.width)/2 - 1, r.y + (r.height - imageSize.height)/2);
     }
   }
-  
+
   public Label getToolTipLabel()
   {
     return toolTipLabel;
   }
   
+  public void setMode(int mode)
+  {
+    this.mode = mode;  
+  }
+  
   public void setToolTipText(String text)
   {
     if (text.length() > 0)
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/figures/GenericGroupFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/figures/GenericGroupFigure.java
index 5ee2cdc..a80b113 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/figures/GenericGroupFigure.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/design/figures/GenericGroupFigure.java
@@ -26,7 +26,7 @@
     setLayoutManager(new ModelGroupLayout(true));
    
     centeredIconFigure = new CenteredIconFigure();
-    centeredIconFigure.setPreferredSize(new Dimension(16, 16));
+    centeredIconFigure.setPreferredSize(new Dimension(15, 15));
 
     add(centeredIconFigure);
     contentFigure = new Figure();