/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package Sirius.navigator.ui.widget;
/*******************************************************************************
*
* Copyright (c) : EIG (Environmental Informatics Group)
* http://www.htw-saarland.de/eig
* Prof. Dr. Reiner Guettler
* Prof. Dr. Ralf Denzer
*
* HTWdS
* Hochschule fuer Technik und Wirtschaft des Saarlandes
* Goebenstr. 40
* 66117 Saarbruecken
* Germany
*
* Programmers : Pascal
*
* Project : WuNDA 2
* Filename :
* Version : 1.0
* Purpose :
* Created : 01.10.1999
* History :
*
*******************************************************************************/
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
/**
* DOCUMENT ME!
*
* @version $Revision$, $Date$
*/
public class MutablePanel extends JPanel {
//~ Instance fields --------------------------------------------------------
// public final static String ENABLED = "enabledPanel";
// public final static String DISABLED = "disabledPanel";
// protected boolean disabled = false;
protected JPanel enabledPanel;
protected JPanel disabledPanel;
protected JLabel disabledLabel;
//~ Constructors -----------------------------------------------------------
/**
* //_TA_protected String disabledString = new String("Diese Widget ist z.Z. nicht anzeigbar"); protected String
* disabledString = new String(StringLoader.getString("STL@widgetNotAvailable"));
*
* @param enabledPanel DOCUMENT ME!
*/
public MutablePanel(final JPanel enabledPanel) {
this(enabledPanel, null);
}
/**
* Creates a new MutablePanel object.
*
* @param enabledPanel DOCUMENT ME!
* @param disabledMessage DOCUMENT ME!
*/
public MutablePanel(final JPanel enabledPanel, final String disabledMessage) {
super(new CardLayout());
this.enabledPanel = enabledPanel;
disabledLabel = new JLabel(disabledMessage);
disabledLabel.setVerticalAlignment(JLabel.CENTER);
disabledLabel.setHorizontalAlignment(JLabel.CENTER);
disabledLabel.setBorder(new EmptyBorder(5, 5, 5, 5));
disabledPanel = new JPanel(new BorderLayout());
disabledPanel.add(disabledLabel, BorderLayout.CENTER);
this.setEnabledPanel(enabledPanel);
this.setDisabledPanel(disabledPanel);
}
//~ Methods ----------------------------------------------------------------
@Override
public void setEnabled(final boolean enabled) {
if (SwingUtilities.isEventDispatchThread()) {
super.setEnabled(enabled);
if (enabled) {
((CardLayout)this.getLayout()).show(this, "enabledPanel"); // NOI18N
} else {
((CardLayout)this.getLayout()).show(this, "disabledPanel"); // NOI18N
}
} else {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MutablePanel.this.setEnabled(enabled);
}
});
}
}
/**
* Getter for property enabledPanel.
*
* @return Value of property enabledPanel.
*/
public JPanel getEnabledPanel() {
return this.enabledPanel;
}
/**
* Setter for property enabledPanel.
*
* @param enabledPanel New value of property enabledPanel.
*/
public void setEnabledPanel(final JPanel enabledPanel) {
this.remove(this.enabledPanel);
this.add(enabledPanel, "enabledPanel"); // NOI18N
this.enabledPanel = enabledPanel;
}
/**
* Getter for property disabledPanel.
*
* @return Value of property disabledPanel.
*/
public JPanel getDisabledPanel() {
return this.disabledPanel;
}
/**
* Setter for property disabledPanel.
*
* @param disabledPanel New value of property disabledPanel.
*/
public void setDisabledPanel(final JPanel disabledPanel) {
this.remove(this.disabledPanel);
this.add(disabledPanel, "disabledPanel"); // NOI18N
this.disabledPanel = disabledPanel;
}
/**
* DOCUMENT ME!
*
* @param message DOCUMENT ME!
*/
public void setDisabledMessage(final String message) {
this.disabledLabel.setText(message);
}
}