pbo

in src/zgoog_data_cluster_editor.prog.abap [0:0]


  METHOD pbo.

    DATA: lt_fcode TYPE TABLE OF sy-ucomm.

    IF p_edit IS INITIAL.
      APPEND 'SAVE' TO lt_fcode.
    ENDIF.

    SET PF-STATUS 'STATUS_0100' EXCLUDING lt_fcode.
    SET TITLEBAR 'TITL_0100'.

    IF  go_container IS INITIAL.

      CREATE OBJECT go_container
        EXPORTING
          container_name = 'CC_INPUT'.

      CREATE OBJECT go_editor
        EXPORTING
          parent = go_container.

      DATA: lo_serial TYPE REF TO object.
      DATA: lr_data TYPE REF TO data.

      FIELD-SYMBOLS:
        <lv_data> TYPE any.

      IF gs_config-class IS NOT INITIAL.
        ASSIGN lo_serial TO <lv_data>.
      ELSE.
        CREATE DATA lr_data TYPE (gs_config-data_type).
        ASSIGN lr_data->* TO <lv_data>.
      ENDIF.

      CALL METHOD zgoog_cl_data_cluster=>import_data
        EXPORTING
          iv_table = gs_config-cluster_table
          iv_area  = gs_config-relid
          iv_id    = gs_config-srtfd
        IMPORTING
          ev_data  = <lv_data>.

      IF <lv_data> IS INITIAL AND
         gs_config-class IS NOT INITIAL.
        CREATE OBJECT lo_serial TYPE (gs_config-class).
      ENDIF.

      CALL METHOD zgoog_cl_data_cluster=>abap_to_json
        EXPORTING
          iv_data         = <lv_data>
          iv_pretty       = abap_true
        IMPORTING
          ev_json_xstring = gv_xstring.

      go_editor->set_xstring( gv_xstring ).

      go_editor->toggle_change_mode( ).

      IF p_edit IS INITIAL.
        go_editor->set_readonly( abap_true ).
      ENDIF.

    ENDIF.