Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Rich Client Platform (RCP) » Layout issue in Windows(Error in RCP application for MS Windows sytems.)
Layout issue in Windows [message #1796991] Tue, 23 October 2018 15:55
Javier Puerto is currently offline Javier PuertoFriend
Messages: 1
Registered: October 2018
Junior Member
Hi all,

We have created an Eclipse RCP application for configuring a hardware device, everything works fine for Linux and OSX platforms but we are experiencing an annoying issue with the layout for Windows platforms, (7, 8 and 10, for 32 and 64 bits).

We have a splash image and then the application starts with a fixed windows size (800x600). We did not detected the issue in the Windows VMs but it can be reproduced consistently in a non virtualized environment. After the splash screen, sometimes the background of the controls and the menu itself becomes transparent and even if the application is usable it is not looking good. Moving the application outside the windows bounds and back fixes the problems with it in the regions that has been moved outside the bounds. So I think that it could be a redraw issue.

Initially the application was developed by using Eclipse 4.6 but in our latest tests we have upgrade to latest version 4.9 with the same results. We initialize the layout using a @PostConstruct annotation and after the layout initialization, in the same method, we call the "findDevice()" method that creates a Job to read the hardware device configuration, if the device is found we asynchronously (UISynchronize) redraw the needed controls and unlock the user's interaction.

    @PostConstruct
    public void createWindow(Composite window,
            MainMessagesRegistry messagesRegistry)
    {
        this.messagesRegistry = messagesRegistry;
        this.mainWindow = window;

        disableOSXPreferences(window);

        engine.setId(window, "application");
        GridLayout windowLayout = new GridLayout();
        windowLayout.marginWidth = APPLICATION_PADDING;
        windowLayout.marginHeight = APPLICATION_PADDING;
        window.setLayout(windowLayout);
        Shell shell = window.getShell();
        shell.setMinimumSize(APPLICATION_WIDTH, APPLICATION_HEIGHT);
        Composite innerComposite = new Composite(window, SWT.BORDER);
        innerComposite.setLayout(new GridLayout(12, true));

        // Status configuration.
        createStatus(innerComposite);

        // Logo configuration.
        createLogo(innerComposite);

        // Manual adjustment group.
        createManualAdjustmentGroup(innerComposite);

        // Presets group.
        createPresetsGroup(innerComposite);

        GridDataFactory.fillDefaults().grab(true, true).applyTo(innerComposite);

        // Disable window interaction until device is found.
        setControlEnabled(mainWindow, false);

        findDevice();
    }


I have try to force a redraw asynchronously by calling the "redraw()" and "update()" methods on mainWindows or innerComposite asynchronously but it does not seems to work as expected.

Does somebody experience this issue? Any advice/solution about what could be wrong?

Salu2.
Previous Topic:Error In Maven POM.XML
Next Topic:org.eclipse.swt.SWTException: Unsupported or unrecognized format
Goto Forum:
  


Current Time: Fri Oct 30 02:45:44 GMT 2020

Powered by FUDForum. Page generated in 0.01845 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top