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.BookmarkUpdateEvent; 29 import org.apache.directory.ldapstudio.browser.core.events.EventRegistry; 30 import org.apache.directory.ldapstudio.browser.core.model.IBookmark; 31 import org.apache.directory.ldapstudio.browser.core.model.IConnection; 32 import org.eclipse.osgi.util.NLS; 33 34 35 41 public class BookmarkManager implements Serializable 42 { 43 private static final long serialVersionUID = 7605293576518974531L; 44 45 private List <IBookmark> bookmarkList; 46 47 private IConnection connection; 48 49 50 56 public BookmarkManager( IConnection connection ) 57 { 58 this.connection = connection; 59 bookmarkList = new ArrayList <IBookmark>(); 60 } 61 62 63 69 public IConnection getConnection() 70 { 71 return connection; 72 } 73 74 75 81 public void addBookmark( IBookmark bookmark ) 82 { 83 addBookmark( bookmarkList.size(), bookmark ); 84 } 85 86 87 95 public void addBookmark( int index, IBookmark bookmark ) 96 { 97 if ( getBookmark( bookmark.getName() ) != null ) 98 { 99 String newBookmarkName = NLS.bind( BrowserCoreMessages.copy_n_of_s, "", bookmark.getName() ); 101 for ( int i = 2; this.getBookmark( newBookmarkName ) != null; i++ ) 102 { 103 newBookmarkName = NLS.bind( BrowserCoreMessages.copy_n_of_s, i + " ", bookmark.getName() ); } 105 106 bookmark.setName( newBookmarkName ); 107 } 108 109 bookmarkList.add( index, bookmark ); 110 EventRegistry.fireBookmarkUpdated( new BookmarkUpdateEvent( bookmark, BookmarkUpdateEvent.Detail.BOOKMARK_ADDED ), 111 this ); 112 } 113 114 115 123 public IBookmark getBookmark( String name ) 124 { 125 for ( IBookmark bookmark : bookmarkList ) 126 { 127 if ( bookmark.getName().equals( name ) ) 128 { 129 return bookmark; 130 } 131 } 132 133 return null; 134 } 135 136 137 145 public int indexOf( IBookmark bookmark ) 146 { 147 return bookmarkList.indexOf( bookmark ); 148 } 149 150 151 157 public void removeBookmark( IBookmark bookmark ) 158 { 159 bookmarkList.remove( bookmark ); 160 EventRegistry.fireBookmarkUpdated( new BookmarkUpdateEvent( bookmark, BookmarkUpdateEvent.Detail.BOOKMARK_REMOVED ), 161 this ); 162 } 163 164 165 171 public void removeBookmark( String name ) 172 { 173 this.removeBookmark( this.getBookmark( name ) ); 174 } 175 176 177 183 public IBookmark[] getBookmarks() 184 { 185 return bookmarkList.toArray( new IBookmark[0] ); 186 } 187 188 189 195 public int getBookmarkCount() 196 { 197 return bookmarkList.size(); 198 } 199 } 200 | Popular Tags |