1 20 21 package org.apache.directory.ldapstudio.browser.core; 22 23 24 import java.io.Serializable ; 25 import java.util.ArrayList ; 26 import java.util.List ; 27 28 import org.apache.directory.ldapstudio.browser.core.events.EventRegistry; 29 import org.apache.directory.ldapstudio.browser.core.events.SearchUpdateEvent; 30 import org.apache.directory.ldapstudio.browser.core.model.IConnection; 31 import org.apache.directory.ldapstudio.browser.core.model.ISearch; 32 import org.eclipse.osgi.util.NLS; 33 34 35 41 public class SearchManager implements Serializable 42 { 43 44 45 private static final long serialVersionUID = 8665227628274097691L; 46 47 48 private List <ISearch> searchList; 49 50 51 private IConnection connection; 52 53 54 57 protected SearchManager() 58 { 59 } 60 61 62 68 public SearchManager( IConnection connection ) 69 { 70 this.connection = connection; 71 this.searchList = new ArrayList <ISearch>(); 72 } 73 74 75 81 public IConnection getConnection() 82 { 83 return this.connection; 84 } 85 86 87 93 public void addSearch( ISearch search ) 94 { 95 this.addSearch( this.searchList.size(), search ); 96 } 97 98 99 107 public void addSearch( int index, ISearch search ) 108 { 109 if ( getSearch( search.getName() ) != null ) 110 { 111 String newSearchName = NLS.bind( BrowserCoreMessages.copy_n_of_s, "", search.getName() ); 113 for ( int i = 2; this.getSearch( newSearchName ) != null; i++ ) 114 { 115 newSearchName = NLS.bind( BrowserCoreMessages.copy_n_of_s, i + " ", search.getName() ); } 117 118 search.setName( newSearchName ); 119 } 120 121 searchList.add( index, search ); 122 EventRegistry.fireSearchUpdated( new SearchUpdateEvent( search, SearchUpdateEvent.EventDetail.SEARCH_ADDED ), this ); 123 } 124 125 126 134 public ISearch getSearch( String name ) 135 { 136 for ( ISearch search:searchList ) 137 { 138 if ( search.getName().equals( name ) ) 139 { 140 return search; 141 } 142 } 143 144 return null; 145 } 146 147 148 156 public int indexOf( ISearch search ) 157 { 158 return searchList.indexOf( search ); 159 } 160 161 162 168 public void removeSearch( ISearch search ) 169 { 170 searchList.remove( search ); 171 EventRegistry.fireSearchUpdated( new SearchUpdateEvent( search, SearchUpdateEvent.EventDetail.SEARCH_REMOVED ), this ); 172 } 173 174 175 181 public void removeSearch( String name ) 182 { 183 this.removeSearch( this.getSearch( name ) ); 184 } 185 186 187 193 public ISearch[] getSearches() 194 { 195 return searchList.toArray( new ISearch[0] ); 196 } 197 198 199 205 public int getSearchCount() 206 { 207 return searchList.size(); 208 } 209 } 210 | Popular Tags |