blob: 721d58f0f855859028c85a55ed3e57dc017e8930 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.netbeans.modules.tasklist.ui.checklist;
import java.awt.Component;
import javax.swing.JCheckBox;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
/**
* Default renderer for CheckList
*/
public class DefaultCheckListCellRenderer extends JCheckBox
implements ListCellRenderer {
private static final long serialVersionUID = 1;
private static Border noFocusBorder;
/**
* Constructs a default renderer object for an item
* in a list.
*/
public DefaultCheckListCellRenderer() {
super();
if (noFocusBorder == null) {
noFocusBorder = new EmptyBorder(1, 1, 1, 1);
}
setOpaque(true);
setBorder(noFocusBorder);
}
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
setComponentOrientation(list.getComponentOrientation());
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
}
else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
setEnabled(list.isEnabled());
setFont(list.getFont());
if( cellHasFocus ) {
Border b = UIManager.getBorder("List.focusCellHighlightBorder"); //NOI18N
if( null != b && null != b.getBorderInsets(this) )
setBorder( b );
} else {
setBorder( noFocusBorder);
}
setText((value == null) ? "" : value.toString());
setSelected(((CheckListModel) list.getModel()).isChecked(index));
return this;
}
}