Skip to content

Commit 0ba96c6

Browse files
author
Eugen Günther
authored
Profile Tool - UX Refinement (#313)
Minor UX Changes
1 parent 6b10dd6 commit 0ba96c6

File tree

5 files changed

+91
-56
lines changed

5 files changed

+91
-56
lines changed

src/profiles/y_alv_tree_control.clas.abap

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
CLASS y_alv_tree_control DEFINITION
2-
PUBLIC
3-
CREATE PUBLIC .
1+
CLASS y_alv_tree_control DEFINITION PUBLIC CREATE PUBLIC.
42

53
PUBLIC SECTION.
64

@@ -18,18 +16,18 @@ CLASS y_alv_tree_control DEFINITION
1816
events TYPE REF TO y_if_alv_events
1917
event_mode TYPE i DEFAULT y_if_alv_events=>mode_double_click
2018
RETURNING
21-
VALUE(result) TYPE REF TO y_if_alv_tree_control
19+
VALUE(result) TYPE REF TO y_if_alv_tree_control
2220
RAISING
2321
cx_sy_create_data_error
2422
cx_failed.
2523

2624
METHODS constructor
2725
IMPORTING
28-
type_name TYPE string
29-
sort_table TYPE lvc_t_sort
30-
events TYPE REF TO y_if_alv_events
31-
alv_tree TYPE REF TO cl_gui_alv_tree_simple
32-
alv_header TYPE slis_t_listheader
26+
type_name TYPE string
27+
sort_table TYPE lvc_t_sort
28+
events TYPE REF TO y_if_alv_events
29+
alv_tree TYPE REF TO cl_gui_alv_tree_simple
30+
alv_header TYPE slis_t_listheader
3331
RAISING
3432
cx_sy_create_data_error
3533
cx_failed.
@@ -51,7 +49,7 @@ ENDCLASS.
5149

5250

5351

54-
CLASS y_alv_tree_control IMPLEMENTATION.
52+
CLASS Y_ALV_TREE_CONTROL IMPLEMENTATION.
5553

5654

5755
METHOD autosize_all_fields.
@@ -77,13 +75,14 @@ CLASS y_alv_tree_control IMPLEMENTATION.
7775

7876

7977
METHOD create.
80-
DATA(docking_container) = NEW cl_gui_docking_container( repid = sy_repid
81-
dynnr = dynpro_nr
82-
side = docking_side
83-
ratio = ratio ).
78+
DATA(docking_container) = NEW cl_gui_docking_container( repid = sy_repid
79+
dynnr = dynpro_nr
80+
side = docking_side
81+
ratio = ratio ).
8482

8583
DATA(alv_tree) = NEW cl_gui_alv_tree_simple( i_parent = docking_container
86-
i_item_selection = '' ).
84+
i_item_selection = abap_false
85+
i_no_html_header = abap_true ).
8786

8887
alv_tree->get_toolbar_object( IMPORTING er_toolbar = DATA(alv_toolbar) ).
8988

@@ -134,9 +133,9 @@ CLASS y_alv_tree_control IMPLEMENTATION.
134133
IF sy-subrc EQ 0.
135134
alv_tree->get_selected_nodes( CHANGING ct_index_outtab = index_table ).
136135
TRY.
137-
result = index_table[ 1 ].
138-
CATCH cx_sy_itab_line_not_found.
139-
RAISE EXCEPTION TYPE ycx_entry_not_found.
136+
result = index_table[ 1 ].
137+
CATCH cx_sy_itab_line_not_found.
138+
RAISE EXCEPTION TYPE ycx_entry_not_found.
140139
ENDTRY.
141140
ENDIF.
142141
ENDMETHOD.
@@ -154,11 +153,8 @@ CLASS y_alv_tree_control IMPLEMENTATION.
154153
dp_error = 2
155154
failed = 3
156155
error_in_node_key_table = 4
157-
others = 5
158-
). "#EC OPTL_EXP
159-
IF SY-SUBRC <> 0.
160-
BREAK-POINT.
161-
ENDIF.
156+
OTHERS = 5
157+
).
162158
ENDMETHOD.
163159

164160

@@ -175,7 +171,7 @@ CLASS y_alv_tree_control IMPLEMENTATION.
175171

176172
alv_tree->set_table_for_first_display(
177173
EXPORTING
178-
it_list_commentary = alv_header
174+
it_list_commentary = alv_header
179175
it_toolbar_excluding = get_excluded_toolbars( )
180176
CHANGING
181177
it_sort = sort
@@ -226,4 +222,28 @@ CLASS y_alv_tree_control IMPLEMENTATION.
226222
METHOD y_if_alv_tree_control~to_focus.
227223
cl_gui_control=>set_focus( alv_tree ).
228224
ENDMETHOD.
225+
226+
227+
METHOD y_if_alv_tree_control~activate_toolbar.
228+
LOOP AT y_if_alv_tree_control~toolbar_control( )->m_table_button ASSIGNING FIELD-SYMBOL(<button>).
229+
y_if_alv_tree_control~toolbar_control( )->set_button_state( EXPORTING enabled = abap_true
230+
fcode = <button>-function
231+
EXCEPTIONS OTHERS = 4 ).
232+
IF sy-subrc NE 0.
233+
RAISE EXCEPTION TYPE cx_failed.
234+
ENDIF.
235+
ENDLOOP.
236+
ENDMETHOD.
237+
238+
239+
METHOD y_if_alv_tree_control~deactivate_toolbar.
240+
LOOP AT y_if_alv_tree_control~toolbar_control( )->m_table_button ASSIGNING FIELD-SYMBOL(<button>).
241+
y_if_alv_tree_control~toolbar_control( )->set_button_state( EXPORTING enabled = abap_false
242+
fcode = <button>-function
243+
EXCEPTIONS OTHERS = 4 ).
244+
IF sy-subrc NE 0.
245+
RAISE EXCEPTION TYPE cx_failed.
246+
ENDIF.
247+
ENDLOOP.
248+
ENDMETHOD.
229249
ENDCLASS.

src/profiles/y_if_alv_tree_control.intf.abap

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,22 @@ INTERFACE y_if_alv_tree_control
2222

2323
METHODS get_selected_line
2424
RETURNING VALUE(result) TYPE REF TO data
25-
RAISING ycx_entry_not_found.
25+
RAISING ycx_entry_not_found.
2626

2727
METHODS get_selected_index
2828
RETURNING VALUE(result) TYPE i
29-
RAISING ycx_entry_not_found.
29+
RAISING ycx_entry_not_found.
3030

3131
METHODS set_selected_index
3232
IMPORTING index TYPE i.
3333

3434
METHODS toolbar_control
3535
RETURNING VALUE(result) TYPE REF TO cl_gui_toolbar
3636
RAISING cx_failed.
37+
38+
METHODS activate_toolbar
39+
RAISING cx_failed.
40+
41+
METHODS deactivate_toolbar
42+
RAISING cx_failed.
3743
ENDINTERFACE.

src/profiles/y_list.clas.abap

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
class Y_LIST definition
2-
public
3-
create public .
1+
CLASS y_list DEFINITION
2+
PUBLIC
3+
CREATE PUBLIC .
44

5-
public section.
5+
PUBLIC SECTION.
66

7-
interfaces Y_IF_LIST .
7+
INTERFACES y_if_list .
88

9-
methods CONSTRUCTOR
10-
importing
11-
!TYPE_NAME type STRING
12-
raising
13-
CX_SY_CREATE_DATA_ERROR .
9+
METHODS constructor
10+
IMPORTING
11+
!type_name TYPE string
12+
RAISING
13+
cx_sy_create_data_error .
1414
PROTECTED SECTION.
1515
PRIVATE SECTION.
1616

@@ -126,6 +126,7 @@ CLASS Y_LIST IMPLEMENTATION.
126126
UNASSIGN <table>.
127127
ENDMETHOD.
128128

129+
129130
METHOD y_if_list~get_line_index.
130131
FIELD-SYMBOLS: <table> TYPE STANDARD TABLE.
131132
ASSIGN table_component->* TO <table>.

src/profiles/y_profile_admin_classes.prog.abap

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,9 @@ CLASS lcl_util DEFINITION. "#EC NUMBER_METHODS
180180
RETURNING VALUE(result) TYPE ytab_checks
181181
RAISING ycx_entry_not_found.
182182

183+
CLASS-METHODS switch_toolbar_activation
184+
RAISING cx_failed.
185+
183186
CLASS-METHODS:
184187
call_f4help
185188
IMPORTING referenced_field_name TYPE dfies-fieldname
@@ -287,6 +290,10 @@ CLASS lcl_profile_events IMPLEMENTATION.
287290
METHOD y_if_alv_events~handle_selection_changed.
288291
lcl_util=>refresh_checks( ).
289292
lcl_util=>refresh_delegates( ).
293+
TRY.
294+
lcl_util=>switch_toolbar_activation( ).
295+
CATCH cx_failed.
296+
ENDTRY.
290297
ENDMETHOD.
291298

292299
METHOD y_if_alv_events~handle_function_selected.
@@ -419,7 +426,7 @@ CLASS lcl_util IMPLEMENTATION.
419426
profiles_tree = y_alv_tree_control=>create( alv_header_text = 'Profiles'(002)
420427
dynpro_nr = '0100'
421428
docking_side = cl_gui_docking_container=>align_at_left
422-
ratio = 16
429+
ratio = 21
423430
type_name = profile_manager->get_profiles_type_name( )
424431
sort_table = VALUE lvc_t_sort( ( spos = 1 fieldname = 'USERNAME' up = abap_true )
425432
( spos = 2 fieldname = 'PROFILE' up = abap_true ) )
@@ -544,6 +551,8 @@ CLASS lcl_util IMPLEMENTATION.
544551

545552
checks_tree->init_display( ).
546553

554+
checks_tree->deactivate_toolbar( ).
555+
547556
CATCH cx_failed
548557
cx_sy_create_data_error.
549558
LEAVE TO SCREEN 0.
@@ -581,6 +590,8 @@ CLASS lcl_util IMPLEMENTATION.
581590

582591
delegates_tree->init_display( ).
583592

593+
delegates_tree->deactivate_toolbar( ).
594+
584595
CATCH cx_failed
585596
cx_sy_create_data_error.
586597
LEAVE TO SCREEN 0.
@@ -642,6 +653,17 @@ CLASS lcl_util IMPLEMENTATION.
642653
UNASSIGN <line>.
643654
ENDMETHOD.
644655

656+
METHOD switch_toolbar_activation.
657+
TRY.
658+
get_selected_profile( ).
659+
checks_tree->activate_toolbar( ).
660+
delegates_tree->activate_toolbar( ).
661+
CATCH ycx_entry_not_found.
662+
checks_tree->deactivate_toolbar( ).
663+
delegates_tree->deactivate_toolbar( ).
664+
ENDTRY.
665+
ENDMETHOD.
666+
645667
METHOD refresh_checks.
646668
CHECK checks_tree IS BOUND.
647669
TRY.

src/profiles/y_profile_administrator.prog.xml

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@
326326
<CONT_NAME>SCREEN</CONT_NAME>
327327
<TYPE>TEXT</TYPE>
328328
<NAME>LBL_TEXT_START_DATE</NAME>
329-
<TEXT>*Validity_Period:________________</TEXT>
329+
<TEXT>*Validity_Period___________FROM:_</TEXT>
330330
<LINE>003</LINE>
331331
<COLUMN>001</COLUMN>
332332
<LENGTH>033</LENGTH>
@@ -358,7 +358,7 @@
358358
<CONT_NAME>SCREEN</CONT_NAME>
359359
<TYPE>TEXT</TYPE>
360360
<NAME>LBL_TEXT_END_DATE</NAME>
361-
<TEXT>*TO</TEXT>
361+
<TEXT>TO:</TEXT>
362362
<LINE>003</LINE>
363363
<COLUMN>046</COLUMN>
364364
<LENGTH>003</LENGTH>
@@ -444,7 +444,7 @@
444444
<LENGTH>001</LENGTH>
445445
<VISLENGTH>010</VISLENGTH>
446446
<HEIGHT>001</HEIGHT>
447-
<FORMAT>CHAR</FORMAT>
447+
<FORMAT>CUKY</FORMAT>
448448
<INPUT_FLD>X</INPUT_FLD>
449449
<OUTPUT_FLD>X</OUTPUT_FLD>
450450
<REQU_ENTRY>O</REQU_ENTRY>
@@ -484,7 +484,7 @@
484484
<CONT_NAME>SCREEN</CONT_NAME>
485485
<TYPE>TEXT</TYPE>
486486
<NAME>LBL_ON_PRODCODE</NAME>
487-
<TEXT>Apply_on_Productive_Code_________</TEXT>
487+
<TEXT>Apply_on_Productive_Code:________</TEXT>
488488
<LINE>007</LINE>
489489
<COLUMN>001</COLUMN>
490490
<LENGTH>033</LENGTH>
@@ -513,7 +513,7 @@
513513
<CONT_NAME>SCREEN</CONT_NAME>
514514
<TYPE>TEXT</TYPE>
515515
<NAME>LBL_ON_TESTCODE</NAME>
516-
<TEXT>Apply_on_Testcode________________</TEXT>
516+
<TEXT>Apply_on_Testcode:_______________</TEXT>
517517
<LINE>008</LINE>
518518
<COLUMN>001</COLUMN>
519519
<LENGTH>033</LENGTH>
@@ -836,48 +836,36 @@
836836
<CODE>ENTR_200</CODE>
837837
<TEXTNO>001</TEXTNO>
838838
<TEXT_TYPE>S</TEXT_TYPE>
839-
<TEXT_NAME>ICON_OKAY</TEXT_NAME>
840-
<ICON_ID>@0V@</ICON_ID>
841839
<FUN_TEXT>Ok</FUN_TEXT>
842840
</RSMPE_FUNT>
843841
<RSMPE_FUNT>
844842
<CODE>ENTR_300</CODE>
845843
<TEXTNO>001</TEXTNO>
846844
<TEXT_TYPE>S</TEXT_TYPE>
847-
<TEXT_NAME>ICON_OKAY</TEXT_NAME>
848-
<ICON_ID>@0V@</ICON_ID>
849845
<FUN_TEXT>Ok</FUN_TEXT>
850846
</RSMPE_FUNT>
851847
<RSMPE_FUNT>
852848
<CODE>ENTR_400</CODE>
853849
<TEXTNO>001</TEXTNO>
854850
<TEXT_TYPE>S</TEXT_TYPE>
855-
<TEXT_NAME>ICON_OKAY</TEXT_NAME>
856-
<ICON_ID>@0V@</ICON_ID>
857851
<FUN_TEXT>Ok</FUN_TEXT>
858852
</RSMPE_FUNT>
859853
<RSMPE_FUNT>
860854
<CODE>ENTR_500</CODE>
861855
<TEXTNO>001</TEXTNO>
862856
<TEXT_TYPE>S</TEXT_TYPE>
863-
<TEXT_NAME>ICON_OKAY</TEXT_NAME>
864-
<ICON_ID>@0V@</ICON_ID>
865857
<FUN_TEXT>Ok</FUN_TEXT>
866858
</RSMPE_FUNT>
867859
<RSMPE_FUNT>
868860
<CODE>ENTR_600</CODE>
869861
<TEXTNO>001</TEXTNO>
870862
<TEXT_TYPE>S</TEXT_TYPE>
871-
<TEXT_NAME>ICON_OKAY</TEXT_NAME>
872-
<ICON_ID>@0V@</ICON_ID>
873863
<FUN_TEXT>Ok</FUN_TEXT>
874864
</RSMPE_FUNT>
875865
<RSMPE_FUNT>
876866
<CODE>ESC</CODE>
877867
<TEXTNO>001</TEXTNO>
878868
<TEXT_TYPE>S</TEXT_TYPE>
879-
<TEXT_NAME>ICON_CANCEL</TEXT_NAME>
880-
<ICON_ID>@0W@</ICON_ID>
881869
<FUN_TEXT>Cancel</FUN_TEXT>
882870
</RSMPE_FUNT>
883871
<RSMPE_FUNT>
@@ -890,8 +878,6 @@
890878
<CODE>PICK</CODE>
891879
<TEXTNO>001</TEXTNO>
892880
<TEXT_TYPE>S</TEXT_TYPE>
893-
<TEXT_NAME>ICON_CHANGE</TEXT_NAME>
894-
<ICON_ID>@0Z@</ICON_ID>
895881
<FUN_TEXT>Choose</FUN_TEXT>
896882
<PATH>S</PATH>
897883
</RSMPE_FUNT>

0 commit comments

Comments
 (0)