@@ -661,17 +661,15 @@ public FilterActionListener(EMViewControlPanel viewPanel, EnrichmentMap map, CyN
661
661
662
662
@ Override
663
663
public void actionPerformed (ActionEvent evt ) {
664
- CyNetwork net = netView .getModel ();
665
- EMCreationParameters params = map .getParams ();
666
664
Set <AbstractDataSet > selectedDataSets = viewPanel .getCheckedDataSets ();
667
665
668
666
// Find nodes and edges that must be displayed
669
- Set <CyNode > filteredInNodes = getFilteredInNodes (net , params , selectedDataSets );
670
- Set <CyEdge > filteredInEdges = getFilteredInEdges (net , params , selectedDataSets );
667
+ Set <CyNode > filteredInNodes = getFilteredInNodes (selectedDataSets );
668
+ Set <CyEdge > filteredInEdges = getFilteredInEdges (selectedDataSets );
671
669
672
670
// Hide or show nodes and their edges
673
- showOrHideNodes (net , filteredInNodes );
674
- showOrHideEdges (net , filteredInNodes , filteredInEdges );
671
+ showOrHideNodes (filteredInNodes );
672
+ showOrHideEdges (filteredInNodes , filteredInEdges );
675
673
netView .updateView ();
676
674
677
675
Timer timer = filterTimers .get (netView );
@@ -680,9 +678,9 @@ public void actionPerformed(ActionEvent evt) {
680
678
timer .stop ();
681
679
}
682
680
683
- private Set <CyNode > getFilteredInNodes (CyNetwork net , EMCreationParameters params ,
684
- Set <AbstractDataSet > selectedDataSets ) {
681
+ private Set <CyNode > getFilteredInNodes (Set <AbstractDataSet > selectedDataSets ) {
685
682
Set <Long > dataSetNodes = EnrichmentMap .getNodesUnion (selectedDataSets );
683
+ EMCreationParameters params = map .getParams ();
686
684
687
685
// Only p or q value, but not both!
688
686
if (viewPanel .getPValueSliderPanel () != null && viewPanel .getPValueSliderPanel ().isVisible ()) {
@@ -698,6 +696,7 @@ private Set<CyNode> getFilteredInNodes(CyNetwork net, EMCreationParameters param
698
696
}
699
697
700
698
Set <CyNode > filteredInNodes = new HashSet <>();
699
+ CyNetwork net = netView .getModel ();
701
700
702
701
for (CyNode n : net .getNodeList ()) {
703
702
if (dataSetNodes .contains (n .getSUID ()))
@@ -706,20 +705,29 @@ private Set<CyNode> getFilteredInNodes(CyNetwork net, EMCreationParameters param
706
705
707
706
return filteredInNodes ;
708
707
}
709
-
710
- private Set <CyEdge > getFilteredInEdges (CyNetwork net , EMCreationParameters params ,
711
- Set <AbstractDataSet > selectedDataSets ) {
712
- Set <Long > dataSetEdges = EnrichmentMap .getEdgesUnion (selectedDataSets );
708
+
709
+ private Set <CyEdge > getFilteredInEdges (Set <AbstractDataSet > selectedDataSets ) {
710
+ EMCreationParameters params = map .getParams ();
711
+ boolean distinct = params .getCreateDistinctEdges () && map .isDistinctExpressionSets ();
712
+
713
+ // Compound edges are not associated with a specific data set
714
+ Set <Long > dataSetEdges = distinct ? EnrichmentMap .getEdgesUnion (selectedDataSets ) : null ;
713
715
714
716
if (viewPanel .getSimilaritySliderPanel () != null )
715
717
return getFilteredInEdges (viewPanel .getSimilaritySliderPanel (), map , netView ,
716
718
params .getSimilarityCutoffColumnNames (), dataSetEdges );
717
719
718
720
Set <CyEdge > filteredInEdges = new HashSet <>();
721
+ CyNetwork net = netView .getModel ();
719
722
720
- for (CyEdge e : net .getEdgeList ()) {
721
- if (dataSetEdges .contains (e .getSUID ()))
722
- filteredInEdges .add (e );
723
+ if (distinct ) {
724
+ for (CyEdge e : net .getEdgeList ()) {
725
+ if (dataSetEdges .contains (e .getSUID ()))
726
+ filteredInEdges .add (e );
727
+ }
728
+ } else {
729
+ // If compound edges, all edges are filtered in, no matter the selected data sets
730
+ filteredInEdges .addAll (net .getEdgeList ());
723
731
}
724
732
725
733
return filteredInEdges ;
@@ -745,7 +753,7 @@ private Set<CyNode> getFilteredInNodes(SliderBarPanel sliderPanel, EnrichmentMap
745
753
boolean show = true ;
746
754
CyRow row = network .getRow (n );
747
755
748
- if (!dataSetNodes .contains (n .getSUID ())) {
756
+ if (dataSetNodes != null && !dataSetNodes .contains (n .getSUID ())) {
749
757
show = false ;
750
758
} else if (table .getColumn (prefix + NODE_GS_TYPE ) != null
751
759
&& NODE_GS_TYPE_ENRICHMENT .equalsIgnoreCase (row .get (prefix + NODE_GS_TYPE , String .class ))) {
@@ -776,6 +784,9 @@ private Set<CyNode> getFilteredInNodes(SliderBarPanel sliderPanel, EnrichmentMap
776
784
return nodes ;
777
785
}
778
786
787
+ /**
788
+ * If dataSetEdges is null, don't filter by Data Sets.
789
+ */
779
790
private Set <CyEdge > getFilteredInEdges (SliderBarPanel sliderPanel , EnrichmentMap map , CyNetworkView networkView ,
780
791
Set <String > columnNames , Set <Long > dataSetEdges ) {
781
792
Set <CyEdge > edges = new HashSet <>();
@@ -791,7 +802,7 @@ private Set<CyEdge> getFilteredInEdges(SliderBarPanel sliderPanel, EnrichmentMap
791
802
for (CyEdge e : network .getEdgeList ()) {
792
803
boolean show = true ;
793
804
794
- if (!dataSetEdges .contains (e .getSUID ())) {
805
+ if (dataSetEdges != null && !dataSetEdges .contains (e .getSUID ())) {
795
806
show = false ;
796
807
} else {
797
808
CyRow row = network .getRow (e );
@@ -838,7 +849,9 @@ private Set<String> getFilteredColumnNames(Set<String> columnNames, Collection<A
838
849
return filteredNames ;
839
850
}
840
851
841
- private void showOrHideNodes (CyNetwork net , Set <CyNode > filteredInNodes ) {
852
+ private void showOrHideNodes (Set <CyNode > filteredInNodes ) {
853
+ CyNetwork net = netView .getModel ();
854
+
842
855
for (CyNode n : net .getNodeList ()) {
843
856
final View <CyNode > nv = netView .getNodeView (n );
844
857
@@ -883,7 +896,9 @@ private void showOrHideNodes(CyNetwork net, Set<CyNode> filteredInNodes) {
883
896
}
884
897
}
885
898
886
- private void showOrHideEdges (CyNetwork net , Set <CyNode > filteredInNodes , Set <CyEdge > filteredInEdges ) {
899
+ private void showOrHideEdges (Set <CyNode > filteredInNodes , Set <CyEdge > filteredInEdges ) {
900
+ CyNetwork net = netView .getModel ();
901
+
887
902
for (CyEdge e : net .getEdgeList ()) {
888
903
final View <CyEdge > ev = netView .getEdgeView (e );
889
904
0 commit comments