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.layout; 17 18 import org.eclipse.swt.widgets.Layout; 19 import org.seasar.uruma.component.LayoutDataInfo; 20 import org.seasar.uruma.component.LayoutInfo; 21 import org.seasar.uruma.component.UIComponent; 22 23 /** 24 * SWTにおけるレイアウトやレイアウトデータオブジェクトの生成をサポートするクラスのためのインターフェースです。<br /> 25 * 26 * @author y-komori 27 */ 28 public interface LayoutSupport { 29 /** 30 * レイアウトオブジェクトを生成します。<br /> 31 * 32 * @return レイアウトオブジェクト 33 */ 34 public Layout createLayout(); 35 36 /** 37 * {@link LayoutInfo} オブジェクトを元にして、レイアウトオブジェクトを生成します。<br /> 38 * 39 * @param layoutInfo 40 * {@link LayoutInfo} オブジェクト 41 * @return レイアウトオブジェクト 42 */ 43 public Layout createLayout(LayoutInfo<?> layoutInfo); 44 45 /** 46 * レイアウトデータオブジェクトを生成します。<br /> 47 * レイアウトデータを利用しないレイアウトの場合は、常に <code>null</code> を返します。 48 * 49 * @return レイアウトデータオブジェクト 50 */ 51 public Object createLayoutData(); 52 53 /** 54 * {@link LayoutDataInfo} オブジェクトを元にして、レイアウトデータオブジェクトを生成します。</br> 55 * レイアウトデータを利用しないレイアウトの場合は、常に <code>null</code> を返します。</br> 56 * 57 * @param uiComponent 58 * {@link UIComponent} オブジェクト 59 * @param layoutDataInfo 60 * {@link LayoutDataInfo} オブジェクト 61 * @return レイアウトデータオブジェクト 62 */ 63 public Object createLayoutData(UIComponent uiComponent, 64 LayoutDataInfo layoutDataInfo); 65 }