Merge pull request #5995 from deathbeam/sort-options-by-name-as-well

Sort config panel options by name as well
This commit is contained in:
Tomas Slusny
2018-10-14 00:37:31 +02:00
committed by GitHub

View File

@@ -25,6 +25,7 @@
package net.runelite.client.config; package net.runelite.client.config;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.ComparisonChain;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.eventbus.EventBus; import com.google.common.eventbus.EventBus;
import java.awt.Color; import java.awt.Color;
@@ -45,7 +46,6 @@ import java.nio.channels.FileLock;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.time.Instant; import java.time.Instant;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
@@ -375,14 +375,18 @@ public class ConfigManager
throw new IllegalArgumentException("Not a config group"); throw new IllegalArgumentException("Not a config group");
} }
List<ConfigItemDescriptor> items = Arrays.stream(inter.getMethods()) final List<ConfigItemDescriptor> items = Arrays.stream(inter.getMethods())
.filter(m -> m.getParameterCount() == 0) .filter(m -> m.getParameterCount() == 0)
.sorted(Comparator.comparingInt(m -> m.getDeclaredAnnotation(ConfigItem.class).position()))
.map(m -> new ConfigItemDescriptor( .map(m -> new ConfigItemDescriptor(
m.getDeclaredAnnotation(ConfigItem.class), m.getDeclaredAnnotation(ConfigItem.class),
m.getReturnType() m.getReturnType()
)) ))
.sorted((a, b) -> ComparisonChain.start()
.compare(a.getItem().position(), b.getItem().position())
.compare(a.getItem().name(), b.getItem().name())
.result())
.collect(Collectors.toList()); .collect(Collectors.toList());
return new ConfigDescriptor(group, items); return new ConfigDescriptor(group, items);
} }