package app.navigps.gui.detailspanel; import app.navigps.utils.GraphicsUtilities; import java.awt.Component; import java.awt.Container; import java.awt.image.BufferedImage; import java.net.URL; import javax.swing.ImageIcon; /** * * @author Grzegorz (vara) Warywoda */ public class RoundWindowUtils { /** * * @param container * @return */ public static Container getRoundWindowFromContainer(Container container){ SearchRoundWindow.search(container); return SearchRoundWindow.getRoundWindow(); } public static RoundWindow getParentRoundWindow(Component comp){ RoundWindow instance = null; for (Container cont = comp.getParent(); cont != null; cont = cont.getParent()) { if(cont instanceof RoundWindow) { instance = (RoundWindow)cont; } } return instance; } private static class SearchRoundWindow{ private static Container roundWindow = null; private static boolean done = false; private static void search(Container container){ Component [] child = container.getComponents(); for (Component component : child) { if(done) break; if(component instanceof Container){ if(component instanceof RoundWindow){ setRoundWindow((Container)component); done = true; break; } search((Container)component); } } } private static void setRoundWindow(Container cont){ roundWindow = cont; } private static Container getRoundWindow(){ Container retVal = roundWindow; roundWindow = null; done = false; return retVal; } } public static ImageIcon getIcons(String name,int size){ BufferedImage bi = loadThumbnailIcon("resources/graphics/icons/", name, size, true); if(bi != null){ return new ImageIcon(bi); } return null; } protected static BufferedImage loadThumbnailIcon(String path,String name,int size,boolean verb){ try { URL href = RoundWindow.class.getResource(path+name); BufferedImage bi = GraphicsUtilities.loadCompatibleImage(href); return GraphicsUtilities.createThumbnail(bi,size); } catch (Exception ex) { if(verb){ System.err.println(""+ex); } } return null; } }