You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2017/10/27 22:15:16 UTC

svn commit: r1813579 - /directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/

Author: elecharny
Date: Fri Oct 27 22:15:15 2017
New Revision: 1813579

URL: http://svn.apache.org/viewvc?rev=1813579&view=rev
Log:
Applied patch for DIRSTUDIO-1156.

Modified:
    directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/HexDialog.java
    directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/TextDialog.java
    directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages.properties
    directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_de.properties
    directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_fr.properties

Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/HexDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/HexDialog.java?rev=1813579&r1=1813578&r2=1813579&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/HexDialog.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/HexDialog.java Fri Oct 27 22:15:15 2017
@@ -23,11 +23,9 @@ package org.apache.directory.studio.ldap
 
 import java.io.File;
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 import java.nio.charset.StandardCharsets;
 
 import org.apache.directory.api.util.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;
@@ -101,21 +99,12 @@ public class HexDialog extends Dialog
         }
         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, StandardCharsets.UTF_8 ) );
+            if ( dialog.open() == TextDialog.OK )
             {
-                TextDialog dialog = new TextDialog( getShell(), new String( currentData, StandardCharsets.UTF_8 ) );
-
-                if ( dialog.open() == TextDialog.OK )
-                {
-                    String text = dialog.getText();
-                    currentData = text.getBytes( StandardCharsets.UTF_8 );
-                    hexText.setText( toFormattedHex( currentData ) );
-                }
-            }
-            else
-            {
-                CommonUIUtils.openErrorDialog( Messages.getString( "HexDialog.NonTextEditable" ) ); //$NON-NLS-1$
+                String text = dialog.getText();
+                currentData = text.getBytes( StandardCharsets.UTF_8 );
+                hexText.setText( toFormattedHex( currentData ) );
             }
         }
         else if ( buttonId == SAVE_BUTTON_ID )
@@ -198,7 +187,11 @@ 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$
+        if ( isEditable( currentData ) )
+        {
+           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 );
@@ -218,10 +211,8 @@ public class HexDialog extends Dialog
         hexText.setFont( JFaceResources.getFont( JFaceResources.TEXT_FONT ) );
 
         hexText.setText( toFormattedHex( currentData ) );
-        // GridData gd = new GridData(GridData.GRAB_HORIZONTAL |
-        // GridData.HORIZONTAL_ALIGN_FILL);
         GridData gd = new GridData( GridData.FILL_BOTH );
-        gd.widthHint = convertHorizontalDLUsToPixels( ( int ) ( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH * 1.6 ) );
+        gd.widthHint = convertHorizontalDLUsToPixels( ( int ) ( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH * 1.4 ) );
         gd.heightHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH / 2 );
         hexText.setLayoutData( gd );
 
@@ -231,8 +222,8 @@ public class HexDialog extends Dialog
 
 
     /**
-     * Formats the binary data in two colums. One containing the hex
-     * presentation and one containting the ASCII presentation of each byte.
+     * Formats the binary data in two columns. One containing the hex
+     * presentation and one containing the ASCII presentation of each byte.
      * 
      * 91 a1 08 23 42 b1 c1 15  52 d1 f0 24 33 62 72 82     ...#B... R..$3br.
      * 09 0a 16 17 18 19 1a 25  26 27 28 29 2a 34 35 36     .......% &'()*456 

Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/TextDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/TextDialog.java?rev=1813579&r1=1813578&r2=1813579&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/TextDialog.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/TextDialog.java Fri Oct 27 22:15:15 2017
@@ -21,12 +21,18 @@
 package org.apache.directory.studio.ldapbrowser.common.dialogs;
 
 
+import java.util.HashMap;
 import org.apache.directory.studio.ldapbrowser.common.BrowserCommonActivator;
 import org.apache.directory.studio.ldapbrowser.common.BrowserCommonConstants;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
@@ -48,9 +54,22 @@ public class TextDialog extends Dialog
 
     /** The return value. */
     private String returnValue;
+    
+    /** The button ID for the save button. */
+    private static final int TOGGLE_BUTTON_ID = 9999;
+    
+    /**
+     * Collection of buttons created by the <code>createButton</code> method.
+     */
+   private HashMap<Integer, Button> buttons = new HashMap<>();
 
     /** The text area. */
     private Text text;
+    
+    private int defaultTextStyle = SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL;
+   
+    /** The check box to enable line wrap */
+    GridData gd = new GridData();
 
 
     /**
@@ -62,11 +81,55 @@ public class TextDialog extends Dialog
     public TextDialog( Shell parentShell, String initialValue )
     {
         super( parentShell );
-        super.setShellStyle( super.getShellStyle() | SWT.RESIZE );
+        super.setShellStyle( super.getShellStyle() | SWT.RESIZE | SWT.MAX );
         this.initialValue = initialValue;
         this.returnValue = null;
     }
 
+    
+    /**
+     * @see org.eclipse.jface.dialogs.Dialog#createButton(org.eclipse.swt.widgets.Composite, int, String, boolean)
+     */
+    @Override
+   protected Button createButton( Composite parent, int id, String label, boolean defaultButton ) 
+    {
+       return createButton( parent, id, label, defaultButton, SWT.PUSH );
+   }
+       
+   protected Button createButton( Composite parent, int id, String label, boolean defaultButton, int style ) 
+   {
+       // increment the number of columns in the button bar
+       ( ( GridLayout ) parent.getLayout() ).numColumns++;
+       Button button = new Button( parent, style );
+       button.setText( label );
+       button.setFont( JFaceResources.getDialogFont() );
+       button.setData( Integer.valueOf( id ) );
+       button.addSelectionListener( 
+           new SelectionAdapter() 
+           {
+               @Override
+               public void widgetSelected( SelectionEvent event ) 
+               {
+                   buttonPressed( ( ( Integer ) event.widget.getData() ).intValue() );
+               }
+           });
+       
+       if ( defaultButton ) 
+       {
+           Shell shell = parent.getShell();
+           
+           if ( shell != null ) 
+           {
+               shell.setDefaultButton( button );
+           }
+       }
+       
+       buttons.put( Integer.valueOf( id ), button );
+       setButtonLayoutData( button );
+       
+       return button;
+   }
+
 
     /**
      * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
@@ -86,9 +149,38 @@ public class TextDialog extends Dialog
     @Override
     protected void createButtonsForButtonBar( Composite parent )
     {
+        createButton( parent, TOGGLE_BUTTON_ID, Messages.getString( "TextDialog.WrapLines" ), false, SWT.TOGGLE ); //$NON-NLS-1$
         createButton( parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, false );
         createButton( parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false );
     }
+    
+    
+    /**
+     * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
+     */
+    protected void buttonPressed( int buttonId )
+    {
+       if ( TOGGLE_BUTTON_ID == buttonId ) 
+       {
+           String currentValue = text.getText();
+           Composite composite = text.getParent();
+           text.dispose();
+           createText(composite, currentValue, getButton( TOGGLE_BUTTON_ID ).getSelection() );
+           text.requestLayout();   
+        }
+       
+        super.buttonPressed( buttonId );
+    }
+    
+    
+    /**
+     * @see org.eclipse.jface.dialogs.Dialog#getButton()
+     */
+    @Override
+    protected Button getButton( int id ) 
+    {
+       return buttons.get( Integer.valueOf( id ) );
+   }
 
 
     /**
@@ -110,23 +202,34 @@ public class TextDialog extends Dialog
     {
         // create composite
         Composite composite = ( Composite ) super.createDialogArea( parent );
-        GridData gd = new GridData( GridData.FILL_BOTH );
-        composite.setLayoutData( gd );
-
+        
+        composite.setLayoutData( new GridData( SWT.FILL,SWT.FILL,true,true ) );
+        
         // text widget
-        text = new Text( composite, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL );
-        text.setText( this.initialValue );
-        // GridData gd = new GridData(GridData.GRAB_HORIZONTAL |
-        // GridData.HORIZONTAL_ALIGN_FILL);
-        gd = new GridData( GridData.FILL_BOTH );
-        gd.widthHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH );
-        gd.heightHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH / 2 );
-        text.setLayoutData( gd );
-
-        applyDialogFont( composite );
+        createText( composite, this.initialValue, false );
         
         return composite;
     }
+    
+    
+     protected void createText( Composite composite, String value, boolean wrap ) 
+     {
+         if ( wrap ) 
+         {
+             text = new Text( composite, defaultTextStyle | SWT.WRAP);
+         } 
+         else 
+         {
+             text = new Text( composite, defaultTextStyle );
+         }
+        
+         text.setText( value );
+         gd = new GridData( SWT.FILL,SWT.FILL,true,true );
+         gd.widthHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH * 2);
+         gd.heightHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
+         text.setLayoutData( gd );
+         applyDialogFont( composite );
+    }
 
 
     /**

Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages.properties?rev=1813579&r1=1813578&r2=1813579&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages.properties (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages.properties Fri Oct 27 22:15:15 2017
@@ -30,7 +30,6 @@ 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
@@ -50,3 +49,4 @@ SimulateRenameDialogImpl.SimulateRename=
 SimulateRenameDialogImpl.SimulateRenameDescription1=You are trying to move/rename {0} to {1}.
 SimulateRenameDialogImpl.SimulateRenameDescription2=The LDAP server {0} doesn't support moving/renaming of non-leaf entries.
 TextDialog.TextEditor=Text Editor
+TextDialog.WrapLines=Wrap lines
\ No newline at end of file

Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_de.properties?rev=1813579&r1=1813578&r2=1813579&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_de.properties (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_de.properties Fri Oct 27 22:15:15 2017
@@ -30,7 +30,6 @@ 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
@@ -50,3 +49,4 @@ SimulateRenameDialogImpl.SimulateRename=
 SimulateRenameDialogImpl.SimulateRenameDescription1=Sie versuchen {0} nach {1} umzubenennen bzw. zu verschieben.
 SimulateRenameDialogImpl.SimulateRenameDescription2=Der LDAP Server {0} unterst\u00FCtzt nicht das Umbenennen bzw. Verschieben von Container-Eintr\u00E4gen.
 TextDialog.TextEditor=Text Editor
+TextDialog.WrapLines=Zeilenumbruch
\ No newline at end of file

Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_fr.properties?rev=1813579&r1=1813578&r2=1813579&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_fr.properties (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/messages_fr.properties Fri Oct 27 22:15:15 2017
@@ -30,7 +30,6 @@ 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\u00E8res ne pouvant \u00EAtre affich\u00E9s et ne peut \u00EAtre \u00E9dit\u00E9e comme texte.
 HexDialog.SaveData=Sauvegarder des donn\u00E9es
 HexDialog.SaveDataButton=Sauvegarder des donn\u00E9es...
 MoveEntriesDialog.MoveEntries=D\u00E9placer les entr\u00E9es
@@ -50,3 +49,4 @@ SimulateRenameDialogImpl.SimulateRename=
 SimulateRenameDialogImpl.SimulateRenameDescription1=Vous essayez de d\u00E9placer/renommer {0} vers/en {1}.
 SimulateRenameDialogImpl.SimulateRenameDescription2=Le serveur LDAP {0} ne supporte pas le d\u00E9placement/renommage d''entr\u00E9e qui ne sont pas des feuilles.
 TextDialog.TextEditor=Editeur de texte
+TextDialog.WrapLines=Formatage des lignes
\ No newline at end of file