aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/cgCache.java
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2011-10-19 07:22:13 +0200
committerBananeweizen <bananeweizen@gmx.de>2011-10-19 07:22:13 +0200
commitbc610e7cfa71b871c5fb50bf4485bc5cdc81590c (patch)
tree65443c017709371aec5e8e7a0b6f542e6a311a56 /main/src/cgeo/geocaching/cgCache.java
parentd30be334b017346e5db8b98882afb36e59cd50e9 (diff)
downloadcgeo-bc610e7cfa71b871c5fb50bf4485bc5cdc81590c.zip
cgeo-bc610e7cfa71b871c5fb50bf4485bc5cdc81590c.tar.gz
cgeo-bc610e7cfa71b871c5fb50bf4485bc5cdc81590c.tar.bz2
#671, cache normalized name for sorting
Diffstat (limited to 'main/src/cgeo/geocaching/cgCache.java')
-rw-r--r--main/src/cgeo/geocaching/cgCache.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/cgCache.java b/main/src/cgeo/geocaching/cgCache.java
index 8874eae..cdd0fc3 100644
--- a/main/src/cgeo/geocaching/cgCache.java
+++ b/main/src/cgeo/geocaching/cgCache.java
@@ -85,7 +85,9 @@ public class cgCache implements ICache {
public boolean statusChecked = false;
public boolean statusCheckedView = false;
public String directionImg = null;
+ private String nameForSorting;
+ private static final Pattern NUMBER_PATTERN = Pattern.compile("\\d+");
/**
* Gather missing information from another cache object.
*
@@ -562,4 +564,17 @@ public class cgCache implements ICache {
return favouriteCnt;
}
+ @Override
+ public String getNameForSorting() {
+ if (null == nameForSorting) {
+ final Matcher matcher = NUMBER_PATTERN.matcher(name);
+ if (matcher.find()) {
+ nameForSorting = name.replace(matcher.group(), StringUtils.leftPad(matcher.group(), 6, '0'));
+ }
+ else {
+ nameForSorting = name;
+ }
+ }
+ return nameForSorting;
+ }
}