X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fui%2FUIUtils.java;fp=src%2Fbe%2Fnikiroo%2Futils%2Fui%2FUIUtils.java;h=0000000000000000000000000000000000000000;hb=46add0670fdee4bd936a13fe2448c5e20a7ffd0a;hp=24cbf64a5f138a26edc64230301ef401e5438482;hpb=1b5197ed4ceec2025a9a40c417b37c646b756138;p=nikiroo-utils.git diff --git a/src/be/nikiroo/utils/ui/UIUtils.java b/src/be/nikiroo/utils/ui/UIUtils.java deleted file mode 100644 index 24cbf64..0000000 --- a/src/be/nikiroo/utils/ui/UIUtils.java +++ /dev/null @@ -1,118 +0,0 @@ -package be.nikiroo.utils.ui; - -import java.awt.Color; -import java.awt.GradientPaint; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Paint; -import java.awt.RadialGradientPaint; -import java.awt.RenderingHints; - -import javax.swing.UIManager; -import javax.swing.UnsupportedLookAndFeelException; - -/** - * Some Java Swing utilities. - * - * @author niki - */ -public class UIUtils { - /** - * Set a fake "native look & feel" for the application if possible - * (check for the one currently in use, then try GTK). - *

- * Must be called prior to any GUI work. - */ - static public void setLookAndFeel() { - // native look & feel - try { - String noLF = "javax.swing.plaf.metal.MetalLookAndFeel"; - String lf = UIManager.getSystemLookAndFeelClassName(); - if (lf.equals(noLF)) - lf = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"; - UIManager.setLookAndFeel(lf); - } catch (InstantiationException e) { - } catch (ClassNotFoundException e) { - } catch (UnsupportedLookAndFeelException e) { - } catch (IllegalAccessException e) { - } - } - - /** - * Draw a 3D-looking ellipse at the given location, if the given - * {@link Graphics} object is compatible (with {@link Graphics2D}); draw a - * simple ellipse if not. - * - * @param g - * the {@link Graphics} to draw on - * @param color - * the base colour - * @param x - * the X coordinate - * @param y - * the Y coordinate - * @param width - * the width radius - * @param height - * the height radius - */ - static public void drawEllipse3D(Graphics g, Color color, int x, int y, - int width, int height) { - if (g instanceof Graphics2D) { - Graphics2D g2 = (Graphics2D) g; - g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - - // Retains the previous state - Paint oldPaint = g2.getPaint(); - - // Base shape - g2.setColor(color); - g2.fillOval(x, y, width, height); - - // Compute dark/bright colours - Paint p = null; - Color dark = color.darker(); - Color bright = color.brighter(); - Color darkEnd = new Color(dark.getRed(), dark.getGreen(), - dark.getBlue(), 0); - Color darkPartial = new Color(dark.getRed(), dark.getGreen(), - dark.getBlue(), 64); - Color brightEnd = new Color(bright.getRed(), bright.getGreen(), - bright.getBlue(), 0); - - // Adds shadows at the bottom left - p = new GradientPaint(0, height, dark, width, 0, darkEnd); - g2.setPaint(p); - g2.fillOval(x, y, width, height); - - // Adds highlights at the top right - p = new GradientPaint(width, 0, bright, 0, height, brightEnd); - g2.setPaint(p); - g2.fillOval(x, y, width, height); - - // Darken the edges - p = new RadialGradientPaint(x + width / 2f, y + height / 2f, - Math.min(width / 2f, height / 2f), new float[] { 0f, 1f }, - new Color[] { darkEnd, darkPartial }, - RadialGradientPaint.CycleMethod.NO_CYCLE); - g2.setPaint(p); - g2.fillOval(x, y, width, height); - - // Adds inner highlight at the top right - p = new RadialGradientPaint(x + 3f * width / 4f, y + height / 4f, - Math.min(width / 4f, height / 4f), - new float[] { 0.0f, 0.8f }, - new Color[] { bright, brightEnd }, - RadialGradientPaint.CycleMethod.NO_CYCLE); - g2.setPaint(p); - g2.fillOval(x * 2, y, width, height); - - // Reset original paint - g2.setPaint(oldPaint); - } else { - g.setColor(color); - g.fillOval(x, y, width, height); - } - } -}