package com.baselet.element.old.element; import java.awt.Graphics; import java.awt.Graphics2D; import java.util.Vector; import com.baselet.control.HandlerElementMap; import com.baselet.control.enums.AlignHorizontal; import com.baselet.control.util.Utils; import com.baselet.element.old.OldGridElement; @SuppressWarnings("serial") public class Database extends OldGridElement { // Change this method if you want to edit the graphical // representation of your custom element. @Override public void paintEntity(Graphics g) { // Some unimportant initialization stuff; setting color, font // quality, etc. You should not have to change this. Graphics2D g2 = (Graphics2D) g; g2.setFont(HandlerElementMap.getHandlerForElement(this).getFontHandler().getFont()); colorize(g2); // enable colors g2.setColor(fgColor); int inset = (int) HandlerElementMap.getHandlerForElement(this).getFontHandler().getFontSize(); // It's getting interesting here: // First, the strings you type in the element editor are read and // split into lines. // Then, by default, they are printed out on the element, aligned // to the left. // Change this to modify this default text printing and to react // to special strings // (like the "--" string in the UML class elements which draw a line). Vector<String> tmp = Utils.decomposeStrings(getPanelAttributes()); int yPos = inset + (int) HandlerElementMap.getHandlerForElement(this).getFontHandler().getDistanceBetweenTexts(); boolean CENTER = true; for (int i = 0; i < tmp.size(); i++) { String s = tmp.elementAt(i); if (s.equals("--")) { CENTER = false; g2.drawLine(0, yPos, getRectangle().width, yPos); yPos += (int) HandlerElementMap.getHandlerForElement(this).getFontHandler().getDistanceBetweenTexts(); } else { yPos += (int) HandlerElementMap.getHandlerForElement(this).getFontHandler().getFontSize(); if (CENTER) { HandlerElementMap.getHandlerForElement(this).getFontHandler().writeText(g2, s, getRectangle().width / 2.0, yPos, AlignHorizontal.CENTER); } else { HandlerElementMap.getHandlerForElement(this).getFontHandler().writeText(g2, s, (int) (HandlerElementMap.getHandlerForElement(this).getFontHandler().getFontSize() / 2), yPos, AlignHorizontal.LEFT); } yPos += HandlerElementMap.getHandlerForElement(this).getFontHandler().getDistanceBetweenTexts(); } } // Finally, change other graphical attributes using // drawLine, getWidth, getHeight.. g2.drawLine(0, getRectangle().height - 1 - inset / 2, 0, inset / 2); g2.drawOval(0, 0, getRectangle().width, inset); g2.drawArc(0, getRectangle().height - 1 - inset, getRectangle().width, (int) HandlerElementMap.getHandlerForElement(this).getFontHandler().getFontSize(), 180, 180); g2.drawLine(getRectangle().width - 1, inset / 2, getRectangle().width - 1, getRectangle().height - 1 - inset / 2); } }