// Converts a String with no spaces to a singleton list private static List<String> toSingletonList(String propertyName, String value) { if ((null == value) || (value.length() == 0)) { return null; } if (value.charAt(0) == '@') { // These are very common, so we use shared copies // of these collections instead of re-creating. List<String> list; if (ALL.equals(value)) { list = ALL_LIST; } else if (FORM.equals(value)) { list = FORM_LIST; } else if (THIS.equals(value)) { list = THIS_LIST; } else if (NONE.equals(value)) { list = NONE_LIST; } else { // RELEASE_PENDING i18n ; throw new FacesException( value + " : Invalid id keyword specified for '" + propertyName + "' attribute"); } return list; } return Collections.singletonList(value); }
@Override public void setInnerForm(FORM form, boolean manageFormLifeCycle) { if (m_innerForm == form) { return; } // TODO [5.2] dwi: Add assertion to ensure Form is not started yet; currently, that cannot be // done because of AbstractPageField. // if (form != null) { // Assertions.assertFalse(form.isFormStarted(), "Inner Form must not be started yet // [wrappedFormField=%s, innerForm=%s]", this, form); // } FORM oldInnerForm = m_innerForm; uninstallInnerForm(); m_innerForm = form; m_manageInnerFormLifeCycle = manageFormLifeCycle; installInnerForm(); propertySupport.setProperty(PROP_INNER_FORM, m_innerForm); calculateVisibleInternal(); if (m_innerForm != null) { fireSubtreePropertyChange( new PropertyChangeEvent( m_innerForm.getRootGroupBox(), IFormField.PROP_PARENT_FIELD, null, null)); if (m_manageInnerFormLifeCycle && !m_innerForm .isFormStarted()) { // TODO [5.2] dwi: Remove 'started check' once assertion is in // place m_innerForm.start(); } } // Inform parent form (update layout etc.) if (getForm() != null) { getForm().structureChanged(this); } interceptInnerFormChanged(oldInnerForm, m_innerForm); }
protected void installInnerForm() { if (m_innerForm == null) { return; } m_innerForm.setShowOnStart(false); m_innerForm.setWrapperFieldInternal(this); m_innerForm.getRootGroupBox().setBorderVisible(false); // TODO [5.2] dwi: Only override if different from preferred value // m_innerForm.getRootGroupBox().setScrollable(false); m_innerForm.getRootGroupBox().updateKeyStrokes(); m_innerForm.addPropertyChangeListener(m_innerFormPropertyListener); m_innerForm .getRootGroupBox() .addSubtreePropertyChangeListener(m_innerFormSubtreePropertyListener); m_innerForm.addFormListener(m_innerFormListener); }
protected void uninstallInnerForm() { if (m_innerForm == null) { return; } fireSubtreePropertyChange( new PropertyChangeEvent( m_innerForm.getRootGroupBox(), IFormField.PROP_PARENT_FIELD, null, null)); m_innerForm.removePropertyChangeListener(m_innerFormPropertyListener); m_innerForm .getRootGroupBox() .removeSubtreePropertyChangeListener(m_innerFormSubtreePropertyListener); m_innerForm.removeFormListener(m_innerFormListener); m_innerForm.setWrapperFieldInternal(null); if (m_manageInnerFormLifeCycle && !m_innerForm.isFormClosed()) { m_innerForm.doClose(); } }