Coverage report

  %line %branch
ca.spaz.cron.summary.SwitchableSummaryPanel
0% 
0% 

 1  
 /*
 2  
  *******************************************************************************
 3  
  * Copyright (c) 2005 Chris Rose and AIMedia
 4  
  * All rights reserved. SwitchableSummaryPanel and the accompanying materials
 5  
  * are made available under the terms of the Common Public License v1.0
 6  
  * which accompanies this distribution, and is available at
 7  
  * http://www.eclipse.org/legal/cpl-v10.html
 8  
  * 
 9  
  * Contributors:
 10  
  *     Chris Rose
 11  
  *******************************************************************************/
 12  
 package ca.spaz.cron.summary;
 13  
 
 14  
 import java.util.*;
 15  
 
 16  
 import javax.swing.*;
 17  
 
 18  
 import com.aimedia.ui.IValueListUser;
 19  
 
 20  
 /**
 21  
  * This is a generic summaryPanel subclass that allows for multiple subpanels
 22  
  * for viewing nutrient summary information.  Subclasses of it can add and remove
 23  
  * subpanels that will be displayed in a tabbed layout.
 24  
  *  
 25  
  * @deprecated No longer needed for UI
 26  
  * @author Chris Rose
 27  
  */
 28  
 public abstract class SwitchableSummaryPanel extends SummaryPanel {
 29  
 
 30  
     private Map panelMap;
 31  
     private Map iconMap;
 32  
     private JComponent currentContent;
 33  
     private JTabbedPane tabbedPane;
 34  
 
 35  
     /**
 36  
      * Create a new instance.
 37  
      */
 38  
     protected SwitchableSummaryPanel() {
 39  0
         this(null);
 40  0
     }
 41  
 
 42  
     /**
 43  
      * @param fieldOrdering
 44  
      */
 45  
     protected SwitchableSummaryPanel(Comparator fieldOrdering) {
 46  0
         super(fieldOrdering);
 47  0
         this.iconMap = new HashMap();
 48  0
         this.panelMap = new HashMap();
 49  0
     }
 50  
 
 51  
     /**
 52  
      * @return Returns the tabbedPane.
 53  
      */
 54  
     private JTabbedPane getTabbedPane() {
 55  0
         if (null == tabbedPane) {
 56  0
             tabbedPane = new JTabbedPane(JTabbedPane.LEFT, JTabbedPane.SCROLL_TAB_LAYOUT);
 57  
         }
 58  0
         return tabbedPane;
 59  
     }
 60  
 
 61  
     /* (non-Javadoc)
 62  
      * @see ca.spaz.cron.SummaryPanel#doValueUpdate(java.lang.String)
 63  
      */
 64  
     protected void doValueUpdate(String valueName) {
 65  0
         List vl = getValueList();
 66  0
         for (Iterator iter = panelMap.values().iterator(); iter.hasNext();) {
 67  0
             IValueListUser ivl = (IValueListUser) iter.next();
 68  0
             ivl.setValueList(vl);
 69  0
         }
 70  0
     }
 71  
 
 72  
     /**
 73  
      * Add a new content panel to the summary panel.
 74  
      * @param cpName the name (Human-usable) of the panel.  Will be used for the label
 75  
      * of the panel.
 76  
      * @param content the panel to add.  This <em>must</em> be a 
 77  
      * <code>JComponent</code> subclass.
 78  
      * @throws IllegalArgumentException if the content argument does not descend from
 79  
      * <code>JComponent</code>.
 80  
      */
 81  
     protected final void addContentPane(String cpName, IValueListUser content) {
 82  0
         addContentPane(cpName, null, content);
 83  0
     }
 84  
     
 85  
     /**
 86  
      * Add a new content panel to the summary panel.
 87  
      * @param cpName the name (Human-usable) of the panel.  Will be used for the label
 88  
      * of the panel.
 89  
      * @param cpIcon an icon for display on the label of the component.  If null, no icon
 90  
      * will appear.
 91  
      * @param content the panel to add.  This <em>must</em> be a 
 92  
      * <code>JComponent</code> subclass.
 93  
      * @throws IllegalArgumentException if the content argument does not descend from
 94  
      * <code>JComponent</code>.
 95  
      */
 96  
     protected final void addContentPane(String cpName, Icon cpIcon, IValueListUser content) {
 97  0
         if (!(content instanceof JComponent)) {
 98  0
             throw new IllegalArgumentException("Content must also be a Swing component");
 99  
         }
 100  0
         panelMap.put(cpName, content);
 101  0
         iconMap.put(cpName, cpIcon);
 102  0
         getTabbedPane().addTab(cpName, cpIcon, (JComponent) content);
 103  0
     }
 104  
     
 105  
     /**
 106  
      * Remove the named content pane from the summary panel.
 107  
      * @param cpName the content pane to remove.
 108  
      */
 109  
     protected final void removeContentPane(String cpName) {
 110  0
         getTabbedPane().remove((JComponent) panelMap.remove(cpName));
 111  0
         iconMap.remove(cpName);
 112  0
     }
 113  
     
 114  
     /**
 115  
      * Get a list of available content panes.
 116  
      * @return a <code>List</code> of content pane names (<code>String</code>s)
 117  
      */
 118  
     protected final List getAvailableContentPanes() {
 119  0
         List ret = Collections.unmodifiableList(new ArrayList(panelMap.keySet()));
 120  0
         return ret;
 121  
     }
 122  
     
 123  
     /**
 124  
      * Get the icon for a given content pane.
 125  
      * @param cpName the pane to retrieve the icon for.
 126  
      * @return an <code>Icon</code> for the content pane, or <code>null</code> if
 127  
      * there is none.
 128  
      */
 129  
     protected final Icon getIcon(String cpName) {
 130  0
         Icon ico = (Icon) iconMap.get(cpName);
 131  0
         return ico;
 132  
     }
 133  
     
 134  
     /**
 135  
      * Bring the selected content pane to the front.
 136  
      * @param cpName the pane to select.
 137  
      */
 138  
     public void selectContentPane(String cpName) {
 139  0
         if (panelMap.size() > 1) {
 140  0
             JComponent cmp = (JComponent) panelMap.get(cpName);
 141  0
             if (cmp != null) {
 142  0
                 getTabbedPane().setSelectedComponent(cmp);
 143  
             }
 144  
         }
 145  0
     }
 146  
     
 147  
     /* (non-Javadoc)
 148  
      * @see ca.spaz.cron.SummaryPanel#getContentPane(java.util.List)
 149  
      */
 150  
     protected JComponent getContentPane(List contentValues) {
 151  0
         if (panelMap.size() == 0) {
 152  0
             return super.getContentPane(contentValues);
 153  0
         } else if (panelMap.size() == 1) {
 154  0
             JComponent c = (JComponent) getTabbedPane().getComponentAt(0);
 155  0
             ((IValueListUser)c).setValueList(contentValues);
 156  0
             return c;
 157  
         }
 158  0
         for (Iterator iter = panelMap.values().iterator(); iter.hasNext();) {
 159  0
             IValueListUser vl = (IValueListUser) iter.next();
 160  0
             vl.setValueList(contentValues);
 161  0
         }
 162  0
         return getTabbedPane();
 163  
     }
 164  
     
 165  
 }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.