package com.eas.client.utils.scalableui;
import java.awt.AWTEvent;
import java.awt.Component;
import java.awt.EventQueue;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JViewport;
import javax.swing.plaf.basic.BasicComboPopup;
/**
*
* @author Marat
*/
public class ScalableComboPopup extends BasicComboPopup {
JScalablePanel scalablePane = null;
protected boolean oldOpaque = false;
public ScalableComboPopup(JComboBox aCombo)
{
super(aCombo);
scalablePane = ZoomRepaintManager.getPanelContainer(aCombo);
}
@Override
public void setVisible(boolean b) {
if(b)
super.setVisible(b);
else
{
AWTEvent evt = EventQueue.getCurrentEvent();
if(evt == null || !(evt.getSource() instanceof DrawWallPanel) ||
((JScalablePanel)((DrawWallPanel)evt.getSource()).getParent()).isForceHidePopups() )
super.setVisible(b);
}
}
public void onInstall()
{
JViewport viewport = scroller.getViewport();
if(viewport != null)
{
Component lview = viewport.getView();
if(lview != null && lview instanceof JComponent)
{
JComponent ljcview = (JComponent)lview;
oldOpaque = ljcview.isOpaque();
ljcview.setOpaque(false);
}
}
}
public void onUninstall()
{
JViewport viewport = scroller.getViewport();
if(viewport != null)
{
Component lview = viewport.getView();
if(lview != null && lview instanceof JComponent)
{
JComponent ljcview = (JComponent)lview;
oldOpaque = ljcview.isOpaque();
ljcview.setOpaque(oldOpaque);
}
}
}
}