Rectangle2D.Float box = annotation.getUserSpaceRectangle(); Map<String, Double> bounds = new HashMap<String, Double>(); bounds.put("height", box.getHeight()); bounds.put("width", box.getWidth()); bounds.put("x", box.getX()); bounds.put("y", box.getY());
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.translate(25.0f - bounds.getX(), 25.0f - bounds.getY()); g.setStroke(new BasicStroke(1.0f));
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.translate(25.0f - bounds.getX(), 25.0f - bounds.getY()); g.setStroke(new BasicStroke(1.0f));
Rectangle2D.Float jrect = deriveBorderDrawingRectangle(width); RoundRectangle2D.Double roundRect = new RoundRectangle2D.Double( jrect.getX(), jrect.getY(), jrect.getWidth(), jrect.getHeight(), horizRadius, vertRadius); BasicStroke stroke = new BasicStroke(
g.setColor(bgColor); g.fillRect( (int)(smallTextBounds.getX()), (int)(smallTextBounds.getY() + 4), // FIXME (int)(smallTextBounds.getWidth()),
private boolean isSimilar(BBlock b1, BBlock b2) { // rough text lengh comparison String txt1 = b1.getText(), txt2 = b2.getText(); if (abs(txt1.length() - txt2.length()) > TEXT_LENGTH_THRESHOLD) { // System.out.println("TEXT_LENGTH_THRESHOLD"); return false; } // position comparison java.awt.geom.Rectangle2D.Float r1 = b1.getRegion(), r2 = b2 .getRegion(); double diff = abs(r1.getX() - r2.getX()) + // abs(r1.getY() - r2.getY()) + // abs(r1.getWidth() - r2.getWidth()) + // abs(r1.getHeight() - r2.getHeight()); if (diff > POSITION_THRESHOLD) { // System.out.println("POSITION_THRESHOLD"); return false; } // text comparison (Levenshtein) if (getLevenshteinDistance(txt1, txt2, EDIT_DISTANCE_THRESHOLD) == -1) { // System.out.println("EDIT_DISTANCE_THRESHOLD"); return false; } return true; }