-package org.simantics.debug.graphical.model;\r
-\r
-import java.awt.Font;\r
-import java.awt.Graphics2D;\r
-import java.awt.font.FontRenderContext;\r
-import java.awt.geom.AffineTransform;\r
-import java.awt.geom.Rectangle2D;\r
-\r
-public class LabelContent extends Content {\r
- public static final Font FONT = new Font("Arial", Font.PLAIN, 12);\r
- public static final FontRenderContext FRC = \r
- new FontRenderContext(new AffineTransform(), true, true);\r
- public static final Rectangle2D MAX_BOUNDS = FONT.getMaxCharBounds(FRC);\r
- public static final double FONT_HEIGHT = MAX_BOUNDS.getHeight();\r
- public static double PADDING = 3.0;\r
- \r
- String[] labels;\r
- double textX, textY;\r
- \r
- public LabelContent(String[] labels) {\r
- setLabels(labels);\r
- }\r
-\r
- @Override\r
- public void render(Graphics2D g) {\r
- g.setFont(FONT);\r
- for(int i=0;i<labels.length;++i) {\r
- g.drawString(labels[i], (float)textX, (float)(textY + i*FONT_HEIGHT)); \r
- } \r
- }\r
- \r
- public void setLabels(String[] labels) {\r
- this.labels = labels;\r
-\r
- double maxWidth = 0.0;\r
- for(String label : labels) {\r
- Rectangle2D bounds = FONT.getStringBounds(label, FRC);\r
- maxWidth = Math.max(maxWidth, bounds.getWidth());\r
- }\r
- \r
- textX = -0.5*maxWidth;\r
- textY = -0.5*labels.length*FONT_HEIGHT + FONT_HEIGHT - MAX_BOUNDS.getMaxY();\r
- \r
- radiusX = PADDING + 0.5*maxWidth;\r
- radiusY = PADDING + 0.5*labels.length*FONT_HEIGHT;\r
- }\r
- \r
-}\r
+package org.simantics.debug.graphical.model;
+
+import java.awt.Font;
+import java.awt.Graphics2D;
+import java.awt.font.FontRenderContext;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+
+public class LabelContent extends Content {
+ public static final Font FONT = new Font("Arial", Font.PLAIN, 12);
+ public static final FontRenderContext FRC =
+ new FontRenderContext(new AffineTransform(), true, true);
+ public static final Rectangle2D MAX_BOUNDS = FONT.getMaxCharBounds(FRC);
+ public static final double FONT_HEIGHT = MAX_BOUNDS.getHeight();
+ public static double PADDING = 3.0;
+
+ String[] labels;
+ double textX, textY;
+
+ public LabelContent(String[] labels) {
+ setLabels(labels);
+ }
+
+ @Override
+ public void render(Graphics2D g) {
+ g.setFont(FONT);
+ for(int i=0;i<labels.length;++i) {
+ g.drawString(labels[i], (float)textX, (float)(textY + i*FONT_HEIGHT));
+ }
+ }
+
+ public void setLabels(String[] labels) {
+ this.labels = labels;
+
+ double maxWidth = 0.0;
+ for(String label : labels) {
+ Rectangle2D bounds = FONT.getStringBounds(label, FRC);
+ maxWidth = Math.max(maxWidth, bounds.getWidth());
+ }
+
+ textX = -0.5*maxWidth;
+ textY = -0.5*labels.length*FONT_HEIGHT + FONT_HEIGHT - MAX_BOUNDS.getMaxY();
+
+ radiusX = PADDING + 0.5*maxWidth;
+ radiusY = PADDING + 0.5*labels.length*FONT_HEIGHT;
+ }
+
+}