View Javadoc
1   /*
2    * Copyright (C) 2003-2008 eXo Platform SAS.
3    *
4    * This program is free software; you can redistribute it and/or
5    * modify it under the terms of the GNU Affero General Public License
6    * as published by the Free Software Foundation; either version 3
7    * of the License, or (at your option) any later version.
8    *
9    * This program is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   * GNU General Public License for more details.
13   *
14   * You should have received a copy of the GNU General Public License
15   * along with this program; if not, see<http://www.gnu.org/licenses/>.
16   */
17  package org.exoplatform.ecm.webui.form.field;
18  
19  import org.exoplatform.ecm.webui.form.DialogFormField;
20  import org.exoplatform.services.cms.JcrInputProperty;
21  import org.exoplatform.webui.form.UIFormInputBase;
22  import org.exoplatform.webui.form.UIFormStringInput;
23  
24  /**
25   * Created by The eXo Platform SAS
26   * @author : Hoa.Pham
27   *          hoa.pham@exoplatform.com
28   * Jun 23, 2008
29   */
30  public class UIMixinField extends DialogFormField{
31  
32    public UIMixinField(String name, String label, String[] arguments) {
33      super(name, label, arguments);
34    }
35  
36    @SuppressWarnings("unchecked")
37    public <T extends UIFormInputBase> T createUIFormInput() throws Exception {
38      UIFormStringInput uiMixin = new UIFormStringInput(name, name, defaultValue) ;
39      if(label != null) uiMixin.setLabel(label) ;
40      return (T)uiMixin;
41    }
42  
43    public JcrInputProperty createJcrInputProperty() {
44      JcrInputProperty inputProperty = new JcrInputProperty();
45      inputProperty.setJcrPath(jcrPath);
46      if(defaultValue != null && defaultValue.length() > 0) {
47        inputProperty.setValue(defaultValue) ;
48      }
49      if (nodeType != null || mixinTypes != null) {
50        inputProperty.setType(JcrInputProperty.NODE);
51        if(nodeType != null) inputProperty.setNodetype(nodeType);
52        if(mixinTypes != null) inputProperty.setMixintype(mixinTypes);
53      }
54      return inputProperty;
55    }
56  }