[146879] [ACC] Should not use colour to indicate selections
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/FieldFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/FieldFigure.java index 6141bef..30ea297 100644 --- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/FieldFigure.java +++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/FieldFigure.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2001, 2006 IBM Corporation and others. + * Copyright (c) 2001, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -12,11 +12,14 @@ import org.eclipse.core.runtime.Assert; import org.eclipse.draw2d.Figure; +import org.eclipse.draw2d.Graphics; import org.eclipse.draw2d.Label; import org.eclipse.draw2d.MarginBorder; import org.eclipse.draw2d.PositionConstants; import org.eclipse.draw2d.ToolbarLayout; import org.eclipse.draw2d.geometry.Dimension; +import org.eclipse.draw2d.geometry.PointList; +import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.gef.EditPart; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; @@ -29,6 +32,12 @@ { // TODO: put this color is some common class public static final Color cellColor = new Color(null, 224, 233, 246); + +// For fix to https://bugs.eclipse.org/bugs/show_bug.cgi?id=161940 +// public static final Color leftOuterBorderColor = new Color(null, 253, 196, 88); +// public static final Color leftInnerBorderColor = new Color(null, 253, 226, 172); +// public static final Color rightOuterBorderColor = new Color(null, 150, 179, 224); +// public static final Color rightInnerBorderColor = new Color(null, 49, 106, 197); // Formatting constraints public static final int TOP_MARGIN = 2; // pixels @@ -37,6 +46,8 @@ public static final int LEFT_MARGIN = 2; public static final int RIGHT_MARGIN = LEFT_MARGIN; public static final int RIGHT_SIDE_PADDING = 6; + + private boolean isSelected = false; // States requiring decorators, and their icons // protected static final Image errorIcon = ICON_ERROR; @@ -49,13 +60,69 @@ protected Label typeAnnotationLabel; // for occurrence text, or error icons protected Label toolTipLabel; + public void paint(Graphics graphics) + { + super.paint(graphics); + if (isSelected) + { + try + { + graphics.pushState(); + + PointList pointList = new PointList(); + Rectangle r1 = rowFigure.getBounds(); + pointList.addPoint(r1.x, r1.y + 1); + pointList.addPoint(r1.right() - 1, r1.y + 1); + pointList.addPoint(r1.right() - 1, r1.bottom() - 1); + pointList.addPoint(r1.x, r1.bottom() - 1); + pointList.addPoint(r1.x, r1.y + 1); + graphics.drawPolyline(pointList); + +// For fix to https://bugs.eclipse.org/bugs/show_bug.cgi?id=161940 +// Rectangle r1 = nameLabel.getBounds(); +// Rectangle r2 = typeLabel.getBounds(); +// Rectangle r3 = nameAnnotationLabel.getBounds(); +// +// graphics.setForegroundColor(ColorConstants.darkGray); +// +// PointList pointList = new PointList(); +// +// pointList.addPoint(r1.right(), r1.y + 1); +// pointList.addPoint(r1.x, r1.y + 1); +// pointList.addPoint(r1.x, r1.bottom() - 1); +// pointList.addPoint(r1.right(), r1.bottom() - 1); +// graphics.drawPolyline(pointList); +// +// pointList.removeAllPoints(); +// pointList.addPoint(r3.x, r3.y + 1); +// pointList.addPoint(r3.right(), r3.y + 1); +// graphics.drawPolyline(pointList); +// +// pointList.removeAllPoints(); +// pointList.addPoint(r3.right(), r3.bottom() - 1); +// pointList.addPoint(r3.x, r3.bottom() - 1); +// graphics.drawPolyline(pointList); +// +// pointList.removeAllPoints(); +// +// pointList.addPoint(r2.x, r2.y + 1); +// pointList.addPoint(r2.right() - 1, r2.y + 1); +// pointList.addPoint(r2.right() - 1, r2.bottom() - 1); +// pointList.addPoint(r2.x, r2.bottom() - 1); +// graphics.drawPolyline(pointList); + } + finally + { + graphics.popState(); + } + } + } + public FieldFigure() { super(); setLayoutManager(new ToolbarLayout()); -// setOpaque(true); rowFigure = new Figure(); -// rowFigure.setOpaque(true); RowLayout rowLayout = new RowLayout(); rowFigure.setLayoutManager(rowLayout); @@ -237,17 +304,17 @@ public void addSelectionFeedback() { - rowFigure.setBackgroundColor(cellColor); + isSelected = true; + rowFigure.setBackgroundColor(cellColor); } public void removeSelectionFeedback() { - rowFigure.setBackgroundColor(getBackgroundColor()); + isSelected = false; + rowFigure.setBackgroundColor(getBackgroundColor()); } public void refreshVisuals(Object model) { - // TODO Auto-generated method stub - } }
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/TopLevelComponentEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/TopLevelComponentEditPart.java index 13f918f..29701a4 100644 --- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/TopLevelComponentEditPart.java +++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/TopLevelComponentEditPart.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2001, 2007 IBM Corporation and others. + * Copyright (c) 2001, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -15,11 +15,13 @@ import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.Figure; +import org.eclipse.draw2d.Graphics; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.Label; import org.eclipse.draw2d.MarginBorder; import org.eclipse.draw2d.ToolbarLayout; import org.eclipse.draw2d.geometry.Point; +import org.eclipse.draw2d.geometry.PointList; import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.gef.EditPart; import org.eclipse.gef.EditPolicy; @@ -76,7 +78,35 @@ protected IFigure createFigure() { - Figure typeGroup = new Figure(); + Figure typeGroup = new Figure() + { + public void paint(Graphics graphics) + { + super.paint(graphics); + if (isSelected) + { + try + { + graphics.pushState(); + + Rectangle r1 = getBounds(); + PointList pointList = new PointList(); + + pointList.addPoint(r1.x, r1.y + 1); + pointList.addPoint(r1.right() - 1, r1.y + 1); + pointList.addPoint(r1.right() - 1, r1.bottom() - 1); + pointList.addPoint(r1.x, r1.bottom() - 1); + pointList.addPoint(r1.x, r1.y + 1); + graphics.drawPolyline(pointList); + } + finally + { + graphics.popState(); + } + } + + } + }; typeGroup.setLayoutManager(new ToolbarLayout()); labelHolder = new Figure(); @@ -86,7 +116,7 @@ label = new HyperLinkLabel(); label.setOpaque(true); - label.setBorder(new MarginBorder(0, 2, 2, 1)); + label.setBorder(new MarginBorder(0, 2, 2, 5)); label.setForegroundColor(ColorConstants.black); labelHolder.add(label); @@ -127,11 +157,6 @@ } } - // public XSDNamedComponent getXSDNamedComponent() - // { - // return (XSDNamedComponent) getModel(); - // } - public List getModelChildren() { return Collections.EMPTY_LIST;