01 /* 
02  * Copyright 2008-2017 the original author or authors. 
03  * 
04  * Licensed under the Apache License, Version 2.0 (the "License"); 
05  * you may not use this file except in compliance with the License. 
06  * You may obtain a copy of the License at 
07  * 
08  *     http://www.apache.org/licenses/LICENSE-2.0 
09  * 
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, either express or implied. 
13  * See the License for the specific language governing permissions and 
14  * limitations under the License. 
15  */ 
16 package griffon.builder.pivot.factory 
17  
18 import org.apache.pivot.wtk.Action 
19  
20 /** 
21  * @author Andres Almiray 
22  */ 
23 class ButtonFactory extends ComponentFactory { 
24     ButtonFactory(Class beanClass) { 
25         super(beanClass, false) 
26     } 
27  
28     ButtonFactory(Class beanClass, boolean leaf) { 
29         super(beanClass, leaf) 
30     } 
31  
32     Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException { 
33         if(value instanceof Action) { 
34             Object bean = beanClass.newInstance() 
35             bean.action = value 
36             bean.buttonData = value.name 
37             return bean 
38         } 
39  
40         if (value instanceof CharSequence) value = value.toString() 
41         if (FactoryBuilderSupport.checkValueIsTypeNotString(value, name, beanClass)) { 
42             return value 
43         } 
44         Object bean = beanClass.newInstance() 
45         if (value instanceof String) bean.buttonData = value 
46  
47         if (attributes.containsKey('actionId')) { 
48             bean.setAction(attributes.remove('actionId').toString()) 
49         } 
50  
51         return bean 
52     } 
53 }
    
    |