コード例 #1
0
  // 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);
  }
コード例 #2
0
  @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);
  }
コード例 #3
0
  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);
  }
コード例 #4
0
  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();
    }
  }