Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-22061

Table is not refreshed properly in SWT_GTK3

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 4.4.0.Alpha1
    • 4.3.1.Beta2
    • openshift, upstream
    • None
    • Workaround Exists
    • Hide

      Workaround is kicking table at page activation with the following code:

      	if(viewer != null && viewer.getControl() != null && !viewer.getControl().isDisposed()) {
      		Object input = viewer.getInput();
      		viewer.setInput(null);
      		viewer.setInput(input);
      	}
      

      It may seem too strong, but all other attempts to use update() layout() refresh() have not succeeded yet.

      Show
      Workaround is kicking table at page activation with the following code: if (viewer != null && viewer.getControl() != null && !viewer.getControl().isDisposed()) { Object input = viewer.getInput(); viewer.setInput( null ); viewer.setInput(input); } It may seem too strong, but all other attempts to use update() layout() refresh() have not succeeded yet.

    Description

      This issue was found while testing JBIDE-21815 and description to that issue fits to what happens in SWT_GTK3 with table. Difference is that the other issue is caused by some model failures and can be reproduced on all OS, and this case is relevant only to SWT_GTK3 when wizard model works without failures.
      Steps for some generic wizard (Deploy Image to Openshift is an example).
      1. Create a wizard with two pages. First page has some text input, second table. Content of table is refreshed on change of text input on the first page. Input object for the table is the same, only content provider returns new values. Table has scroll, and content should be large enough to make scroll appear (without scroll, the issue is not reproduced).
      2. Change text input on the first page, and push 'Next->' to open the second page.
      3. At the very first navigating to the second page, the content of the table is correct, as provided by the logic binding the text input and the table.
      4. Go back to the first page and change text input.
      5. Again navigate to the second page.
      6. Failure - content of the table remains as it was for the previous text input.
      7. Recovering - just pass mouse over the table, its data in cells passed is refreshed. That means that table model is refreshed, but rendering was not completed.

      Attachments

        Issue Links

          Activity

            People

              scabanovich Viacheslav Kabanovich (Inactive)
              scabanovich Viacheslav Kabanovich (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: