move isAlreadySorted to XCompositeNode

This commit is contained in:
Vladimir Krivosheev
2013-04-18 15:48:27 +02:00
parent 5b69716fb9
commit ecfb6ab7ce
4 changed files with 36 additions and 5 deletions
@@ -38,7 +38,6 @@ public interface XCompositeNode extends Obsolescent {
*/
void addChildren(@NotNull XValueChildrenList children, final boolean last);
/**
* @deprecated use {@link #addChildren(XValueChildrenList, boolean)} instead
*/
@@ -51,6 +50,13 @@ public interface XCompositeNode extends Obsolescent {
*/
void tooManyChildren(int remaining);
boolean isAlreadySorted();
/**
* Use sort specified in data view settings (alreadySorted false, by default) or not
*/
void setAlreadySorted(boolean alreadySorted);
/**
* Indicates that an error occurs
* @param errorMessage message describing the error
@@ -29,7 +29,6 @@ public class XValueChildrenList {
public static final XValueChildrenList EMPTY = new XValueChildrenList(Collections.<String>emptyList(), Collections.<XValue>emptyList());
private List<String> myNames;
private List<XValue> myValues;
private boolean myAlreadySorted;
public XValueChildrenList(int initialCapacity) {
myNames = new ArrayList<String>(initialCapacity);
@@ -67,11 +66,16 @@ public class XValueChildrenList {
return myValues.get(i);
}
/**
* @deprecated use {@link XCompositeNode#isAlreadySorted} (to remove in IDEA 13)
*/
public boolean isAlreadySorted() {
return myAlreadySorted;
return false;
}
/**
* @deprecated use {@link XCompositeNode#setAlreadySorted} instead (to remove in IDEA 13)
*/
public void setAlreadySorted(boolean alreadySorted) {
myAlreadySorted = alreadySorted;
}
}
@@ -42,6 +42,7 @@ public abstract class XValueContainerNode<ValueContainer extends XValueContainer
private List<TreeNode> myCachedAllChildren;
protected final ValueContainer myValueContainer;
private volatile boolean myObsolete;
private volatile boolean myAlreadySorted;
protected XValueContainerNode(XDebuggerTree tree, final XDebuggerTreeNode parent, @NotNull ValueContainer valueContainer) {
super(tree, parent, true);
@@ -64,12 +65,20 @@ public abstract class XValueContainerNode<ValueContainer extends XValueContainer
return MessageTreeNode.createLoadingMessage(myTree, this);
}
public boolean isAlreadySorted() {
return myAlreadySorted;
}
public void setAlreadySorted(boolean alreadySorted) {
myAlreadySorted = alreadySorted;
}
@Override
public void addChildren(@NotNull final XValueChildrenList children, final boolean last) {
DebuggerUIUtil.invokeLater(new Runnable() {
public void run() {
if (myValueChildren == null) {
if (XDebuggerSettingsManager.getInstance().getDataViewSettings().isSortValues() && !children.isAlreadySorted()) {
if (!isAlreadySorted() && XDebuggerSettingsManager.getInstance().getDataViewSettings().isSortValues()) {
myValueChildren = new SortedList<XValueNodeImpl>(XValueNodeImpl.COMPARATOR);
}
else {
@@ -9,6 +9,8 @@ import java.util.ArrayList;
import java.util.List;
public class XTestCompositeNode extends XTestContainer<XValue> implements XCompositeNode {
private volatile boolean myAlreadySorted;
@Override
public void addChildren(@NotNull XValueChildrenList children, boolean last) {
final List<XValue> list = new ArrayList<XValue>();
@@ -17,4 +19,14 @@ public class XTestCompositeNode extends XTestContainer<XValue> implements XCompo
}
addChildren(list, last);
}
@Override
public boolean isAlreadySorted() {
return myAlreadySorted;
}
@Override
public void setAlreadySorted(boolean alreadySorted) {
myAlreadySorted = alreadySorted;
}
}