/* * Copyright 2009 Rodrigo Reyes reyes.rr at gmail dot com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package net.kornr.swit.wicket.border.graphics.devutil; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import javax.swing.JPanel; import net.kornr.swit.wicket.border.graphics.BorderMaker; import net.kornr.swit.wicket.border.graphics.ImageMap; public class BorderPane extends JPanel { private BorderMaker m_border; public BorderPane(BorderMaker border) { m_border = border; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); int width = this.getWidth(); int height = this.getHeight(); Graphics2D g2 = (Graphics2D)g.create(); g2.setPaint(Color.white); g2.fillRect(0, 0, width, height); ImageMap map = m_border.getImageMap(); Rectangle full = map.getZone("full"); // BufferedImage img = m_border.createImage(full); BufferedImage tl = m_border.createImage(map.getZone(ImageMap.TOP_LEFT)); g2.drawImage(tl, 0, 0, null); BufferedImage tr = m_border.createImage(map.getZone(ImageMap.TOP_RIGHT)); g2.drawImage(tr, width-tr.getWidth(), 0, null); BufferedImage br = m_border.createImage(map.getZone(ImageMap.BOTTOM_RIGHT)); g2.drawImage(br, width-br.getWidth(), height-br.getHeight(), null); BufferedImage bl = m_border.createImage(map.getZone(ImageMap.BOTTOM_LEFT)); g2.drawImage(bl, 0, height-bl.getHeight(), null); BufferedImage t = m_border.createImage(map.getZone(ImageMap.TOP)); g2.setClip(tl.getWidth(), 0, width - (tl.getWidth()+tr.getWidth()), height); for (int i=0; i<width; i+=t.getWidth()) g2.drawImage(t, i, 0, null); BufferedImage b = m_border.createImage(map.getZone(ImageMap.BOTTOM)); g2.setClip(bl.getWidth(), height - b.getHeight(), width - (bl.getWidth()+br.getWidth()), b.getHeight()); for (int i=0; i<width; i+=b.getWidth()) g2.drawImage(b, i, height-bl.getHeight(), null); BufferedImage l = m_border.createImage(map.getZone(ImageMap.LEFT)); g2.setClip(0, tl.getHeight(), l.getWidth(), height-(bl.getHeight()+tl.getHeight())); for (int i=0; i<height; i+=l.getHeight()) g2.drawImage(l, 0, i, null); BufferedImage r = m_border.createImage(map.getZone(ImageMap.RIGHT)); g2.setClip(width-r.getWidth(), tr.getHeight(), r.getWidth(), height-(tr.getHeight()+br.getHeight())); for (int i=0; i<height; i+=r.getHeight()) g2.drawImage(r, width-r.getWidth(), i, null); g2.setClip(null); // g.drawImage(img, 50, 50, null); } }