public List<CmsProperty<?, ?>> filterScheduledContentAreasForSelectedContentArea(
      ContentObject contentObject) {

    List<CmsProperty<?, ?>> filteredScheduledContentAreas = new ArrayList<CmsProperty<?, ?>>();

    if (contentObject != null && selectedContentArea != null) {
      List<CmsProperty<?, ?>> scheduledContentAreas =
          contentObject
              .getComplexCmsRootProperty()
              .getChildPropertyList("scheduledContentAreaListType.scheduledContentArea");

      for (CmsProperty<?, ?> scheduledContentArea : scheduledContentAreas) {
        CmsProperty<?, ?> contentAreaProperty =
            ((ComplexCmsProperty<?, ?>) scheduledContentArea).getChildProperty("contentArea");

        if (contentAreaProperty != null
            && !((TopicReferenceProperty) contentAreaProperty).hasNoValues()
            && ((TopicReferenceProperty) contentAreaProperty)
                .getSimpleTypeValue()
                .getId()
                .equals(selectedContentArea.getId())) {
          filteredScheduledContentAreas.add(scheduledContentArea);
        }
      }
    }

    return filteredScheduledContentAreas;
  }
  public void removeContentAreaFromContentObject_UIAction(
      ContentObject contentObject, String scheduledContentAreaPath) {

    try {
      contentObject.removeCmsProperty(scheduledContentAreaPath);

      contentService.save(contentObject, false, true, null);

      JSFUtilities.addMessage(
          null,
          "Η προγραμματισμένη περιοχή από το αντικείμενο διαγράφηκε με επιτυχία",
          FacesMessage.SEVERITY_INFO);

      Events.instance().raiseEvent(SeamEventNames.UPDATE_NO_OF_CONTENT_OBJECT_REFERRERS);

      findScheduledContentObjectsForContentArea_UIAction(selectedContentArea);

    } catch (Exception e) {
      logger.error("Error while removing scheduled content area", e);
      JSFUtilities.addMessage(
          null,
          "Η διαγραφή της προγραμματισμένης περιοχής από το αντικείμενο απέτυχε.",
          FacesMessage.SEVERITY_ERROR);
    }
  }