mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-185598: Favorite branch mark is lost on restart
This commit is contained in:
+22
-15
@@ -1,18 +1,4 @@
|
||||
/*
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.configurationStore.xml
|
||||
|
||||
import com.intellij.util.xmlb.SkipDefaultsSerializationFilter
|
||||
@@ -163,4 +149,25 @@ internal class XmlSerializerOldMapAnnotationTest {
|
||||
|
||||
testSerializer("<BeanWithMapWithAnnotations>\n <option name=\"1\" value=\"a\" />\n <option name=\"2\" value=\"b\" />\n <option name=\"3\" value=\"c\" />\n</BeanWithMapWithAnnotations>", bean)
|
||||
}
|
||||
|
||||
@Test fun `propertyWithoutSurroundingElement`() {
|
||||
@Tag("branch-storage")
|
||||
class BranchStorage {
|
||||
@Property(surroundWithTag = false)
|
||||
@MapAnnotation(keyAttributeName = "type")
|
||||
@JvmField
|
||||
var branches = THashMap<String, String>()
|
||||
}
|
||||
|
||||
val bean = BranchStorage()
|
||||
bean.branches.put("branchName", "foo")
|
||||
|
||||
testSerializer("""
|
||||
<branch-storage>
|
||||
<map>
|
||||
<entry type="branchName" value="foo" />
|
||||
</map>
|
||||
</branch-storage>
|
||||
""", bean, SkipDefaultsSerializationFilter())
|
||||
}
|
||||
}
|
||||
@@ -123,7 +123,7 @@ class AccessorBindingWrapper extends Binding implements MultiNodeBinding {
|
||||
@Override
|
||||
public boolean isBoundTo(@NotNull Element element) {
|
||||
if (myBinding instanceof MapBinding) {
|
||||
return element.getName().equals(((MapBinding)myBinding).getEntryElementName());
|
||||
return ((MapBinding)myBinding).isBoundToWithoutProperty(element);
|
||||
}
|
||||
else {
|
||||
return myBinding.isBoundTo(element);
|
||||
|
||||
@@ -258,6 +258,19 @@ class MapBinding extends Binding implements MultiNodeBinding {
|
||||
return oldAnnotation == null || oldAnnotation.surroundKeyWithTag();
|
||||
}
|
||||
|
||||
boolean isBoundToWithoutProperty(@NotNull Element element) {
|
||||
String elementName = element.getName();
|
||||
if (annotation != null) {
|
||||
return elementName.equals(annotation.entryTagName());
|
||||
}
|
||||
else if (oldAnnotation != null && !oldAnnotation.surroundWithTag()) {
|
||||
return elementName.equals(oldAnnotation.entryTagName());
|
||||
}
|
||||
else {
|
||||
return elementName.equals(MAP);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBoundTo(@NotNull Element element) {
|
||||
if (oldAnnotation != null && !oldAnnotation.surroundWithTag()) {
|
||||
|
||||
Reference in New Issue
Block a user