/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cids.custom.switchon.gui.utils;
import org.jdesktop.swingx.JXDatePicker;
import org.jdesktop.swingx.JXHyperlink;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFormattedTextField;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.text.JTextComponent;
/**
* Contains some methods to set gui components to read only.
*
* @version $Revision$, $Date$
*/
public class RendererTools {
//~ Static fields/initializers ---------------------------------------------
private static final JTextField txtTemp;
static {
txtTemp = new JFormattedTextField();
txtTemp.setEnabled(false);
}
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @param comp DOCUMENT ME!
*/
public static void makeReadOnly(final JComponent comp) {
if (comp instanceof JTextComponent) {
final JTextComponent tComp = (JTextComponent)comp;
tComp.setEditable(false);
tComp.setOpaque(false);
tComp.setBorder(null);
} else if (comp instanceof JScrollPane) {
final JScrollPane jsp = (JScrollPane)comp;
jsp.setOpaque(false);
jsp.getViewport().setOpaque(false);
} else if (comp instanceof JComboBox) {
final JComboBox cb = (JComboBox)comp;
cb.setEnabled(false);
cb.setRenderer(new CustomListCellRenderer());
makeTextBlackOfDisabledComboBox(cb);
} else if (comp instanceof JXDatePicker) {
final JXDatePicker dc = (JXDatePicker)comp;
dc.setEnabled(false);
dc.getEditor().setDisabledTextColor(Color.BLACK);
dc.getEditor().setOpaque(false);
dc.getEditor().setBorder(null);
// make the button invisible
dc.getComponent(1).setVisible(false);
} else if (comp instanceof JCheckBox) {
((JCheckBox)comp).setEnabled(false);
} else if (comp instanceof JXHyperlink) {
final JXHyperlink hl = (JXHyperlink)comp;
hl.setEnabled(false);
} else if (comp != null) {
comp.setEnabled(false);
}
}
/**
* DOCUMENT ME!
*
* @param comboBox DOCUMENT ME!
*/
public static void makeTextBlackOfDisabledComboBox(final JComboBox comboBox) {
final Component editorComponent = comboBox.getEditor().getEditorComponent();
if (editorComponent instanceof JTextComponent) {
((JTextComponent)editorComponent).setDisabledTextColor(Color.black);
((JTextComponent)editorComponent).setBackground(Color.white);
}
}
/**
* DOCUMENT ME!
*
* @param comp DOCUMENT ME!
*/
public static void resetComponent(final JComponent comp) {
if (comp instanceof JTextComponent) {
final JTextComponent tComp = (JTextComponent)comp;
tComp.setEditable(true);
tComp.setOpaque(true);
String borderKey;
if (comp instanceof JTextField) {
borderKey = "TextField.border";
} else {
borderKey = "TextArea.border";
}
tComp.setBorder(UIManager.getBorder(borderKey));
} else if (comp instanceof JScrollPane) {
final JScrollPane jsp = (JScrollPane)comp;
jsp.setOpaque(true);
jsp.getViewport().setOpaque(true);
} else if (comp != null) {
comp.setEnabled(true);
}
}
}