Element () { Element state = new Element("state"); if (defaultBrowserPolicy != DefaultBrowserPolicy.SYSTEM) { state.setAttribute("default", StringUtil.toLowerCase(defaultBrowserPolicy.name())); } if (webServerReloadMode != BROWSER_RELOAD_MODE_DEFAULT) { state.setAttribute("serverReloadMode", StringUtil.toLowerCase(webServerReloadMode.name())); } if (webPreviewReloadMode != PREVIEW_RELOAD_MODE_DEFAULT) { state.setAttribute("previewReloadMode", StringUtil.toLowerCase(webPreviewReloadMode.name())); } if (!showBrowserHover) { state.setAttribute("showHover", "false"); } if (showBrowserHoverXml) { state.setAttribute("showHoverXml", "true"); } if (!browsers.equals(getPredefinedBrowsers())) { for (ConfigurableWebBrowser browser : browsers) { Element entry = new Element("browser"); entry.setAttribute("id", browser.getId().toString()); entry.setAttribute("name", browser.getName()); entry.setAttribute("family", browser.getFamily().name()); String path = browser.getPath(); if (path != null && !path.equals(browser.getFamily().getExecutionPath())) { entry.setAttribute("path", path); } if (!browser.isActive()) { entry.setAttribute("active", "false"); } BrowserSpecificSettings specificSettings = browser.getSpecificSettings(); if (specificSettings != null) { Element settingsElement = new Element("settings"); XmlSerializer.serializeInto(specificSettings, settingsElement, new SkipDefaultValuesSerializationFilters()); if (!JDOMUtil.isEmpty(settingsElement)) { entry.addContent(settingsElement); } } state.addContent(entry); } } return state; }