package net.pms.dlna; import net.pms.Messages; import net.pms.dlna.virtual.VirtualFolder; public class SearchFolder extends VirtualFolder { private SearchObj sobj; public SearchFolder(SearchObj sobj) { this(Messages.getString("PMS.144"), sobj); } public SearchFolder(String name, SearchObj sobj) { super(name, null); this.sobj = sobj; } private void createSearcher(SearchObj obj, String initStr) { char i; Search s = new Search(obj, initStr); addChild(s); addChild(new SearchAction(s, '\0', "Clear")); addChild(new SearchAction(s, ' ', "Space")); addChild(new SearchAction(s, '\b', "Delete")); for (i = 'A'; i <= 'Z'; i++) { addChild(new SearchAction(s, i)); } for (i = '0'; i <= '9'; i++) { addChild(new SearchAction(s, i)); } } @Override public synchronized void resolve() { } @Override public void discoverChildren(String str) { if (str == null) { discoverChildren(); } else { sobj.search(str, this); } } @Override public boolean isSearched() { return true; } @Override public void discoverChildren() { createSearcher(sobj, ""); } @Override public boolean isRefreshNeeded() { return true; } @Override public boolean refreshChildren() { refreshChildren(null); return true; } @Override public boolean refreshChildren(String str) { if (str == null) { return false; } getChildren().clear(); discoverChildren(str); return true; } }