Skip to content
Snippets Groups Projects
Commit d8a2d7b3 authored by felmer's avatar felmer
Browse files

SSDM-4187: Improve performance in case of many children

SVN: 38088
parent fbfc70a5
No related branches found
No related tags found
No related merge requests found
......@@ -209,8 +209,9 @@ public abstract class AbstractTreeEntityPickerDialog extends AbstractEntityPicke
FilterableMutableTreeNode category =
new FilterableMutableTreeNode(Identifier.create(experiment));
category.add(UiUtilities.createWaitingNode());
node.add(category);
node.add(category, false);
}
node.filter();
}
};
clientModel.listExperiments(action);
......@@ -231,8 +232,9 @@ public abstract class AbstractTreeEntityPickerDialog extends AbstractEntityPicke
FilterableMutableTreeNode category =
new FilterableMutableTreeNode(Identifier.create(sample));
category.add(UiUtilities.createWaitingNode());
node.add(category);
node.add(category, false);
}
node.filter();
}
};
clientModel.listSamplesWithNoExperiments(action);
......
......@@ -62,12 +62,13 @@ public class DataSetPickerDialog extends AbstractTreeEntityPickerDialog
{
FilterableMutableTreeNode dataSetsNode =
new FilterableMutableTreeNode(UiUtilities.DATA_SETS);
node.add(dataSetsNode);
node.add(dataSetsNode, false);
for (DataSet dataSet : dataSets)
{
dataSetsNode.add(new FilterableMutableTreeNode(Identifier
.create(dataSet)));
.create(dataSet)), false);
}
dataSetsNode.filter();
}
for (Sample s : samplesDataSets.getSamples())
......@@ -75,8 +76,9 @@ public class DataSetPickerDialog extends AbstractTreeEntityPickerDialog
FilterableMutableTreeNode sampleNode =
new FilterableMutableTreeNode(Identifier.create(s));
sampleNode.add(UiUtilities.createWaitingNode());
node.add(sampleNode);
node.add(sampleNode, false);
}
node.filter();
}
});
}
......
......@@ -58,8 +58,9 @@ public class SamplePickerDialog extends AbstractTreeEntityPickerDialog
FilterableMutableTreeNode sampleNode =
new FilterableMutableTreeNode(Identifier.create(s));
sampleNode.add(UiUtilities.createWaitingNode());
node.add(sampleNode);
node.add(sampleNode, false);
}
node.filter();
}
};
clientModel.listSamples(identifier, action);
......
......@@ -17,6 +17,8 @@
package ch.systemsx.cisd.openbis.dss.client.api.gui.tree;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Enumeration;
import java.util.regex.Pattern;
......@@ -143,6 +145,14 @@ public class FilterableMutableTreeNode extends DefaultMutableTreeNode
filtered.add(o);
}
}
Collections.sort(filtered, new Comparator<Object>()
{
@Override
public int compare(Object o1, Object o2)
{
return String.valueOf(o1).compareTo(String.valueOf(o2));
}
});
setFiltered(filtered);
}
......@@ -198,6 +208,11 @@ public class FilterableMutableTreeNode extends DefaultMutableTreeNode
@Override
public void add(MutableTreeNode o)
{
add(o, true);
}
public void add(MutableTreeNode o, boolean filter)
{
super.add(o);
if (o instanceof FilterableMutableTreeNode)
......@@ -205,6 +220,14 @@ public class FilterableMutableTreeNode extends DefaultMutableTreeNode
FilterableMutableTreeNode filterableMutableTreeNode = (FilterableMutableTreeNode) o;
filterableMutableTreeNode.setPattern(getPattern());
}
if (filter)
{
filter();
}
}
public void filter()
{
filter(getPattern());
}
......@@ -223,7 +246,7 @@ public class FilterableMutableTreeNode extends DefaultMutableTreeNode
public void removeAllChildren()
{
super.removeAllChildren();
filter(getPattern());
filter();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment