private void createAutobindings(List<FieldBindingInfo> bindings, boolean full) throws Exception { BeanObserveInfo beanObserveObject = null; if (full) { if (m_gridSelectionModel == null) { if (m_model instanceof BeanObserveInfo) { beanObserveObject = (BeanObserveInfo) m_model; } } else { beanObserveObject = m_gridSelectionModel; } } WidgetObserveInfo formPanel = (WidgetObserveInfo) m_target; for (WidgetObserveInfo field : formPanel.getChildren()) { Property property = field.getJavaInfo().getPropertyByTitle("name"); if (property != null) { Object nameValue = property.getValue(); if (nameValue instanceof String && !StringUtils.isEmpty(nameValue.toString())) { FieldBindingInfo binding = field.createFieldBinding(field.getSelfProperty(), "\"" + nameValue.toString() + "\""); if (full) { if (beanObserveObject == null) { binding.setModel(m_model, null); } else { binding.setModel( beanObserveObject, beanObserveObject.resolvePropertyReference(binding.getParsedProperty(), null)); } } binding.setAutobind(true); binding.setParentBinding(this); bindings.add(binding); } } } }
private void finishBinding( Expression grid, Expression bindingElement, IDatabindingsProvider iprovider) throws Exception { DatabindingsProvider provider = DatabindingsProvider.cast(iprovider); BeansObserveTypeContainer beansContainer = provider.getBeansContainer(); WidgetsObserveTypeContainer widgetsContainer = provider.getWidgetsContainer(); // WidgetObserveInfo gridWidget = widgetsContainer.getBindableWidget(grid); m_model = gridWidget; m_modelProperty = gridWidget.getSelfProperty(); // ClassLoader classLoader = CoreUtils.classLoader(provider.getJavaInfoRoot()); String bindingElementClassName = AstNodeUtils.getFullyQualifiedName(bindingElement, true); Class<?> bindingElementClass = classLoader.loadClass(bindingElementClassName); // m_gridSelectionModel = new BeanObserveInfo(beansContainer.getBeanSupport(), m_modelProperty, bindingElementClass); gridWidget .getSelfProperty() .setProperties( m_gridSelectionModel.getChildren(ChildrenContext.ChildrenForPropertiesTable)); // for (FieldBindingInfo binding : m_fieldBindings) { binding.setModel( m_model, m_gridSelectionModel.resolvePropertyReference(binding.getParsedProperty(), null)); binding.setGridSelectionModel(m_gridSelectionModel); } // int index = provider.getBindings().indexOf(this); provider.getBindings().addAll(index + 1, m_fieldBindings); // if (m_autobind) { createAutobindings(m_fieldBindings, true); } }