1 20 21 package org.apache.directory.ldapstudio.schemas.view.wizards; 22 23 24 import org.apache.directory.ldapstudio.schemas.Activator; 25 import org.apache.directory.ldapstudio.schemas.Messages; 26 import org.apache.directory.ldapstudio.schemas.PluginConstants; 27 import org.apache.directory.ldapstudio.schemas.model.SchemaPool; 28 import org.apache.directory.ldapstudio.schemas.view.ViewUtils; 29 import org.apache.directory.shared.asn1.primitives.OID; 30 import org.eclipse.jface.preference.IPreferenceStore; 31 import org.eclipse.jface.wizard.WizardPage; 32 import org.eclipse.swt.SWT; 33 import org.eclipse.swt.events.ModifyEvent; 34 import org.eclipse.swt.events.ModifyListener; 35 import org.eclipse.swt.events.SelectionAdapter; 36 import org.eclipse.swt.events.SelectionEvent; 37 import org.eclipse.swt.events.VerifyEvent; 38 import org.eclipse.swt.events.VerifyListener; 39 import org.eclipse.swt.layout.GridData; 40 import org.eclipse.swt.layout.GridLayout; 41 import org.eclipse.swt.widgets.Button; 42 import org.eclipse.swt.widgets.Composite; 43 import org.eclipse.swt.widgets.Label; 44 import org.eclipse.swt.widgets.Text; 45 import org.eclipse.ui.plugin.AbstractUIPlugin; 46 47 48 51 public class CreateANewAttributeTypeWizardPage extends WizardPage 52 { 53 private Text oidField; 55 private Text nameField; 56 57 58 61 public CreateANewAttributeTypeWizardPage() 62 { 63 super( "CreateANewAttributeTypeWizardPage" ); setTitle( Messages.getString( "CreateANewAttributeTypeWizardPage.Page_Title" ) ); setDescription( Messages.getString( "CreateANewAttributeTypeWizardPage.Page_Description" ) ); setImageDescriptor( AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID, 67 PluginConstants.IMG_ATTRIBUTE_TYPE_NEW_WIZARD ) ); 68 } 69 70 71 76 public String getOidField() 77 { 78 return this.oidField.getText(); 79 } 80 81 82 87 public String getNameField() 88 { 89 return this.nameField.getText(); 90 } 91 92 93 98 public void createControl( Composite parent ) 99 { 100 Composite container = new Composite( parent, SWT.NULL ); 101 GridLayout layout = new GridLayout(); 102 container.setLayout( layout ); 103 layout.numColumns = 2; 104 layout.verticalSpacing = 1; 105 GridData gd = new GridData( GridData.FILL_HORIZONTAL ); 106 107 new Label( container, SWT.NULL ); 109 110 final Button autoOID = new Button( container, SWT.CHECK ); 111 autoOID.setText( Messages.getString( "CreateANewAttributeTypeWizardPage.Prefix_with_the_default_OID" ) ); 113 autoOID.addSelectionListener( new SelectionAdapter() 114 { 115 public void widgetSelected( SelectionEvent e ) 116 { 117 IPreferenceStore store = Activator.getDefault().getPreferenceStore(); 118 119 store.setValue( PluginConstants.PREFS_SCHEMAS_EDITOR_AUTO_OID, autoOID.getSelection() ); 120 if ( autoOID.getSelection() ) 121 { 122 String temp = store.getString( PluginConstants.PREFS_SCHEMAS_EDITOR_COMPANY_OID ); 123 oidField.setText( temp + "." ); } 125 else 126 { 127 oidField.setText( "" ); } 129 } 130 } ); 131 132 IPreferenceStore store = Activator.getDefault().getPreferenceStore(); 133 boolean auto_oid = store.getBoolean( PluginConstants.PREFS_SCHEMAS_EDITOR_AUTO_OID ); 134 autoOID.setSelection( auto_oid ); 135 136 Label label = new Label( container, SWT.NULL ); 137 label.setText( Messages.getString( "CreateANewAttributeTypeWizardPage.OID" ) ); oidField = new Text( container, SWT.BORDER | SWT.SINGLE ); 139 if ( auto_oid ) 140 { 141 String temp = store.getString( PluginConstants.PREFS_SCHEMAS_EDITOR_COMPANY_OID ); 142 oidField.setText( temp + "." ); } 144 oidField.setLayoutData( gd ); 145 oidField.addModifyListener( new ModifyListener() 146 { 147 public void modifyText( ModifyEvent e ) 148 { 149 dialogChanged(); 150 } 151 } ); 152 oidField.addVerifyListener( new VerifyListener() 153 { 154 public void verifyText( VerifyEvent e ) 155 { 156 if ( !e.text.matches( "([0-9]*\\.?)*" ) ) { 158 e.doit = false; 159 } 160 } 161 } ); 162 163 Label label2 = new Label( container, SWT.NULL ); 165 label2.setText( Messages.getString( "CreateANewAttributeTypeWizardPage.Name" ) ); nameField = new Text( container, SWT.BORDER | SWT.SINGLE ); 167 nameField.setLayoutData( gd ); 168 nameField.addModifyListener( new ModifyListener() 169 { 170 public void modifyText( ModifyEvent e ) 171 { 172 dialogChanged(); 173 } 174 } ); 175 dialogChanged(); 176 setControl( container ); 177 setErrorMessage( null ); 178 setPageComplete( false ); 179 } 180 181 182 185 private void dialogChanged() 186 { 187 if ( getOidField().length() == 0 ) 188 { 189 updateStatus( Messages.getString( "CreateANewAttributeTypeWizardPage.An_OID_must_be_specified" ) ); return; 191 } 192 193 if ( !OID.isOID( getOidField() ) ) 194 { 195 updateStatus( Messages.getString( "CreateANewAttributeTypeWizardPage.Malformed_OID" ) ); return; 197 } 198 199 if ( getNameField().length() == 0 ) 200 { 201 updateStatus( Messages.getString( "CreateANewAttributeTypeWizardPage.A_name_must_be_specified" ) ); return; 203 } 204 205 if ( SchemaPool.getInstance().containsSchemaElement( getOidField() ) ) 206 { 207 updateStatus( Messages 208 .getString( "CreateANewAttributeTypeWizardPage.An_element_of_the_same_OID_already_exists" ) ); return; 210 } 211 212 if ( !ViewUtils.verifyName( getNameField() ) ) 213 { 214 updateStatus( "Name is not valid." ); return; 216 } 217 218 if ( SchemaPool.getInstance().containsSchemaElement( getNameField() ) ) 219 { 220 updateStatus( Messages 221 .getString( "CreateANewAttributeTypeWizardPage.An_element_of_the_same_name_already_exists" ) ); return; 223 } 224 225 updateStatus( null ); 226 } 227 228 229 235 private void updateStatus( String message ) 236 { 237 setErrorMessage( message ); 238 setPageComplete( message == null ); 239 } 240 } 241 | Popular Tags |