public final void open() {

        library = new Library();
        scheme = new Scheme();
        signals = new SignalBundle();
        
        display = Display.getDefault();     
        
        createContents();
        configureFileDialogs();
        
        shell.open();
        shell.layout();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
    }