Coverage Report - org.seasar.uruma.renderer.impl.TableItemRenderer
 
Classes in this File Line Coverage Branch Coverage Complexity
TableItemRenderer
98%
61/62
81%
21/26
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.Iterator;
 19  
 
 20  
 import org.eclipse.swt.graphics.Color;
 21  
 import org.eclipse.swt.graphics.Font;
 22  
 import org.eclipse.swt.graphics.Image;
 23  
 import org.eclipse.swt.widgets.TableItem;
 24  
 import org.seasar.uruma.annotation.RenderingPolicy.ConversionType;
 25  
 import org.seasar.uruma.component.jface.TableCellComponent;
 26  
 import org.seasar.uruma.component.jface.TableItemComponent;
 27  
 import org.seasar.uruma.renderer.RendererSupportUtil;
 28  
 
 29  
 /**
 30  
  * {@link TableItem} のレンダリングを行うクラスです。<br />
 31  
  * 
 32  
  * @author bskuroneko
 33  
  */
 34  52
 public class TableItemRenderer extends
 35  
         AbstractWidgetRenderer<TableItemComponent, TableItem> {
 36  
 
 37  
     /*
 38  
      * @see org.seasar.uruma.renderer.impl.AbstractWidgetRenderer#doRender(org.seasar.uruma.component.UIComponent,
 39  
      *      org.eclipse.swt.widgets.Widget)
 40  
      */
 41  
     @Override
 42  
     protected void doRender(final TableItemComponent uiComponent,
 43  
             final TableItem widget) {
 44  48
         setFont(uiComponent, widget);
 45  48
         setImage(uiComponent, widget);
 46  48
         setText(uiComponent, widget);
 47  48
         renderCells(uiComponent, widget);
 48  48
     }
 49  
 
 50  
     private void setImage(final TableItemComponent uiComponent,
 51  
             final TableItem widget) {
 52  48
         String strImage = uiComponent.image;
 53  48
         if (strImage == null) {
 54  44
             return;
 55  
         }
 56  4
         Image image = (Image) RendererSupportUtil.convertValue(uiComponent,
 57  
                 strImage, ConversionType.IMAGE);
 58  4
         widget.setImage(image);
 59  4
     }
 60  
 
 61  
     private void setText(final TableItemComponent uiComponent,
 62  
             final TableItem widget) {
 63  48
         String text = uiComponent.text;
 64  48
         if (text == null) {
 65  4
             return;
 66  
         }
 67  44
         String convertedText = (String) RendererSupportUtil.convertValue(
 68  
                 uiComponent, text, ConversionType.TEXT);
 69  44
         widget.setText(convertedText);
 70  44
     }
 71  
 
 72  
     private void setFont(final TableItemComponent uiComponent,
 73  
             final TableItem widget) {
 74  48
         if (uiComponent.fontName == null && uiComponent.fontStyle == null
 75  
                 && uiComponent.fontHeight == null) {
 76  44
             return;
 77  
         }
 78  4
         Font font = RendererSupportUtil.getFont(widget.getFont(),
 79  
                 uiComponent.fontName, uiComponent.fontStyle,
 80  
                 uiComponent.fontHeight);
 81  4
         widget.setFont(font);
 82  4
     }
 83  
 
 84  
     private void renderCells(final TableItemComponent uiComponent,
 85  
             final TableItem widget) {
 86  48
         int index = 0;
 87  48
         for (Iterator<TableCellComponent> it = uiComponent.getTableCells()
 88  80
                 .iterator(); it.hasNext(); index++) {
 89  16
             TableCellComponent cell = it.next();
 90  16
             renderCell(index, cell, uiComponent, widget);
 91  
         }
 92  48
     }
 93  
 
 94  
     private void renderCell(final int index, final TableCellComponent cell,
 95  
             final TableItemComponent tableItemComponent,
 96  
             final TableItem tableItem) {
 97  16
         setText(index, cell, tableItemComponent, tableItem);
 98  16
         setBackground(index, cell, tableItemComponent, tableItem);
 99  16
         setForeground(index, cell, tableItemComponent, tableItem);
 100  16
         setImage(index, cell, tableItemComponent, tableItem);
 101  16
         setFont(index, cell, tableItemComponent, tableItem);
 102  16
     }
 103  
 
 104  
     private void setText(final int index, final TableCellComponent cell,
 105  
             final TableItemComponent tableItemComponent,
 106  
             final TableItem tableItem) {
 107  16
         if (cell.text == null) {
 108  0
             return;
 109  
         }
 110  16
         String text = (String) RendererSupportUtil.convertValue(
 111  
                 tableItemComponent, cell.text, ConversionType.TEXT);
 112  16
         tableItem.setText(index, text);
 113  16
     }
 114  
 
 115  
     private void setBackground(final int index, final TableCellComponent cell,
 116  
             final TableItemComponent tableItemComponent,
 117  
             final TableItem tableItem) {
 118  16
         if (cell.background == null) {
 119  12
             return;
 120  
         }
 121  4
         Color color = (Color) RendererSupportUtil.convertValue(
 122  
                 tableItemComponent, cell.background, ConversionType.COLOR);
 123  4
         tableItem.setBackground(index, color);
 124  4
     }
 125  
 
 126  
     private void setForeground(final int index, final TableCellComponent cell,
 127  
             final TableItemComponent tableItemComponent,
 128  
             final TableItem tableItem) {
 129  16
         if (cell.foreground == null) {
 130  12
             return;
 131  
         }
 132  4
         Color color = (Color) RendererSupportUtil.convertValue(
 133  
                 tableItemComponent, cell.foreground, ConversionType.COLOR);
 134  4
         tableItem.setForeground(index, color);
 135  4
     }
 136  
 
 137  
     private void setImage(final int index, final TableCellComponent cell,
 138  
             final TableItemComponent tableItemComponent,
 139  
             final TableItem tableItem) {
 140  16
         if (cell.image == null) {
 141  12
             return;
 142  
         }
 143  4
         Image image = (Image) RendererSupportUtil.convertValue(
 144  
                 tableItemComponent, cell.image, ConversionType.IMAGE);
 145  4
         tableItem.setImage(index, image);
 146  4
     }
 147  
 
 148  
     private void setFont(final int index, final TableCellComponent cell,
 149  
             final TableItemComponent tableItemComponent,
 150  
             final TableItem tableItem) {
 151  16
         if (cell.fontName == null && cell.fontStyle == null
 152  
                 && cell.fontHeight == null) {
 153  12
             return;
 154  
         }
 155  4
         Font defaultFont = tableItem.getFont(index);
 156  4
         Font font = RendererSupportUtil.getFont(defaultFont, cell.fontName,
 157  
                 cell.fontStyle, cell.fontHeight);
 158  4
         tableItem.setFont(index, font);
 159  4
     }
 160  
 
 161  
     /*
 162  
      * @see org.seasar.uruma.renderer.impl.AbstractWidgetRenderer#getWidgetType()
 163  
      */
 164  
     @Override
 165  
     protected Class<TableItem> getWidgetType() {
 166  144
         return TableItem.class;
 167  
     }
 168  
 
 169  
 }