package org.limewire.ui.swing.browser; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.JFrame; import javax.swing.JToolBar; import org.limewire.ui.swing.components.LimeIconInfo; import org.limewire.ui.swing.util.NativeLaunchUtils; import org.limewire.ui.swing.util.SwingUtils; import org.limewire.util.SystemUtils; import org.mozilla.browser.IMozillaWindow; import org.mozilla.browser.MozillaPanel; import org.mozilla.browser.impl.ChromeAdapter; public class MozillaPopupPanel extends MozillaPanel { private final LimeIconInfo iconInfo = new LimeIconInfo(); public MozillaPopupPanel(boolean attachNewBrowserOnCreation) { super(null, attachNewBrowserOnCreation, null, null); initialize(); } @Override public void addNotify() { super.addNotify(); SystemUtils.setWindowIcon(this, iconInfo.getIconFile()); } @Override public void setContainerWindow(IMozillaWindow parentWin) { super.setContainerWindow(parentWin); if (parentWin != null && parentWin instanceof JFrame) { JFrame frame = (JFrame) parentWin; frame.setIconImage(iconInfo.getImage()); } } private void initialize() { JToolBar toolbar = getToolbar(); toolbar.add(new AbstractAction("Out") { // TODO: Add a picture. public void actionPerformed(ActionEvent e) { NativeLaunchUtils.openURL(getUrl()); } }); } @Override public void onAttachBrowser(final ChromeAdapter chromeAdapter, ChromeAdapter parentChromeAdapter) { super.onAttachBrowser(chromeAdapter, parentChromeAdapter); BrowserUtils.addDomListener(chromeAdapter); SwingUtils.invokeLater(new Runnable() { public void run() { addKeyListener(new MozillaKeyListener(chromeAdapter)); } }); } @Override public void onDetachBrowser() { if (getChromeAdapter() != null) { BrowserUtils.removeDomListener(getChromeAdapter()); } super.onDetachBrowser(); } }