public GlobalSettingsDialog(JFrame parent){
		super(parent, "Global Settings", true);
		GuiHelper.setWindowIcon(this);
		
		this.setLayout(new BorderLayout());
		this.setPreferredSize(new Dimension(650, 500));
		
		JTextArea text = new JTextArea();
		text.setEditable(false);
		ByteArrayOutputStream os = new ByteArrayOutputStream();
		Configuration.printConfiguration(new PrintStream(os));
		text.setText(os.toString());
		text.setCaretPosition(0); // ensure that the top of the text is shown 
		JScrollPane spane = new JScrollPane(text);
		this.add(spane);
		
		JPanel buttonPanel = new JPanel();
		buttonPanel.setLayout(new BorderLayout());
		
		JPanel settingsPanel = new JPanel();
		settingsPanel.setLayout(new BorderLayout());

		testForUpdatesAtStartup.setSelected(AppConfig.getAppConfig().checkForSinalgoUpdate);
		testForUpdatesAtStartup.addActionListener(this);
		settingsPanel.add(BorderLayout.LINE_START, testForUpdatesAtStartup);

		versionTest.addActionListener(this);
		settingsPanel.add(BorderLayout.EAST, versionTest);

		buttonPanel.add(settingsPanel);

		close.addActionListener(this);
		JPanel closePanel = new JPanel();
		closePanel.add(close);
		buttonPanel.add(BorderLayout.SOUTH, closePanel);
		
		this.add(BorderLayout.SOUTH, buttonPanel);
	
		// Detect ESCAPE button
		KeyboardFocusManager focusManager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
		focusManager.addKeyEventPostProcessor(new KeyEventPostProcessor() {
			public boolean postProcessKeyEvent(KeyEvent e) {
				if(!e.isConsumed() && e.getID() == KeyEvent.KEY_PRESSED && e.getKeyCode() == KeyEvent.VK_ESCAPE) {
					GlobalSettingsDialog.this.setVisible(false);
				}
				return false;
			}
		});

		this.getRootPane().setDefaultButton(close);
		
		this.pack();
		this.setLocationRelativeTo(parent);
		this.setVisible(true);
	}