1 package org.columba.addressbook.gui.dialog.importfilter; 17 18 import java.awt.Component ; 19 20 import javax.swing.DefaultListCellRenderer ; 21 import javax.swing.JList ; 22 import javax.swing.UIManager ; 23 24 import org.columba.api.plugin.IExtension; 25 import org.columba.api.plugin.IExtensionHandler; 26 import org.columba.api.plugin.PluginHandlerNotFoundException; 27 import org.columba.core.gui.dialog.ErrorDialog; 28 import org.columba.core.plugin.PluginManager; 29 30 31 public class PluginListCellRenderer extends DefaultListCellRenderer { 32 protected IExtensionHandler pluginHandler; 33 34 public PluginListCellRenderer() { 35 super(); 36 37 try { 38 pluginHandler = PluginManager.getInstance().getExtensionHandler( 39 "org.columba.addressbook.import"); 40 } catch (PluginHandlerNotFoundException ex) { 41 ErrorDialog.createDialog(ex.getMessage(), ex); 42 } 43 } 44 45 48 public Component getListCellRendererComponent(JList list, Object value, 49 int index, boolean isSelected, boolean cellHasFocus) { 50 if (isSelected) { 51 setBackground(list.getSelectionBackground()); 52 setForeground(list.getSelectionForeground()); 53 } else { 54 setBackground(list.getBackground()); 55 setForeground(list.getForeground()); 56 } 57 58 setBorder((cellHasFocus) 59 ? UIManager.getBorder("List.focusCellHighlightBorder") : noFocusBorder); 60 61 String id = (String ) value; 63 IExtension extension = pluginHandler.getExtension(id); 64 String userVisibleName = extension.getMetadata().getId(); 65 setText(userVisibleName); 66 67 return this; 68 } 69 } 70 | Popular Tags |