| package com.intellij.ide.browsers; |
| |
| import com.google.common.base.CharMatcher; |
| import com.intellij.openapi.util.JDOMUtil; |
| import com.intellij.openapi.util.text.StringUtil; |
| import com.intellij.util.xmlb.SkipDefaultValuesSerializationFilters; |
| import com.intellij.util.xmlb.XmlSerializer; |
| import com.intellij.util.xmlb.annotations.Attribute; |
| import com.intellij.util.xmlb.annotations.Tag; |
| import org.jdom.Element; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| @Tag("browser") |
| public class StartBrowserSettings { |
| private boolean mySelected; |
| private WebBrowser myBrowser; |
| |
| private String myUrl; |
| private boolean myStartJavaScriptDebugger; |
| |
| @Attribute("start") |
| public boolean isSelected() { |
| return mySelected; |
| } |
| |
| public void setSelected(boolean selected) { |
| mySelected = selected; |
| } |
| |
| @Nullable |
| @Attribute(value = "name", converter = WebBrowserReferenceConverter.class) |
| public WebBrowser getBrowser() { |
| return myBrowser; |
| } |
| |
| public void setBrowser(@Nullable WebBrowser value) { |
| myBrowser = value; |
| } |
| |
| @Nullable |
| @Attribute |
| public String getUrl() { |
| return myUrl; |
| } |
| |
| public void setUrl(@Nullable String value) { |
| String normalized = StringUtil.nullize(value, true); |
| if (normalized != null) { |
| normalized = CharMatcher.WHITESPACE.trimFrom(normalized); |
| } |
| myUrl = normalized; |
| } |
| |
| @Attribute("with-js-debugger") |
| public boolean isStartJavaScriptDebugger() { |
| return myStartJavaScriptDebugger; |
| } |
| |
| public void setStartJavaScriptDebugger(boolean value) { |
| myStartJavaScriptDebugger = value; |
| } |
| |
| @NotNull |
| public static StartBrowserSettings readExternal(@NotNull Element parent) { |
| Element state = parent.getChild("browser"); |
| StartBrowserSettings settings = new StartBrowserSettings(); |
| if (state != null) { |
| XmlSerializer.deserializeInto(settings, state); |
| } |
| return settings; |
| } |
| |
| public void writeExternal(@NotNull Element parent) { |
| Element state = XmlSerializer.serialize(this, new SkipDefaultValuesSerializationFilters()); |
| if (!JDOMUtil.isEmpty(state)) { |
| parent.addContent(state); |
| } |
| } |
| } |