View Javadoc

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.annotation;
17  
18  import java.lang.annotation.ElementType;
19  import java.lang.annotation.Retention;
20  import java.lang.annotation.RetentionPolicy;
21  import java.lang.annotation.Target;
22  
23  /**
24   * コンポーネントから SWT のウィジットに対するレンダリング方法を指定するアノテーションです。<br />
25   * 
26   * @author y-komori
27   */
28  @Retention(RetentionPolicy.RUNTIME)
29  @Target(ElementType.FIELD)
30  public @interface RenderingPolicy {
31      /**
32       * レンダリング対象を指定するための列挙型です。<br />
33       * 
34       * @author y-komori
35       */
36      public enum TargetType {
37          /**
38           * 対象がプロパティであることを示します。<br />
39           * セッターを使用して値を設定します。
40           */
41          PROPERTY,
42          /**
43           * 対象がフィールドであることを示します。<br />
44           */
45          FIELD,
46          /**
47           * 自動設定を行わないことを示します。<br />
48           */
49          NONE
50      }
51  
52      /**
53       * レンダリング対象属性の型を表す列挙型です。<br />
54       * 
55       * @author y-komori
56       */
57      public enum ConversionType {
58          /** 対象が {@link String} 型であることを示します。<br /> */
59          STRING,
60          /** 対象が改行やタブを含む {@link String} 型であることを示します。<br /> */
61          TEXT,
62          /** 対象が int 型であることを示します。<br /> */
63          INT,
64          /** 対象が boolean 型であることを示します。<br /> */
65          BOOLEAN,
66          /** 対象が char 型であることを示します。<br /> */
67          CHAR,
68          /** 対象が int の配列型であることを示します。転送元は数値のカンマ区切り文字列で表します。<br /> */
69          INT_ARRAY,
70          /**
71           * 対象が {@link org.eclipse.swt.graphics.Color} 型であることを示します。転送元は #RRGGBB
72           * 形式の文字列で表します。<br />
73           */
74          COLOR,
75          /** 対象が int 型の {@link org.eclipse.swt.SWT} 定数であることを示します。転送元は定数名の文字列で表します。<br /> */
76          SWT_CONST,
77          /**
78           * 対象が {@link org.eclipse.swt.graphics.Image}
79           * 型であることを示します。転送元は画像ファイルへのパス文字列で表します。<br />
80           */
81          IMAGE,
82          /**
83           * 対象がアクセラレータであることを示します。 転送元は {@link org.eclipse.jface.action.Action}
84           * で使用するアクセラレータ表記文字列で表します。
85           */
86          ACCELERATOR
87      }
88  
89      /**
90       * 属性を設定するタイミングを表す列挙型です。<br />
91       * 
92       * @author y-komori
93       */
94      public enum SetTiming {
95          /** コンポーネントのレンダリング時に設定することを示します。<br/> */
96          RENDER,
97          /** 子コンポーネントのレンダリング後に設定することを示します。<br/> */
98          RENDER_AFTER
99      }
100 
101     /**
102      * 対象プロパティ名を表します。<br />
103      * 省略時はコンポーネント側プロパティと同じ名前のプロパティへ設定します。<br />
104      * 
105      * @return プロパティ名
106      */
107     public String name() default "";
108 
109     /**
110      * 対象への設定方式を表します。<br />
111      * 
112      * @return 対象への設定方式
113      */
114     public TargetType targetType() default TargetType.PROPERTY;
115 
116     /**
117      * 対象への変換方式を表します。<br />
118      * 
119      * @return 対象への変換方式
120      */
121     public ConversionType conversionType() default ConversionType.STRING;
122 
123     /**
124      * 対象への設定タイミングを表します。<br />
125      * 
126      * @return 対象への設定タイミング
127      */
128     public SetTiming setTiming() default SetTiming.RENDER;
129 }