@Override public void populateGraphicsContent(Graphics graphics, Dimension canvasSize) { if (null == graphics) return; if (null != canvasSize) setCanvasSize(canvasSize); setWidth(DesignUtil.calculateTableWidth(getGraphics(), getDbModel(), true)); setHeight(DesignUtil.calculateTableHeight(getGraphics(), getDbModel(), true)); if (getX() == 0 && getY() == 0) { setX(canvasSize.width - (canvasSize.width / 2 - getWidth() / 2)); setY(DbexDesignConstants.TABLE_LEFT_MARGIN_WIDTH); } int colStart_X = getX() + 1; int colStart_Y = getY() + DesignUtil.calculateCellHeight(getGraphics()) + 2; int cellHeight = DesignUtil.calculateCellHeight(getGraphics()); if (null != columnDbShapes) { for (int i = 0; i < columnDbShapes.size(); i++) { ColumnDbShape columnDbShape = columnDbShapes.get(i); columnDbShape.setX(colStart_X); columnDbShape.setY(colStart_Y + (cellHeight * (i))); columnDbShape.setWidth(getWidth()); columnDbShape.setHeight(cellHeight); columnDbShape.setGraphics(graphics); columnDbShape.populateGraphicsContent(graphics, canvasSize); } } }
@Override public void drawShape() { Graphics2D graphics = (Graphics2D) getGraphics(); Color oldFg = graphics.getColor(); Table table = getDbModel(); if (null != table) { Point location = getLocation(); Dimension size = getSize(); // draw the border graphics.setColor(DbexColorConstants.TABLE_BORDER_COLOR); graphics.drawRect(location.x, location.y, size.width, size.height); graphics.setColor(DbexColorConstants.COLUMN_NAMES_BG_COLOR); graphics.fillRect(location.x + 1, location.y + 1, size.width - 1, size.height - 1); // draw the header graphics.setColor(DbexColorConstants.TABLE_BORDER_COLOR); graphics.drawRect( location.x, location.y, size.width, DesignUtil.calculateCellHeight(graphics)); graphics.setColor(DbexColorConstants.TABLE_HEADER_BG_COLOR); graphics.fillRect( location.x + 1, location.y + 1, size.width - 1, DesignUtil.calculateCellHeight(graphics) - 1); graphics.setColor(DbexColorConstants.TABLE_HEADER_FG_COLOR); graphics.drawString( table.getModelName(), location.x + 2, location.y + DesignUtil.calculateCellHeight(graphics) - 4); // draw the left margin graphics.setColor(DbexColorConstants.TABLE_BORDER_COLOR); graphics.drawRect( location.x, location.y + DesignUtil.calculateCellHeight(graphics), DbexDesignConstants.TABLE_LEFT_MARGIN_WIDTH, size.height - DesignUtil.calculateCellHeight(graphics)); graphics.setColor(DbexColorConstants.TABLE_LEFT_MARGIN_BG_COLOR); graphics.fillRect( location.x + 1, location.y + DesignUtil.calculateCellHeight(graphics) + 1, DbexDesignConstants.TABLE_LEFT_MARGIN_WIDTH - 1, size.height - 1 - DesignUtil.calculateCellHeight(graphics)); // draw columns if (null != columnDbShapes) { for (int i = 0; i < columnDbShapes.size(); i++) { ColumnDbShape columnDbShape = columnDbShapes.get(i); columnDbShape.drawShape(); if (i < columnDbShapes.size() - 1) { graphics.setColor(DbexColorConstants.TABLE_BORDER_COLOR); graphics.drawLine( columnDbShape.getX() + DbexDesignConstants.TABLE_LEFT_MARGIN_WIDTH + 2, columnDbShape.getY() + columnDbShape.getHeight() + 2, location.x + size.width, columnDbShape.getY() + columnDbShape.getHeight() + 2); } } } } graphics.setColor(oldFg); }
@Override public String tooltipText(Point mousePosition) { if (null == mousePosition) return ""; if (isOnPerimeter(mousePosition)) { return getDbModel().getModelName(); } if (isInside(mousePosition)) { if (null != columnDbShapes) { for (int i = 0; i < columnDbShapes.size(); i++) { ColumnDbShape columnDbShape = columnDbShapes.get(i); if (columnDbShape.isInside(mousePosition)) { return columnDbShape.getDbModel().getModelName(); } } } return getDbModel().getModelName(); } return "[ X=" + mousePosition.x + ", Y=" + mousePosition.y + " ]"; }