/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/*
* SimpleBackgroundedJPanel.java
*
* Created on 4. April 2005, 18:09
*/
package de.cismet.cismap.commons.gui;
import edu.umd.cs.piccolo.PCanvas;
import javax.swing.JPanel;
/**
* DOCUMENT ME!
*
* @author hell
* @version $Revision$, $Date$
*/
public class SimpleBackgroundedJPanel extends JPanel implements java.beans.PropertyChangeListener {
//~ Instance fields --------------------------------------------------------
PCanvas viewer;
private boolean backgroundEnabled;
//~ Constructors -----------------------------------------------------------
/**
* Creates a new instance of SimpleBackgroundedJPanel.
*/
public SimpleBackgroundedJPanel() {
addComponentListener(new java.awt.event.ComponentAdapter() {
@Override
public void componentResized(final java.awt.event.ComponentEvent evt) {
formComponentResized(evt);
}
});
}
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
public void formComponentResized(final java.awt.event.ComponentEvent evt) {
if (viewer != null) {
viewer.setSize(evt.getComponent().getSize());
}
}
/**
* DOCUMENT ME!
*
* @param v DOCUMENT ME!
*/
public void setPCanvas(final PCanvas v) {
viewer = v;
// viewer.addPropertyChangeListener(this);
viewer.getCamera().addPropertyChangeListener(this);
}
@Override
public void paint(final java.awt.Graphics g) {
super.paintComponent(g);
if (viewer != null) { // &&backgroundEnabled==true) {
try {
viewer.paint(g);
} catch (Exception e) {
}
}
// g.setColor(new Color(g.getColor().getRed(),g.getColor().getGreen(),g.getColor().getBlue(),200));
super.paintChildren(g);
// super.paint(g);
}
@Override
public void propertyChange(final java.beans.PropertyChangeEvent evt) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
repaint();
}
});
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public boolean isBackgroundEnabled() {
return backgroundEnabled;
}
/**
* DOCUMENT ME!
*
* @param enabled DOCUMENT ME!
*/
public void setBackgroundEnabled(final boolean enabled) {
if (viewer != null) {
// if (enabled!=backgroundEnabled) {
if (!enabled) {
viewer.getCamera().animateToTransparency(0, 1000);
} else {
viewer.getCamera().animateToTransparency(0.3f, 1000);
}
// }
}
backgroundEnabled = enabled;
// this.backgroundEnabled = enabled;
// java.awt.EventQueue.invokeLater(new Runnable() {
// public void run() {
// repaint();
// }
// });
}
}