001 /* 002 * Copyright 2002-2006 the original author or authors. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 005 * use this file except in compliance with the License. You may obtain a copy of 006 * the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 013 * License for the specific language governing permissions and limitations under 014 * the License. 015 * 016 */ 017 018 package org.springframework.richclient.form; 019 020 import java.awt.Component; 021 import java.awt.Container; 022 023 import javax.swing.JComponent; 024 025 /** 026 * Default <code>FormUIProvider</code> implementation. 027 * 028 * @author Peter De Bruycker 029 */ 030 public class DefaultFormUIProvider extends AbstractFormUIProvider { 031 private JComponent formComponent; 032 033 public DefaultFormUIProvider() { 034 035 } 036 037 public DefaultFormUIProvider(JComponent component) { 038 formComponent = component; 039 } 040 041 public JComponent getComponent(String propertyPath) { 042 return getComponent(formComponent, propertyPath); 043 } 044 045 private static JComponent getComponent(Container parent, String id) { 046 Component[] children = parent.getComponents(); 047 for (int i = 0; i < children.length; i++) { 048 Component child = children[i]; 049 if (child instanceof JComponent && id.equals(children[i].getName())) { 050 return (JComponent)child; 051 } 052 053 if (child instanceof Container) { 054 Container container = (Container)child; 055 JComponent result = getComponent(container, id); 056 if (result != null) { 057 return result; 058 } 059 } 060 } 061 062 return null; 063 } 064 065 public void setControl(JComponent control) { 066 formComponent = control; 067 } 068 069 protected JComponent createControl() { 070 return formComponent; 071 } 072 }