Project

General

Profile

Bug #2787

Bug #2677: fix drawing and functional differences between P2J GUI and 4GL GUI

implement mnemonics/accelerator key support for button

Added by Greg Shah over 8 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Vadim Gindin
Start date:
Due date:
% Done:

100%

billable:
No
vendor_id:
GCD
case_num:

alert-box_chui_20160504.jpg - ChUI alert box (21.9 KB) Eugenie Lyzenko, 05/04/2016 12:48 PM


Related issues

Related to User Interface - Bug #2775: alert-box key processing is disabled when no main window is visible Closed
Related to User Interface - Bug #2790: implement generic for button groups New
Related to User Interface - Bug #3233: button accelerators do not work New

History

#1 Updated by Greg Shah over 8 years ago

For details on the problem, see #2775-8

We need to look carefully at the menu implementation to see if it is common code. We have potential font metrics issues. We need to check ChUI too (we know it works for GUI). When complete, we should fixup the alert-box implementation to use the generic approach.

#2 Updated by Hynek Cihlar over 8 years ago

Also see #2775 note 15.

#3 Updated by Greg Shah over 8 years ago

We will work the button grouping support issue in #2790.

#4 Updated by Greg Shah over 8 years ago

  • Assignee set to Vadim Gindin

#5 Updated by Vadim Gindin about 8 years ago

Created task branch 2787a from P2J trunk revision 10971.

#6 Updated by Vadim Gindin about 8 years ago

  1. How is the alert-box relates to mnemonics?
  2. Does button grouping mechanism supported not or it doesn't supported yet?
  3. I'm going to add mnemonics implementation to Button class. Is that suitable place?

#7 Updated by Greg Shah about 8 years ago

  1. How is the alert-box relates to mnemonics?

Did you read #2775-8 as mentioned above?

It has this comment:

Interestingly, We do have some limited support in Button for this already. See checkKey(), setUnderscoreOffset() and handleHotkeys(). The only place it is used is in AlertBoxImpl.doLayout() which calls button.setUnderscoreOffset(0); for each of the buttons.

This is the code needing the suggested fixups.

  1. Does button grouping mechanism supported not or it doesn't supported yet?

Not yet. #2790 has not been worked.

  1. I'm going to add mnemonics implementation to Button class. Is that suitable place?

The reason I have you working this is because you implemented the menu mnemonics. I am hoping that some large amount of that code can be common code used for both buttons and menus. If that is the case, please look to move that common code into its own class(es) and then use it from menus/buttons as needed.

#8 Updated by Vadim Gindin about 8 years ago

Yes, buttons use the same algorithm, but I've found a small difference: button labels do not use first character of a label as default mnemonic.
Here are samples of such labels with different results for buttons and menus: &&&&W Button 7, &&Toyota&&, Corvet&&, Exit. Tests: gui_button_mnemonic.p, menu/sm_mnemonic.p.

#9 Updated by Greg Shah about 8 years ago

That still sounds like we can have common code and just differentiate the use cases with a flag.

#10 Updated by Vadim Gindin about 8 years ago

Greg Shah wrote:

For details on the problem, see #2775-8

We need to look carefully at the menu implementation to see if it is common code. We have potential font metrics issues. We need to check ChUI too (we know it works for GUI). When complete, we should fixup the alert-box implementation to use the generic approach.

  1. As I can see from docs mnemonics (characters after '&') are work only for Windows
  2. Not only buttons and menus support mnemonic, but also radio-button, editor and some other widgets. (need to be tested)

#11 Updated by Vadim Gindin about 8 years ago

Branch is rebased with the latest trunk revision. Current branch revision is 10985.

#12 Updated by Greg Shah about 8 years ago

As I can see from docs mnemonics (characters after '&') are work only for Windows

Please test this in ChUI to confirm. If correct, then this is a GUI-only feature.

Not only buttons and menus support mnemonic, but also radio-button, editor and some other widgets. (need to be tested)

Please write testcases and document the results here.

#13 Updated by Vadim Gindin about 8 years ago

Greg Shah wrote:

As I can see from docs mnemonics (characters after '&') are work only for Windows

Please test this in ChUI to confirm. If correct, then this is a GUI-only feature.

I've tried again but couldn't find a way to make mnemonic work for buttons in CHUI.

#14 Updated by Vadim Gindin about 8 years ago

I could only found mnemonics get used in buttons for CHUI in alert-boxes. I've fixed CHUI implementation and removed underscore flag. Please review. Branch revision is 10986.

By the way button mnemonics aren't shown in GUI...

#15 Updated by Vadim Gindin about 8 years ago

I made a misprint. Buttons mnemonics are not shown in ALERT-BOX. For usual buttons they are shown.

Testing result for mnemonics in GUI:
1. RADIO-BUTTON, FILL-IN, EDITOR - full support.
2. COMBO-BOX and SELECTION-LIST - limited support for items.
3. NO-FOCUS=true or TAB-STOP=false excludes a widget from tab-order and thereby make mnemonic non-working.

CHUI has no mnemonics for such widgets.

Full support means the letter after '&' is underlined and the a widget which label has mnemonic can be focused using ALT+m combination, where m - is a mnemonic character.
Limited support means that mnemonics for items are all those first letters and using '&' in item label will not lead to assigning new mnemonic. ALT+key will request focus for item whose label starts with character key.

#16 Updated by Greg Shah about 8 years ago

  • Target version changed from Milestone 12 to Milestone 16

#17 Updated by Vadim Gindin about 8 years ago

I've rebased the branch. Current revision is 10991. Needed review.

#18 Updated by Greg Shah about 8 years ago

Code Review Task Branch 2787a Revision 10991

Overall, the approach is very good. I like that you have achieved reuse of the mnemonic processing.

1. The code in ButtonWidget.setLabel() is largely duplicative with the code from GenericWidget.setLabel(). Please refactor this so that there is common code. There are at least 2 reasonable approaches:

  • Add a protected method to GenericWidget that is called from GenericWidget.setLabel(). Move the code that cannot be common into that method. Override that method in ButtonWidget to replace it, but the core of GenericWidget.setLabel() will remain common. There would be no need for ButtonWidget.setLabel() in this case.
  • Move the common portions of () implementation into a protected method that is called from @GenericWidget.setLabel() and also from ButtonWidget.setLabel() so that there is no duplication.

2. Please put the following comment back into the ButtonImpl.draw() method (in the mnemonic section):

         // note that this draws in the non-reversed form whether selected
         // or not (this is the equivalent of a "highlight" in the selected
         // mode because the rest of the button was drawn in reverse video

It is just as relevant now as it was before.

2. In ButtonImpl.draw(), the Color mnemonicColor = dColor.withUnderline().withoutReverse(); can be moved into the else branch of the mnemonic section.

3. Please restore the wildcard import statements in Button.

4. Button.createNewLabel() seems to be a confusing name. It isn't really creating a label. Perhaps Button.createLabelInfo() is more appropriate. Please make this same change in all the other classes like MenuItem, SubMenu, ButtonGuiImpl, MenuItemGuiImpl, SubMenuGuiImpl where this same method is implemented.

5. MenuItem, SubMenu, MenuItemChuiImpl, SubMenuChuiImpl, MenuItemGuiImpl, SubMenuGuiImpl each need a history entry.

6. Please use wildcard imports in MnemonicInfo.

7. Please remove the dead code at line 757 in ButtonGuiImpl.

8. In MnemonicInfoGuiImpl, please put the extends MnemonicInfo on the next line.

9. In all of these files, doesn't the & need to be written as the entity &?

#19 Updated by Vadim Gindin about 8 years ago

I've rebased the branch 2787a with current trunk revision and fixed all remarks except the last one.

What did you mean there?

#20 Updated by Greg Shah about 8 years ago

You can't use the & directly in javadoc. You must use the HTML entity (& a m p ; but without the spaces).

#21 Updated by Vadim Gindin about 8 years ago

Fixed. Revision 11004. Can I run regression testing?

#22 Updated by Greg Shah about 8 years ago

Code Review Task Branch 2787a Revision 11004

I'm fine with the changes.

Yes, you can run regression testing. However please note that similar to #2849, this update will be merged after some others and will need a further rebase and an additional round of testing. But it is a good idea to confirm that the current changes are known to be safe.

#23 Updated by Vadim Gindin about 8 years ago

Here are the testing failures:
tc_item_stockroom_011
tc_gl_rpts_007
tc_codes_employees_010
tc_dc_slot_029
tc_pay_emp_abs_acc_003
gso_308
gso_333
gso_334
gso_343
I've ran testing again (main part).

#24 Updated by Vadim Gindin about 8 years ago

the same gso_rfq_tests are failed: gso_308, gso_333, gso_334, gso_343

and tc tests:
tc_dc_slot_026, tc_dc_slot_027, tc_dc_slot_029, tc_item_master_007

where only rfq tests and tc_dc_slot_029 intersects with previous results.

#25 Updated by Vadim Gindin about 8 years ago

Here is what I've got in tc_dc_slot_029:

04/08/2016              TIME & ATTENDANCE BADGE READER                  14:12:30
                                                                      SCAN BADGE

(Error)  1411 (Duplicate read [112183])
         1411 (Ready)                  

But it must be:
01/18/2010              TIME & ATTENDANCE BADGE READER                  18:54:27
                                                                      SCAN BADGE

ClockIn  1854 XXXXXXXX, XXXX (redacted)

┌──────────────────────────────────────────────────────────────────────────────┐
│INFO: T&A post-time rounded to nearest 1/4 hour. (1)                          │
└──────────────────────────────────────────────────────────────────────────────┘

#26 Updated by Vadim Gindin about 8 years ago

rfq test gso_308:

   81 CHECK-SCREEN-BUFFER                                                                                
wait = true; millis = ʼ180000ʼ; failing screen =                                                         
04/08/2016                      RFQ Customer Cards                      10:45:56                         
┌──────────────────────────────────────────────────────────────────────────────┐                         

confidential information redacted

└────────────────────────────────[ Card #  ]───────────────────────────────────┘                         
<G> <B> <A> <D> <F> <U> <O> <C> <P> <N> <E> <S> <R> <K> <H> <M> <I>                                      
Enter service order or <F1> for search                                                                   

   FAILED 180.052                                                                                        
timeout before the specific screen buffer became available (Mismatched data at line 7, column 10. Expecte
d '─' (0x2500 at relative Y 7, relative X 10) and found '┌' (0x250C at relative Y 7, relative X 10), temp
late: screens/gso/gso_308/rfq_db_functions_step7.txt.)                            

Here is the noted template:
06/29/2009                      RFQ Customer Cards                      18:36:21
┌──────────────────────────────────────────────────────────────────────────────┐

confidential information redacted

└────────────────────────────────[ Card #  ]───────────────────────────────────┘
<G> <B> <A> <D> <F> <U> <O> <C> <P> <N> <E> <S> <R> <K> <H> <M> <I>

<G> Generate cards from existing Service Order/RFQ

It looks like some dialog is not opened. What it can be related with? Where the sources corresponding to this screens?

#27 Updated by Constantin Asofiei about 8 years ago

Vadim Gindin wrote:

It looks like some dialog is not opened. What it can be related with? Where the sources corresponding to this screens?

Execute the test steps on your machine and debug the server and client. The 4GL code can be found by searching for the title "RFQ Customer Cards" in the 4GL sources.

#28 Updated by Eugenie Lyzenko about 8 years ago

Some considerations for regression test harness to take into account.

1. The results are very sensitive to starting time. The best time frame is 22:00 - 4:00 of the Moscow time. The results are very dependent on current machine loading.
2. DC-SLOT-* has timing counters inside. It is very rare case when all of them are passed on the first run. Start another cycle to get cross reference. These test can not be run manually.
3. If some test fails it is better to start another round to confirm the test is actually fails. If test is passing in some test round we consider it as passed.

The passing everything in a single round is very rare event. Do not panic, run another cycle.

#29 Updated by Vadim Gindin about 8 years ago

I'd ran regression testing 3rd time and these files founded in previously runs are failed:
tc_dc_slot_029
gso_308
gso_333
gso_334
gso_343

#30 Updated by Greg Shah about 8 years ago

What time of day did you start this last run?

#31 Updated by Vadim Gindin about 8 years ago

Greg Shah wrote:

What time of day did you start this last run?

It was probably an evening - right after Eunenie wrote his note. I've looked at the process starting in the server just now:

vig      29213  0.2  3.0 12065652 1985752 pts/15 Sl Apr08   5:41 java -Xmx4096m ...

But I don't know if it is correct GC time: Apr08 5:41

#32 Updated by Greg Shah about 8 years ago

Considering that 5 of the tests are always failing, I think you should dig into the failures. It is probably a regression.

#33 Updated by Vadim Gindin about 8 years ago

After the last note I'd ran regression testing 4 times. In on of them tc_dc_slot_029 passed. Can we assume that it passed generally because of that?

RFQ tests are failed all times. I've tried to run gso_308 test manually and it has shown the message "RFQ DB is not connected - ..". How to connect it?

#34 Updated by Vadim Gindin about 8 years ago

Does somebody know why RFQ database could be unavailable? Is there a way to check it?

#35 Updated by Greg Shah about 8 years ago

Do you have the RFQ P2J server started?

#36 Updated by Vadim Gindin about 8 years ago

they are left started after the last automated testing was finished:

   [exec] Servers started successfully (GSO=200) (RFQ=210) (psql=5442)!
</Pre>

#37 Updated by Constantin Asofiei about 8 years ago

Vadim, you can use port_mapping.sh on devsrv01 to find details about how your servers are configured:

ca@devsrv01:~$ port_mapping.sh vig all
** The default port mappings for user <vig>:
Port     Key                  Description                                       
------------------------------------------------------------------------------
    9999 psql_port            The postgres server port to connect.            
     999 gso_instance         The default GSO server instance                   
     999 rfq_instance         The default RFQ server instance                   

So, you can start a client on instance 210 (i.e. ./client.sh -i210) and check if you can connect to the RFQ server.

LE: GES redacted confidential info.

#38 Updated by Vadim Gindin about 8 years ago

I can't log in RFQ server. Login page is shown, but when I enter login and password it reloads login page..

There are some errors in the old log:

..
[04/14/2016 15:51:04 EDT] (SecurityManager:SEVERE) {main} Certificate alias [rfq] for [CN=RFQ P2J Server] was signed using the SHA1withRSA algorithm. Use a SHA-2 implementation instead.
[04/14/2016 15:51:04 EDT] (SecurityManager:WARNING) {main} Certificate alias [lms] for [CN=lms] was signed with a RSA key of length 1024. A minimum key length of 2048 is recommended.
[04/14/2016 15:51:04 EDT] (SecurityManager:SEVERE) {main} Certificate alias [lms] for [CN=lms] was signed using the SHA1withRSA algorithm. Use a SHA-2 implementation instead.
[04/14/2016 15:51:04 EDT] (SecurityManager:WARNING) {main} Certificate alias [lcq] for [CN=LCQ P2J Server] was signed with a RSA key of length 1024. A minimum key length of 2048 is recommended.
[04/14/2016 15:51:04 EDT] (SecurityManager:SEVERE) {main} Certificate alias [lcq] for [CN=LCQ P2J Server] was signed using the SHA1withRSA algorithm. Use a SHA-2 implementation instead.
[04/14/2016 15:51:04 EDT] (SecurityManager:WARNING) {main} Certificate alias [mcn] for [CN=MCN P2J Server] was signed with a RSA key of length 1024. A minimum key length of 2048 is recommended.
[04/14/2016 15:51:04 EDT] (SecurityManager:SEVERE) {main} Certificate alias [mcn] for [CN=MCN P2J Server] was signed using the SHA1withRSA algorithm. Use a SHA-2 implementation instead.
[04/14/2016 15:51:04 EDT] (SecurityManager:WARNING) {main} Certificate alias [osc] for [CN=OSC P2J Server] was signed with a RSA key of length 1024. A minimum key length of 2048 is recommended.
[04/14/2016 15:51:04 EDT] (SecurityManager:SEVERE) {main} Certificate alias [osc] for [CN=OSC P2J Server] was signed using the SHA1withRSA algorithm. Use a SHA-2 implementation instead.
[04/14/2016 15:51:04 EDT] (SecurityManager:WARNING) {main} Certificate alias [gyr] for [CN=GYR P2J Server] was signed with a RSA key of length 1024. A minimum key length of 2048 is recommended.
[04/14/2016 15:51:04 EDT] (SecurityManager:SEVERE) {main} Certificate alias [gyr] for [CN=GYR P2J Server] was signed using the SHA1withRSA algorithm. Use a SHA-2 implementation instead.
[04/14/2016 15:51:04 EDT] (SecurityManager:WARNING) {main} Certificate alias [ediavc] for [CN=EDI Invoice Driver] was signed with a RSA key of length 1024. A minimum key length of 2048 is recommended.
[04/14/2016 15:51:04 EDT] (SecurityManager:SEVERE) {main} Certificate alias [ediavc] for [CN=EDI Invoice Driver] was signed using the SHA1withRSA algorithm. Use a SHA-2 implementation instead.
..

Could it be a reason?

#39 Updated by Greg Shah about 8 years ago

Could it be a reason?

No.

Please look in the server log for the RFQ server AND in the client log for the client that you ran manually.

#40 Updated by Vadim Gindin about 8 years ago

Client log does not contain errors. All logs in the folder ~/testing/majic/run/server contains records not later than Apr 14. Strange..

P.S. Is RFQ login/pwd the same as in GSO?

#41 Updated by Constantin Asofiei about 8 years ago

Vadim Gindin wrote:

Client log does not contain errors. All logs in the folder ~/testing/majic/run/server contains records not later than Apr 14. Strange..

P.S. Is RFQ login/pwd the same as in GSO?

See the navigation/login_to_main_rfq_menu.xml file.

#42 Updated by Vadim Gindin about 8 years ago

There is the following failed screen:

04/13/2016                      RFQ Customer Cards                      07:52:47
┌──────────────────────────────────────────────────────────────────────────────┐
redacted
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│  Sel W.B.C.   Oper Card Num             Description                          │
│  ───────┌─────── Copy Customer Cards in from existing S/O ────────┐──────────│
│ >       │From S/O: 283310 ┌────── Message ───────┐ W.B.C.: 1.1.1  │          │
│         └─────────────────│ 558 Records created  │────────────────┘          │
│                           │ ──────────────────── │                           │
│                           │         <OK>         │                           │
│                           └──────────────────────┘                           │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘
<G> <B> <A> <D> <F> <U> <O> <C> <P> <N> <E> <S> <R> <K> <H> <M> <I>

Here is an ALERT-BOX shown. When we press "VK_ENTER" alert-box is closed (Customer Cards list is filed with created cards) and underlined frame "Copy Customer Cards in from existing S/O" is must be closed but it stayed opened.

#43 Updated by Vadim Gindin about 8 years ago

There are the target sources:

majic/src/syman/so/serv21.p - common form.
majic/src/syman/so/serv21h.p - included file with alert-box.
majic/src/aero/timco/majic/ui/so/Serv21Trigger2FGen.java - generated source.

#44 Updated by Constantin Asofiei about 8 years ago

Vadim, the problem is that the trigger is fired again after you press RETURN to dismiss the alert-box. I'm not sure yet, I'm looking into it.

#45 Updated by Constantin Asofiei about 8 years ago

Vadim, the cause is this. In your branch, an ItemEvent is raised for the G button, again, after the first KeyEvent which invoked the trigger:

ItemEvent.<init>(Widget, boolean) line: 50    
ItemEvent.<init>(Widget) line: 37    
ButtonImpl(Button<O>).handleBasicEvents(KeyInput) line: 562    
ButtonImpl(AbstractButton<O,C>).processKeyEventCommon(KeyInput) line: 313    
ButtonImpl(Button<O>).processKeyEvent(KeyInput) line: 479    
WindowChuiImpl(TitledWindow<O>).processKeyEvent(KeyInput) line: 226    
ButtonImpl(AbstractWidget<O>).processEvent(Event) line: 1230    
ButtonImpl(Button<O>).processEvent(Event) line: 441    
WindowChuiImpl(TitledWindow<O>).processEvent(Event) line: 195    
WindowChuiImpl(TopLevelWindow<O>).processEvent(Event) line: 802    
ThinClient.processEventsWorker() line: 15491    
ThinClient.pop() line: 14312    

In trunk, this does not happen... please write some tests which mimic how the G button's triggers are defined in serv21.p, and test with or without mnemonics.

#46 Updated by Vadim Gindin almost 8 years ago

Here is the test:

def button btn-gen     label "&G" auto-go.
def button btn-find    label "&F" auto-go.
def button btn-upd     label "&U" auto-go.

def frame f-frame
    btn-gen  at col 1 row 21
      help "<G> Generate cards from existing Service Order/RFQ" 
    btn-find
      help "<F> Find card in browser" 
    btn-upd
      help "<U> Update current card" 
    with centered no-box side-labels row 6.

enable all with frame f-frame.

    form
         with overlay row 8 centered side-labels frame f-gen
         title " Copy Customer Cards in from existing S/O ".

def var ch as char init "11".

display ch with overlay row 8 centered side-labels frame f-gen.

message "Records created" view-as alert-box.

wait-for choose of btn-upd.

It has no specific logic, it just simulates the same frames set as in serv21.p. After the test is started press SPACE => form and alert-box will appear. Than press ENTER and alert-box is closed and hides some underlying rectangle of form:

                                ┌ Copy Customer            om existing S/O ┐
                                │ch: 11                                    │
                                └───────────────           ────────────────┘

This behaviour is met in lindev01, but in both trunk/2787 behavior different:
                                ┌ Copy Customer Cards in from existing S/O ┐ 
                                │ch: 11                                    │ 
                                └──────────────────────────────────────────┘

  1. Once again, behaviour of branch is the same and erroneous as behaviour of trunk.
  2. I didn't find any relation with ItemEvent..

#47 Updated by Constantin Asofiei almost 8 years ago

Vadim Gindin wrote:

Here is the test:
[...]

Your test doesn't match how serv21.p works: the overlay frame is shown via a trigger on the G button:

  on G,g of btn-gen or choose of btn-gen
  do:
    // show an alert box or message etc...
  end.

Also, you may want to split this into two triggers:

  on G,g of btn-gen
  do:
    message "trigger 1".
  end.
  on choose of btn-gen
  do:
    message "trigger 2".
  end.

So, if we take the triggers and put them in your test:

def button btn-gen     label "&G" auto-go.
def button btn-find    label "&F" auto-go.
def button btn-upd     label "&U" auto-go.

def frame f-frame
    btn-gen  at col 1 row 21
      help "<G> Generate cards from existing Service Order/RFQ" 
    btn-find
      help "<F> Find card in browser" 
    btn-upd
      help "<U> Update current card" 
    with centered no-box side-labels row 6.

enable all with frame f-frame.

    form
         with overlay row 8 centered side-labels frame f-gen
         title " Copy Customer Cards in from existing S/O ".

def var ch as char init "11".

display ch with overlay row 8 centered side-labels frame f-gen.

message "Records created" view-as alert-box.
  on G,g of btn-gen
  do:
    message "trigger 1".
  end.
  on choose of btn-gen
  do:
    message "trigger 2".
  end.
wait-for choose of btn-upd.

pressing G key will show trigger 1 and pressing RETURN key on button G will show trigger 2. I suspect in P2J both triggers will be invoked. The fix I think is: if a trigger is already invoked for the button, do not raise a CHOOSE, too.

#48 Updated by Vadim Gindin almost 8 years ago

After the last regression testing bug is not fixed.

#49 Updated by Vadim Gindin almost 8 years ago

The error is the same but triggers are now working identical..

#50 Updated by Constantin Asofiei almost 8 years ago

Vadim Gindin wrote:

The error is the same but triggers are now working identical..

2787a has no changes related to this - are you saying the triggers were not working previously and now they are working? What changes did you make?

#51 Updated by Vadim Gindin almost 8 years ago

I've just rebased the branch to the current trunk revision and fixed some merging bug. After some moment triggers become called one for G and one for ENTER.

#52 Updated by Constantin Asofiei almost 8 years ago

Vadim Gindin wrote:

I've just rebased the branch to the current trunk revision and fixed some merging bug. After some moment triggers become called one for G and one for ENTER.

And have you checked how 4GL behaves? From my testing, only the G trigger is invoked - the CHOOSE trigger is not invoked.

#53 Updated by Vadim Gindin almost 8 years ago

Yes, I'd checked that. Now in 2787a branch only G trigger is invoked for 'G'.

#54 Updated by Constantin Asofiei almost 8 years ago

Vadim, I've just tested branch 2787a with the test in note 47 and, when pressing G, both "trigger 1" and "trigger 2" is shown on screen.

#55 Updated by Vadim Gindin almost 8 years ago

In most cases mnemonics are shown right after start (GUI), but I met some time that mnemonics are not shown by default and turned on by pressing ALT as in CHUI. But I can't find such case..

#56 Updated by Vadim Gindin almost 8 years ago

The changes passed regression testing.

#57 Updated by Vadim Gindin almost 8 years ago

I'm ready to commit.

The only question left is the question about "Key mode" for buttons in Windows. In most cases mnemonics are shown right after start, but in some runs mnemonics are not shown and can be turned on using ALT button. I can't catch concrete circumstances..

#58 Updated by Greg Shah almost 8 years ago

Code Review Task Branch 2787a Revision 11025

1. The branch needs to be rebased.

2. The MenuItemGuiImpl.createDynamicItem() no longer registers the given MouseAdapter instance. Why is that correct?

#59 Updated by Greg Shah almost 8 years ago

Did you test all the standalone GUI cases?

#60 Updated by Greg Shah almost 8 years ago

The only question left is the question about "Key mode" for buttons in Windows. In most cases mnemonics are shown right after start, but in some runs mnemonics are not shown and can be turned on using ALT button. I can't catch concrete circumstances..

Open a separate task for this. Please make sure you have a recreate AND screen captures to show the problem.

#61 Updated by Greg Shah almost 8 years ago

Eugenie: please do a code review.

#62 Updated by Vadim Gindin almost 8 years ago

Greg Shah wrote:

Code Review Task Branch 2787a Revision 11025

1. The branch needs to be rebased.

2. The MenuItemGuiImpl.createDynamicItem() no longer registers the given MouseAdapter instance. Why is that correct?

No, that was not correct. Thank you! I've rebased the branch and committed this fix. Current revision is 11033 (corresponding trunk revision is 11021).

I didn't run standalone GUI tests yet. I've found that editor popup is not shown despite the code, showing editor popup is called. I'm digging..

#63 Updated by Hynek Cihlar almost 8 years ago

Vadim Gindin wrote:

Greg Shah wrote:

Code Review Task Branch 2787a Revision 11025

1. The branch needs to be rebased.

2. The MenuItemGuiImpl.createDynamicItem() no longer registers the given MouseAdapter instance. Why is that correct?

No, that was not correct. Thank you! I've rebased the branch and committed this fix. Current revision is 11033 (corresponding trunk revision is 11021).

I didn't run standalone GUI tests yet. I've found that editor popup is not shown despite the code, showing editor popup is called. I'm digging..

Vadim, please see #3080 note 20.

#64 Updated by Vadim Gindin almost 8 years ago

Thanks, Hynek! It means that this bug is fixed there.

So I've tested standalone GUI tests. All is OK.

#65 Updated by Eugenie Lyzenko almost 8 years ago

I'm OK with changes.

However I would like to note the regression testing will NOT detect button underscore missing(because it is char attribute we do not track) as regression. So in addition to the GUI manual test it is required to do ChUI manual tests to to find out whether all required underscore and highlight is drawing properly.

#66 Updated by Greg Shah almost 8 years ago

Eugenie: please post a list of tests that should be checked.

#67 Updated by Eugenie Lyzenko almost 8 years ago

Greg Shah wrote:

Eugenie: please post a list of tests that should be checked.

The one test can be button-highlight.p
The second one requires to have RFQ server running(It is ready before regression testing start)
- login as syman
- from main menu: 7, 2, 8000357, ENTER, F4
- the alert box is on the screen, compare underscore and highlight

The current trunk picture is attached.

#68 Updated by Greg Shah almost 8 years ago

Vadim: please run the tests listed in note 67 and report the results here.

#69 Updated by Vadim Gindin almost 8 years ago

I've ran these tests. Buttons are drawn correctly in both of them.

#70 Updated by Vadim Gindin almost 8 years ago

Frames look differently (button-highlight.p):
PROGRESS (lindev01):

┌─────────────────────────────────┐
│         i                       │
│──────────                       │
│                                 │
│<Add> <Material> <Routing> <Exit>│
└─────────────────────────────────┘

P2J:
┌─────────────────────────────────┐  
│         i                       │  
│     ─          ─         ─      │  
│                                 │  
│<Add> <Material> <Routing> <Exit>│  
└─────────────────────────────────┘  

  1. Is it a known bug, should I create a task for it?
  2. Buttons are shown correctly. Can I commit the changes?

#71 Updated by Greg Shah almost 8 years ago

Is it a known bug, should I create a task for it?

Does this same bug happen in the P2J trunk revision 11021?

#72 Updated by Greg Shah almost 8 years ago

Code Review Task Branch 2787a Revision 11033

I'm fine with the changes. Please answer the question in note 71 before I make the call on merging to trunk.

#73 Updated by Vadim Gindin almost 8 years ago

Greg Shah wrote:

Is it a known bug, should I create a task for it?

Does this same bug happen in the P2J trunk revision 11021?

Yes, the same bug exists in trunk rev 11021.

#74 Updated by Greg Shah almost 8 years ago

OK, please create a new task for ChUI frame issue. Make me a watcher. The task should NOT be a sub-task of #2677.

#75 Updated by Greg Shah almost 8 years ago

Eugenie is going to merge 2738a into the trunk next. As soon as you see his notification, please rebase and then merge to trunk. There will not be any conflicts in the rebase.

#76 Updated by Vadim Gindin almost 8 years ago

The branch 2787a is rebased and merged to trunk as revision 11023.

#77 Updated by Vadim Gindin almost 8 years ago

I've created the stask #3099 for the bug from the note 70.

#78 Updated by Greg Shah almost 8 years ago

  • % Done changed from 0 to 100
  • Status changed from New to Closed

#79 Updated by Greg Shah over 7 years ago

  • Target version changed from Milestone 16 to Cleanup and Stabilization for GUI

#80 Updated by Greg Shah about 7 years ago

  • Related to Bug #3233: button accelerators do not work added

Also available in: Atom PDF