[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();