Author: seelmann Date: Thu Aug 13 18:13:57 2009 New Revision: 803976 URL: http://svn.apache.org/viewvc?rev=803976&view=rev Log: Fixed UUID value editor to handle string or binary values: o handle syntax 1.3.6.1.1.16.1 to binary o check if the value is string and matches the UUID regular expression Modified: directory/studio/trunk/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/BrowserCorePreferencesInitializer.java directory/studio/trunk/valueeditors/plugin.xml directory/studio/trunk/valueeditors/src/main/java/org/apache/directory/studio/valueeditors/uuid/InPlaceUuidValueEditor.java Modified: directory/studio/trunk/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/BrowserCorePreferencesInitializer.java URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/BrowserCorePreferencesInitializer.java?rev=803976&r1=803975&r2=803976&view=diff ============================================================================== --- directory/studio/trunk/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/BrowserCorePreferencesInitializer.java (original) +++ directory/studio/trunk/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/BrowserCorePreferencesInitializer.java Thu Aug 13 18:13:57 2009 @@ -93,7 +93,8 @@ new BinarySyntax( "1.3.6.1.4.1.1466.115.121.1.23" ), // Fax //$NON-NLS-1$ new BinarySyntax( "1.3.6.1.4.1.1466.115.121.1.28" ), // JPEG //$NON-NLS-1$ new BinarySyntax( "1.3.6.1.4.1.1466.115.121.1.40" ), // Octet String //$NON-NLS-1$ - new BinarySyntax( "1.3.6.1.4.1.1466.115.121.1.49" ) // Supported Algorithm //$NON-NLS-1$ + new BinarySyntax( "1.3.6.1.4.1.1466.115.121.1.49" ), // Supported Algorithm //$NON-NLS-1$ + new BinarySyntax( "1.3.6.1.1.16.1" ), // UUID //$NON-NLS-1$ }; BrowserCorePlugin.getDefault().getCorePreferences().setDefaultBinarySyntaxes( defaultBinarySyntaxes ); } Modified: directory/studio/trunk/valueeditors/plugin.xml URL: http://svn.apache.org/viewvc/directory/studio/trunk/valueeditors/plugin.xml?rev=803976&r1=803975&r2=803976&view=diff ============================================================================== --- directory/studio/trunk/valueeditors/plugin.xml (original) +++ directory/studio/trunk/valueeditors/plugin.xml Thu Aug 13 18:13:57 2009 @@ -84,7 +84,9 @@ class="org.apache.directory.studio.valueeditors.uuid.InPlaceUuidValueEditor" icon="resources/icons/passwordeditor.gif" name="%ValueEditor_InPlaceEntryUUIDValueEditor_name"> - + + Apache Directory Project * @version $Rev$, $Date$ */ -public class InPlaceUuidValueEditor extends AbstractInPlaceStringValueEditor +public class InPlaceUuidValueEditor extends HexValueEditor { + private static final String UUID_REGEX = "^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$"; //$NON-NLS-1$ + /** * {@inheritDoc} */ public String getDisplayValue( IValue value ) { - // OpenLDAP returns entryUUID as a String instead of byte[] - if( value.getRawValue() instanceof String ) - { - return ( String ) value.getRawValue(); - } - - byte[] displayValue = value.getBinaryValue(); - if ( !showRawValues() ) { - if( displayValue == null ) - { - return "NULL"; - } - - return UUID.nameUUIDFromBytes( displayValue ).toString(); //$NON-NLS-1$ //$NON-NLS-2$ + Object rawValue = super.getRawValue( value ); + if ( rawValue instanceof byte[] ) + { + byte[] bytes = ( byte[] ) rawValue; + String string = StringTools.utf8ToString( bytes ); + if ( string.matches( UUID_REGEX ) || StringTools.isEmpty( string ) ) + { + return string; + } + else + { + return UUID.nameUUIDFromBytes( bytes ).toString(); + } + } } - return "Binay entryUUID value"; + return super.getDisplayValue( value ); } }