Coverage Report - org.seasar.uruma.renderer.impl.TableViewerRenderer
 
Classes in this File Line Coverage Branch Coverage Complexity
TableViewerRenderer
88%
15/17
83%
5/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.IBaseLabelProvider;
 21  
 import org.eclipse.jface.viewers.TableViewer;
 22  
 import org.eclipse.jface.viewers.ViewerComparator;
 23  
 import org.eclipse.swt.SWT;
 24  
 import org.eclipse.swt.widgets.Table;
 25  
 import org.seasar.uruma.annotation.RenderingPolicy.ConversionType;
 26  
 import org.seasar.uruma.component.UICompositeComponent;
 27  
 import org.seasar.uruma.component.UIElement;
 28  
 import org.seasar.uruma.component.jface.TableComponent;
 29  
 import org.seasar.uruma.component.jface.TableItemComponent;
 30  
 import org.seasar.uruma.context.PartContext;
 31  
 import org.seasar.uruma.context.WidgetHandle;
 32  
 import org.seasar.uruma.renderer.RendererSupportUtil;
 33  
 import org.seasar.uruma.viewer.GenericTableLabelProvider;
 34  
 import org.seasar.uruma.viewer.GenericTableViewerComparator;
 35  
 import org.seasar.uruma.viewer.PojoLabelProvider;
 36  
 import org.seasar.uruma.viewer.PojoTableLabelProvider;
 37  
 
 38  
 /**
 39  
  * {@link TableViewer} のレンダリングを行うクラスです。<br />
 40  
  * 
 41  
  * @author bskuroneko
 42  
  */
 43  12
 public class TableViewerRenderer extends
 44  
         AbstractViewerRenderer<TableComponent, TableViewer, Table> {
 45  
     /*
 46  
      * @see org.seasar.uruma.renderer.impl.AbstractViewerRenderer#canCreateViewer(org.seasar.uruma.component.UICompositeComponent)
 47  
      */
 48  
     @Override
 49  
     protected boolean canCreateViewer(final UICompositeComponent component) {
 50  
         // TableItemComponent が存在する場合、Viewer を生成しない
 51  20
         List<UIElement> children = component.getChildren();
 52  20
         for (UIElement child : children) {
 53  76
             if (child instanceof TableItemComponent) {
 54  12
                 return false;
 55  
             }
 56  
         }
 57  8
         return true;
 58  
     }
 59  
 
 60  
     /*
 61  
      * @see org.seasar.uruma.renderer.impl.AbstractViewerRenderer#doRenderAfter(org.eclipse.jface.viewers.Viewer,
 62  
      *      org.seasar.uruma.component.jface.CompositeComponent,
 63  
      *      org.seasar.uruma.context.WidgetHandle,
 64  
      *      org.seasar.uruma.context.PartContext)
 65  
      */
 66  
     @Override
 67  
     protected void doRenderAfter(final TableViewer viewer,
 68  
             final TableComponent uiComponent, final WidgetHandle parent,
 69  
             final PartContext context) {
 70  
         // TODO ISelection を用いた設定に変更する
 71  8
         String selection = uiComponent.selection;
 72  8
         if (selection != null) {
 73  0
             Table table = viewer.getTable();
 74  0
             table.setSelection((int[]) RendererSupportUtil.convertValue(
 75  
                     uiComponent, selection, ConversionType.INT_ARRAY));
 76  
         }
 77  8
     }
 78  
 
 79  
     /*
 80  
      * @see org.seasar.uruma.renderer.impl.AbstractWidgetRenderer#getWidgetType()
 81  
      */
 82  
     @Override
 83  
     protected Class<Table> getWidgetType() {
 84  52
         return Table.class;
 85  
     }
 86  
 
 87  
     /*
 88  
      * @see org.seasar.uruma.renderer.impl.AbstractRenderer#getDefaultStyle()
 89  
      */
 90  
     @Override
 91  
     protected int getDefaultStyle() {
 92  20
         return SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER;
 93  
     }
 94  
 
 95  
     /*
 96  
      * @see org.seasar.uruma.renderer.impl.AbstractViewerRenderer#getViewerType()
 97  
      */
 98  
     @Override
 99  
     protected Class<TableViewer> getViewerType() {
 100  16
         return TableViewer.class;
 101  
     }
 102  
 
 103  
     /*
 104  
      * @see org.seasar.uruma.renderer.impl.AbstractViewerRenderer#getDefaultLabelProvider()
 105  
      */
 106  
     @Override
 107  
     protected IBaseLabelProvider getDefaultLabelProvider() {
 108  8
         return new GenericTableLabelProvider();
 109  
     }
 110  
 
 111  
     /*
 112  
      * @see org.seasar.uruma.renderer.impl.AbstractViewerRenderer#getPojoLabelProviderClass()
 113  
      */
 114  
     @Override
 115  
     protected Class<? extends PojoLabelProvider> getPojoLabelProviderClass() {
 116  8
         return PojoTableLabelProvider.class;
 117  
     }
 118  
 
 119  
     /*
 120  
      * @see org.seasar.uruma.renderer.impl.AbstractViewerRenderer#getDefaultComparator()
 121  
      */
 122  
     @Override
 123  
     protected ViewerComparator getDefaultComparator() {
 124  8
         return new GenericTableViewerComparator();
 125  
     }
 126  
 }