Changeset 702


Ignore:
Timestamp:
01/16/14 12:07:57 (10 years ago)
Author:
ngw8
Message:

Added method to add a rectangle to the frame. (based on the mouse actions code to draw a rectangle with the mouse)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/gui/Frame.java

    r664 r702  
    2020import org.expeditee.actions.Simple;
    2121import org.expeditee.io.Conversion;
     22import org.expeditee.items.Constraint;
    2223import org.expeditee.items.Dot;
    2324import org.expeditee.items.Item;
     
    16491650        }
    16501651
     1652        /**
     1653         * Adds a rectangle to the frame
     1654         *
     1655         * @param x
     1656         *            X coordinate of the top-left corner of the rectangle
     1657         * @param y
     1658         *            Y coordinate of the top-left corner of the rectangle
     1659         * @param width
     1660         *            Width of the rectangle
     1661         * @param height
     1662         *            Height of the rectangle
     1663         * @param borderThickness
     1664         *            Thickness, in pixels, of the rectangle's border/outline
     1665         * @param borderColor
     1666         *            Color of the rectangle's border/outline
     1667         * @param fillColor
     1668         *            Color to fill the rectangle with
     1669         */
     1670        public void addRectangle(int x, int y, int width, int height, float borderThickness, Color borderColor, Color fillColor) {
     1671                List<Item> rectComponents = new ArrayList<Item>();
     1672                Item[] corners = new Item[4];
     1673
     1674                // Top Left
     1675                corners[0] = this.createDot();
     1676                corners[0].setPosition(x, y);
     1677
     1678                // Top Right
     1679                corners[1] = this.createDot();
     1680                corners[1].setPosition(x + width, y);
     1681
     1682                // Bottom Right
     1683                corners[2] = this.createDot();
     1684                corners[2].setPosition(x + width, y + height);
     1685
     1686                // Bottom Left
     1687                corners[3] = this.createDot();
     1688                corners[3].setPosition(x, y + width);
     1689
     1690                // Add corners to the collection and setting their attributes
     1691                for (int i = 0; i < corners.length; i++) {
     1692                        corners[i].setThickness(borderThickness);
     1693                        corners[i].setColor(borderColor);
     1694                        corners[i].setFillColor(fillColor);
     1695                        rectComponents.add(corners[i]);
     1696                }
     1697
     1698                // create lines between the corners
     1699                rectComponents.add(new Line(corners[0], corners[1], this.getNextItemID()));
     1700                rectComponents.add(new Line(corners[1], corners[2], this.getNextItemID()));
     1701                rectComponents.add(new Line(corners[2], corners[3], this.getNextItemID()));
     1702                rectComponents.add(new Line(corners[3], corners[0], this.getNextItemID()));
     1703
     1704                // Add constraints between each corner
     1705                new Constraint(corners[0], corners[1], this.getNextItemID(), Constraint.HORIZONTAL);
     1706                new Constraint(corners[2], corners[3], this.getNextItemID(), Constraint.HORIZONTAL);
     1707                new Constraint(corners[1], corners[2], this.getNextItemID(), Constraint.VERTICAL);
     1708                new Constraint(corners[3], corners[0], this.getNextItemID(), Constraint.VERTICAL);
     1709
     1710                this.addAllItems(rectComponents);
     1711                FrameMouseActions.anchor(rectComponents);
     1712
     1713                rectComponents.clear();
     1714        }
     1715
    16511716        public boolean isSaved() {
    16521717                return _saved;
Note: See TracChangeset for help on using the changeset viewer.