/*
* JXLayerContentPane.java
*
* Created on 2009-04-07, 15:35:05
*/
package app.navigps.gui.detailspanel;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Graphics;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import org.jdesktop.jxlayer.JXLayer;
import org.jdesktop.jxlayer.plaf.AbstractLayerUI;
import org.jdesktop.jxlayer.plaf.LayerUI;
/**
*
* @author Grzegorz (wara) Warywoda
*/
public class JXLayerContentPane extends ContentPaneForRoundWindow{
private JXLayer<AlphaJPanel> jxlayer;
private AlphaJPanel contentPane;
public JXLayerContentPane(){
contentPane = new AlphaJPanel();
contentPane.setOpaque(false);
setLayout(new BorderLayout());
add(new JXLayer<AlphaJPanel>(),BorderLayout.CENTER);
jxlayer.setView(contentPane);
//jxlayer.addPropertyChangeListener();
}
public void setJXLayerUI(LayerUI ui){
((AbstractLayerUI)ui).
addPropertyChangeListener("locked",new JXLayerLockedListener());
jxlayer.setUI(ui);
}
public LayerUI getLayerUI(){
return jxlayer.getUI();
}
@Override
protected void addImpl(Component comp, Object constraints, int index) {
if(comp instanceof JXLayer){
super.remove(comp);
super.addImpl(comp, constraints, 0);
jxlayer = (JXLayer)comp;
}else{
contentPane.add(comp, constraints);
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
contentPane.paintComponent(g);
}
@Override
public boolean setAlpha(float alpha) {
super.setAlpha(alpha);
return contentPane.setAlpha(alpha);
}
@Override
public float getAlpha() {
return contentPane.getAlpha();
}
/*
@Override
public void removeAll() {
contentPane.removeAll();
}
@Override
public void remove(int index) {
contentPane.remove(index);
}
@Override
public Component getComponent(int n) {
return contentPane.getComponent(n);
}
@Override
public Component[] getComponents() {
return contentPane.getComponents();
}
*/
private class JXLayerLockedListener implements PropertyChangeListener{
@Override
public void propertyChange(PropertyChangeEvent evt) {
if( !((Boolean)evt.getNewValue()) ){
System.err.println("Locked down !");
//contentPane.repaint();
//jxlayer.repaint();
}
}
}
}