List of usage examples for java.awt Graphics2D getFontMetrics
public FontMetrics getFontMetrics()
From source file:org.squidy.designer.knowledgebase.RepositoryItem.java
@Override protected void paintShapeZoomedIn(PPaintContext paintContext) { super.paintShapeZoomedIn(paintContext); Graphics2D g = paintContext.getGraphics(); String information = "N/A"; if (information != null) { PBounds bounds = getBoundsReference(); double x = bounds.getX(); double width = bounds.getWidth(); String source = "Source: " + information; g.setFont(fontName);/*from w w w.j av a 2 s . c o m*/ g.drawString(getProcessableClass().getSimpleName(), (int) (x + 100), 80); g.setFont(fontSource); g.drawString(source, (int) (x + width - FontUtils.getWidthOfText(g.getFontMetrics(), source)) - 20, 130); } }
From source file:org.kalypso.ogc.gml.map.MapPanel.java
/** * If a message is present, paint it and return true *//*from w w w . j a va 2s .co m*/ private void paintStatus(final Graphics2D g) { if (m_status.isOK()) return; final String message = m_status.getMessage(); final int stringWidth = g.getFontMetrics().stringWidth(message); final int width = getWidth(); final int height = getHeight(); g.setColor(m_backgroundColor); g.fillRect(0, 0, width, height); g.setColor(Color.black); g.drawString(message, (width - stringWidth) / 2, height / 2); }
From source file:savant.view.swing.Ruler.java
/** * Render the background of this graphpane * @param g The graphics object to use//from w w w.ja v a 2 s . com */ private void renderBackground(Graphics g) { Graphics2D g2 = (Graphics2D) g; try { Image image = javax.imageio.ImageIO .read(getClass().getResource("/savant/images/bar_selected_glossy.png")); Composite originalComposite = ((Graphics2D) g).getComposite(); ((Graphics2D) g).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.85F)); g.drawImage(image, -getWidth(), 0, getWidth() * 3, getHeight(), this); ((Graphics2D) g).setComposite(originalComposite); } catch (Exception e) { LOG.error("Error drawing image background"); } Range r = locationController.getRange(); // At early points in the GUI initialisation, the range has not yet been set. if (r == null) { return; } int[] tickPositions = MiscUtils.getTickPositions(r); int separation = tickPositions.length > 1 ? tickPositions[1] - tickPositions[0] : 0; int xEnd = Integer.MIN_VALUE; FontMetrics fm = g2.getFontMetrics(); for (int p : tickPositions) { int x = MiscUtils.transformPositionToPixel(p, getWidth(), r); if (x > xEnd + 10) { g2.setColor(new Color(50, 50, 50, 50)); //BrowserDefaults.colorAxisGrid); g2.drawLine(x, 0, x, getHeight()); String numStr = MiscUtils.posToShortStringWithSeparation(p, separation); g2.setColor(Color.black); g2.drawString(numStr, x + 3, getHeight() / 2 + 3); xEnd = x + fm.stringWidth(numStr) + 3; } } if (r.getLength() >= locationController.getRangeStart()) { try { Image image_left_cap = javax.imageio.ImageIO .read(getClass().getResource("/savant/images/round_cap_left_bordered.png")); int pos = getLeftCapPos(); g.drawImage(image_left_cap, pos, 0, CAP_WIDTH, CAP_HEIGHT, this); g.setColor(Savant.getInstance().getBackground()); g.fillRect(pos, 0, -getWidth(), getHeight()); } catch (IOException ex) { LOG.error("Drawing failed.", ex); } } if (r.getLength() >= locationController.getMaxRangeEnd() - locationController.getRangeEnd()) { try { Image image_right_cap = javax.imageio.ImageIO .read(getClass().getResource("/savant/images/round_cap_right_bordered.png")); int pos = MiscUtils.transformPositionToPixel(locationController.getMaxRangeEnd(), getWidth(), locationController.getRange()); g.drawImage(image_right_cap, pos - CAP_WIDTH, 0, CAP_WIDTH, CAP_HEIGHT, this); g.setColor(Savant.getInstance().getBackground()); g.fillRect(pos, 0, this.getWidth(), this.getHeight()); } catch (IOException ex) { LOG.error("Drawing failed.", ex); } } }
From source file:org.csml.tommo.sugar.modules.QualityHeatMapsPerTileAndBase.java
void drawColumnHeader(Graphics2D g2, final ResultsTableModel model, int imgSize, int topBottomSeparator, int height, StringBuffer d) { // draw Top-Bottom header if (model.getTopBottomSeparatorColumn() > 0) { String s = "Top-Bottom"; int stringWidth = g2.getFontMetrics().stringWidth(s); g2.drawString(s, 1 + imgSize * (model.getTopBottomSeparatorColumn() + 1) + (topBottomSeparator - 1 - stringWidth) / 2, 1 + height + 10 - 3); }// ww w . j a v a 2 s . c om int separator = 0; for (int c = 0; c < model.getColumnCount(); c++) { d.append(model.getColumnName(c)); d.append("\t"); if (c == model.getTopBottomSeparatorColumn()) { d.append("Top-Bottom"); d.append("\t"); } Integer[] tiles = model.getTilesForColumn(c); for (int i = 0; i < tiles.length; i++) { String s = tiles[i].toString(); int stringWidth = g2.getFontMetrics().stringWidth(s); g2.drawString(s, 1 + imgSize * c + (imgSize - 1 - stringWidth) / 2 + separator, 1 + height + 10 * (i + 1) - 3); } if (c == model.getTopBottomSeparatorColumn()) { separator = topBottomSeparator; } } d.append("\n"); }
From source file:org.cruk.mga.CreateReport.java
/** * Returns the FONT height./* www. j a v a 2s . c om*/ * * @return */ private int getFontHeight() { BufferedImage image = new BufferedImage(plotWidth, plotWidth, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = image.createGraphics(); g2.setFont(font); int fontHeight = g2.getFontMetrics().getAscent(); g2.dispose(); return fontHeight; }
From source file:org.squidy.designer.zoom.NavigationShape.java
@Override protected void paintShapeZoomedIn(PPaintContext paintContext) { super.paintShapeZoomedIn(paintContext); Graphics2D g = (Graphics2D) paintContext.getGraphics(); if (showNavigation) {// && !isHierarchicalZoomInProgress()) { PBounds bounds = getBoundsReference(); int x = (int) bounds.getX(); int y = (int) bounds.getY(); int width = (int) bounds.getWidth(); int height = (int) bounds.getHeight(); g.setColor(Constants.Color.COLOR_SHAPE_BACKGROUND); if (isRenderPrimitiveRect()) g.fillRect(x, y, width, 60); else {/*from w w w .j a v a2 s . c om*/ g.clearRect(x, y, width, 60); g.fillRoundRect(x, y, width, 60, 25, 25); } g.setColor(Constants.Color.COLOR_SHAPE_BORDER); if (isRenderPrimitiveRect()) g.drawRect(x, y, width, 60); else g.drawRoundRect(x, y, width, 60, 25, 25); g.setFont(fontBreadcrumb); if (titleBounds == null) { FontMetrics fm = g.getFontMetrics(); titleBounds = new Rectangle2D.Double(bounds.getX() + 455 + titleGap, bounds.getY() + 25 - fm.getHeight(), FontUtils.getWidthOfText(fm, getTitle()) + 10, fm.getHeight() + 5); } // Font font = internalFont.deriveFont(3.2f); for (int i = 0; i < 3; i++) { if (isRenderPrimitiveRect()) g.fillRect((int) (bounds.getX() + 430), (int) bounds.getY() + i * 15 + 10, 5, 10); else g.fillOval((int) (bounds.getX() + 430), (int) bounds.getY() + i * 15 + 10, 5, 10); } if (!ShapeUtils.isApparent(titleInputWrapper)) { g.drawString(getTitle(), (int) (bounds.getX() + 460 + titleGap), (int) (bounds.getY() + 25)); } if (croppedBreadcrumb == null) { croppedBreadcrumb = FontUtils.createCroppedLabelIfNecessary(g.getFontMetrics(), getBreadcrumb(), (int) bounds.getWidth() * 10 - 450); } g.drawString(croppedBreadcrumb, (int) (bounds.getX() + 460), (int) (bounds.getY() + 50)); } }
From source file:ucar.unidata.idv.control.chart.WayPoint.java
/** * Draws the annotation./*from www .j a v a 2 s .com*/ * * @param g2 the graphics device. * @param plot the plot. * @param dataArea the data area. * @param domainAxis the domain axis. * @param rangeAxis the range axis. * @param rendererIndex the renderer index. * @param info an optional info object that will be populated with * entity information. */ public void draw(Graphics2D g2, XYPlot plot, Rectangle2D dataArea, ValueAxis domainAxis, ValueAxis rangeAxis, int rendererIndex, PlotRenderingInfo info) { super.setGraphicsState(g2); if (!getPlotWrapper().okToDraw(this)) { return; } g2.setStroke(new BasicStroke()); if (false && getSelected()) { g2.setColor(COLOR_SELECTED); } else { g2.setColor(getColor()); } x = getXFromValue(dataArea, domainAxis); int width2 = (int) (ANNOTATION_WIDTH / 2); int bottom = (int) (dataArea.getY() + dataArea.getHeight()); y = bottom; int[] xs = { x - width2, x + width2, x, x - width2 }; int[] ys = { bottom - ANNOTATION_WIDTH, bottom - ANNOTATION_WIDTH, bottom, bottom - ANNOTATION_WIDTH }; g2.fillPolygon(xs, ys, xs.length); if ((getName() != null) && !isForAnimation) { FontMetrics fm = g2.getFontMetrics(); int width = fm.stringWidth(getName()); int textLeft = x - width / 2; g2.drawString(getName(), textLeft, bottom - ANNOTATION_WIDTH - 2); } if (getSelected()) { g2.setColor(COLOR_SELECTED); g2.drawPolygon(xs, ys, xs.length); } if (getPropertyListeners().hasListeners(PROP_WAYPOINTVALUE) || isForAnimation) { g2.setColor(Color.gray); g2.drawLine(x, y - ANNOTATION_WIDTH, x, (int) dataArea.getY()); } boolean playSound = canPlaySound(); if (isForAnimation) { if (clockImage == null) { clockImage = GuiUtils.getImage("/auxdata/ui/icons/clock.gif"); } if (playSound) { g2.drawImage(clockImage, x - 8, (int) dataArea.getY() + 1, null); } else { g2.drawImage(clockImage, x - 8, (int) dataArea.getY() + 1, null); } } if (canPlaySound()) { if (noteImage == null) { noteImage = GuiUtils.getImage("/auxdata/ui/icons/note.gif"); } if (isForAnimation) { g2.drawImage(noteImage, x + 8, (int) dataArea.getY() + 1, null); } else { g2.drawImage(noteImage, x, (int) dataArea.getY() + 1, null); } } if (minutesSpan > 0.0) { int left = (int) domainAxis.valueToJava2D(domainValue - (minutesSpan * 60000) / 2, dataArea, RectangleEdge.BOTTOM); int right = (int) domainAxis.valueToJava2D(domainValue + (minutesSpan * 60000) / 2, dataArea, RectangleEdge.BOTTOM); g2.setPaint(Color.black); g2.setStroke(new BasicStroke(2.0f)); g2.drawLine(left, y, right, y); } }
From source file:org.csml.tommo.sugar.modules.QualityHeatMapsPerTileAndBase.java
void drawRowHeader(Graphics2D g2, final ResultsTableModel model, int imgSize, int width, int xOffset) { for (int r = 0; r < model.getRowCount(); r++) { int bp = model.getBasePosition(r); if (model.getCycleID(r) == 0) { String s = String.valueOf(bp); int stringHeight = g2.getFont().getSize(); //g2.getFontMetrics().getHeight(); int stringWidth = g2.getFontMetrics().stringWidth(s); g2.drawString(s, 1 + width + (xOffset - 1 - stringWidth) / 2, imgSize * (r + 1) - (imgSize - stringHeight) / 2); }//from w w w. ja v a 2 s . c o m } }
From source file:main.MapKit.java
@Override public void paintWaypoint(Graphics2D g, JXMapViewer viewer, MyWaypoint w) { g = (Graphics2D) g.create();//from w w w . j ava2s . c o m Point2D point = viewer.getTileFactory().geoToPixel(w.getPosition(), viewer.getZoom()); int x = (int) point.getX(); int y = (int) point.getY(); if (w.amount == -1) { //means it's an original data point int fontSize = 28 - viewer.getZoom() * 2; //font size is larger when zoom in if (fontSize < 6) fontSize = 6; g.setFont(new Font("Arial", Font.PLAIN, fontSize)); g.setColor(w.color); g.drawString("x", x - fontSize / 2, y + fontSize / 2); g.dispose(); return; } if (origImage == null) { return; } BufferedImage myImg = map.get(w.color); if (myImg == null) { myImg = convert(origImage, w.color); map.put(w.color, myImg); } g.drawImage(myImg, x - myImg.getWidth() / 2, y - myImg.getHeight(), null); String label = String.valueOf(w.amount); // g.setFont(font); FontMetrics metrics = g.getFontMetrics(); int tw = metrics.stringWidth(label); int th = 1 + metrics.getAscent(); // g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.drawString(label, x - tw / 2, y + th); g.dispose(); }
From source file:org.squidy.designer.zoom.impl.SourceCodeShape.java
@Override protected void paintShapeZoomedIn(PPaintContext paintContext) { super.paintShapeZoomedIn(paintContext); Graphics2D g = paintContext.getGraphics(); PBounds bounds = getBoundsReference(); Class<?> type = nodeShape.getProcessable().getClass(); String typeName = type.getSimpleName(); g.setFont(fontName);/*from w w w . ja va 2s . c o m*/ g.drawString(typeName, (int) (bounds.x + 50), 140); g.setFont(fontSource); // Calculate sourceName string if not done yet. // if (sourceName == null) { // sourceName = FontUtils.createCroppedLabelIfNecessary(g.getFontMetrics(), "Source: " // + sourceCodeURL.toString(), (int) (bounds.width)); // sourceNameX = (int) (bounds.x + bounds.width - FontUtils.getWidthOfText(g.getFontMetrics(), sourceName) - 20); // } // g.drawString(sourceName, sourceNameX, 90); // Calculate className string if not done yet. if (className == null) { className = FontUtils.createCroppedLabelIfNecessary(g.getFontMetrics(), "Class: " + type.getName(), (int) (bounds.width * 0.7)); classNameX = (int) (bounds.x + bounds.width - FontUtils.getWidthOfText(g.getFontMetrics(), className) - 20); } g.drawString(className, classNameX, 110); }