From 3861ab6bc1b1a3f53d4282086a372f7878977ea8 Mon Sep 17 00:00:00 2001 From: Florian Hoelzl <hoelzl@fortiss.org> Date: Thu, 11 Aug 2011 13:31:29 +0000 Subject: [PATCH] bugfix #108: added transparent label figure to base implementations. --- .../ui/editpart/ConnectorEditPartBase.java | 3 +- .../base/ui/editpart/ElementEditPartBase.java | 3 +- .../editpart/ExtendedLayerRootEditPart.java | 17 +---- .../ui/editpart/figure/TransparentLabel.java | 68 +++++++++++++++++++ 4 files changed, 73 insertions(+), 18 deletions(-) create mode 100644 org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/figure/TransparentLabel.java diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ConnectorEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ConnectorEditPartBase.java index 62c87aef3..0647dd188 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ConnectorEditPartBase.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ConnectorEditPartBase.java @@ -40,6 +40,7 @@ import org.fortiss.tooling.base.model.element.IHierarchicElement; import org.fortiss.tooling.base.model.layout.ILayoutedModelElement; import org.fortiss.tooling.base.model.layout.Point; import org.fortiss.tooling.base.ui.editpart.figure.AntiAliasedEllipse; +import org.fortiss.tooling.base.ui.editpart.figure.TransparentLabel; import org.fortiss.tooling.base.ui.editpart.policy.ConnectionGraphicalNodeEditPolicy; import org.fortiss.tooling.base.ui.editpart.policy.RemoveEditPolicy; import org.fortiss.tooling.base.ui.layout.constants.DefaultLayoutConstants; @@ -95,7 +96,7 @@ public abstract class ConnectorEditPartBase<T extends ILayoutedModelElement & IC /** {@inheritDoc} */ @Override protected Label createLabelFigure() { - Label nameLabel = new Label(); + Label nameLabel = new TransparentLabel(); nameLabel.setForegroundColor(getForegroundColor()); nameLabel.setTextAlignment(PositionConstants.LEFT | PositionConstants.TOP); diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java index a4a961467..d6d6c2b50 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java @@ -28,6 +28,7 @@ import org.eclipse.gef.Request; import org.eclipse.gef.RequestConstants; import org.eclipse.gef.SnapToHelper; import org.fortiss.tooling.base.model.layout.ILayoutedModelElement; +import org.fortiss.tooling.base.ui.editpart.figure.TransparentLabel; import org.fortiss.tooling.base.ui.editpart.policy.ConnectionGraphicalNodeEditPolicy; import org.fortiss.tooling.base.ui.editpart.policy.ElementLayoutEditPolicy; import org.fortiss.tooling.base.ui.editpart.policy.RemoveEditPolicy; @@ -62,7 +63,7 @@ public abstract class ElementEditPartBase<T extends ILayoutedModelElement & INam /** Creates the label figure. */ @Override public Label createLabelFigure() { - Label nameLabel = new Label(); + Label nameLabel = new TransparentLabel(); nameLabel.setForegroundColor(getForegroundColor()); nameLabel.setFont(DefaultLayoutConstants.TITLE_FONT); nameLabel.setTextAlignment(PositionConstants.LEFT diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java index 4e7605156..8642aedd4 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java @@ -19,7 +19,6 @@ package org.fortiss.tooling.base.ui.editpart; import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.FreeformLayer; -import org.eclipse.draw2d.Graphics; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.Layer; import org.eclipse.draw2d.LayeredPane; @@ -126,21 +125,7 @@ public class ExtendedLayerRootEditPart extends ScalableRootEditPart { /** Creates the default layer with XYLayout. */ private Layer createDefaultLayer() { - Layer l = new FreeformLayer() { - /** {@inheritDoc} */ - @Override - public void paint(Graphics graphics) { - // TODO Auto-generated method stub - super.paint(graphics); - } - - /** {@inheritDoc} */ - @Override - protected void paintChildren(Graphics graphics) { - // TODO Auto-generated method stub - super.paintChildren(graphics); - } - }; + Layer l = new FreeformLayer(); l.setOpaque(false); l.setLayoutManager(new XYLayout()); l.setBackgroundColor(ColorConstants.white); diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/figure/TransparentLabel.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/figure/TransparentLabel.java new file mode 100644 index 000000000..0b0101374 --- /dev/null +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/figure/TransparentLabel.java @@ -0,0 +1,68 @@ +/*--------------------------------------------------------------------------+ +$Id$ +| | +| Copyright 2011 ForTISS GmbH | +| | +| Licensed under the Apache License, Version 2.0 (the "License"); | +| you may not use this file except in compliance with the License. | +| You may obtain a copy of the License at | +| | +| http://www.apache.org/licenses/LICENSE-2.0 | +| | +| Unless required by applicable law or agreed to in writing, software | +| distributed under the License is distributed on an "AS IS" BASIS, | +| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | +| See the License for the specific language governing permissions and | +| limitations under the License. | ++--------------------------------------------------------------------------*/ +package org.fortiss.tooling.base.ui.editpart.figure; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.TreeSearch; +import org.eclipse.swt.graphics.Image; + +/** + * A label that is transparent for the mouse location interpretation. + * + * @author hoelzl + * @author $Author$ + * @version $Rev$ + * @ConQAT.Rating RED Hash: + */ +public class TransparentLabel extends Label { + + /** Constructor. */ + public TransparentLabel() { + super(); + } + + /** Constructor. */ + public TransparentLabel(String text) { + super(text); + } + + /** Constructor. */ + public TransparentLabel(Image image) { + super(image); + } + + /** Constructor. */ + public TransparentLabel(String text, Image image) { + super(text, image); + } + + /** {@inheritDoc} */ + @Override + public IFigure findFigureAt(int x, int y, TreeSearch search) { + // implements transparency + return null; + } + + /** {@inheritDoc} */ + @Override + public boolean isOpaque() { + // implements transparency + return false; + } +} -- GitLab