You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2013/06/24 15:59:04 UTC
svn commit: r1496058 - in
/directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio:
ldapbrowser/common/dialogs/ valueeditors/
Author: pamarcelot
Date: Mon Jun 24 13:59:03 2013
New Revision: 1496058
URL: http://svn.apache.org/r1496058
Log:
Fix for DIRSTUDIO-929 (Improve Hex Value Editor to allow text edition).
+ a small increment on the amount of data displayed in raw format for binary attributes.
Modified:
directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/HexDialog.java
directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages.properties
directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_de.properties
directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_fr.properties
directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogBinaryValueEditor.java
Modified: directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/HexDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/HexDialog.java?rev=1496058&r1=1496057&r2=1496058&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/HexDialog.java (original)
+++ directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/HexDialog.java Mon Jun 24 13:59:03 2013
@@ -23,8 +23,10 @@ package org.apache.directory.studio.ldap
import java.io.File;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import org.apache.commons.io.FileUtils;
+import org.apache.directory.studio.common.ui.CommonUIUtils;
import org.apache.directory.studio.connection.ui.ConnectionUIPlugin;
import org.apache.directory.studio.ldapbrowser.common.BrowserCommonActivator;
import org.apache.directory.studio.ldapbrowser.common.BrowserCommonConstants;
@@ -54,6 +56,9 @@ public class HexDialog extends Dialog
/** The default title. */
private static final String DIALOG_TITLE = Messages.getString( "HexDialog.HexEditor" ); //$NON-NLS-1$
+ /** The button ID for the edit as text button. */
+ private static final int EDIT_AS_TEXT_BUTTON_ID = 9997;
+
/** The button ID for the load button. */
private static final int LOAD_BUTTON_ID = 9998;
@@ -93,11 +98,29 @@ public class HexDialog extends Dialog
{
returnData = currentData;
}
+ else if ( buttonId == EDIT_AS_TEXT_BUTTON_ID )
+ {
+ // Checking if the data is "text-editable"
+ if ( isEditable( currentData ) )
+ {
+ TextDialog dialog = new TextDialog( getShell(), new String( currentData ) );
+
+ if ( dialog.open() == TextDialog.OK )
+ {
+ String text = dialog.getText();
+ currentData = text.getBytes();
+ hexText.setText( toFormattedHex( currentData ) );
+ }
+ }
+ else
+ {
+ CommonUIUtils.openErrorDialog( Messages.getString( "HexDialog.NonTextEditable" ) ); //$NON-NLS-1$
+ }
+ }
else if ( buttonId == SAVE_BUTTON_ID )
{
FileDialog fileDialog = new FileDialog( getShell(), SWT.SAVE );
fileDialog.setText( Messages.getString( "HexDialog.SaveData" ) ); //$NON-NLS-1$
- // fileDialog.setFilterExtensions(new String[]{"*.jpg"});
String returnedFileName = fileDialog.open();
if ( returnedFileName != null )
{
@@ -145,6 +168,27 @@ public class HexDialog extends Dialog
/**
+ * Small helper.
+ */
+ private boolean isEditable( byte[] b )
+ {
+ if ( b == null )
+ {
+ return false;
+ }
+
+ try
+ {
+ return !( new String( b, "UTF-8" ).contains( "\uFFFD" ) );
+ }
+ catch ( UnsupportedEncodingException e )
+ {
+ return false;
+ }
+ }
+
+
+ /**
* @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
*/
protected void configureShell( Shell shell )
@@ -160,6 +204,7 @@ public class HexDialog extends Dialog
*/
protected void createButtonsForButtonBar( Composite parent )
{
+ createButton( parent, EDIT_AS_TEXT_BUTTON_ID, Messages.getString( "HexDialog.EditAsText" ), false ); //$NON-NLS-1$
createButton( parent, LOAD_BUTTON_ID, Messages.getString( "HexDialog.LoadDataButton" ), false ); //$NON-NLS-1$
createButton( parent, SAVE_BUTTON_ID, Messages.getString( "HexDialog.SaveDataButton" ), false ); //$NON-NLS-1$
createButton( parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, false );
@@ -289,5 +334,4 @@ public class HexDialog extends Dialog
{
return returnData;
}
-
}
Modified: directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages.properties?rev=1496058&r1=1496057&r2=1496058&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages.properties (original)
+++ directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages.properties Mon Jun 24 13:59:03 2013
@@ -26,9 +26,11 @@ FilterDialog.Format=Format
FilterWidgetDialog.EnterValidFilter=Please enter a valid filter.
HexDialog.CantReadFile=Can't read file
HexDialog.CantWriteToFile=Can't write to file
+HexDialog.EditAsText=Edit as Text...
HexDialog.HexEditor=Hex Editor
HexDialog.LoadData=Load Data
HexDialog.LoadDataButton=Load Data...
+HexDialog.NonTextEditable=The value contains non-printable characters and can not be edited as text.
HexDialog.SaveData=Save Data
HexDialog.SaveDataButton=Save Data...
MoveEntriesDialog.MoveEntries=Move Entries
Modified: directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_de.properties?rev=1496058&r1=1496057&r2=1496058&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_de.properties (original)
+++ directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_de.properties Mon Jun 24 13:59:03 2013
@@ -26,9 +26,11 @@ FilterDialog.Format=Formatieren
FilterWidgetDialog.EnterValidFilter=Bitte g\u00FCltigen Filter eingeben.
HexDialog.CantReadFile=Datei kann nicht gelesen werden
HexDialog.CantWriteToFile=Datei kann nicht geschrieben werden
+HexDialog.EditAsText=Als Text bearbeiten...
HexDialog.HexEditor=Hex Editor
HexDialog.LoadData=Daten laden
HexDialog.LoadDataButton=Daten laden...
+HexDialog.NonTextEditable=Der Wert enthält nicht-druckbare Zeichen und kann nicht als Text bearbeitet werden.
HexDialog.SaveData=Daten speichern
HexDialog.SaveDataButton=Daten speichern...
MoveEntriesDialog.MoveEntries=Eintr\u00E4ge verschieben
Modified: directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_fr.properties?rev=1496058&r1=1496057&r2=1496058&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_fr.properties (original)
+++ directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_fr.properties Mon Jun 24 13:59:03 2013
@@ -26,9 +26,11 @@ FilterDialog.Format=Formater
FilterWidgetDialog.EnterValidFilter=Veuillez entrer un filtre valide.
HexDialog.CantReadFile=Impossible de lire le fichier
HexDialog.CantWriteToFile=Impossible d'\u00E9crire le fichier
+HexDialog.EditAsText=Editer comme texte...
HexDialog.HexEditor=Editeur Hex
HexDialog.LoadData=Charger des donn\u00E9es
HexDialog.LoadDataButton=Charger des donn\u00E9es...
+HexDialog.NonTextEditable=La valeur contient des caractères ne pouvant être affichés et ne peut être éditée comme texte.
HexDialog.SaveData=Sauvegarder des donn\u00E9es
HexDialog.SaveDataButton=Sauvegarder des donn\u00E9es...
MoveEntriesDialog.MoveEntries=D\u00E9placer les entr\u00E9es
Modified: directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogBinaryValueEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogBinaryValueEditor.java?rev=1496058&r1=1496057&r2=1496058&view=diff
==============================================================================
--- directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogBinaryValueEditor.java (original)
+++ directory/studio/trunk/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogBinaryValueEditor.java Mon Jun 24 13:59:03 2013
@@ -93,7 +93,7 @@ public abstract class AbstractDialogBina
{
byte[] data = value.getBinaryValue();
StringBuffer sb = new StringBuffer();
- for ( int i = 0; data != null && i < data.length && i < 128; i++ )
+ for ( int i = 0; data != null && i < data.length && i < 512; i++ )
{
if ( data[i] > 32 && data[i] < 127 )
sb.append( ( char ) data[i] );