private void autoscale() { int stateHash = FrameManager.getStateHash(); // if(lastFrameStateHash == stateHash) return; lastStateHash = stateHash; final Collection<Track> trackList = IGV.getInstance().getAllTracks(); Map<String, List<Track>> autoscaleGroups = new HashMap<String, List<Track>>(); for (Track track : trackList) { if (!track.isVisible()) continue; String asGroup = track.getAttributeValue(AttributeManager.GROUP_AUTOSCALE); if (asGroup != null) { if (!autoscaleGroups.containsKey(asGroup)) { autoscaleGroups.put(asGroup, new ArrayList<Track>()); } autoscaleGroups.get(asGroup).add(track); } else if (track.getAutoScale()) { autoscaleGroup(Arrays.asList(track)); } } if (autoscaleGroups.size() > 0) { for (List<Track> tracks : autoscaleGroups.values()) { autoscaleGroup(tracks); } } }