Refactoring of pull376

This commit is contained in:
Vojtech Juranek committed 2012-02-17 12:27:10 +01:00
1 parent e00729ea4b
commit 23c7e5bb10
6 files changed
+58 -48

No files matched your search

@@ -45,7 +45,7 @@ import org.kohsuke.stapler.export.ExportedBean;
* Configuration screen should be defined in <tt>config.jelly</tt>.
* Within this page, the {@link UserProperty} instance is available
* as <tt>instance</tt> variable (while <tt>it</tt> refers to {@link User}.
* See {@link Mailer.UserProperty}'s <tt>config.jelly</tt> for an example.
* See {@link UserSearchProperty.UserProperty}'s <tt>config.jelly</tt> for an example.
*
*
* @author Kohsuke Kawaguchi
@@ -53,16 +53,13 @@ public abstract class CollectionSearchIndex<SMT extends SearchableModelObject> i
public void suggest(String token, List<SearchItem> result) {
Collection<SMT> items = all();
User user = User.current();
boolean caseSensitive = false;
if(user!=null && user.getProperty(Search.UserProperty.class).getInsensitiveSearch()){ //Searching for anonymous user is case-sensitive
if(UserSearchProperty.isCaseSensitive()){
token = token.toLowerCase();
caseSensitive=true;
}
if(items==null) return;
for (SMT o : items) {
String name = getName(o);
if(caseSensitive)
if(UserSearchProperty.isCaseSensitive())
name=name.toLowerCase();
if(o!=null && name.contains(token))
result.add(o);
+2 -11
View File
@@ -45,7 +45,7 @@ public class FixedSet implements SearchIndex {
}
public void find(String token, List<SearchItem> result) {
boolean caseSensitive = getCaseSensitivity();
boolean caseSensitive = UserSearchProperty.isCaseSensitive();
for (SearchItem i : items){
String name = i.getSearchName();
if(caseSensitive){
@@ -56,18 +56,9 @@ public class FixedSet implements SearchIndex {
result.add(i);
}
}
public boolean getCaseSensitivity(){
User user = User.current();
boolean caseSensitive = false;
if(user!=null && user.getProperty(Search.UserProperty.class).getInsensitiveSearch()){//Searching for anonymous user is case-sensitive
caseSensitive=true;
}
return caseSensitive;
}
public void suggest(String token, List<SearchItem> result) {
boolean caseSensitive = getCaseSensitivity();
boolean caseSensitive = UserSearchProperty.isCaseSensitive();
for (SearchItem i : items){
String name = i.getSearchName();
if(caseSensitive){
@@ -353,35 +353,4 @@ public class Search {
}
private final static Logger LOGGER = Logger.getLogger(Search.class.getName());
//User`s setting of case-sensitivity for searching
public static class UserProperty extends hudson.model.UserProperty {
private final boolean insensitiveSearch;
public UserProperty(boolean insensitiveSearch) {
this.insensitiveSearch = insensitiveSearch;
}
@Exported
public boolean getInsensitiveSearch() {
return insensitiveSearch;
}
@Extension
public static final class DescriptorImpl extends UserPropertyDescriptor {
public String getDisplayName() {
return "Setting for search";
}
public UserProperty newInstance(User user) {
return new UserProperty(false); //default setting is case-sensitive searching
}
@Override
public UserProperty newInstance(StaplerRequest req, JSONObject formData) throws FormException {
return new UserProperty(formData.optBoolean("insensitiveSearch"));
}
}
}
}
@@ -0,0 +1,53 @@
package hudson.search;
import hudson.Extension;
import hudson.model.User;
import hudson.model.UserProperty;
import hudson.model.UserPropertyDescriptor;
import net.sf.json.JSONObject;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.export.Exported;
public class UserSearchProperty extends hudson.model.UserProperty {
private final boolean insensitiveSearch;
public UserSearchProperty(boolean insensitiveSearch) {
this.insensitiveSearch = insensitiveSearch;
}
@Exported
public boolean getInsensitiveSearch() {
return insensitiveSearch;
}
public static boolean isCaseSensitive(){
User user = User.current();
boolean caseSensitive = false;
if(user!=null && user.getProperty(UserSearchProperty.class).getInsensitiveSearch()){//Searching for anonymous user is case-sensitive
caseSensitive=true;
}
return caseSensitive;
}
@Extension
public static final class DescriptorImpl extends UserPropertyDescriptor {
public String getDisplayName() {
return "Setting for search";
}
public UserProperty newInstance(User user) {
return new UserSearchProperty(false); //default setting is case-sensitive searching
}
@Override
public UserProperty newInstance(StaplerRequest req, JSONObject formData) throws FormException {
return new UserSearchProperty(formData.optBoolean("insensitiveSearch"));
}
}
}