Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/LabelFigure.java')
-rw-r--r--bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/LabelFigure.java88
1 files changed, 88 insertions, 0 deletions
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/LabelFigure.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/LabelFigure.java
new file mode 100644
index 0000000000..04c82b8430
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/figures/LabelFigure.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.ui.internal.graph.figures;
+
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.FigureUtilities;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+
+
+public class LabelFigure extends Figure
+{
+ protected String text = "";
+ protected boolean isShowEmptyLabel = true;
+ protected int left = 4;
+ protected int right = 4;
+ protected int textHeight;
+ protected int textWidth;
+
+ public LabelFigure()
+ {
+ setPreferredSize(new Dimension());
+ }
+
+ protected void setLeft(int left)
+ {
+ this.left = left;
+ }
+
+ protected void setRight(int right)
+ {
+ this.right = right;
+ }
+
+ public void setShowEmptyLabel(boolean isShowEmptyLabel)
+ {
+ this.isShowEmptyLabel = isShowEmptyLabel;
+ }
+
+
+ public void setText(String s)
+ {
+ if (s == null)
+ s = "";
+
+ if (!text.equals(s))
+ {
+ text = s;
+ if (text.length() > 0 || isShowEmptyLabel)
+ {
+ textHeight = FigureUtilities.getFontMetrics(getFont()).getHeight();
+ textWidth = FigureUtilities.getTextWidth(text, getFont());
+ textWidth = Math.max(textWidth, FigureUtilities.getTextWidth("abcdefg", getFont()));
+ setPreferredSize(new Dimension(textWidth + left + right, textHeight));
+ }
+ else
+ {
+ setPreferredSize(new Dimension());
+ }
+ }
+ //revalidate();
+ //repaint();
+ }
+
+
+
+ protected void paintFigure(Graphics graphics)
+ //protected void fillShape(Graphics graphics)
+ {
+ super.paintFigure(graphics);
+ //super.fillShape(graphics);
+ if (text.length() > 0)
+ {
+ Rectangle r = getBounds();
+ graphics.setForegroundColor(getForegroundColor());
+ graphics.drawString(text, left + r.x, r.y);// + (r.width - textWidth)/2, r.y + (r.height - textHeight)/2);
+ }
+ }
+}

Back to the top