Search in sources :

Example 96 with Rectangle

use of java.awt.Rectangle in project android_frameworks_base by DirtyUnicorns.

the class Region_Delegate method nativeGetBounds.

@LayoutlibDelegate
static /*package*/
boolean nativeGetBounds(long native_region, Rect rect) {
    Region_Delegate region = sManager.getDelegate(native_region);
    if (region == null) {
        return true;
    }
    Rectangle bounds = region.mArea.getBounds();
    if (bounds.isEmpty()) {
        rect.left = rect.top = rect.right = rect.bottom = 0;
        return false;
    }
    rect.left = bounds.x;
    rect.top = bounds.y;
    rect.right = bounds.x + bounds.width;
    rect.bottom = bounds.y + bounds.height;
    return true;
}
Also used : Rectangle(java.awt.Rectangle) LayoutlibDelegate(com.android.tools.layoutlib.annotations.LayoutlibDelegate)

Example 97 with Rectangle

use of java.awt.Rectangle in project jdk8u_jdk by JetBrains.

the class TestLayoutVsICU method show.

private void show(String arg) throws ParserConfigurationException, SAXException, IOException {
    id = "<none>";
    File xmlFile = new File(arg);
    if (!xmlFile.exists()) {
        throw new FileNotFoundException("Can't open input XML file " + arg);
    }
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    if (OPT_VERBOSE) {
        System.out.println("# Parsing " + xmlFile.getAbsolutePath());
    }
    Document doc = db.parse(xmlFile);
    Element e = doc.getDocumentElement();
    if (!XML_LAYOUT_TESTS.equals(e.getNodeName())) {
        throw new IllegalArgumentException("Document " + xmlFile.getAbsolutePath() + " does not have <layout-tests> as its base");
    }
    NodeList testCases = e.getElementsByTagName(XML_TEST_CASE);
    for (int caseNo = 0; caseNo < testCases.getLength(); caseNo++) {
        final Node testCase = testCases.item(caseNo);
        final Map<String, String> testCaseAttrs = attrs(testCase);
        id = testCaseAttrs.get(XML_ID);
        final String script = testCaseAttrs.get(XML_SCRIPT);
        String testText = null;
        Integer[] expectGlyphs = null;
        Integer[] expectIndices = null;
        Map<String, String> fontAttrs = null;
        if (OPT_VERBOSE) {
            System.out.println("#" + caseNo + " id=" + id + ", script=" + script);
        }
        NodeList children = testCase.getChildNodes();
        for (int sub = 0; sub < children.getLength(); sub++) {
            Node n = children.item(sub);
            if (n.getNodeType() != Node.ELEMENT_NODE)
                continue;
            String nn = n.getNodeName();
            if (nn.equals(XML_TEST_FONT)) {
                fontAttrs = attrs(n);
            } else if (nn.equals(XML_TEST_TEXT)) {
                testText = n.getTextContent();
            } else if (nn.equals(XML_RESULT_GLYPHS)) {
                String hex = n.getTextContent();
                expectGlyphs = parseHexArray(hex);
            } else if (nn.equals(XML_RESULT_INDICES)) {
                String hex = n.getTextContent();
                expectIndices = parseHexArray(hex);
            } else if (OPT_VERBOSE) {
                System.out.println("Ignoring node " + nn);
            }
        }
        if (fontAttrs == null) {
            throw new IllegalArgumentException(id + " Missing node " + XML_TEST_FONT);
        }
        if (testText == null) {
            throw new IllegalArgumentException(id + " Missing node " + XML_TEST_TEXT);
        }
        String fontName = fontAttrs.get(XML_NAME);
        Font f = getFont(fontName, fontAttrs);
        if (f == null) {
            if (OPT_FAILMISSING) {
                throw new MissingResourceException("Missing font,  abort test", Font.class.getName(), fontName);
            }
            System.out.println("Skipping " + id + " because font is missing: " + fontName);
            skipped++;
            continue;
        }
        FontRenderContext frc = new FontRenderContext(null, true, true);
        TextLayout tl = new TextLayout(testText, f, frc);
        final List<GlyphVector> glyphs = new ArrayList<GlyphVector>();
        Graphics2D myg2 = new Graphics2D() {

            @Override
            public void draw(Shape s) {
            // TODO Auto-generated method stub
            }

            @Override
            public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawRenderedImage(RenderedImage img, AffineTransform xform) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawRenderableImage(RenderableImage img, AffineTransform xform) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawString(String str, int x, int y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawString(String str, float x, float y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawString(AttributedCharacterIterator iterator, int x, int y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawString(AttributedCharacterIterator iterator, float x, float y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawGlyphVector(GlyphVector g, float x, float y) {
                if (x != 0.0 || y != 0.0) {
                    throw new InternalError("x,y should be 0 but got " + x + "," + y);
                }
                //System.err.println("dGV : " + g.toString() + " @ "+x+","+y);
                glyphs.add(g);
            }

            @Override
            public void fill(Shape s) {
            // TODO Auto-generated method stub
            }

            @Override
            public boolean hit(Rectangle rect, Shape s, boolean onStroke) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public GraphicsConfiguration getDeviceConfiguration() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setComposite(Composite comp) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setPaint(Paint paint) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setStroke(Stroke s) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setRenderingHint(Key hintKey, Object hintValue) {
            // TODO Auto-generated method stub
            }

            @Override
            public Object getRenderingHint(Key hintKey) {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setRenderingHints(Map<?, ?> hints) {
            // TODO Auto-generated method stub
            }

            @Override
            public void addRenderingHints(Map<?, ?> hints) {
            // TODO Auto-generated method stub
            }

            @Override
            public RenderingHints getRenderingHints() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void translate(int x, int y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void translate(double tx, double ty) {
            // TODO Auto-generated method stub
            }

            @Override
            public void rotate(double theta) {
            // TODO Auto-generated method stub
            }

            @Override
            public void rotate(double theta, double x, double y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void scale(double sx, double sy) {
            // TODO Auto-generated method stub
            }

            @Override
            public void shear(double shx, double shy) {
            // TODO Auto-generated method stub
            }

            @Override
            public void transform(AffineTransform Tx) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setTransform(AffineTransform Tx) {
            // TODO Auto-generated method stub
            }

            @Override
            public AffineTransform getTransform() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Paint getPaint() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Composite getComposite() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setBackground(Color color) {
            // TODO Auto-generated method stub
            }

            @Override
            public Color getBackground() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Stroke getStroke() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void clip(Shape s) {
            // TODO Auto-generated method stub
            }

            @Override
            public FontRenderContext getFontRenderContext() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Graphics create() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Color getColor() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setColor(Color c) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setPaintMode() {
            // TODO Auto-generated method stub
            }

            @Override
            public void setXORMode(Color c1) {
            // TODO Auto-generated method stub
            }

            @Override
            public Font getFont() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setFont(Font font) {
            // TODO Auto-generated method stub
            }

            @Override
            public FontMetrics getFontMetrics(Font f) {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Rectangle getClipBounds() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void clipRect(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setClip(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public Shape getClip() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setClip(Shape clip) {
            // TODO Auto-generated method stub
            }

            @Override
            public void copyArea(int x, int y, int width, int height, int dx, int dy) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawLine(int x1, int y1, int x2, int y2) {
            // TODO Auto-generated method stub
            }

            @Override
            public void fillRect(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public void clearRect(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) {
            // TODO Auto-generated method stub
            }

            @Override
            public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawOval(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public void fillOval(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) {
            // TODO Auto-generated method stub
            }

            @Override
            public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) {
            // TODO Auto-generated method stub
            }

            @Override
            public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) {
            // TODO Auto-generated method stub
            }

            @Override
            public boolean drawImage(Image img, int x, int y, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public void dispose() {
            // TODO Auto-generated method stub
            }
        };
        tl.draw(myg2, 0, 0);
        if (glyphs.size() != 1) {
            err("drew " + glyphs.size() + " times - expected 1");
            total++;
            bad++;
            continue;
        }
        boolean isBad = false;
        GlyphVector gv = glyphs.get(0);
        // GLYPHS
        int[] gotGlyphs = gv.getGlyphCodes(0, gv.getNumGlyphs(), new int[gv.getNumGlyphs()]);
        // go up to this count
        int count = Math.min(gotGlyphs.length, expectGlyphs.length);
        for (int i = 0; i < count; i++) {
            if (gotGlyphs[i] != expectGlyphs[i]) {
                err("@" + i + " - got \tglyph 0x" + Integer.toHexString(gotGlyphs[i]) + " wanted 0x" + Integer.toHexString(expectGlyphs[i]));
                isBad = true;
                break;
            }
        }
        // INDICES
        int[] gotIndices = gv.getGlyphCharIndices(0, gv.getNumGlyphs(), new int[gv.getNumGlyphs()]);
        for (int i = 0; i < count; i++) {
            if (gotIndices[i] != expectIndices[i]) {
                err("@" + i + " - got \tindex 0x" + Integer.toHexString(gotGlyphs[i]) + " wanted 0x" + Integer.toHexString(expectGlyphs[i]));
                isBad = true;
                break;
            }
        }
        // COUNT
        if (gotGlyphs.length != expectGlyphs.length) {
            System.out.println("Got " + gotGlyphs.length + " wanted " + expectGlyphs.length + " glyphs");
            isBad = true;
        } else {
            if (OPT_VERBOSE) {
                System.out.println(">> OK: " + gotGlyphs.length + " glyphs");
            }
        }
        if (isBad) {
            bad++;
            System.out.println("* FAIL: " + id + "  /\t" + fontName);
        } else {
            System.out.println("* OK  : " + id + "  /\t" + fontName);
        }
        total++;
    }
}
Also used : DocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory) Shape(java.awt.Shape) Element(org.w3c.dom.Element) Node(org.w3c.dom.Node) MissingResourceException(java.util.MissingResourceException) FileNotFoundException(java.io.FileNotFoundException) ArrayList(java.util.ArrayList) Rectangle(java.awt.Rectangle) Document(org.w3c.dom.Document) RenderableImage(java.awt.image.renderable.RenderableImage) Image(java.awt.Image) BufferedImage(java.awt.image.BufferedImage) RenderedImage(java.awt.image.RenderedImage) Font(java.awt.Font) BufferedImage(java.awt.image.BufferedImage) RenderableImage(java.awt.image.renderable.RenderableImage) BufferedImageOp(java.awt.image.BufferedImageOp) Stroke(java.awt.Stroke) GlyphVector(java.awt.font.GlyphVector) Composite(java.awt.Composite) NodeList(org.w3c.dom.NodeList) ImageObserver(java.awt.image.ImageObserver) Color(java.awt.Color) Paint(java.awt.Paint) Paint(java.awt.Paint) TextLayout(java.awt.font.TextLayout) Graphics2D(java.awt.Graphics2D) AttributedCharacterIterator(java.text.AttributedCharacterIterator) DocumentBuilder(javax.xml.parsers.DocumentBuilder) AffineTransform(java.awt.geom.AffineTransform) FontRenderContext(java.awt.font.FontRenderContext) RenderedImage(java.awt.image.RenderedImage) File(java.io.File) Map(java.util.Map) NamedNodeMap(org.w3c.dom.NamedNodeMap) TreeMap(java.util.TreeMap) Key(java.awt.RenderingHints.Key)

Example 98 with Rectangle

use of java.awt.Rectangle in project jdk8u_jdk by JetBrains.

the class bug8016356 method main.

public static void main(String[] args) throws Exception {
    // Windows only test
    if (OSInfo.getOSType() == OSInfo.OSType.WINDOWS) {
        // Retrieving top edge of Desktop
        GraphicsConfiguration grConf = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
        Rectangle scrRect = grConf.getBounds();
        Insets scrInsets = Toolkit.getDefaultToolkit().getScreenInsets(grConf);
        scrTop = scrRect.y + scrInsets.top;
        color = new Color(0, 255, 0);
        SwingUtilities.invokeAndWait(() -> {
            createAndShowUI();
        });
        try {
            Robot robot = new Robot();
            robot.setAutoDelay(500);
            robot.setAutoWaitForIdle(true);
            robot.delay(1000);
            // Resizing a window to invoke Windows Snap feature
            readFrameInfo();
            robot.mouseMove(frLoc.x + frSize.width / 2, frLoc.y);
            robot.mousePress(InputEvent.BUTTON1_MASK);
            robot.mouseMove(frLoc.x + frSize.width / 2, scrTop);
            robot.mouseRelease(InputEvent.BUTTON1_MASK);
            // Retrieving the color of window expanded area
            readFrameInfo();
            Insets insets = frame.getInsets();
            Color bgColor = robot.getPixelColor(frLoc.x + frSize.width / 2, frLoc.y + frSize.height - insets.bottom - 1);
            frame.dispose();
            if (!bgColor.equals(color)) {
                throw new RuntimeException("TEST FAILED: got " + bgColor + " instead of " + color);
            }
            System.out.println("TEST PASSED!");
        } catch (AWTException ex) {
            throw new RuntimeException("TEST FAILED!");
        }
    }
}
Also used : Insets(java.awt.Insets) Color(java.awt.Color) Rectangle(java.awt.Rectangle) Robot(java.awt.Robot) GraphicsConfiguration(java.awt.GraphicsConfiguration) AWTException(java.awt.AWTException)

Example 99 with Rectangle

use of java.awt.Rectangle in project jdk8u_jdk by JetBrains.

the class bug8057791 method main.

public static void main(String[] args) {
    try {
        UIManager.setLookAndFeel(new NimbusLookAndFeel());
        SwingUtilities.invokeAndWait(new Runnable() {

            @Override
            public void run() {
                final int listWidth = 50;
                final int listHeight = 50;
                final int selCellIndex = 0;
                JList<String> list = new JList<String>();
                list.setSize(listWidth, listHeight);
                DefaultListModel<String> listModel = new DefaultListModel<String>();
                listModel.add(selCellIndex, "E");
                list.setModel(listModel);
                list.setSelectedIndex(selCellIndex);
                BufferedImage img = new BufferedImage(listWidth, listHeight, BufferedImage.TYPE_INT_ARGB);
                Graphics g = img.getGraphics();
                list.paint(g);
                g.dispose();
                Rectangle cellRect = list.getCellBounds(selCellIndex, selCellIndex);
                HashSet<Color> cellColors = new HashSet<Color>();
                int uniqueColorIndex = 0;
                for (int x = cellRect.x; x < (cellRect.x + cellRect.width); x++) {
                    for (int y = cellRect.y; y < (cellRect.y + cellRect.height); y++) {
                        Color cellColor = new Color(img.getRGB(x, y), true);
                        if (cellColors.add(cellColor)) {
                            System.err.println(String.format("Cell color #%d: %s", uniqueColorIndex++, cellColor));
                        }
                    }
                }
                Color selForegroundColor = list.getSelectionForeground();
                Color selBackgroundColor = list.getSelectionBackground();
                if (!cellColors.contains(new Color(selForegroundColor.getRGB(), true))) {
                    throw new RuntimeException(String.format("Selected cell is drawn without selection foreground color '%s'.", selForegroundColor));
                }
                if (!cellColors.contains(new Color(selBackgroundColor.getRGB(), true))) {
                    throw new RuntimeException(String.format("Selected cell is drawn without selection background color '%s'.", selBackgroundColor));
                }
            }
        });
    } catch (UnsupportedLookAndFeelException | InterruptedException | InvocationTargetException e) {
        throw new RuntimeException(e);
    }
}
Also used : Color(java.awt.Color) Rectangle(java.awt.Rectangle) DefaultListModel(javax.swing.DefaultListModel) BufferedImage(java.awt.image.BufferedImage) InvocationTargetException(java.lang.reflect.InvocationTargetException) Graphics(java.awt.Graphics) UnsupportedLookAndFeelException(javax.swing.UnsupportedLookAndFeelException) NimbusLookAndFeel(javax.swing.plaf.nimbus.NimbusLookAndFeel) JList(javax.swing.JList) HashSet(java.util.HashSet)

Example 100 with Rectangle

use of java.awt.Rectangle in project jdk8u_jdk by JetBrains.

the class DrawImageBilinear method main.

public static void main(String[] args) {
    boolean show = false;
    for (String arg : args) {
        if ("-show".equals(arg)) {
            show = true;
        }
    }
    String arch = System.getProperty("os.arch");
    boolean isOglEnabled = Boolean.getBoolean("sun.java2d.opengl");
    skipOglTextureTest = isOglEnabled && ("sparc".equals(arch));
    System.out.println("Skip OpenGL texture test: " + skipOglTextureTest);
    DrawImageBilinear test = new DrawImageBilinear();
    Frame frame = new Frame();
    frame.add(test);
    frame.pack();
    frame.setVisible(true);
    // Wait until the component's been painted
    synchronized (test) {
        while (!done) {
            try {
                test.wait();
            } catch (InterruptedException e) {
                throw new RuntimeException("Failed: Interrupted");
            }
        }
    }
    GraphicsConfiguration gc = frame.getGraphicsConfiguration();
    if (gc.getColorModel() instanceof IndexColorModel) {
        System.out.println("IndexColorModel detected: " + "test considered PASSED");
        frame.dispose();
        return;
    }
    if (!show) {
        frame.dispose();
    }
    if (capture == null) {
        throw new RuntimeException("Failed: capture is null");
    }
    // Test background color
    int pixel = capture.getRGB(5, 5);
    if (pixel != 0xffffffff) {
        throw new RuntimeException("Failed: Incorrect color for " + "background");
    }
    // Test pixels
    testRegion(capture, new Rectangle(10, 10, 40, 40));
    testRegion(capture, new Rectangle(80, 10, 40, 40));
    testRegion(capture, new Rectangle(150, 10, 40, 40));
}
Also used : Frame(java.awt.Frame) Rectangle(java.awt.Rectangle) Point(java.awt.Point) GraphicsConfiguration(java.awt.GraphicsConfiguration) IndexColorModel(java.awt.image.IndexColorModel)

Aggregations

Rectangle (java.awt.Rectangle)654 Point (java.awt.Point)147 BufferedImage (java.awt.image.BufferedImage)61 Dimension (java.awt.Dimension)49 Graphics2D (java.awt.Graphics2D)48 Insets (java.awt.Insets)36 Color (java.awt.Color)31 ArrayList (java.util.ArrayList)28 Test (org.junit.Test)28 GraphicsConfiguration (java.awt.GraphicsConfiguration)21 IOException (java.io.IOException)21 Robot (java.awt.Robot)19 PeakResult (gdsc.smlm.results.PeakResult)18 File (java.io.File)18 Font (java.awt.Font)17 FontMetrics (java.awt.FontMetrics)17 MemoryPeakResults (gdsc.smlm.results.MemoryPeakResults)16 SampleModel (java.awt.image.SampleModel)15 Component (java.awt.Component)14 ImagePlus (ij.ImagePlus)13