/** * * Copyright * 2009-2015 Jayway Products AB * 2016-2017 Föreningen Sambruk * * Licensed under AGPL, Version 3.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.gnu.org/licenses/agpl.txt * * 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 se.streamsource.streamflow.client.ui; import org.jdesktop.swingx.renderer.DefaultListRenderer; import org.jdesktop.swingx.renderer.IconValue; import org.jdesktop.swingx.renderer.StringValue; import org.jdesktop.swingx.renderer.WrappingProvider; import se.streamsource.streamflow.client.Icons; import se.streamsource.streamflow.client.util.i18n; import javax.swing.*; import java.awt.*; /** * JAVADOC */ public class ContextItemListRenderer extends DefaultListRenderer { public ContextItemListRenderer() { super(new WrappingProvider( new IconValue() { public Icon getIcon(Object o) { ContextItem item = (ContextItem) o; return i18n.icon(Icons.valueOf(item.getRelation()), 16); } }, new StringValue() { public String getString(Object o) { ContextItem item = (ContextItem) o; String str = item.getName(); if (item.getCount() > 0) str += " (" + item.getCount() + ")"; return str; } }, false )); } @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { JComponent component = (JComponent) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); ContextItem contextItem = (ContextItem) value; if (contextItem.getRelation().equals("perspective")) { component.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0)); } else { component.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0)); } return component; } }