-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generate Clarification tab GUI Issues on both Linux and Windows #1024
Comments
This issue was subsequently also raised in duplicate issue #1037, which has since been Closed as "Duplicate". However, there are a few differences between Issue #1037 and this issue:
Also, possibly relevant, is the following comment from Issue #1037: This is just a suspicion, but I suspect the issue has something to do with the fact that the code is changing the underlying Model which is loaded into the JList (actually, JCheckBoxJList, which is a subclass of JList) which is the "client" of the JScrollPane. Perhaps some kind of collision is happening between multiple Swing AWT-Thread events, or between the AWT thread and some other thread (although I don't know what that other thread would be). The fact that I've seen this bug manifest even when I wasn't touching the keyboard leads me to believe that the JVM (probably the AWT thread) is triggering some change that causing the problem. Also, possibly relevant, is the discussion about JList models found in the Java JList API documentation. |
I just noticed something I think is interesting and might be relevant to this issue.
When the Judge timer decrements by one (minute), the Specific Teams display goes wonky -- at exactly the moment the timer changes! I've tried this over a dozen times, and every time the Judge display goes wonky when the Judge timer decrements. This tells me that the Swing Timer is waking up the AWT event thread, and something is happening on that thread that's corrupting the judge display. (I don't know what that "something" is... but maybe this is a clue that will help us find the issue...) So far I have not seen the timer cause the Groups display to corrupt... but once the Specific Teams display is corrupted (every one minute), switching back to "Groups" shows a corrupted display. Switching back to "All Teams" and then "Groups" (and then "Specific Teams" produces correct displays... until a minute elapses. Don't know if that's another clue or just a side-effect... Another interesting clue: if you show a valid "Specific Teams" display, then wait for the time to corrupt it, then switch to the Groups display, you'll see it is also corrupted. But if you just wait for one more minute until the timer ticks again, **the Groups display will magically correct itself!** Another point of note: the class which is being used as the List client for the JScrollPane is an instance of p.s. I was doing this under Windows 11, but it wouldn't surprise me to be told the same thing happens under Linux... |
I strongly believe the underlying issue here is some kind of interaction between the AWT thread and the switching of the client model in the JScrollPane. If someone is going to work on this, I believe we should first separate the single JScrollPane into two separate JScrollPanes -- because users need to be able to select both "Groups" and "Specific Team(s)". Currently, if they try to select one (say, "Groups"), and then switch to and select the other ("Specific Teams") the "Groups" selection will be lost. Having two separate JScrollPanes, one showing Groups and another showing Teams at the same time will allow the user to select from both lists AND is highly likely to cure the "corruption" problem (because it will eliminate the need to switch the underlying client models). |
I have working code as a part of Issue #1030 that I believe will completely fix (eliminate) the problems described in this issue. (Specifically, I had to implement "separate JScrollpanes for teams and groups" in order to test the fixes for #1030.) I would suggest holding off doing any work on this issue until I can submit a PR for #1030, since I believe that will fix this issue as well. |
Describe the issue:
With the addition of the "announcement" feature in PR #920 (and Issue #221), a checked list box was added to the tab. If "Specific Team(s)" is chosen as the Destination, and there are teams with wide names, the checked list box is virtually unusable on the Linux GUI desktop. You can click on select "Group(s)" then go back to "Specific Team(s)" and sometimes you can make the check list usable. The same problem exists for "Group(s)" (See images below)
In addition, the size of the checkbox list box appears to change when different things are selected. See images below
Also, the checkbox that allows you to select an announcement "Generate Announcement" is chopped off so it reads "Genenerate Announ..." (see images below)
To Reproduce:
Expected behavior:
The checkbox list box should operate properly and accommodate wide team names. It should fill the "Group(s)" group box (container box). If there are wide teams (or groups), there should be a scrollbar along the bottom to allow the user to scroll left or right, but, by default, the checkboxes should be visible on first appearance, and whenever selecting "Specific Team(s)" (or "Group(s)" in the case of groups.
Actual behavior:
Checkbox list box is virtually useless if there are wide teams and/or groups. See images below.
Environment: please complete the following information:
Log Info:
Screenshots:
Additional context:
This can be observed by bringing up the PacNW AWS machine, logging in using remote desktop, starting the server (StartServer), then starting a judge (StartJudge).
The text was updated successfully, but these errors were encountered: