Coverage Report - org.seasar.uruma.renderer.impl.ComboViewerRenderer
 
Classes in this File Line Coverage Branch Coverage Complexity
ComboViewerRenderer
89%
17/19
33%
2/6
0
 
 1  
 /*
 2  
  * Copyright 2004-2008 the Seasar Foundation and the Others.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *     http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
 13  
  * either express or implied. See the License for the specific language
 14  
  * governing permissions and limitations under the License.
 15  
  */
 16  
 package org.seasar.uruma.renderer.impl;
 17  
 
 18  
 import java.util.List;
 19  
 
 20  
 import org.eclipse.jface.viewers.ComboViewer;
 21  
 import org.eclipse.jface.viewers.IBaseLabelProvider;
 22  
 import org.eclipse.jface.viewers.IContentProvider;
 23  
 import org.eclipse.swt.SWT;
 24  
 import org.eclipse.swt.widgets.Combo;
 25  
 import org.seasar.uruma.component.jface.ComboComponent;
 26  
 import org.seasar.uruma.component.jface.SimpleItemComponent;
 27  
 import org.seasar.uruma.context.PartContext;
 28  
 import org.seasar.uruma.context.WidgetHandle;
 29  
 import org.seasar.uruma.viewer.ContentsHolder;
 30  
 import org.seasar.uruma.viewer.GenericLabelProvider;
 31  
 
 32  
 /**
 33  
  * {@link ComboViewer} のレンダリングを行うクラスです。<br />
 34  
  * 
 35  
  * @author bskuroneko
 36  
  */
 37  60
 public class ComboViewerRenderer extends
 38  
         AbstractViewerRenderer<ComboComponent, ComboViewer, Combo> {
 39  
 
 40  
     /*
 41  
      * @see org.seasar.uruma.renderer.impl.AbstractRenderer#getDefaultStyle()
 42  
      */
 43  
     @Override
 44  
     protected int getDefaultStyle() {
 45  28
         return SWT.SIMPLE;
 46  
     }
 47  
 
 48  
     /*
 49  
      * @see org.seasar.uruma.renderer.impl.AbstractViewerRenderer#doRenderViewer(org.seasar.uruma.component.jface.CompositeComponent,
 50  
      *      org.eclipse.jface.viewers.Viewer)
 51  
      */
 52  
     @Override
 53  
     protected void doRenderViewer(final ComboComponent uiComponent,
 54  
             final ComboViewer viewer) {
 55  28
         setupItems(uiComponent, viewer);
 56  28
     }
 57  
 
 58  
     @Override
 59  
     protected void doRenderAfter(final ComboViewer viewer,
 60  
             final ComboComponent uiComponent, final WidgetHandle parent,
 61  
             final PartContext context) {
 62  28
         setupItems(uiComponent, viewer);
 63  28
     }
 64  
 
 65  
     /*
 66  
      * @see org.seasar.uruma.renderer.impl.AbstractWidgetRenderer#getWidgetType()
 67  
      */
 68  
     @Override
 69  
     protected Class<Combo> getWidgetType() {
 70  56
         return Combo.class;
 71  
     }
 72  
 
 73  
     /*
 74  
      * @see org.seasar.uruma.renderer.impl.AbstractViewerRenderer#getViewerType()
 75  
      */
 76  
     @Override
 77  
     protected Class<ComboViewer> getViewerType() {
 78  56
         return ComboViewer.class;
 79  
     }
 80  
 
 81  
     private void setupItems(final ComboComponent comboComponent,
 82  
             final ComboViewer viewer) {
 83  56
         List<SimpleItemComponent> itemList = comboComponent.getItems();
 84  
 
 85  56
         IContentProvider provider = viewer.getContentProvider();
 86  56
         if (provider != null && provider instanceof ContentsHolder) {
 87  56
             ContentsHolder holder = ContentsHolder.class.cast(provider);
 88  56
             holder.setContents(itemList);
 89  56
         } else {
 90  0
             for (SimpleItemComponent simpleItemComponent : itemList) {
 91  0
                 viewer.add(simpleItemComponent);
 92  
             }
 93  
         }
 94  
 
 95  56
         viewer.setInput(itemList);
 96  56
     }
 97  
 
 98  
     /*
 99  
      * @see org.seasar.uruma.renderer.impl.AbstractViewerRenderer#getDefaultLabelProvider()
 100  
      */
 101  
     @Override
 102  
     protected IBaseLabelProvider getDefaultLabelProvider() {
 103  28
         return new GenericLabelProvider();
 104  
     }
 105  
 }