15
15
import java .awt .Dimension ;
16
16
import java .awt .Font ;
17
17
import java .net .URL ;
18
- import java .text .Collator ;
19
18
import java .util .ArrayList ;
19
+ import java .util .Collection ;
20
20
import java .util .Collections ;
21
21
import java .util .HashMap ;
22
22
import java .util .List ;
23
- import java .util .Locale ;
24
23
import java .util .Map ;
25
24
import java .util .Set ;
26
25
import java .util .stream .Collectors ;
65
64
import org .cytoscape .application .swing .CytoPanelComponent2 ;
66
65
import org .cytoscape .application .swing .CytoPanelName ;
67
66
import org .cytoscape .model .CyDisposable ;
67
+ import org .cytoscape .model .CyNetwork ;
68
+ import org .cytoscape .model .CyNetworkManager ;
68
69
import org .cytoscape .service .util .CyServiceRegistrar ;
69
70
import org .cytoscape .util .swing .IconManager ;
70
71
import org .cytoscape .util .swing .LookAndFeelUtil ;
@@ -83,6 +84,7 @@ public class ControlPanel extends JPanel implements CytoPanelComponent2, CyDispo
83
84
private static final String BORDER_COLOR_KEY = "Separator.foreground" ;
84
85
85
86
@ Inject private CyServiceRegistrar serviceRegistrar ;
87
+ @ Inject private CyNetworkManager networkManager ;
86
88
@ Inject private CyNetworkViewManager networkViewManager ;
87
89
@ Inject private IconManager iconManager ;
88
90
@ Inject private EnrichmentMapManager emManager ;
@@ -291,14 +293,18 @@ void updateEmViewCombo() {
291
293
getEmViewCombo ().removeAllItems ();
292
294
293
295
if (!emMap .isEmpty ()) {
294
- Set <CyNetworkView > allViews = networkViewManager .getNetworkViewSet ();
295
- List <CyNetworkView > emViews = allViews .stream ()
296
- .filter (emManager ::isEnrichmentMap )
297
- .collect (Collectors .toList ());
298
-
299
- Collator collator = Collator .getInstance (Locale .getDefault ());
300
- emViews .sort ((v1 , v2 ) -> collator .compare (NetworkUtil .getTitle (v1 ), NetworkUtil .getTitle (v2 )));
301
- emViews .forEach (getEmViewCombo ()::addItem );
296
+ emMap .entrySet ().stream ().forEach (entry -> {
297
+ // To make sure the original view order is preserved
298
+ // (networkViewManager.getNetworkViewSet() may change the view order!)
299
+ CyNetwork network = networkManager .getNetwork (entry .getKey ());
300
+
301
+ if (network != null ) {
302
+ Collection <CyNetworkView > views = networkViewManager .getNetworkViews (network );
303
+
304
+ if (views != null )
305
+ views .forEach (getEmViewCombo ()::addItem );
306
+ }
307
+ });
302
308
303
309
getEmViewCombo ().setSelectedItem (selectedItem );
304
310
}
0 commit comments