1 20 21 package org.apache.directory.ldapstudio.browser.common.widgets.search; 22 23 24 import org.apache.directory.ldapstudio.browser.common.BrowserCommonConstants; 25 import org.apache.directory.ldapstudio.browser.common.widgets.BaseWidgetUtils; 26 import org.apache.directory.ldapstudio.browser.common.widgets.BrowserWidget; 27 import org.apache.directory.ldapstudio.browser.common.widgets.DialogContentAssistant; 28 import org.apache.directory.ldapstudio.browser.common.widgets.HistoryUtils; 29 import org.apache.directory.ldapstudio.browser.core.model.IConnection; 30 import org.apache.directory.ldapstudio.browser.core.utils.Utils; 31 import org.eclipse.jface.text.IDocument; 32 import org.eclipse.swt.events.ModifyEvent; 33 import org.eclipse.swt.events.ModifyListener; 34 import org.eclipse.swt.layout.GridData; 35 import org.eclipse.swt.widgets.Combo; 36 import org.eclipse.swt.widgets.Composite; 37 38 39 47 public class ReturningAttributesWidget extends BrowserWidget 48 { 49 50 51 private Combo returningAttributesCombo; 52 53 54 private ReturningAttributesContentAssistProcessor contentAssistProcessor; 55 56 57 private IConnection connection; 58 59 60 private String [] initialReturningAttributes; 61 62 63 69 public ReturningAttributesWidget( IConnection connection, String [] initialReturningAttributes ) 70 { 71 this.connection = connection; 72 this.initialReturningAttributes = initialReturningAttributes; 73 } 74 75 76 81 public ReturningAttributesWidget() 82 { 83 this.connection = null; 84 this.initialReturningAttributes = null; 85 } 86 87 88 93 public void createWidget( Composite parent ) 94 { 95 returningAttributesCombo = BaseWidgetUtils.createCombo( parent, new String [0], -1, 1 ); 97 GridData gd = new GridData( GridData.FILL_HORIZONTAL ); 98 gd.horizontalSpan = 1; 99 gd.widthHint = 200; 100 returningAttributesCombo.setLayoutData( gd ); 101 102 contentAssistProcessor = new ReturningAttributesContentAssistProcessor( new String [0] ); 104 DialogContentAssistant raca = new DialogContentAssistant(); 105 raca.enableAutoInsert( true ); 106 raca.enableAutoActivation( true ); 107 raca.setAutoActivationDelay( 500 ); 108 raca.setContentAssistProcessor( contentAssistProcessor, IDocument.DEFAULT_CONTENT_TYPE ); 109 raca.install( returningAttributesCombo ); 110 111 String [] history = HistoryUtils.load( BrowserCommonConstants.DIALOGSETTING_KEY_RETURNING_ATTRIBUTES_HISTORY ); 113 for ( int i = 0; i < history.length; i++ ) 114 { 115 history[i] = Utils.arrayToString( Utils.stringToArray( history[i] ) ); 116 } 117 returningAttributesCombo.setItems( history ); 118 returningAttributesCombo.setText( Utils.arrayToString( this.initialReturningAttributes ) ); 119 120 returningAttributesCombo.addModifyListener( new ModifyListener() 121 { 122 public void modifyText( ModifyEvent e ) 123 { 124 notifyListeners(); 125 } 126 } ); 127 128 setConnection( connection ); 129 } 130 131 132 137 public void setConnection( IConnection connection ) 138 { 139 this.connection = connection; 140 contentAssistProcessor.setPossibleAttributeTypes( connection == null ? new String [0] : connection.getSchema() 141 .getAttributeTypeDescriptionNames() ); 142 } 143 144 145 150 public void setInitialReturningAttributes( String [] initialReturningAttributes ) 151 { 152 this.initialReturningAttributes = initialReturningAttributes; 153 returningAttributesCombo.setText( Utils.arrayToString( initialReturningAttributes ) ); 154 } 155 156 157 162 public void setEnabled( boolean b ) 163 { 164 this.returningAttributesCombo.setEnabled( b ); 165 } 166 167 168 173 public String [] getReturningAttributes() 174 { 175 String s = this.returningAttributesCombo.getText(); 176 return Utils.stringToArray( s ); 177 } 178 179 180 183 public void saveDialogSettings() 184 { 185 HistoryUtils.save( BrowserCommonConstants.DIALOGSETTING_KEY_RETURNING_ATTRIBUTES_HISTORY, Utils 186 .arrayToString( getReturningAttributes() ) ); 187 } 188 189 190 193 public void setFocus() 194 { 195 returningAttributesCombo.setFocus(); 196 197 } 198 199 } 200 | Popular Tags |