/*
* This file is part of DRBD Management Console by LINBIT HA-Solutions GmbH
* by Rasto Levrinc.
*
* Copyright (C) 2009, Rastislav Levrinc
* Copyright (C) 2009, LINBIT HA-Solutions GmbH.
*
* DRBD Management Console is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* DRBD Management Console is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with drbd; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package lcmc.common.ui.utils;
import java.awt.Color;
import java.awt.Component;
import javax.swing.AbstractButton;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
/**
* Cells with jlabels, widths and colors.
*/
public class MyButtonCellRenderer extends MyButton implements TableCellRenderer {
/** Sets background color and padding in jlabels for every cell. */
@Override
public final Component getTableCellRendererComponent(final JTable table,
final Object value,
final boolean isSelected,
final boolean hasFocus,
final int row,
final int column) {
if (!(value instanceof MyButton)) {
return this;
}
final MyButton button = (MyButton) value;
if (button.getModel().isPressed()) {
setOpaque(true);
} else {
setOpaque(button.isOpaque());
}
setText(button.getText());
setIcon(button.getIcon());
setMargin(button.getInsets());
setFont(button.getFont());
setIconTextGap(button.getIconTextGap());
getModel().setPressed(button.getModel().isPressed());
getModel().setArmed(button.getModel().isArmed());
getModel().setRollover(button.getModel().isRollover());
final int al = getColumnAlignment(column);
setHorizontalAlignment(al);
final Object v = table.getValueAt(row, 0);
if (v instanceof MyButton) {
final String key = ((AbstractButton) v).getText();
final Color bg = getRowColor(key);
setBackgroundColor(bg);
//setToolTipText(button.getText());
}
//(((MyButton) this).createToolTip()).setTipText("asdf");
//(((MyButton) button).createToolTip()).setTipText("asdff");
return this;
}
/** Alignment for the specified column. */
protected int getColumnAlignment(final int column) {
return LEFT;
}
/** Retrurns color for some rows. */
protected Color getRowColor(final String key) {
return null;
}
}