Coverage Report - org.openpermis.editor.policy.renderer.PartBeanListCellRenderer
 
Classes in this File Line Coverage Branch Coverage Complexity
PartBeanListCellRenderer
0%
0/14
0%
0/4
1.667
 
 1  
 /*
 2  
  * Copyright (c) 2009, Ergon Informatik AG (http://www.ergon.ch)
 3  
  * All rights reserved.
 4  
  * 
 5  
  * Licensed under the Open Permis License which accompanies this distribution, 
 6  
  * and is available at http://www.openpermis.org/BSDlicenceKent.txt
 7  
  */
 8  
 package org.openpermis.editor.policy.renderer;
 9  
 
 10  
 import java.awt.Component;
 11  
 
 12  
 import javax.swing.DefaultListCellRenderer;
 13  
 import javax.swing.JList;
 14  
 
 15  
 import org.openpermis.editor.policy.adapter.Adaptee;
 16  
 import org.openpermis.editor.policy.adapter.AdapterTrader;
 17  
 import org.openpermis.policy.bean.PartBean;
 18  
 
 19  
 
 20  
 /**
 21  
  * 
 22  
  * @since 0.3.0
 23  
  */
 24  
 public class PartBeanListCellRenderer extends DefaultListCellRenderer {
 25  
 
 26  
         //---- Static
 27  
         
 28  
         private static final long serialVersionUID = -4287720706786871362L;
 29  
         
 30  
         //---- State
 31  
         
 32  
         private AdapterTrader trader;
 33  
         
 34  
         private Class<? extends Adaptee<String>> textAdapteeType;
 35  
         
 36  
         private Class<? extends Adaptee<String>> tipAdapteeType;
 37  
         
 38  
         //---- Constructors
 39  
         
 40  
         /**
 41  
          * @since 0.3.0
 42  
          */
 43  
         public PartBeanListCellRenderer (
 44  
                 AdapterTrader trader, Class<? extends Adaptee<String>> textAdapteeType
 45  0
         ) {
 46  0
                 this.trader = trader;
 47  0
                 this.textAdapteeType = textAdapteeType;
 48  0
         }
 49  
         
 50  
         /**
 51  
          * @since 0.3.0
 52  
          */
 53  
         public PartBeanListCellRenderer (
 54  
                 AdapterTrader trader, 
 55  
                 Class<? extends Adaptee<String>> textAdapteeType, 
 56  
                         Class<? extends Adaptee<String>> tipAdapteeType
 57  
         ) {
 58  0
                 this(trader, textAdapteeType);
 59  0
                 this.tipAdapteeType = tipAdapteeType;
 60  0
         }
 61  
         
 62  
         //---- DefaultListCellRenderer
 63  
         
 64  
         /**
 65  
          * @since 0.3.0
 66  
          */
 67  
         @Override
 68  
         public Component getListCellRendererComponent (
 69  
                 JList list, Object value, int index, boolean isSelected, boolean cellHasFocus
 70  
         ) {
 71  0
                 final Component original = 
 72  
                         super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
 73  0
                 if (value == null) {
 74  0
                         this.setText("");
 75  
                 } else {
 76  0
                         this.setText(this.trader.adaptTo((PartBean) value, this.textAdapteeType).get());
 77  0
                         if (this.tipAdapteeType != null) {
 78  0
                                 this.setToolTipText(
 79  
                                         this.trader.adaptTo((PartBean) value, this.tipAdapteeType).get()
 80  
                                 );
 81  
                         }
 82  
                 }
 83  0
                 return original;
 84  
         }
 85  
 
 86  
 
 87  
 }