2008-04-20 16:03:19 +00:00
package net.sourceforge.tuned.ui ;
2008-10-21 17:49:08 +00:00
import java.awt.Color ;
2008-04-20 16:03:19 +00:00
import java.awt.Dimension ;
2008-06-21 19:24:18 +00:00
import java.awt.Graphics2D ;
import java.awt.Image ;
2008-04-20 16:03:19 +00:00
import java.awt.Point ;
import java.awt.Window ;
2008-04-27 17:36:27 +00:00
import java.awt.event.ActionEvent ;
import java.awt.event.ActionListener ;
2008-06-21 19:24:18 +00:00
import java.awt.image.BufferedImage ;
2008-04-20 16:03:19 +00:00
import javax.swing.Action ;
2008-06-21 19:24:18 +00:00
import javax.swing.Icon ;
2008-07-30 22:37:01 +00:00
import javax.swing.ImageIcon ;
2008-04-20 16:03:19 +00:00
import javax.swing.JComponent ;
import javax.swing.JDialog ;
import javax.swing.KeyStroke ;
2008-07-30 22:37:01 +00:00
import javax.swing.SwingUtilities ;
2008-04-27 17:36:27 +00:00
import javax.swing.Timer ;
2008-04-20 16:03:19 +00:00
2008-10-10 19:20:37 +00:00
public final class TunedUtil {
2008-04-20 16:03:19 +00:00
2008-10-21 17:49:08 +00:00
public static final Color TRANSLUCENT = new Color ( 255 , 255 , 255 , 0 ) ;
2008-07-30 22:37:01 +00:00
public static void checkEventDispatchThread ( ) {
if ( ! SwingUtilities . isEventDispatchThread ( ) ) {
throw new IllegalStateException ( " Method must be accessed from the Swing Event Dispatch Thread, but was called on Thread \" " + Thread . currentThread ( ) . getName ( ) + " \" " ) ;
}
2008-05-03 20:43:15 +00:00
}
2008-07-30 22:37:01 +00:00
public static void putActionForKeystroke ( JComponent component , KeyStroke keystroke , Action action ) {
2008-04-20 16:03:19 +00:00
Integer key = action . hashCode ( ) ;
component . getInputMap ( JComponent . WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ) . put ( keystroke , key ) ;
component . getActionMap ( ) . put ( key , action ) ;
}
public static Point getPreferredLocation ( JDialog dialog ) {
Window owner = dialog . getOwner ( ) ;
if ( owner = = null )
return new Point ( 120 , 80 ) ;
Point p = owner . getLocation ( ) ;
Dimension d = owner . getSize ( ) ;
return new Point ( p . x + d . width / 4 , p . y + d . height / 7 ) ;
}
2008-04-27 17:36:27 +00:00
2008-06-21 19:24:18 +00:00
public static Image getImage ( Icon icon ) {
2008-07-30 22:37:01 +00:00
if ( icon instanceof ImageIcon ) {
return ( ( ImageIcon ) icon ) . getImage ( ) ;
}
2008-06-21 19:24:18 +00:00
BufferedImage image = new BufferedImage ( icon . getIconWidth ( ) , icon . getIconHeight ( ) , BufferedImage . TYPE_INT_ARGB ) ;
Graphics2D g2d = image . createGraphics ( ) ;
icon . paintIcon ( null , g2d , 0 , 0 ) ;
g2d . dispose ( ) ;
return image ;
}
2008-12-31 11:54:44 +00:00
public static Dimension getDimension ( Icon icon ) {
return new Dimension ( icon . getIconWidth ( ) , icon . getIconHeight ( ) ) ;
}
2008-04-27 17:36:27 +00:00
public static Timer invokeLater ( int delay , final Runnable runnable ) {
Timer timer = new Timer ( delay , new ActionListener ( ) {
@Override
public void actionPerformed ( ActionEvent e ) {
runnable . run ( ) ;
}
} ) ;
timer . setRepeats ( false ) ;
timer . start ( ) ;
return timer ;
}
2008-07-30 22:37:01 +00:00
2008-10-10 19:20:37 +00:00
/ * *
* Dummy constructor to prevent instantiation .
* /
2008-07-30 22:37:01 +00:00
private TunedUtil ( ) {
2008-10-10 19:20:37 +00:00
throw new UnsupportedOperationException ( ) ;
2008-07-30 22:37:01 +00:00
}
2008-04-20 16:03:19 +00:00
}