Coverage Report - org.seasar.uruma.renderer.impl.CTabFolderRenderer
 
Classes in this File Line Coverage Branch Coverage Complexity
CTabFolderRenderer
100%
32/32
100%
8/8
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.swt.SWT;
 21  
 import org.eclipse.swt.custom.CTabFolder;
 22  
 import org.eclipse.swt.graphics.Color;
 23  
 import org.seasar.uruma.annotation.RenderingPolicy.ConversionType;
 24  
 import org.seasar.uruma.component.jface.CTabFolderComponent;
 25  
 import org.seasar.uruma.component.jface.GradientInfo;
 26  
 import org.seasar.uruma.component.jface.GradientItem;
 27  
 import org.seasar.uruma.context.PartContext;
 28  
 import org.seasar.uruma.context.WidgetHandle;
 29  
 import org.seasar.uruma.renderer.RendererSupportUtil;
 30  
 
 31  
 /**
 32  
  * {@link CTabFolder} のレンダリングを行うクラスです。<br />
 33  
  * 
 34  
  * @author bskuroneko
 35  
  */
 36  28
 public class CTabFolderRenderer extends
 37  
         AbstractCompositeRenderer<CTabFolderComponent, CTabFolder> {
 38  
 
 39  
     /*
 40  
      * @see org.seasar.uruma.renderer.impl.AbstractCompositeRenderer#doRenderComposite(org.seasar.uruma.component.jface.CompositeComponent,
 41  
      *      org.eclipse.swt.widgets.Composite)
 42  
      */
 43  
     @Override
 44  
     protected void doRenderComposite(
 45  
             final CTabFolderComponent controlComponent, final CTabFolder control) {
 46  12
         setSelectionBackground(controlComponent, control);
 47  12
     }
 48  
 
 49  
     /*
 50  
      * @see org.seasar.uruma.renderer.impl.AbstractWidgetRenderer#doRenderAfter(org.eclipse.swt.widgets.Widget,
 51  
      *      org.seasar.uruma.component.UIComponent,
 52  
      *      org.seasar.uruma.context.WidgetHandle,
 53  
      *      org.seasar.uruma.context.PartContext)
 54  
      */
 55  
     @Override
 56  
     protected void doRenderAfter(final CTabFolder widget,
 57  
             final CTabFolderComponent uiComponent, final WidgetHandle parent,
 58  
             final PartContext context) {
 59  12
         setSelection(uiComponent, widget);
 60  12
     }
 61  
 
 62  
     private void setSelectionBackground(
 63  
             final CTabFolderComponent controlComponent, final CTabFolder control) {
 64  12
         GradientInfo gradientInfo = controlComponent
 65  
                 .getSelectionBackgroundGradient();
 66  12
         if (gradientInfo != null) {
 67  4
             List<GradientItem> gradientItems = gradientInfo.getGradientItems();
 68  4
             Color[] colors = new Color[gradientItems.size() + 1];
 69  4
             int[] percents = new int[gradientItems.size()];
 70  4
             colors[0] = ((Color) RendererSupportUtil.convertValue(
 71  
                     controlComponent, gradientInfo.startColor,
 72  
                     ConversionType.COLOR));
 73  4
             int i = 0;
 74  4
             for (GradientItem item : gradientItems) {
 75  4
                 colors[i + 1] = ((Color) RendererSupportUtil.convertValue(
 76  
                         controlComponent, item.color, ConversionType.COLOR));
 77  4
                 percents[i] = ((Integer) RendererSupportUtil.convertValue(
 78  
                         controlComponent, item.percent, ConversionType.INT));
 79  4
                 i++;
 80  
             }
 81  4
             Boolean vertical = (Boolean) RendererSupportUtil.convertValue(
 82  
                     controlComponent, gradientInfo.vertical,
 83  
                     ConversionType.BOOLEAN);
 84  4
             control.setSelectionBackground(colors, percents, vertical);
 85  4
         } else {
 86  8
             String value = controlComponent.selectionBackground;
 87  8
             if (value == null) {
 88  4
                 return;
 89  
             }
 90  4
             Color color = (Color) RendererSupportUtil.convertValue(
 91  
                     controlComponent, value, ConversionType.COLOR);
 92  4
             control.setSelectionBackground(color);
 93  
         }
 94  8
     }
 95  
 
 96  
     private void setSelection(final CTabFolderComponent controlComponent,
 97  
             final CTabFolder control) {
 98  12
         String value = controlComponent.selection;
 99  12
         if (value == null) {
 100  4
             return;
 101  
         }
 102  8
         control.setSelection(Integer.parseInt(value));
 103  8
     }
 104  
 
 105  
     /*
 106  
      * @see org.seasar.uruma.renderer.impl.AbstractRenderer#getDefaultStyle()
 107  
      */
 108  
     @Override
 109  
     protected int getDefaultStyle() {
 110  12
         return SWT.BORDER;
 111  
     }
 112  
 
 113  
     /*
 114  
      * @see org.seasar.uruma.renderer.impl.AbstractWidgetRenderer#getWidgetType()
 115  
      */
 116  
     @Override
 117  
     protected Class<CTabFolder> getWidgetType() {
 118  36
         return CTabFolder.class;
 119  
     }
 120  
 }