public void draw_me(Graphics g)
    {
         Graphics2D g2d = (Graphics2D) g.create();
         int thickness = 2;

         //draw border
         BasicStroke bs = new BasicStroke(thickness);
         g2d.setStroke(bs);
         if(selected)
         {
             g2d.setColor(Color.GREEN);
         }
         else
         {
             g2d.setColor(Color.GRAY);
         }
         
         RoundRectangle2D roundedRectangle;
         roundedRectangle = new RoundRectangle2D.Float(position.x-(thickness/2), position.y-(thickness/2), getWidth()+thickness, getHeight()+thickness, 20, 20);
         g2d.draw(roundedRectangle);
         g2d.setColor(Color.decode("11840100"));
         g2d.fillRoundRect(position.x, position.y, getWidth(), getHeight(), 20, 20);
         bs = new BasicStroke(1);
         g2d.setStroke(bs);
         g2d.setColor(Color.GRAY);
         roundedRectangle = new RoundRectangle2D.Float(position.x, position.y, getWidth(), 20, 20, 20);
         g2d.draw(roundedRectangle);
      
         //type
         g2d.setColor(Color.BLACK);
         g2d.drawString(type, position.x+5, position.y+15);
         
         g2d.dispose();         
    }