blob: d1f78a14f116e519f96a7630b60a990cb58eab5f [file] [log] [blame]
package org.jetbrains.jps.uiDesigner.model.impl;
import com.intellij.util.xmlb.SkipDefaultValuesSerializationFilters;
import com.intellij.util.xmlb.XmlSerializer;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jps.model.JpsProject;
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer;
import org.jetbrains.jps.uiDesigner.model.JpsUiDesignerConfiguration;
import org.jetbrains.jps.uiDesigner.model.JpsUiDesignerExtensionService;
/**
* @author nik
*/
public class JpsUiDesignerConfigurationSerializer extends JpsProjectExtensionSerializer {
private static final SkipDefaultValuesSerializationFilters FILTERS = new SkipDefaultValuesSerializationFilters();
public JpsUiDesignerConfigurationSerializer() {
super("uiDesigner.xml", "uidesigner-configuration");
}
@Override
public void loadExtension(@NotNull JpsProject element, @NotNull Element componentTag) {
JpsUiDesignerConfigurationImpl.UiDesignerConfigurationState state = XmlSerializer.deserialize(componentTag, JpsUiDesignerConfigurationImpl.UiDesignerConfigurationState.class);
if (state == null) {
state = new JpsUiDesignerConfigurationImpl.UiDesignerConfigurationState();
}
JpsUiDesignerExtensionService.getInstance().setUiDesignerConfiguration(element, new JpsUiDesignerConfigurationImpl(state));
}
@Override
public void loadExtensionWithDefaultSettings(@NotNull JpsProject project) {
final JpsUiDesignerConfigurationImpl.UiDesignerConfigurationState defaultState =
new JpsUiDesignerConfigurationImpl.UiDesignerConfigurationState();
JpsUiDesignerExtensionService.getInstance().setUiDesignerConfiguration(project, new JpsUiDesignerConfigurationImpl(defaultState));
}
@Override
public void saveExtension(@NotNull JpsProject element, @NotNull Element componentTag) {
JpsUiDesignerConfiguration configuration = JpsUiDesignerExtensionService.getInstance().getUiDesignerConfiguration(element);
if (configuration != null) {
XmlSerializer.serializeInto(((JpsUiDesignerConfigurationImpl)configuration).getState(), componentTag, FILTERS);
}
}
}