You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2010/03/27 18:11:08 UTC
svn commit: r928234 - in /directory/studio/trunk:
ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/
ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/
ldapbrowser-...
Author: seelmann
Date: Sat Mar 27 17:11:07 2010
New Revision: 928234
URL: http://svn.apache.org/viewvc?rev=928234&view=rev
Log:
Fix for DIRSTUDIO-637 (copy/paste of attributes no longer works):
o sub-classed paste action into specialized classes
o entry editor and search result editor paste action only modify the model, modification in directory is managed by the editors
o browser paste action directly modifies the entry in directory
Added:
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/EntryEditorPasteAction.java
directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/BrowserPasteAction.java
Modified:
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/PasteAction.java
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages.properties
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages_de.properties
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages_fr.properties
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/EntryEditorWidgetActionGroup.java
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages.properties
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages_de.properties
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages_fr.properties
directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages.properties
directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages_de.properties
directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages_fr.properties
directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorPasteAction.java
directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewActionGroup.java
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/PasteAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/PasteAction.java?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/PasteAction.java (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/PasteAction.java Sat Mar 27 17:11:07 2010
@@ -21,32 +21,12 @@
package org.apache.directory.studio.ldapbrowser.common.actions;
-import org.apache.directory.studio.connection.core.Utils;
-import org.apache.directory.studio.ldapbrowser.common.BrowserCommonConstants;
-import org.apache.directory.studio.ldapbrowser.common.dialogs.EntryExistsCopyStrategyDialogImpl;
-import org.apache.directory.studio.ldapbrowser.common.dialogs.ScopeDialog;
-import org.apache.directory.studio.ldapbrowser.common.dnd.EntryTransfer;
-import org.apache.directory.studio.ldapbrowser.common.dnd.SearchTransfer;
-import org.apache.directory.studio.ldapbrowser.common.dnd.ValuesTransfer;
-import org.apache.directory.studio.ldapbrowser.core.jobs.CopyEntriesJob;
-import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
-import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
-import org.apache.directory.studio.ldapbrowser.core.model.ISearch;
-import org.apache.directory.studio.ldapbrowser.core.model.IValue;
-import org.apache.directory.studio.ldapbrowser.core.model.SearchParameter;
-import org.apache.directory.studio.ldapbrowser.core.model.ISearch.SearchScope;
-import org.apache.directory.studio.ldapbrowser.core.model.impl.Search;
-import org.apache.directory.studio.ldapbrowser.core.utils.CompoundModification;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.preference.PreferenceDialog;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PreferencesUtil;
import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
@@ -56,7 +36,7 @@ import org.eclipse.ui.texteditor.IWorkbe
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$, $Date$
*/
-public class PasteAction extends BrowserAction
+public abstract class PasteAction extends BrowserAction
{
/**
* Creates a new instance of PasteAction.
@@ -70,36 +50,6 @@ public class PasteAction extends Browser
/**
* {@inheritDoc}
*/
- public String getText()
- {
- // entry
- IEntry[] entries = getEntriesToPaste();
- if ( entries != null )
- {
- return entries.length > 1 ? Messages.getString( "PasteAction.PasteEntries" ) : Messages.getString( "PasteAction.PasteEntry" ); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- // searches
- ISearch[] searches = getSearchesToPaste();
- if ( searches != null )
- {
- return searches.length > 1 ? Messages.getString( "PasteAction.PasteSearches" ) : Messages.getString( "PasteAction.PasteSearch" ); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- // value
- IValue[] values = getValuesToPaste();
- if ( values != null )
- {
- return values.length > 1 ? Messages.getString( "PasteAction.PasteValues" ) : Messages.getString( "PasteAction.PasteValue" ); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- return Messages.getString( "PasteAction.Paste" ); //$NON-NLS-1$
- }
-
-
- /**
- * {@inheritDoc}
- */
public ImageDescriptor getImageDescriptor()
{
return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor( ISharedImages.IMG_TOOL_PASTE );
@@ -116,262 +66,6 @@ public class PasteAction extends Browser
/**
- * {@inheritDoc}
- */
- public boolean isEnabled()
- {
- // entry
- if ( getEntriesToPaste() != null )
- {
- return true;
- }
-
- // search
- else if ( getSearchesToPaste() != null )
- {
- return true;
- }
-
- // value
- else if ( getValuesToPaste() != null )
- {
- return true;
- }
-
- return false;
- }
-
-
- /**
- * {@inheritDoc}
- */
- public void run()
- {
- // entry
- IEntry[] entries = getEntriesToPaste();
- if ( entries != null )
- {
- pasteEntries( getSelectedEntries()[0], entries );
- return;
- }
-
- // search
- ISearch[] searches = getSearchesToPaste();
- if ( searches != null )
- {
- pasteSearches( searches );
- return;
- }
-
- // value
- IValue[] values = getValuesToPaste();
- if ( values != null )
- {
- pasteValues( values );
- return;
- }
-
- }
-
-
- /**
- * Pastes the given entries
- *
- * @param parent
- * the parent Entry
- * @param entriesToPaste
- * the Entries to paste
- */
- private void pasteEntries( final IEntry parent, final IEntry[] entriesToPaste )
- {
- SearchScope scope = SearchScope.OBJECT;
- boolean askForScope = false;
- for ( int i = 0; i < entriesToPaste.length; i++ )
- {
- if ( entriesToPaste[i].hasChildren() )
- {
- askForScope = true;
- break;
- }
- }
- if ( askForScope )
- {
- ScopeDialog scopeDialog = new ScopeDialog( Display.getDefault().getActiveShell(), Messages
- .getString( "PasteAction.SelectCopyDepth" ), //$NON-NLS-1$
- entriesToPaste.length > 1 );
- scopeDialog.open();
- scope = scopeDialog.getScope();
- }
-
- new CopyEntriesJob( parent, entriesToPaste, scope, new EntryExistsCopyStrategyDialogImpl( Display.getDefault()
- .getActiveShell() ) ).execute();
- }
-
-
- private void pasteSearches( ISearch[] searches )
- {
- IBrowserConnection browserConnection = null;
- if ( getSelectedBrowserViewCategories().length > 0 )
- {
- browserConnection = getSelectedBrowserViewCategories()[0].getParent();
- }
- else if ( getSelectedSearches().length > 0 )
- {
- browserConnection = getSelectedSearches()[0].getBrowserConnection();
- }
-
- if ( browserConnection != null )
- {
- ISearch clone = null;
- for ( ISearch search : searches )
- {
- SearchParameter searchParameter = ( SearchParameter ) search.getSearchParameter().clone();
- clone = new Search( browserConnection, searchParameter );
- browserConnection.getSearchManager().addSearch( clone );
- }
-
- if ( searches.length == 1 )
- {
- IAdaptable element = ( IAdaptable ) clone;
- String pageId = BrowserCommonConstants.PROP_SEARCH;
- String title = clone.getName();
-
- PreferenceDialog dialog = PreferencesUtil.createPropertyDialogOn( getShell(), element, pageId, null,
- null );
- if ( dialog != null )
- {
- title = Utils.shorten( title, 30 );
- }
- dialog.getShell().setText( NLS.bind( Messages.getString( "PropertiesAction.PropertiesForX" ), title ) ); //$NON-NLS-1$
- dialog.open();
- }
- }
- }
-
-
- /**
- * Paste Values
- *
- * @param values
- * the Values to paste
- */
- private void pasteValues( IValue[] values )
- {
- IEntry entry = null;
- if ( getSelectedAttributes().length > 0 )
- {
- entry = getSelectedAttributes()[0].getEntry();
- }
- else if ( getSelectedValues().length > 0 )
- {
- entry = getSelectedValues()[0].getAttribute().getEntry();
- }
- else if ( getSelectedEntries().length == 1 )
- {
- entry = getSelectedEntries()[0];
- }
- else if ( getSelectedSearchResults().length == 1 )
- {
- entry = getSelectedSearchResults()[0].getEntry();
- }
- else if ( getSelectedBookmarks().length == 1 )
- {
- entry = getSelectedBookmarks()[0].getEntry();
- }
-
- if ( entry != null )
- {
- new CompoundModification().createValues( entry, values );
- }
- }
-
-
- /**
- * Conditions:
- * <li>an entry is selected</li>
- * <li>there are entries in clipboard</li>
- *
- * @return
- */
- private IEntry[] getEntriesToPaste()
- {
- if ( getSelectedBookmarks().length + getSelectedSearchResults().length + getSelectedSearches().length
- + getSelectedConnections().length + getSelectedAttributes().length + getSelectedValues().length == 0
- && getSelectedEntries().length == 1 )
- {
-
- Object content = this.getFromClipboard( EntryTransfer.getInstance() );
- if ( content != null && content instanceof IEntry[] )
- {
- IEntry[] entries = ( IEntry[] ) content;
- return entries;
- }
- }
-
- return null;
- }
-
-
- /**
- * Conditions:
- * <li>a search or category is selected</li>
- * <li>there are searches in clipboard</li>
- *
- * @return
- */
- private ISearch[] getSearchesToPaste()
- {
- if ( getSelectedBookmarks().length + getSelectedSearchResults().length + getSelectedEntries().length
- + getSelectedConnections().length + getSelectedAttributes().length + getSelectedValues().length == 0
- && ( getSelectedSearches().length + getSelectedBrowserViewCategories().length > 0 ) )
- {
- Object content = this.getFromClipboard( SearchTransfer.getInstance() );
- if ( content != null && content instanceof ISearch[] )
- {
- ISearch[] searches = ( ISearch[] ) content;
- return searches;
- }
- }
-
- return null;
- }
-
-
- /**
- * Conditions:
- * <li>an attribute or value is selected</li>
- * <li>there are values in clipboard</li>
- *
- * @return
- */
- private IValue[] getValuesToPaste()
- {
- if ( ( getSelectedEntries().length + getSelectedSearchResults().length + getSelectedBookmarks().length
- + getSelectedSearches().length + getSelectedConnections().length == 0 && ( getSelectedAttributes().length
- + getSelectedValues().length > 0 ) )
- || ( getSelectedAttributes().length + getSelectedValues().length + getSelectedSearchResults().length
- + getSelectedBookmarks().length + getSelectedSearches().length + getSelectedConnections().length == 0 && ( getSelectedEntries().length == 1 ) )
- || ( getSelectedAttributes().length + getSelectedValues().length + getSelectedEntries().length
- + getSelectedSearchResults().length + getSelectedSearches().length + getSelectedConnections().length == 0 && ( getSelectedBookmarks().length == 1 ) )
- || ( getSelectedAttributes().length + getSelectedValues().length + getSelectedEntries().length
- + getSelectedBookmarks().length + getSelectedSearches().length + getSelectedConnections().length == 0 && ( getSelectedSearchResults().length == 1 ) )
-
- )
- {
-
- Object content = this.getFromClipboard( ValuesTransfer.getInstance() );
- if ( content != null && content instanceof IValue[] )
- {
- IValue[] values = ( IValue[] ) content;
- return values;
- }
- }
-
- return null;
- }
-
-
- /**
* Retrieve the data of the specified type currently available on the system clipboard.
*
* @param dataType
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages.properties?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages.properties (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages.properties Sat Mar 27 17:11:07 2010
@@ -65,14 +65,6 @@ NewAttributeAction.NewAttribute=New Attr
NewAttributeAction.NewAttributeLabel=New Attribute...
NewValueAction.NewValue=New Value
OpenQuickSearchAction.OpenQuickSearch=Quick Search
-PasteAction.Paste=Paste
-PasteAction.PasteEntries=Paste Entries
-PasteAction.PasteEntry=Paste Entry
-PasteAction.PasteSearches=Paste Searches
-PasteAction.PasteSearch=Paste Search
-PasteAction.PasteValue=Paste Value
-PasteAction.PasteValues=Paste Values
-PasteAction.SelectCopyDepth=Select Copy Depth
PropertiesAction.Properties=Properties
PropertiesAction.PropertiesForX=Properties for {0}
RefreshAction.PerformSearch=Perform Search
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages_de.properties?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages_de.properties (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages_de.properties Sat Mar 27 17:11:07 2010
@@ -65,14 +65,6 @@ NewAttributeAction.NewAttribute=Neues At
NewAttributeAction.NewAttributeLabel=Neues Attribut...
NewValueAction.NewValue=Neuer Wert
OpenQuickSearchAction.OpenQuickSearch=Schnellsuche
-PasteAction.Paste=Einf\u00FCgen
-PasteAction.PasteEntries=Eintr\u00E4ge einf\u00FCgen
-PasteAction.PasteEntry=Eintrag einf\u00FCgen
-PasteAction.PasteSearches=Suchen einf\u00FCgen
-PasteAction.PasteSearch=Suche einf\u00FCgen
-PasteAction.PasteValue=Wert einf\u00FCgen
-PasteAction.PasteValues=Werte einf\u00FCgen
-PasteAction.SelectCopyDepth=Kopiertiefe ausw\u00E4hlen
PropertiesAction.Properties=Eigenschaften
PropertiesAction.PropertiesForX=Eigenschaften f\u00FCr {0}
RefreshAction.PerformSearch=Suche auf\u00FChren
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages_fr.properties?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages_fr.properties (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/messages_fr.properties Sat Mar 27 17:11:07 2010
@@ -65,14 +65,6 @@ NewAttributeAction.NewAttribute=Nouvel a
NewAttributeAction.NewAttributeLabel=Nouvel attribut...
NewValueAction.NewValue=Nouvelle valeur
OpenQuickSearchAction.OpenQuickSearch=Recherche rapide
-PasteAction.Paste=Coller
-PasteAction.PasteEntries=Coller les entr\u00E9es
-PasteAction.PasteEntry=Coller l'entr\u00E9e
-PasteAction.PasteSearches=Coller les recherches
-PasteAction.PasteSearch=Coller la recherche
-PasteAction.PasteValue=Coller la valeur
-PasteAction.PasteValues=Coller les valeurs
-PasteAction.SelectCopyDepth=S\u00E9lectionner la profondeur de copie
PropertiesAction.Properties=Propri\u00E9t\u00E9s
PropertiesAction.PropertiesForX=Propri\u00E9t\u00E9s pour {0}
RefreshAction.PerformSearch=Lancer la recherche
Added: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/EntryEditorPasteAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/EntryEditorPasteAction.java?rev=928234&view=auto
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/EntryEditorPasteAction.java (added)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/EntryEditorPasteAction.java Sat Mar 27 17:11:07 2010
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.directory.studio.ldapbrowser.common.widgets.entryeditor;
+
+
+import org.apache.directory.studio.ldapbrowser.common.actions.PasteAction;
+import org.apache.directory.studio.ldapbrowser.common.dnd.ValuesTransfer;
+import org.apache.directory.studio.ldapbrowser.core.model.AttributeHierarchy;
+import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
+import org.apache.directory.studio.ldapbrowser.core.model.IValue;
+import org.apache.directory.studio.ldapbrowser.core.utils.CompoundModification;
+
+
+/**
+ * This class implements the paste action for the tabular entry editor.
+ * It copies attribute-values to another entry.
+ * It does not invoke an UpdateEntryRunnable but only updates the model.
+ */
+public class EntryEditorPasteAction extends PasteAction
+{
+
+ /**
+ * Creates a new instance of EntryEditorPasteAction.
+ */
+ public EntryEditorPasteAction()
+ {
+ super();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getText()
+ {
+ IValue[] values = getValuesToPaste();
+ if ( values != null )
+ {
+ return values.length > 1 ? Messages.getString( "EntryEditorPasteAction.PasteValues" ) : Messages.getString( "EntryEditorPasteAction.PasteValue" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ return Messages.getString( "EntryEditorPasteAction.Paste" ); //$NON-NLS-1$
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isEnabled()
+ {
+ if ( getValuesToPaste() != null )
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void run()
+ {
+ IValue[] values = getValuesToPaste();
+ if ( values != null )
+ {
+ IEntry entry = null;
+ if ( getInput() instanceof IEntry )
+ {
+ entry = ( IEntry ) getInput();
+ }
+ else if ( getInput() instanceof AttributeHierarchy )
+ {
+ entry = ( ( AttributeHierarchy ) getInput() ).getEntry();
+ }
+
+ if ( entry != null )
+ {
+ // only modify the model
+ // the modification at the directory is done by EntryEditorManager
+ new CompoundModification().createValues( entry, values );
+ }
+ }
+ }
+
+
+ /**
+ * Conditions:
+ * <li>the input is an entry or attribute hierarchy</li>
+ * <li>there are values in clipboard</li>
+ *
+ * @return the values to paste
+ */
+ private IValue[] getValuesToPaste()
+ {
+ if ( getInput() instanceof IEntry || getInput() instanceof AttributeHierarchy )
+ {
+ Object content = this.getFromClipboard( ValuesTransfer.getInstance() );
+ if ( content != null && content instanceof IValue[] )
+ {
+ IValue[] values = ( IValue[] ) content;
+ return values;
+ }
+ }
+
+ return null;
+ }
+
+}
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/EntryEditorWidgetActionGroup.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/EntryEditorWidgetActionGroup.java?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/EntryEditorWidgetActionGroup.java (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/EntryEditorWidgetActionGroup.java Sat Mar 27 17:11:07 2010
@@ -29,7 +29,6 @@ import org.apache.directory.studio.ldapb
import org.apache.directory.studio.ldapbrowser.common.actions.CopyAction;
import org.apache.directory.studio.ldapbrowser.common.actions.DeleteAction;
import org.apache.directory.studio.ldapbrowser.common.actions.NewValueAction;
-import org.apache.directory.studio.ldapbrowser.common.actions.PasteAction;
import org.apache.directory.studio.ldapbrowser.common.actions.PropertiesAction;
import org.apache.directory.studio.ldapbrowser.common.actions.SelectAllAction;
import org.apache.directory.studio.ldapbrowser.common.actions.ShowDecoratedValuesAction;
@@ -144,7 +143,7 @@ public class EntryEditorWidgetActionGrou
entryEditorActionMap.put( newValueAction, new EntryEditorActionProxy( viewer, new NewValueAction() ) );
- entryEditorActionMap.put( pasteAction, new EntryEditorActionProxy( viewer, new PasteAction() ) );
+ entryEditorActionMap.put( pasteAction, new EntryEditorActionProxy( viewer, new EntryEditorPasteAction() ) );
entryEditorActionMap.put( copyAction, new EntryEditorActionProxy( viewer, new CopyAction(
( BrowserActionProxy ) entryEditorActionMap.get( pasteAction ), valueEditorManager ) ) );
entryEditorActionMap.put( deleteAction, new EntryEditorActionProxy( viewer, new DeleteAction() ) );
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages.properties?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages.properties (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages.properties Sat Mar 27 17:11:07 2010
@@ -44,3 +44,6 @@ OpenBestEditorAction.NewValueQuestion=Do
OpenDefaultEditorAction.EditValue=Edit Value
OpenSortDialogAction.Sorting=Sorting...
ShowQuickFilterAction.ShowQuickFilter=Show Quick Filter
+EntryEditorPasteAction.Paste=Paste
+EntryEditorPasteAction.PasteValue=Paste Value
+EntryEditorPasteAction.PasteValues=Paste Values
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages_de.properties?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages_de.properties (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages_de.properties Sat Mar 27 17:11:07 2010
@@ -44,3 +44,6 @@ OpenBestEditorAction.NewValueQuestion=Wo
OpenDefaultEditorAction.EditValue=Wert bearbeiten
OpenSortDialogAction.Sorting=Sortierung...
ShowQuickFilterAction.ShowQuickFilter=Schnell-Filer anzeigen
+EntryEditorPasteAction.Paste=Einf\u00FCgen
+EntryEditorPasteAction.PasteValue=Wert einf\u00FCgen
+EntryEditorPasteAction.PasteValues=Werte einf\u00FCgen
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages_fr.properties?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages_fr.properties (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/messages_fr.properties Sat Mar 27 17:11:07 2010
@@ -44,3 +44,6 @@ OpenBestEditorAction.NewValueQuestion=So
OpenDefaultEditorAction.EditValue=Editer la valeur
OpenSortDialogAction.Sorting=Tri...
ShowQuickFilterAction.ShowQuickFilter=Afficher le filtre rapide
+EntryEditorPasteAction.Paste=Coller
+EntryEditorPasteAction.PasteValue=Coller la valeur
+EntryEditorPasteAction.PasteValues=Coller les valeurs
Added: directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/BrowserPasteAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/BrowserPasteAction.java?rev=928234&view=auto
==============================================================================
--- directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/BrowserPasteAction.java (added)
+++ directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/BrowserPasteAction.java Sat Mar 27 17:11:07 2010
@@ -0,0 +1,357 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.directory.studio.ldapbrowser.ui.actions;
+
+
+import org.apache.directory.studio.connection.core.Utils;
+import org.apache.directory.studio.ldapbrowser.common.BrowserCommonConstants;
+import org.apache.directory.studio.ldapbrowser.common.actions.PasteAction;
+import org.apache.directory.studio.ldapbrowser.common.dialogs.EntryExistsCopyStrategyDialogImpl;
+import org.apache.directory.studio.ldapbrowser.common.dialogs.ScopeDialog;
+import org.apache.directory.studio.ldapbrowser.common.dnd.EntryTransfer;
+import org.apache.directory.studio.ldapbrowser.common.dnd.SearchTransfer;
+import org.apache.directory.studio.ldapbrowser.common.dnd.ValuesTransfer;
+import org.apache.directory.studio.ldapbrowser.core.jobs.CopyEntriesJob;
+import org.apache.directory.studio.ldapbrowser.core.jobs.StudioBrowserJob;
+import org.apache.directory.studio.ldapbrowser.core.jobs.UpdateEntryRunnable;
+import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
+import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
+import org.apache.directory.studio.ldapbrowser.core.model.ISearch;
+import org.apache.directory.studio.ldapbrowser.core.model.IValue;
+import org.apache.directory.studio.ldapbrowser.core.model.SearchParameter;
+import org.apache.directory.studio.ldapbrowser.core.model.ISearch.SearchScope;
+import org.apache.directory.studio.ldapbrowser.core.model.impl.Search;
+import org.apache.directory.studio.ldapbrowser.core.utils.CompoundModification;
+import org.apache.directory.studio.ldifparser.LdifFormatParameters;
+import org.apache.directory.studio.ldifparser.model.LdifFile;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jface.preference.PreferenceDialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.dialogs.PreferencesUtil;
+
+
+/**
+ * This class implements the paste action for the LDAP browser view.
+ * It copies attribute-values to another entry.
+ * It invokes an UpdateEntryRunnable.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class BrowserPasteAction extends PasteAction
+{
+ /**
+ * Creates a new instance of BrowserPasteAction.
+ */
+ public BrowserPasteAction()
+ {
+ super();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getText()
+ {
+ // entry
+ IEntry[] entries = getEntriesToPaste();
+ if ( entries != null )
+ {
+ return entries.length > 1 ? Messages.getString( "BrowserPasteAction.PasteEntries" ) : Messages.getString( "BrowserPasteAction.PasteEntry" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // searches
+ ISearch[] searches = getSearchesToPaste();
+ if ( searches != null )
+ {
+ return searches.length > 1 ? Messages.getString( "BrowserPasteAction.PasteSearches" ) : Messages.getString( "BrowserPasteAction.PasteSearch" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // value
+ IValue[] values = getValuesToPaste();
+ if ( values != null )
+ {
+ return values.length > 1 ? Messages.getString( "BrowserPasteAction.PasteValues" ) : Messages.getString( "BrowserPasteAction.PasteValue" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ return Messages.getString( "BrowserPasteAction.Paste" ); //$NON-NLS-1$
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isEnabled()
+ {
+ // entry
+ if ( getEntriesToPaste() != null )
+ {
+ return true;
+ }
+
+ // search
+ else if ( getSearchesToPaste() != null )
+ {
+ return true;
+ }
+
+ // value
+ else if ( getValuesToPaste() != null )
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void run()
+ {
+ // entry
+ IEntry[] entries = getEntriesToPaste();
+ if ( entries != null )
+ {
+ pasteEntries( getSelectedEntries()[0], entries );
+ return;
+ }
+
+ // search
+ ISearch[] searches = getSearchesToPaste();
+ if ( searches != null )
+ {
+ pasteSearches( searches );
+ return;
+ }
+
+ // value
+ IValue[] values = getValuesToPaste();
+ if ( values != null )
+ {
+ pasteValues( values );
+ return;
+ }
+
+ }
+
+
+ /**
+ * Pastes the given entries
+ *
+ * @param parent
+ * the parent Entry
+ * @param entriesToPaste
+ * the Entries to paste
+ */
+ private void pasteEntries( final IEntry parent, final IEntry[] entriesToPaste )
+ {
+ SearchScope scope = SearchScope.OBJECT;
+ boolean askForScope = false;
+ for ( int i = 0; i < entriesToPaste.length; i++ )
+ {
+ if ( entriesToPaste[i].hasChildren() )
+ {
+ askForScope = true;
+ break;
+ }
+ }
+ if ( askForScope )
+ {
+ ScopeDialog scopeDialog = new ScopeDialog( Display.getDefault().getActiveShell(), Messages
+ .getString( "BrowserPasteAction.SelectCopyDepth" ), //$NON-NLS-1$
+ entriesToPaste.length > 1 );
+ scopeDialog.open();
+ scope = scopeDialog.getScope();
+ }
+
+ new CopyEntriesJob( parent, entriesToPaste, scope, new EntryExistsCopyStrategyDialogImpl( Display.getDefault()
+ .getActiveShell() ) ).execute();
+ }
+
+
+ private void pasteSearches( ISearch[] searches )
+ {
+ IBrowserConnection browserConnection = null;
+ if ( getSelectedBrowserViewCategories().length > 0 )
+ {
+ browserConnection = getSelectedBrowserViewCategories()[0].getParent();
+ }
+ else if ( getSelectedSearches().length > 0 )
+ {
+ browserConnection = getSelectedSearches()[0].getBrowserConnection();
+ }
+
+ if ( browserConnection != null )
+ {
+ ISearch clone = null;
+ for ( ISearch search : searches )
+ {
+ SearchParameter searchParameter = ( SearchParameter ) search.getSearchParameter().clone();
+ clone = new Search( browserConnection, searchParameter );
+ browserConnection.getSearchManager().addSearch( clone );
+ }
+
+ if ( searches.length == 1 )
+ {
+ IAdaptable element = ( IAdaptable ) clone;
+ String pageId = BrowserCommonConstants.PROP_SEARCH;
+ String title = clone.getName();
+
+ PreferenceDialog dialog = PreferencesUtil.createPropertyDialogOn( getShell(), element, pageId, null,
+ null );
+ if ( dialog != null )
+ {
+ title = Utils.shorten( title, 30 );
+ }
+ dialog.getShell().setText( NLS.bind( Messages.getString( "PropertiesAction.PropertiesForX" ), title ) ); //$NON-NLS-1$
+ dialog.open();
+ }
+ }
+ }
+
+
+ /**
+ * Paste Values
+ *
+ * @param values
+ * the Values to paste
+ */
+ private void pasteValues( IValue[] values )
+ {
+ IEntry entry = null;
+ if ( getSelectedEntries().length == 1 )
+ {
+ entry = getSelectedEntries()[0];
+ }
+ else if ( getSelectedSearchResults().length == 1 )
+ {
+ entry = getSelectedSearchResults()[0].getEntry();
+ }
+ else if ( getSelectedBookmarks().length == 1 )
+ {
+ entry = getSelectedBookmarks()[0].getEntry();
+ }
+
+ // always get the real entry in case it is a bookmark or search continuation
+ if ( entry != null )
+ {
+ entry = entry.getBrowserConnection().getEntryFromCache( entry.getDn() );
+ }
+
+ if ( entry != null )
+ {
+ IEntry clone = new CompoundModification().cloneEntry( entry );
+ new CompoundModification().createValues( clone, values );
+ LdifFile diff = org.apache.directory.studio.ldapbrowser.core.utils.Utils.computeDiff( entry, clone );
+ if ( diff != null )
+ {
+ UpdateEntryRunnable runnable = new UpdateEntryRunnable( entry, diff
+ .toFormattedString( LdifFormatParameters.DEFAULT ) );
+ new StudioBrowserJob( runnable ).execute();
+ }
+ }
+
+ }
+
+
+ /**
+ * Conditions:
+ * <li>an entry is selected</li>
+ * <li>there are entries in clipboard</li>
+ *
+ * @return
+ */
+ private IEntry[] getEntriesToPaste()
+ {
+ if ( getSelectedBookmarks().length + getSelectedSearchResults().length + getSelectedSearches().length
+ + getSelectedConnections().length + getSelectedAttributes().length + getSelectedValues().length == 0
+ && getSelectedEntries().length == 1 )
+ {
+
+ Object content = this.getFromClipboard( EntryTransfer.getInstance() );
+ if ( content != null && content instanceof IEntry[] )
+ {
+ IEntry[] entries = ( IEntry[] ) content;
+ return entries;
+ }
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Conditions:
+ * <li>a search or category is selected</li>
+ * <li>there are searches in clipboard</li>
+ *
+ * @return
+ */
+ private ISearch[] getSearchesToPaste()
+ {
+ if ( getSelectedBookmarks().length + getSelectedSearchResults().length + getSelectedEntries().length
+ + getSelectedConnections().length + getSelectedAttributes().length + getSelectedValues().length == 0
+ && ( getSelectedSearches().length + getSelectedBrowserViewCategories().length > 0 ) )
+ {
+ Object content = this.getFromClipboard( SearchTransfer.getInstance() );
+ if ( content != null && content instanceof ISearch[] )
+ {
+ ISearch[] searches = ( ISearch[] ) content;
+ return searches;
+ }
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Conditions:
+ * <li>an entry, search result, or bookmark is seleted</li>
+ * <li>there are values in clipboard</li>
+ *
+ * @return
+ */
+ private IValue[] getValuesToPaste()
+ {
+ if ( ( getSelectedAttributes().length + getSelectedValues().length + getSelectedSearchResults().length
+ + getSelectedBookmarks().length + getSelectedSearches().length + getSelectedConnections().length == 0 && ( getSelectedEntries().length == 1 ) )
+ || ( getSelectedAttributes().length + getSelectedValues().length + getSelectedEntries().length
+ + getSelectedSearchResults().length + getSelectedSearches().length + getSelectedConnections().length == 0 && ( getSelectedBookmarks().length == 1 ) )
+ || ( getSelectedAttributes().length + getSelectedValues().length + getSelectedEntries().length
+ + getSelectedBookmarks().length + getSelectedSearches().length + getSelectedConnections().length == 0 && ( getSelectedSearchResults().length == 1 ) ) )
+ {
+ Object content = this.getFromClipboard( ValuesTransfer.getInstance() );
+ if ( content != null && content instanceof IValue[] )
+ {
+ IValue[] values = ( IValue[] ) content;
+ return values;
+ }
+ }
+
+ return null;
+ }
+
+}
Modified: directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages.properties?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages.properties (original)
+++ directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages.properties Sat Mar 27 17:11:07 2010
@@ -87,3 +87,11 @@ OpenSchemaBrowserAction.SubstringDescrip
OpenSchemaBrowserAction.SyntaxDescription=Syntax Description
OpenSearchAction.Search=Search...
OpenSearchResultAction.OpenResult=Open Search Result
+BrowserPasteAction.Paste=Paste
+BrowserPasteAction.PasteEntries=Paste Entries
+BrowserPasteAction.PasteEntry=Paste Entry
+BrowserPasteAction.PasteSearches=Paste Searches
+BrowserPasteAction.PasteSearch=Paste Search
+BrowserPasteAction.PasteValue=Paste Value
+BrowserPasteAction.PasteValues=Paste Values
+BrowserPasteAction.SelectCopyDepth=Select Copy Depth
Modified: directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages_de.properties?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages_de.properties (original)
+++ directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages_de.properties Sat Mar 27 17:11:07 2010
@@ -85,3 +85,11 @@ OpenSchemaBrowserAction.SubstringDescrip
OpenSchemaBrowserAction.SyntaxDescription=Syntax Beschreibung
OpenSearchAction.Search=Suche...
OpenSearchResultAction.OpenResult=\u00D6ffne Suchresultat
+BrowserPasteAction.Paste=Einf\u00FCgen
+BrowserPasteAction.PasteEntries=Eintr\u00E4ge einf\u00FCgen
+BrowserPasteAction.PasteEntry=Eintrag einf\u00FCgen
+BrowserPasteAction.PasteSearches=Suchen einf\u00FCgen
+BrowserPasteAction.PasteSearch=Suche einf\u00FCgen
+BrowserPasteAction.PasteValue=Wert einf\u00FCgen
+BrowserPasteAction.PasteValues=Werte einf\u00FCgen
+BrowserPasteAction.SelectCopyDepth=Kopiertiefe ausw\u00E4hlen
Modified: directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages_fr.properties?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages_fr.properties (original)
+++ directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/actions/messages_fr.properties Sat Mar 27 17:11:07 2010
@@ -87,3 +87,11 @@ OpenSchemaBrowserAction.SubstringDescrip
OpenSchemaBrowserAction.SyntaxDescription=Description de syntaxe
OpenSearchAction.Search=Rechercher...
OpenSearchResultAction.OpenResult=Ouvrir le r\u00E9sultat de recherche
+BrowserPasteAction.Paste=Coller
+BrowserPasteAction.PasteEntries=Coller les entr\u00E9es
+BrowserPasteAction.PasteEntry=Coller l'entr\u00E9e
+BrowserPasteAction.PasteSearches=Coller les recherches
+BrowserPasteAction.PasteSearch=Coller la recherche
+BrowserPasteAction.PasteValue=Coller la valeur
+BrowserPasteAction.PasteValues=Coller les valeurs
+BrowserPasteAction.SelectCopyDepth=S\u00E9lectionner la profondeur de copie
Modified: directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorPasteAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorPasteAction.java?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorPasteAction.java (original)
+++ directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorPasteAction.java Sat Mar 27 17:11:07 2010
@@ -31,8 +31,9 @@ import org.apache.directory.studio.ldapb
/**
- * Special paste action to copy the values of a copied attr-val to another
- * attribute.
+ * This class implements the paste action for the search result editor.
+ * It copies the value af a copied attribute-value to another attribute.
+ * It does not invoke an UpdateEntryRunnable but only updates the model.
*/
public class SearchResultEditorPasteAction extends PasteAction
{
@@ -92,6 +93,8 @@ public class SearchResultEditorPasteActi
newValues[v] = new Value( attribute, values[v].getRawValue() );
}
+ // only modify the model
+ // the modification at the directory is done by SearchResultEditor.entryUpdateListener
new CompoundModification().createValues( entry, newValues );
}
}
Modified: directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewActionGroup.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewActionGroup.java?rev=928234&r1=928233&r2=928234&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewActionGroup.java (original)
+++ directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewActionGroup.java Sat Mar 27 17:11:07 2010
@@ -28,11 +28,11 @@ import org.apache.directory.studio.ldapb
import org.apache.directory.studio.ldapbrowser.common.actions.FetchOperationalAttributesAction;
import org.apache.directory.studio.ldapbrowser.common.actions.FetchReferralsAction;
import org.apache.directory.studio.ldapbrowser.common.actions.FetchSubentriesAction;
-import org.apache.directory.studio.ldapbrowser.common.actions.PasteAction;
import org.apache.directory.studio.ldapbrowser.common.actions.RenameAction;
import org.apache.directory.studio.ldapbrowser.common.actions.proxy.BrowserActionProxy;
import org.apache.directory.studio.ldapbrowser.common.actions.proxy.BrowserViewActionProxy;
import org.apache.directory.studio.ldapbrowser.common.widgets.browser.BrowserActionGroup;
+import org.apache.directory.studio.ldapbrowser.ui.actions.BrowserPasteAction;
import org.apache.directory.studio.ldapbrowser.ui.actions.CopyDnAction;
import org.apache.directory.studio.ldapbrowser.ui.actions.CopyEntryAsCsvAction;
import org.apache.directory.studio.ldapbrowser.ui.actions.CopyEntryAsLdifAction;
@@ -223,7 +223,7 @@ public class BrowserViewActionGroup exte
.put( locateEntryInDitAction, new BrowserViewActionProxy( viewer, new LocateEntryInDitAction() ) );
browserActionMap.put( gotoDnAction, new BrowserViewActionProxy( viewer, new GotoDnAction() ) );
- browserActionMap.put( pasteAction, new BrowserViewActionProxy( viewer, new PasteAction() ) );
+ browserActionMap.put( pasteAction, new BrowserViewActionProxy( viewer, new BrowserPasteAction() ) );
browserActionMap.put( copyAction, new BrowserViewActionProxy( viewer, new CopyAction(
( BrowserActionProxy ) browserActionMap.get( pasteAction ) ) ) );
browserActionMap.put( deleteAction, new BrowserViewActionProxy( viewer, new DeleteAction() ) );