1 20 21 package org.apache.directory.ldapstudio.browser.common.widgets.connection; 22 23 24 import org.apache.directory.ldapstudio.browser.common.BrowserCommonActivator; 25 import org.apache.directory.ldapstudio.browser.core.events.BookmarkUpdateEvent; 26 import org.apache.directory.ldapstudio.browser.core.events.BookmarkUpdateListener; 27 import org.apache.directory.ldapstudio.browser.core.events.ConnectionUpdateEvent; 28 import org.apache.directory.ldapstudio.browser.core.events.ConnectionUpdateListener; 29 import org.apache.directory.ldapstudio.browser.core.events.EntryModificationEvent; 30 import org.apache.directory.ldapstudio.browser.core.events.EntryUpdateListener; 31 import org.apache.directory.ldapstudio.browser.core.events.EventRegistry; 32 import org.apache.directory.ldapstudio.browser.core.events.SearchUpdateEvent; 33 import org.apache.directory.ldapstudio.browser.core.events.SearchUpdateListener; 34 import org.apache.directory.ldapstudio.browser.core.model.ISearch; 35 import org.eclipse.jface.viewers.StructuredSelection; 36 import org.eclipse.jface.viewers.TableViewer; 37 38 39 45 public class ConnectionUniversalListener implements ConnectionUpdateListener, EntryUpdateListener, 46 SearchUpdateListener, BookmarkUpdateListener 47 { 48 49 50 protected TableViewer viewer; 51 52 53 58 public ConnectionUniversalListener( TableViewer viewer ) 59 { 60 this.viewer = viewer; 61 62 EventRegistry.addConnectionUpdateListener( this, BrowserCommonActivator.getDefault().getEventRunner() ); 63 EventRegistry.addEntryUpdateListener( this, BrowserCommonActivator.getDefault().getEventRunner() ); 64 EventRegistry.addSearchUpdateListener( this, BrowserCommonActivator.getDefault().getEventRunner() ); 65 EventRegistry.addBookmarkUpdateListener( this, BrowserCommonActivator.getDefault().getEventRunner() ); 66 } 67 68 69 72 public void dispose() 73 { 74 if ( viewer != null ) 75 { 76 EventRegistry.removeConnectionUpdateListener( this ); 77 EventRegistry.removeEntryUpdateListener( this ); 78 EventRegistry.removeSearchUpdateListener( this ); 79 EventRegistry.removeBookmarkUpdateListener( this ); 80 viewer = null; 81 } 82 } 83 84 85 91 public void connectionUpdated( ConnectionUpdateEvent connectionUpdateEvent ) 92 { 93 if ( viewer != null ) 94 { 95 viewer.refresh(); 96 if ( connectionUpdateEvent.getDetail() == ConnectionUpdateEvent.EventDetail.CONNECTION_ADDED ) 97 { 98 viewer.setSelection( new StructuredSelection( connectionUpdateEvent.getConnection() ) ); 99 } 100 } 101 } 102 103 104 109 public void entryUpdated( EntryModificationEvent event ) 110 { 111 if ( viewer != null ) 112 { 113 viewer.refresh(); 114 } 115 } 116 117 118 123 public void searchUpdated( SearchUpdateEvent searchUpdateEvent ) 124 { 125 if ( viewer != null ) 126 { 127 viewer.refresh(); 128 129 ISearch search = searchUpdateEvent.getSearch(); 131 viewer.setSelection( new StructuredSelection( search.getConnection() ), true ); 132 } 133 } 134 135 136 141 public void bookmarkUpdated( BookmarkUpdateEvent bookmarkUpdateEvent ) 142 { 143 if ( viewer != null ) 144 { 145 viewer.refresh(); 146 } 147 } 148 149 } 150 | Popular Tags |