From 12a0686cb3fa183aa8e4829ad4cab25798bc7cf5 Mon Sep 17 00:00:00 2001 From: Pacien TRAN-GIRARD Date: Mon, 3 Mar 2014 19:27:27 +0100 Subject: Add web interface and clean project dir --- .../nikiroo/utils/gui/JBackgroundPanel.java | 308 --------------------- 1 file changed, 308 deletions(-) delete mode 100644 src/net/homelinux/nikiroo/utils/gui/JBackgroundPanel.java (limited to 'src/net') diff --git a/src/net/homelinux/nikiroo/utils/gui/JBackgroundPanel.java b/src/net/homelinux/nikiroo/utils/gui/JBackgroundPanel.java deleted file mode 100644 index ba53b86..0000000 --- a/src/net/homelinux/nikiroo/utils/gui/JBackgroundPanel.java +++ /dev/null @@ -1,308 +0,0 @@ -package net.homelinux.nikiroo.utils.gui; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.Insets; -import java.awt.LayoutManager; -import java.awt.Paint; -import java.awt.Rectangle; - -import javax.swing.ImageIcon; -import javax.swing.JComponent; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JViewport; - -/** - * Support custom painting on a panel in the form of
  • images - that can be - * scaled, tiled or painted at original size
  • non solid painting - that - * can be done by using a Paint object
  • Also, any component added directly - * to this panel will be made non-opaque so that the custom painting can show - * through. - */ -public class JBackgroundPanel extends JPanel { - private static final long serialVersionUID = 1L; - - public static final int SCALED = 0; - public static final int TILED = 1; - public static final int ACTUAL = 2; - public static final int RATIO = 3; - - private Paint painter; - private Image image; - private int style = SCALED; - private float alignmentX = 0.5f; - private float alignmentY = 0.5f; - private boolean isTransparentAdd = true; - - /** - * Empty {@link JBackgroundPanel}. - */ - public JBackgroundPanel() { - } - - /** - * Empty {@link JBackgroundPanel} with the given {@link LayoutManager}. - */ - public JBackgroundPanel(LayoutManager layout) { - super(layout); - } - - /* - * Set image as the background with the SCALED style - */ - public JBackgroundPanel(ImageIcon image) { - this(image.getImage()); - } - - /* - * Set image as the background with the SCALED style - */ - public JBackgroundPanel(ImageIcon image, int style) { - this(image.getImage(), style); - } - - /* - * Set image as the backround with the specified style and alignment - */ - public JBackgroundPanel(ImageIcon image, int style, float alignmentX, float alignmentY) { - this(image.getImage(), style, alignmentX, alignmentY); - } - - /* - * Set image as the background with the SCALED style - */ - public JBackgroundPanel(Image image) { - this(image, SCALED); - } - - /* - * Set image as the background with the specified style - */ - public JBackgroundPanel(Image image, int style) { - setImage(image); - setStyle(style); - setLayout(new BorderLayout()); - } - - /* - * Set image as the backround with the specified style and alignment - */ - public JBackgroundPanel(Image image, int style, float alignmentX, float alignmentY) { - setImage(image); - setStyle(style); - setImageAlignmentX(alignmentX); - setImageAlignmentY(alignmentY); - setLayout(new BorderLayout()); - } - - /* - * Use the Paint interface to paint a background - */ - public JBackgroundPanel(Paint painter) { - setPaint(painter); - setLayout(new BorderLayout()); - } - - /* - * Set the image used as the background - */ - public void setImage(Image image) { - this.image = image; - repaint(); - } - - /* - * Set the style used to paint the background image - */ - public void setStyle(int style) { - this.style = style; - repaint(); - } - - /* - * Set the Paint object used to paint the background - */ - public void setPaint(Paint painter) { - this.painter = painter; - repaint(); - } - - /* - * Specify the horizontal alignment of the image when using ACTUAL style - */ - public void setImageAlignmentX(float alignmentX) { - this.alignmentX = alignmentX > 1.0f ? 1.0f : alignmentX < 0.0f ? 0.0f : alignmentX; - repaint(); - } - - /* - * Specify the horizontal alignment of the image when using ACTUAL style - */ - public void setImageAlignmentY(float alignmentY) { - this.alignmentY = alignmentY > 1.0f ? 1.0f : alignmentY < 0.0f ? 0.0f : alignmentY; - repaint(); - } - - /* - * Override method so we can make the component transparent - */ - public void add(JComponent component) { - add(component, null); - } - - /* - * Override to provide a preferred size equal to the image size - */ - @Override - public Dimension getPreferredSize() { - if (image == null) - return super.getPreferredSize(); - else - return new Dimension(image.getWidth(null), image.getHeight(null)); - } - - /* - * Override method so we can make the component transparent - */ - public void add(JComponent component, Object constraints) { - if (isTransparentAdd) { - makeComponentTransparent(component); - } - - super.add(component, constraints); - } - - /* - * Controls whether components added to this panel should automatically be - * made transparent. That is, setOpaque(false) will be invoked. The default - * is set to true. - */ - public void setTransparentAdd(boolean isTransparentAdd) { - this.isTransparentAdd = isTransparentAdd; - } - - /* - * Try to make the component transparent. For components that use renderers, - * like JTable, you will also need to change the renderer to be transparent. - * An easy way to do this it to set the background of the table to a Color - * using an alpha value of 0. - */ - private void makeComponentTransparent(JComponent component) { - component.setOpaque(false); - - if (component instanceof JScrollPane) { - JScrollPane scrollPane = (JScrollPane) component; - JViewport viewport = scrollPane.getViewport(); - viewport.setOpaque(false); - Component c = viewport.getView(); - - if (c instanceof JComponent) { - ((JComponent) c).setOpaque(false); - } - } - } - - /* - * Add custom painting - */ - @Override - protected void paintComponent(Graphics g) { - super.paintComponent(g); - - // Invoke the painter for the background - - if (painter != null) { - Dimension d = getSize(); - Graphics2D g2 = (Graphics2D) g; - g2.setPaint(painter); - g2.fill(new Rectangle(0, 0, d.width, d.height)); - } - - // Draw the image - - if (image == null) - return; - - switch (style) { - case RATIO: - drawRatio(g); - break; - - case SCALED: - drawScaled(g); - break; - - case TILED: - drawTiled(g); - break; - - case ACTUAL: - drawActual(g); - break; - - default: - drawScaled(g); - } - } - - /* - * Custom painting code for drawing a SCALED image as the background - */ - private void drawScaled(Graphics g) { - Dimension d = getSize(); - g.drawImage(image, 0, 0, d.width, d.height, null); - } - - /* - * Custom painting code for drawing TILED images as the background - */ - private void drawTiled(Graphics g) { - Dimension d = getSize(); - int width = image.getWidth(null); - int height = image.getHeight(null); - - for (int x = 0; x < d.width; x += width) { - for (int y = 0; y < d.height; y += height) { - g.drawImage(image, x, y, null, null); - } - } - } - - /* - * Custom painting code for drawing the ACTUAL image as the background. The - * image is positioned in the panel based on the horizontal and vertical - * alignments specified. - */ - private void drawActual(Graphics g) { - Dimension d = getSize(); - Insets insets = getInsets(); - int width = d.width - insets.left - insets.right; - int height = d.height - insets.top - insets.left; - float x = (width - image.getWidth(null)) * alignmentX; - float y = (height - image.getHeight(null)) * alignmentY; - g.drawImage(image, (int) x + insets.left, (int) y + insets.top, this); - } - - private void drawRatio(Graphics g) { - if (image != null && g != null) { - // si la dimension actuelle est > � la preferedSize (qui est - // elle-meme a la taille de l'avatar) - int h = (this.getHeight() - image.getHeight(null)) / 2; - int w = (this.getWidth() - image.getWidth(null)) / 2; - if (h < 0) { - h = 0; - } - if (w < 0) { - w = 0; - } - // TODO: alignment, solid paint - - g.drawImage(image, w, h, null, null); - } - } -} \ No newline at end of file -- cgit v1.2.3