mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
RunnerLayout — don't write defaults
This commit is contained in:
@@ -24,6 +24,8 @@ import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.ui.content.Content;
|
||||
import com.intellij.util.containers.hash.LinkedHashMap;
|
||||
import com.intellij.util.xmlb.SkipDefaultValuesSerializationFilters;
|
||||
import com.intellij.util.xmlb.XmlSerializer;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -38,7 +40,7 @@ public class RunnerLayout {
|
||||
public static final Key<Integer> DROP_INDEX = Key.create("RunnerLayoutDropIndex");
|
||||
private final String myID;
|
||||
|
||||
protected Map<String, ViewImpl> myViews = new HashMap<String, ViewImpl>();
|
||||
protected Map<String, ViewImpl> myViews = new LinkedHashMap<String, ViewImpl>();
|
||||
private final Map<String, ViewImpl.Default> myDefaultViews = new HashMap<String, ViewImpl.Default>();
|
||||
|
||||
protected Set<TabImpl> myTabs = new TreeSet<TabImpl>(new Comparator<TabImpl>() {
|
||||
@@ -138,10 +140,11 @@ public class RunnerLayout {
|
||||
|
||||
@NotNull
|
||||
public Element read(@NotNull Element parentNode) {
|
||||
List tabs = parentNode.getChildren(StringUtil.getShortName(TabImpl.class.getName()));
|
||||
for (Object eachTabElement : tabs) {
|
||||
TabImpl eachTab = new TabImpl((Element)eachTabElement);
|
||||
getOrCreateTab(eachTab.getIndex()).read((Element)eachTabElement);
|
||||
List<Element> tabs = parentNode.getChildren(StringUtil.getShortName(TabImpl.class.getName()));
|
||||
for (Element eachTabElement : tabs) {
|
||||
TabImpl eachTab = XmlSerializer.deserialize(eachTabElement, TabImpl.class);
|
||||
assert eachTab != null;
|
||||
XmlSerializer.deserializeInto(getOrCreateTab(eachTab.getIndex()), eachTabElement);
|
||||
}
|
||||
|
||||
final List views = parentNode.getChildren(StringUtil.getShortName(ViewImpl.class.getName()));
|
||||
@@ -158,16 +161,17 @@ public class RunnerLayout {
|
||||
@NotNull
|
||||
public Element write(@NotNull Element parentNode) {
|
||||
for (ViewImpl eachState : myViews.values()) {
|
||||
eachState.write(parentNode);
|
||||
parentNode.addContent(XmlSerializer.serialize(eachState));
|
||||
}
|
||||
|
||||
SkipDefaultValuesSerializationFilters filter = new SkipDefaultValuesSerializationFilters();
|
||||
for (TabImpl eachTab : myTabs) {
|
||||
if (isUsed(eachTab)) {
|
||||
eachTab.write(parentNode);
|
||||
parentNode.addContent(XmlSerializer.serialize(eachTab, filter));
|
||||
}
|
||||
}
|
||||
|
||||
parentNode.addContent(XmlSerializer.serialize(myGeneral));
|
||||
parentNode.addContent(XmlSerializer.serialize(myGeneral, filter));
|
||||
|
||||
return parentNode;
|
||||
}
|
||||
@@ -213,12 +217,11 @@ public class RunnerLayout {
|
||||
|
||||
@NotNull
|
||||
private ViewImpl getOrCreateView(@NotNull String id) {
|
||||
if (myViews.containsKey(id)) {
|
||||
return myViews.get(id);
|
||||
ViewImpl view = myViews.get(id);
|
||||
if (view == null) {
|
||||
view = getOrCreateDefault(id).createView(this);
|
||||
myViews.put(id, view);
|
||||
}
|
||||
final ViewImpl.Default defaultView = getOrCreateDefault(id);
|
||||
final ViewImpl view = defaultView.createView(this);
|
||||
myViews.put(id, view);
|
||||
return view;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,23 +16,12 @@
|
||||
|
||||
package com.intellij.execution.ui.layout.impl;
|
||||
|
||||
import com.intellij.execution.ui.layout.Tab;
|
||||
import com.intellij.execution.ui.layout.PlaceInGrid;
|
||||
import com.intellij.util.xmlb.XmlSerializer;
|
||||
import org.jdom.Element;
|
||||
import com.intellij.execution.ui.layout.Tab;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
public class TabImpl extends AbstractTab implements Tab {
|
||||
|
||||
public TabImpl(Element element) {
|
||||
read(element);
|
||||
}
|
||||
|
||||
public void read(final Element element) {
|
||||
XmlSerializer.deserializeInto(this, element);
|
||||
}
|
||||
|
||||
TabImpl() {
|
||||
}
|
||||
|
||||
@@ -66,12 +55,6 @@ public class TabImpl extends AbstractTab implements Tab {
|
||||
myDisplayName = displayName;
|
||||
}
|
||||
|
||||
|
||||
public void write(final Element parentNode) {
|
||||
final Element element = XmlSerializer.serialize(this);
|
||||
parentNode.addContent(element);
|
||||
}
|
||||
|
||||
public float getLeftProportion() {
|
||||
return myLeftProportion;
|
||||
}
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
|
||||
package com.intellij.execution.ui.layout.impl;
|
||||
|
||||
import com.intellij.execution.ui.layout.PlaceInGrid;
|
||||
import com.intellij.execution.ui.layout.Tab;
|
||||
import com.intellij.execution.ui.layout.View;
|
||||
import com.intellij.execution.ui.layout.PlaceInGrid;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.util.xmlb.XmlSerializer;
|
||||
import org.jdom.Element;
|
||||
@@ -51,10 +51,6 @@ public class ViewImpl implements View {
|
||||
assignTab(settings.getOrCreateTab(myTabIndex));
|
||||
}
|
||||
|
||||
public void write(final Element content) {
|
||||
content.addContent(XmlSerializer.serialize(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Tab getTab() {
|
||||
return myTab;
|
||||
|
||||
Reference in New Issue
Block a user