static Modeler openNewWindow(boolean currentPage, String currentAddress, int x, int y, int w, int h, boolean resizable, boolean hasToolbar, boolean hasMenubar, boolean hasStatusbar, boolean fullscreen) {
		// unregisterComponentWithToolTip();
		try {
			final Modeler m = new Modeler();
			windowList.add(m);
			m.setResizable(resizable);
			m.editor.setPreferredSize(new Dimension(w, h));
			m.statusBar.setPreferredSize(new Dimension(w, 20));
			m.setLocation(x, y);
			if (!hasMenubar)
				m.setJMenuBar(null);
			if (!hasToolbar) {
				m.getContentPane().remove(m.toolBar);
				m.editor.removeAllToolBars();
			}
			if (!hasStatusbar)
				m.getContentPane().remove(m.statusBar);
			m.pack();
			if (currentPage && !currentAddress.equals("Untitled.cml")) {
				m.editor.getPage().openHyperlink(currentAddress);
			}
			else if (currentAddress.equals("Untitled.cml")) {
				String s = Initializer.sharedInstance().getSystemProperty(PreferencesDialog.HOME_PAGE);
				m.editor.getPage().openHyperlink(s != null ? s : m.navigator.getHomePage());
			}
			m.toFront();
			m.editor.requestFocusInWindow();
			m.setVisible(true);
			return m;
		}
		catch (Throwable t) {
			t.printStackTrace();
			JOptionPane.showMessageDialog(null, "Failed in creating a new window. It may be good to start " + NAME + " now.\nCaused by: " + t, "Error", JOptionPane.ERROR_MESSAGE);
			return null;
		}
	}