docs: private void save() {
  
          if ((m_focalPoint != null) && isEditable()) {
              int x = (int)m_focalPoint.getX();
              int y = (int)m_focalPoint.getY();
              String val = "" + x + "," + y;
              CmsUUID sid = m_imageInfoProvider.get().getStructureId();
              List<CmsPropertyModification> propChanges = new ArrayList<>();
              propChanges.add(new CmsPropertyModification(sid, CmsGwtConstants.PROPERTY_IMAGE_FOCALPOINT, val, false));
              final CmsPropertyChangeSet changeSet = new CmsPropertyChangeSet(sid, propChanges);
              CmsRpcAction<Void> action = new CmsRpcAction<Void>() {
  
                  @Override
                  public void execute() {
  
                      CmsCoreProvider.getVfsService().saveProperties(changeSet, this);
  
                  }
  
                  @SuppressWarnings("synthetic-access")
                  @Override
                  protected void onResponse(Void result) {
  
                      m_savedFocalPoint = m_focalPoint;
  
                      if (m_pointWidget != null) {
                          m_pointWidget.setIsDefault(false);
                      }
                      m_imageInfoProvider.get().setFocalPoint(m_focalPoint);
                      if (m_nextAction != null) {
                          m_nextAction.run();
                      }
  
                  }
              };
              action.execute();
  
          }
      }