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/08/04 08:59:17 UTC
svn commit: r1804081 [2/6] - in /directory/studio/branches/studio-value: ./
dist/ eclipse-trgt-platform/template/ features/apacheds.feature/
features/ldapbrowser.feature/ features/ldifeditor.feature/
features/nls.feature/ features/openldap.feature/ fea...
Modified: directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java (original)
+++ directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java Fri Aug 4 08:59:15 2017
@@ -25,6 +25,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
+import java.util.function.Consumer;
import javax.naming.ContextNotEmptyException;
import javax.naming.NameAlreadyBoundException;
@@ -49,6 +50,7 @@ import org.apache.directory.api.ldap.mod
import org.apache.directory.api.ldap.model.entry.Modification;
import org.apache.directory.api.ldap.model.entry.ModificationOperation;
import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
+import org.apache.directory.api.ldap.model.exception.LdapURLEncodingException;
import org.apache.directory.api.ldap.model.filter.ExprNode;
import org.apache.directory.api.ldap.model.filter.FilterParser;
import org.apache.directory.api.ldap.model.message.AddRequest;
@@ -68,12 +70,14 @@ import org.apache.directory.api.ldap.mod
import org.apache.directory.api.ldap.model.message.ModifyRequest;
import org.apache.directory.api.ldap.model.message.ModifyRequestImpl;
import org.apache.directory.api.ldap.model.message.ModifyResponse;
+import org.apache.directory.api.ldap.model.message.Referral;
import org.apache.directory.api.ldap.model.message.ResultCodeEnum;
import org.apache.directory.api.ldap.model.message.ResultResponse;
import org.apache.directory.api.ldap.model.message.SearchRequest;
import org.apache.directory.api.ldap.model.message.SearchRequestImpl;
import org.apache.directory.api.ldap.model.message.SearchScope;
import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.api.ldap.model.url.LdapUrl;
import org.apache.directory.ldap.client.api.LdapConnectionConfig;
import org.apache.directory.ldap.client.api.LdapNetworkConnection;
import org.apache.directory.ldap.client.api.SaslCramMd5Request;
@@ -94,6 +98,7 @@ import org.apache.directory.studio.conne
import org.apache.directory.studio.connection.core.Messages;
import org.apache.directory.studio.connection.core.Utils;
import org.apache.directory.studio.connection.core.io.ConnectionWrapper;
+import org.apache.directory.studio.connection.core.io.ConnectionWrapperUtils;
import org.apache.directory.studio.connection.core.io.StudioNamingEnumeration;
import org.apache.directory.studio.connection.core.io.StudioTrustManager;
import org.apache.directory.studio.connection.core.io.jndi.CancelException;
@@ -216,14 +221,20 @@ public class DirectoryApiConnectionWrapp
{
try
{
- ldapConnection = new LdapNetworkConnection( ldapConnectionConfig );
+ // Set lower timeout for connecting
+ long oldTimeout = ldapConnectionConfig.getTimeout();
+ ldapConnectionConfig.setTimeout( Math.min( oldTimeout, 5000L ) );
// Connecting
+ ldapConnection = new LdapNetworkConnection( ldapConnectionConfig );
boolean connected = ldapConnection.connect();
if ( !connected )
{
throw new Exception( Messages.DirectoryApiConnectionWrapper_UnableToConnect );
}
+
+ // Set old timeout again
+ ldapConnectionConfig.setTimeout( oldTimeout );
}
catch ( Exception e )
{
@@ -533,9 +544,8 @@ public class DirectoryApiConnectionWrapp
// Returning the result of the search
namingEnumeration = new CursorStudioNamingEnumeration( connection, cursor, searchBase, filter,
- searchControls,
- aliasesDereferencingMethod, referralsHandlingMethod, controls, requestNum, monitor,
- referralsInfo );
+ searchControls, aliasesDereferencingMethod, referralsHandlingMethod, controls, requestNum,
+ monitor, referralsInfo );
}
catch ( Exception e )
{
@@ -712,6 +722,16 @@ public class DirectoryApiConnectionWrapp
// Performing the modify operation
ModifyResponse modifyResponse = ldapConnection.modify( request );
+ // Handle referral
+ Consumer<ReferralHandlingData> consumer = referralHandlingData -> {
+ referralHandlingData.connectionWrapper.modifyEntry( referralHandlingData.referralDn,
+ modificationItems, controls, monitor, referralHandlingData.newReferralsInfo );
+ };
+ if ( checkAndHandleReferral( modifyResponse, monitor, referralsInfo, consumer ) )
+ {
+ return;
+ }
+
// Checking the response
checkResponse( modifyResponse );
}
@@ -845,6 +865,16 @@ public class DirectoryApiConnectionWrapp
// Performing the rename operation
ModifyDnResponse modifyDnResponse = ldapConnection.modifyDn( request );
+ // Handle referral
+ Consumer<ReferralHandlingData> consumer = referralHandlingData -> {
+ referralHandlingData.connectionWrapper.renameEntry( oldDn, newDn, deleteOldRdn, controls,
+ monitor, referralHandlingData.newReferralsInfo );
+ };
+ if ( checkAndHandleReferral( modifyDnResponse, monitor, referralsInfo, consumer ) )
+ {
+ return;
+ }
+
// Checking the response
checkResponse( modifyDnResponse );
}
@@ -914,6 +944,16 @@ public class DirectoryApiConnectionWrapp
// Performing the add operation
AddResponse addResponse = ldapConnection.add( request );
+ // Handle referral
+ Consumer<ReferralHandlingData> consumer = referralHandlingData -> {
+ referralHandlingData.connectionWrapper.createEntry( referralHandlingData.referralDn, attributes,
+ controls, monitor, referralHandlingData.newReferralsInfo );
+ };
+ if ( checkAndHandleReferral( addResponse, monitor, referralsInfo, consumer ) )
+ {
+ return;
+ }
+
// Checking the response
checkResponse( addResponse );
}
@@ -982,6 +1022,16 @@ public class DirectoryApiConnectionWrapp
// Performing the delete operation
DeleteResponse deleteResponse = ldapConnection.delete( request );
+ // Handle referral
+ Consumer<ReferralHandlingData> consumer = referralHandlingData -> {
+ referralHandlingData.connectionWrapper.deleteEntry( referralHandlingData.referralDn, controls,
+ monitor, referralHandlingData.newReferralsInfo );
+ };
+ if ( checkAndHandleReferral( deleteResponse, monitor, referralsInfo, consumer ) )
+ {
+ return;
+ }
+
// Checking the response
checkResponse( deleteResponse );
}
@@ -1078,6 +1128,62 @@ public class DirectoryApiConnectionWrapp
}
}
+
+ private boolean checkAndHandleReferral( ResultResponse response, StudioProgressMonitor monitor,
+ ReferralsInfo referralsInfo, Consumer<ReferralHandlingData> consumer ) throws NamingException, LdapURLEncodingException
+ {
+ if ( response == null )
+ {
+ return false;
+ }
+
+ LdapResult ldapResult = response.getLdapResult();
+ if ( ldapResult == null || !ResultCodeEnum.REFERRAL.equals( ldapResult.getResultCode() ) )
+ {
+ return false;
+ }
+
+ if ( referralsInfo == null )
+ {
+ referralsInfo = new ReferralsInfo( true );
+ }
+
+ Referral referral = ldapResult.getReferral();
+ referralsInfo.addReferral( referral );
+ Referral nextReferral = referralsInfo.getNextReferral();
+
+ Connection referralConnection = ConnectionWrapperUtils.getReferralConnection( nextReferral, monitor, this );
+ if ( referralConnection == null )
+ {
+ monitor.setCanceled( true );
+ return true;
+ }
+
+ List<String> urls = new ArrayList<String>( referral.getLdapUrls() );
+ String referralDn = new LdapUrl( urls.get( 0 ) ).getDn().getName();
+ ReferralHandlingData referralHandlingData = new ReferralHandlingData( referralConnection.getConnectionWrapper(),
+ referralDn, referralsInfo );
+ consumer.accept( referralHandlingData );
+
+ return true;
+ }
+
+
+ static class ReferralHandlingData
+ {
+ ConnectionWrapper connectionWrapper;
+ String referralDn;
+ ReferralsInfo newReferralsInfo;
+
+
+ ReferralHandlingData( ConnectionWrapper connectionWrapper, String referralDn, ReferralsInfo newReferralsInfo )
+ {
+ this.connectionWrapper = connectionWrapper;
+ this.referralDn = referralDn;
+ this.newReferralsInfo = newReferralsInfo;
+ }
+ }
+
private void checkConnectionAndRunAndMonitor( final InnerRunnable runnable, final StudioProgressMonitor monitor )
throws Exception
Modified: directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JNDIConnectionWrapper.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JNDIConnectionWrapper.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JNDIConnectionWrapper.java (original)
+++ directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JNDIConnectionWrapper.java Fri Aug 4 08:59:15 2017
@@ -355,9 +355,8 @@ public class JNDIConnectionWrapper imple
NamingEnumeration<SearchResult> result = searchCtx.search( JNDIConnectionWrapper
.getSaveJndiName( searchBase ), filter, searchControls );
namingEnumeration = new JndiStudioNamingEnumeration( connection, searchCtx, result, null,
- searchBase,
- filter, searchControls, aliasesDereferencingMethod, referralsHandlingMethod, controls,
- requestNum, monitor, referralsInfo );
+ searchBase, filter, searchControls, aliasesDereferencingMethod, referralsHandlingMethod,
+ controls, requestNum, monitor, referralsInfo );
}
catch ( PartialResultException e )
{
@@ -1539,7 +1538,7 @@ public class JNDIConnectionWrapper imple
{
if ( initialReferralsInfo == null )
{
- initialReferralsInfo = new ReferralsInfo();
+ initialReferralsInfo = new ReferralsInfo( true );
}
Referral referral = handleReferralException( referralException, initialReferralsInfo, null );
Modified: directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JndiStudioNamingEnumeration.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JndiStudioNamingEnumeration.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JndiStudioNamingEnumeration.java (original)
+++ directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JndiStudioNamingEnumeration.java Fri Aug 4 08:59:15 2017
@@ -148,6 +148,10 @@ public class JndiStudioNamingEnumeration
{
done = true;
logResultDoneException = re;
+ if ( referralsInfo == null )
+ {
+ referralsInfo = new ReferralsInfo( false );
+ }
referralsInfo = JNDIConnectionWrapper.handleReferralException( re, referralsInfo );
if ( referralsInfo.hasMoreReferrals() )
{
@@ -263,7 +267,7 @@ public class JndiStudioNamingEnumeration
}
- private boolean checkReferral()
+ private boolean checkReferral() throws NamingException
{
try
{
@@ -281,18 +285,24 @@ public class JndiStudioNamingEnumeration
{
delegate = new NamingEnumeration<SearchResult>()
{
-
- List<String> urls = new ArrayList<String>();
+ List<String> urls;
+
+ private NamingEnumeration<SearchResult> init() throws NamingException
{
- while ( referralsInfo.hasMoreReferrals() )
+ urls = new ArrayList<String>();
{
- Referral referral = referralsInfo.getNextReferral();
- for ( IJndiLogger logger : ConnectionCorePlugin.getDefault().getJndiLoggers() )
+ while ( referralsInfo.hasMoreReferrals() )
{
- logger.logSearchResultReference( connection, referral, referralsInfo, requestNum, null );
+ Referral referral = referralsInfo.getNextReferral();
+ for ( IJndiLogger logger : ConnectionCorePlugin.getDefault().getJndiLoggers() )
+ {
+ logger.logSearchResultReference( connection, referral, referralsInfo, requestNum,
+ null );
+ }
+ urls.addAll( referral.getLdapUrls() );
}
- urls.addAll( referral.getLdapUrls() );
}
+ return this;
}
@@ -338,7 +348,7 @@ public class JndiStudioNamingEnumeration
urls.clear();
referralsInfo = null;
}
- };
+ }.init();
}
else if ( referralsHandlingMethod == ReferralHandlingMethod.FOLLOW )
{
Modified: directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/ReferralsInfo.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/ReferralsInfo.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/ReferralsInfo.java (original)
+++ directory/studio/branches/studio-value/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/ReferralsInfo.java Fri Aug 4 08:59:15 2017
@@ -41,16 +41,24 @@ public class ReferralsInfo
private Set<String> processedUrls = new HashSet<String>();
+ private boolean throwExceptionOnLoop;
+
+
+ /**
+ * Creates a new instance of ReferralsInfo.
+ *
+ * @param throwExceptionOnLoop if an exception should be thrown when a referral loop is detected.
+ */
+ public ReferralsInfo( boolean throwExceptionOnLoop )
+ {
+ this.throwExceptionOnLoop = throwExceptionOnLoop;
+ }
+
/**
* Adds the referral entry to the list of referrals to be processed.
*
- * If the URLs are already in the list or if the URL was already processed
- * a NamingException will be thrown
- *
* @param referral the referral
- *
- * @throws LinkLoopException if a loop was encountered.
*/
public void addReferral( Referral referral )
{
@@ -59,19 +67,18 @@ public class ReferralsInfo
/**
- * Gets the next referral URL or null.
+ * Gets the next referral or null.
*
- * @return the next referral URL or null
+ * @return the next referral or null
+ * @throws LinkLoopException
*/
- public Referral getNextReferral()
+ public Referral getNextReferral() throws LinkLoopException
{
+ handleAlreadyProcessedUrls();
if ( !referralsToProcess.isEmpty() )
{
Referral referral = referralsToProcess.removeFirst();
- for ( String url : referral.getLdapUrls() )
- {
- processedUrls.add( url );
- }
+ processedUrls.addAll( referral.getLdapUrls() );
return referral;
}
else
@@ -85,9 +92,39 @@ public class ReferralsInfo
* Checks for more referrals.
*
* @return true, if there are more referrals
+ * @throws LinkLoopException
*/
- public boolean hasMoreReferrals()
+ public boolean hasMoreReferrals() throws LinkLoopException
{
+ handleAlreadyProcessedUrls();
return !referralsToProcess.isEmpty();
}
+
+
+ private void handleAlreadyProcessedUrls() throws LinkLoopException
+ {
+ while ( !referralsToProcess.isEmpty() )
+ {
+ Referral referral = referralsToProcess.getFirst();
+ boolean alreadyProcessed = referral.getLdapUrls().stream().anyMatch( url -> processedUrls.contains( url ) );
+ if ( alreadyProcessed )
+ {
+ // yes, already processed, remove the current referral and continue with filtering
+ if ( throwExceptionOnLoop )
+ {
+ throw new LinkLoopException( "Referral " + referral.getLdapUrls() + " already processed" );
+ }
+ else
+ {
+ referralsToProcess.removeFirst();
+ }
+ }
+ else
+ {
+ // no, not yet processed, done with filtering
+ return;
+ }
+ }
+ }
+
}
Modified: directory/studio/branches/studio-value/plugins/connection.core/src/main/resources/org/apache/directory/studio/connection/core/OIDDescriptions.properties
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/connection.core/src/main/resources/org/apache/directory/studio/connection/core/OIDDescriptions.properties?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/connection.core/src/main/resources/org/apache/directory/studio/connection/core/OIDDescriptions.properties (original)
+++ directory/studio/branches/studio-value/plugins/connection.core/src/main/resources/org/apache/directory/studio/connection/core/OIDDescriptions.properties Fri Aug 4 08:59:15 2017
@@ -768,6 +768,7 @@
2.16.840.1.113719.1.14.100.91=GetNamedPasswordRequest
2.16.840.1.113719.1.14.100.92=GetNamedPasswordResponse
2.16.840.1.113719.1.14.100.35=CloseChunkedResultRequest
+2.16.840.1.113719.1.14.100.93=GetJvmStatsRequest
# From TID
2.16.840.1.113719.1.27.101.5=Simple Password Control
Modified: directory/studio/branches/studio-value/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/UIAuthHandler.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/UIAuthHandler.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/UIAuthHandler.java (original)
+++ directory/studio/branches/studio-value/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/UIAuthHandler.java Fri Aug 4 08:59:15 2017
@@ -48,9 +48,9 @@ public class UIAuthHandler implements IA
public ICredentials getCredentials( final ConnectionParameter connectionParameter )
{
// Checking if the bind principal is null or empty (no authentication)
- if ( Strings.isEmpty( connectionParameter.getBindPrincipal() ) ) //$NON-NLS-1$
+ if ( Strings.isEmpty( connectionParameter.getBindPrincipal() ) )
{
- return new Credentials( StringUtils.EMPTY, StringUtils.EMPTY, connectionParameter ); //$NON-NLS-1$ //$NON-NLS-2$
+ return new Credentials( StringUtils.EMPTY, StringUtils.EMPTY, connectionParameter );
}
else
{
@@ -73,7 +73,7 @@ public class UIAuthHandler implements IA
String password = passwordsKeyStoreManager.getConnectionPassword( connectionParameter.getId() );
// Checking if the bind password is available (the user chose to store the password)
- if ( Strings.isEmpty( password ) ) //$NON-NLS-1$
+ if ( !Strings.isEmpty( password ) )
{
return new Credentials( connectionParameter.getBindPrincipal(),
password, connectionParameter );
Modified: directory/studio/branches/studio-value/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java (original)
+++ directory/studio/branches/studio-value/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java Fri Aug 4 08:59:15 2017
@@ -294,7 +294,7 @@ public class CertificateListComposite ex
buttonContainer.setLayoutData( new GridData( GridData.FILL, GridData.FILL, false, false ) );
// The View Button
- Button viewButton = BaseWidgetUtils.createButton( buttonContainer, Messages
+ viewButton = BaseWidgetUtils.createButton( buttonContainer, Messages
.getString( "CertificateListComposite.ViewButton" ), 1 );//$NON-NLS-1$
viewButton.setEnabled( false );
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=1804081&r1=1804080&r2=1804081&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 Aug 4 08:59:15 2017
@@ -24,6 +24,7 @@ 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;
@@ -103,12 +104,12 @@ public class HexDialog extends Dialog
// Checking if the data is "text-editable"
if ( isEditable( currentData ) )
{
- TextDialog dialog = new TextDialog( getShell(), new String( currentData ) );
+ TextDialog dialog = new TextDialog( getShell(), new String( currentData, StandardCharsets.UTF_8 ) );
if ( dialog.open() == TextDialog.OK )
{
String text = dialog.getText();
- currentData = text.getBytes();
+ currentData = text.getBytes( StandardCharsets.UTF_8 );
hexText.setText( toFormattedHex( currentData ) );
}
}
@@ -177,14 +178,7 @@ public class HexDialog extends Dialog
return false;
}
- try
- {
- return !( new String( b, "UTF-8" ).contains( "\uFFFD" ) );
- }
- catch ( UnsupportedEncodingException e )
- {
- return false;
- }
+ return !( new String( b, StandardCharsets.UTF_8 ).contains( "\uFFFD" ) );
}
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=1804081&r1=1804080&r2=1804081&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 Aug 4 08:59:15 2017
@@ -40,7 +40,6 @@ import org.eclipse.swt.widgets.Text;
*/
public class TextDialog extends Dialog
{
-
/** The dialog title. */
private static final String DIALOG_TITLE = Messages.getString( "TextDialog.TextEditor" ); //$NON-NLS-1$
@@ -72,6 +71,7 @@ public class TextDialog extends Dialog
/**
* @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
*/
+ @Override
protected void configureShell( Shell shell )
{
super.configureShell( shell );
@@ -83,6 +83,7 @@ public class TextDialog extends Dialog
/**
* @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
*/
+ @Override
protected void createButtonsForButtonBar( Composite parent )
{
createButton( parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, false );
@@ -93,6 +94,7 @@ public class TextDialog extends Dialog
/**
* @see org.eclipse.jface.dialogs.Dialog#okPressed()
*/
+ @Override
protected void okPressed()
{
returnValue = text.getText();
@@ -103,6 +105,7 @@ public class TextDialog extends Dialog
/**
* @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
*/
+ @Override
protected Control createDialogArea( Composite parent )
{
// create composite
@@ -121,6 +124,7 @@ public class TextDialog extends Dialog
text.setLayoutData( gd );
applyDialogFont( composite );
+
return composite;
}
@@ -134,5 +138,4 @@ public class TextDialog extends Dialog
{
return returnValue;
}
-
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/OpenBestEditorAction.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/OpenBestEditorAction.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/OpenBestEditorAction.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/entryeditor/OpenBestEditorAction.java Fri Aug 4 08:59:15 2017
@@ -107,7 +107,7 @@ public class OpenBestEditorAction extend
*/
public String getText()
{
- if ( bestValueEditor != null )
+ if ( isEnabled() )
{
return bestValueEditor.getValueEditorName();
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/wizards/AttributeTypeWizardPage.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/wizards/AttributeTypeWizardPage.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/wizards/AttributeTypeWizardPage.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/wizards/AttributeTypeWizardPage.java Fri Aug 4 08:59:15 2017
@@ -108,7 +108,6 @@ public class AttributeTypeWizardPage ext
super( pageName );
super.setTitle( Messages.getString( "AttributeTypeWizardPage.AttributeType" ) ); //$NON-NLS-1$
super.setDescription( Messages.getString( "AttributeTypeWizardPage.AttributeTypeDescription" ) ); //$NON-NLS-1$
- // super.setImageDescriptor(BrowserUIPlugin.getDefault().getImageDescriptor(BrowserUIConstants.IMG_ATTRIBUTE_WIZARD));
super.setPageComplete( false );
this.wizard = wizard;
@@ -126,13 +125,13 @@ public class AttributeTypeWizardPage ext
possibleAttributeTypesSubschemaOnly = names.toArray( new String[0] );
Arrays.sort( possibleAttributeTypesSubschemaOnly );
- Set<String> set = new HashSet<String>( Arrays.asList( possibleAttributeTypesSubschemaOnly ) );
+ Set<String> set = new HashSet<>( Arrays.asList( possibleAttributeTypesSubschemaOnly ) );
IAttribute[] existingAttributes = initialEntry.getAttributes();
for ( int i = 0; existingAttributes != null && i < existingAttributes.length; i++ )
{
set.remove( existingAttributes[i].getDescription() );
}
- possibleAttributeTypesSubschemaOnlyAndExistingHidden = ( String[] ) set.toArray( new String[set.size()] );
+ possibleAttributeTypesSubschemaOnlyAndExistingHidden = set.toArray( new String[set.size()] );
Arrays.sort( possibleAttributeTypesSubschemaOnlyAndExistingHidden );
String attributeDescription = initialAttributeDescription;
@@ -158,9 +157,11 @@ public class AttributeTypeWizardPage ext
/**
* {@inheritDoc}
*/
+ @Override
public void setVisible( boolean visible )
{
super.setVisible( visible );
+
if ( visible )
{
validate();
@@ -171,6 +172,7 @@ public class AttributeTypeWizardPage ext
/**
* {@inheritDoc}
*/
+ @Override
public void createControl( Composite parent )
{
Composite composite = new Composite( parent, SWT.NONE );
@@ -208,6 +210,7 @@ public class AttributeTypeWizardPage ext
// attribute type listener
attributeTypeCombo.addModifyListener( new ModifyListener()
{
+ @Override
public void modifyText( ModifyEvent e )
{
validate();
@@ -217,6 +220,7 @@ public class AttributeTypeWizardPage ext
// filter listener
showSubschemAttributesOnlyButton.addSelectionListener( new SelectionAdapter()
{
+ @Override
public void widgetSelected( SelectionEvent e )
{
updateFilter();
@@ -225,6 +229,7 @@ public class AttributeTypeWizardPage ext
} );
hideExistingAttributesButton.addSelectionListener( new SelectionAdapter()
{
+ @Override
public void widgetSelected( SelectionEvent e )
{
updateFilter();
@@ -280,7 +285,7 @@ public class AttributeTypeWizardPage ext
*/
String getAttributeType()
{
- if ( attributeTypeCombo == null | attributeTypeCombo.isDisposed() )
+ if ( attributeTypeCombo == null || attributeTypeCombo.isDisposed() )
{
return ""; //$NON-NLS-1$
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogBinaryValueEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogBinaryValueEditor.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogBinaryValueEditor.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogBinaryValueEditor.java Fri Aug 4 08:59:15 2017
@@ -27,7 +27,6 @@ import org.eclipse.osgi.util.NLS;
/**
- *
* Abstract base class for value editors that handle binary values
* in a dialog.
*
@@ -58,14 +57,17 @@ public abstract class AbstractDialogBina
}
else
{
- if ( value == null )
+ Object rawValue = getRawValue( value );
+
+ if ( rawValue == null )
{
- return NULL; //$NON-NLS-1$
+ return NULL;
}
- else if ( value.isBinary() )
+ else if ( rawValue instanceof byte[] )
{
- byte[] data = value.getBinaryValue();
- return NLS.bind( Messages.getString( "AbstractDialogBinaryValueEditor.BinaryDateNBytes" ), data.length ); //$NON-NLS-1$
+ byte[] data = ( byte[] ) rawValue;
+ return NLS.bind( Messages.getString( "AbstractDialogBinaryValueEditor.BinaryDateNBytes" ), //$NON-NLS-1$
+ data.length );
}
else
{
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogStringValueEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogStringValueEditor.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogStringValueEditor.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractDialogStringValueEditor.java Fri Aug 4 08:59:15 2017
@@ -26,7 +26,6 @@ import org.apache.directory.studio.ldapb
/**
- *
* Abstract base class for value editors that handle string values
* in a dialog.
*
@@ -51,15 +50,7 @@ public abstract class AbstractDialogStri
public String getDisplayValue( IValue value )
{
Object obj = getRawValue( value );
-
- if ( obj == null )
- {
- return NULL;
- }
- else
- {
- return obj.toString();
- }
+ return StringValueEditorUtils.getDisplayValue( obj );
}
@@ -90,44 +81,7 @@ public abstract class AbstractDialogStri
*/
public Object getRawValue( IValue value )
{
- if ( value == null )
- {
- return null;
- }
- else if ( value.isString() )
- {
- return value.getStringValue();
- }
- else if ( value.isBinary() && isEditable( value.getBinaryValue() ) )
- {
- return value.getStringValue();
- }
- else
- {
- return null;
- }
- }
-
-
- /**
- * Small helper.
- */
- private boolean isEditable( byte[] b )
- {
- if ( b == null )
- {
- return false;
- }
-
- for ( int i = 0; i < b.length; i++ )
- {
- if ( ( b[i] > '\u007F' ) || ( ( b[i] < '\u0020' ) && ( b[i] != '\n' ) && ( b[i] != '\r' ) ) )
- {
- return false;
- }
- }
-
- return true;
+ return StringValueEditorUtils.getRawValue( value );
}
@@ -139,13 +93,6 @@ public abstract class AbstractDialogStri
*/
public Object getStringOrBinaryValue( Object rawValue )
{
- if ( rawValue instanceof String )
- {
- return rawValue;
- }
- else
- {
- return null;
- }
+ return StringValueEditorUtils.getStringOrBinaryValue( rawValue );
}
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractInPlaceStringValueEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractInPlaceStringValueEditor.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractInPlaceStringValueEditor.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/AbstractInPlaceStringValueEditor.java Fri Aug 4 08:59:15 2017
@@ -38,7 +38,7 @@ import org.eclipse.jface.viewers.TextCel
/**
*
* Abstract base class for value editors that handle string values
- * withing the table or tree control.
+ * within the table or tree control.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
@@ -80,21 +80,22 @@ public abstract class AbstractInPlaceStr
* This implementation of getDisplayValue() returns a
* comma-separated list of all values.
*/
+ @Override
public String getDisplayValue( AttributeHierarchy attributeHierarchy )
{
if ( attributeHierarchy == null )
{
- return "NULL"; //$NON-NLS-1$
+ return NULL;
}
- List<IValue> valueList = new ArrayList<IValue>();
+ List<IValue> valueList = new ArrayList<>();
for ( IAttribute attribute : attributeHierarchy )
{
valueList.addAll( Arrays.asList( attribute.getValues() ) );
}
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
boolean isFirst = true;
for ( IValue value : valueList )
@@ -120,18 +121,11 @@ public abstract class AbstractInPlaceStr
*
* This implementation just returns the raw value
*/
+ @Override
public String getDisplayValue( IValue value )
{
Object obj = getRawValue( value );
-
- if ( obj == null )
- {
- return "NULL";
- }
- else
- {
- return obj.toString();
- }
+ return StringValueEditorUtils.getDisplayValue( obj );
}
@@ -142,6 +136,7 @@ public abstract class AbstractInPlaceStr
* in attributeHierarchy or calls getRawValue(IValue) if attributeHierarchy
* contains exactly one value. Otherwise null is returned.
*/
+ @Override
public Object getRawValue( AttributeHierarchy attributeHierarchy )
{
if ( ( attributeHierarchy != null ) && ( attributeHierarchy.size() == 1 ) )
@@ -170,6 +165,7 @@ public abstract class AbstractInPlaceStr
/**
* {@inheritDoc}
*/
+ @Override
public boolean hasValue( IValue value )
{
return ( value != null ) && ( value.isString() || value.isBinary() );
@@ -182,43 +178,10 @@ public abstract class AbstractInPlaceStr
* This implementation returns the string value
* of the given value.
*/
+ @Override
public Object getRawValue( IValue value )
{
- if ( value != null )
- {
- if ( value.isString() )
- {
- return value.getStringValue();
- }
- else if ( value.isBinary() && isEditable( value.getBinaryValue() ) )
- {
- return value.getStringValue();
- }
- }
-
- return null;
- }
-
-
- /**
- * Small helper.
- */
- private boolean isEditable( byte[] b )
- {
- if ( b == null )
- {
- return false;
- }
-
- for ( int i = 0; i < b.length; i++ )
- {
- if ( ( b[i] > '\u007F') || ( ( b[i] < '\u0020' ) && ( b[i] != '\n' ) && ( b[i] != '\r' ) ) )
- {
- return false;
- }
- }
-
- return true;
+ return StringValueEditorUtils.getRawValue( value );
}
@@ -228,22 +191,17 @@ public abstract class AbstractInPlaceStr
* This implementation always return the string value
* as String.
*/
+ @Override
public Object getStringOrBinaryValue( Object rawValue )
{
- if ( rawValue instanceof String )
- {
- return rawValue;
- }
- else
- {
- return null;
- }
+ return StringValueEditorUtils.getStringOrBinaryValue( rawValue );
}
/**
* {@inheritDoc}
*/
+ @Override
public CellEditor getCellEditor()
{
return this;
@@ -253,6 +211,7 @@ public abstract class AbstractInPlaceStr
/**
* {@inheritDoc}
*/
+ @Override
protected Object doGetValue()
{
if ( EMPTY.equals( text.getText() ) )
@@ -269,20 +228,24 @@ public abstract class AbstractInPlaceStr
/**
* {@inheritDoc}
*/
+ @Override
protected void doSetValue( Object value )
{
if ( value instanceof IValue.EmptyValue )
{
- value = ( ( IValue.EmptyValue ) value ).getStringValue();
+ super.doSetValue( ( ( IValue.EmptyValue ) value ).getStringValue() );
+ }
+ else
+ {
+ super.doSetValue( value );
}
-
- super.doSetValue( value );
}
/**
* {@inheritDoc}
*/
+ @Override
public void setValueEditorName( String name )
{
this.name = name;
@@ -292,6 +255,7 @@ public abstract class AbstractInPlaceStr
/**
* {@inheritDoc}
*/
+ @Override
public String getValueEditorName()
{
return name;
@@ -301,6 +265,7 @@ public abstract class AbstractInPlaceStr
/**
* {@inheritDoc}
*/
+ @Override
public void setValueEditorImageDescriptor( ImageDescriptor imageDescriptor )
{
this.imageDescriptor = imageDescriptor;
@@ -310,6 +275,7 @@ public abstract class AbstractInPlaceStr
/**
* {@inheritDoc}
*/
+ @Override
public ImageDescriptor getValueEditorImageDescriptor()
{
return imageDescriptor;
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/IValueEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/IValueEditor.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/IValueEditor.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/IValueEditor.java Fri Aug 4 08:59:15 2017
@@ -198,5 +198,5 @@ public interface IValueEditor
// A constant for the emtpy string and null string.
String EMPTY = ""; //$NON-NLS-1$
- String NULL = "NULL"; //$NON-NLS-1$
+ String NULL = ">>> Error, the configured value editor can not handle this value! <<<"; //$NON-NLS-1$
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/TextValueEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/TextValueEditor.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/TextValueEditor.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/valueeditors/TextValueEditor.java Fri Aug 4 08:59:15 2017
@@ -32,25 +32,29 @@ import org.eclipse.swt.widgets.Shell;
*/
public class TextValueEditor extends AbstractDialogStringValueEditor
{
-
/**
* {@inheritDoc}
*
* This implementation opens the TextDialog.
*/
+ @Override
public boolean openDialog( Shell shell )
{
Object value = getValue();
+
if ( value instanceof String )
{
TextDialog dialog = new TextDialog( shell, ( String ) value );
- if ( dialog.open() == TextDialog.OK && !"".equals( dialog.getText() ) ) //$NON-NLS-1$
+ String text = dialog.getText();
+
+ if ( ( dialog.open() == TextDialog.OK ) && ( text != null ) && ( text.length() != 0 ) )
{
- setValue( dialog.getText() );
+ setValue( text );
+
return true;
}
}
+
return false;
}
-
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapAndFilterComponent.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapAndFilterComponent.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapAndFilterComponent.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapAndFilterComponent.java Fri Aug 4 08:59:15 2017
@@ -68,7 +68,7 @@ public class LdapAndFilterComponent exte
{
return Messages.LdapAndFilterComponent_MissingAndCharacter;
}
- else if ( filterList == null || filterList.isEmpty() )
+ else if ( filterList.isEmpty() )
{
return Messages.LdapAndFilterComponent_MissingFilters;
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapFilterComponent.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapFilterComponent.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapFilterComponent.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapFilterComponent.java Fri Aug 4 08:59:15 2017
@@ -23,7 +23,6 @@ package org.apache.directory.studio.ldap
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Iterator;
import java.util.List;
import org.apache.directory.studio.ldapbrowser.core.model.filter.parser.LdapFilterToken;
@@ -44,7 +43,7 @@ public abstract class LdapFilterComponen
protected LdapFilterToken startToken;
/** The filter list. */
- protected List<LdapFilter> filterList;
+ protected final List<LdapFilter> filterList;
/**
@@ -162,9 +161,8 @@ public abstract class LdapFilterComponen
return false;
}
- for ( Iterator<LdapFilter> it = filterList.iterator(); it.hasNext(); )
+ for ( LdapFilter filter : filterList )
{
- LdapFilter filter = it.next();
if ( filter == null || !filter.isValid() )
{
return false;
@@ -200,9 +198,8 @@ public abstract class LdapFilterComponen
else
{
List<LdapFilter> invalidFilterList = new ArrayList<LdapFilter>();
- for ( Iterator<LdapFilter> it = filterList.iterator(); it.hasNext(); )
+ for ( LdapFilter filter : filterList )
{
- LdapFilter filter = it.next();
if ( filter != null )
{
invalidFilterList.addAll( Arrays.asList( filter.getInvalidFilters() ) );
@@ -226,9 +223,8 @@ public abstract class LdapFilterComponen
{
tokenList.add( startToken );
}
- for ( Iterator<LdapFilter> it = filterList.iterator(); it.hasNext(); )
+ for ( LdapFilter filter : filterList )
{
- LdapFilter filter = it.next();
if ( filter != null )
{
tokenList.addAll( Arrays.asList( filter.getTokens() ) );
@@ -259,11 +255,10 @@ public abstract class LdapFilterComponen
{
return parent;
}
- else if ( filterList != null || !filterList.isEmpty() )
+ else if ( !filterList.isEmpty() )
{
- for ( Iterator<LdapFilter> it = filterList.iterator(); it.hasNext(); )
+ for ( LdapFilter filter : filterList )
{
- LdapFilter filter = it.next();
if ( filter != null && filter.getFilter( offset ) != null )
{
return filter.getFilter( offset );
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapNotFilterComponent.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapNotFilterComponent.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapNotFilterComponent.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapNotFilterComponent.java Fri Aug 4 08:59:15 2017
@@ -86,7 +86,7 @@ public class LdapNotFilterComponent exte
{
return Messages.LdapNotFilterComponent_MissingNotCharacter;
}
- else if ( filterList == null || filterList.isEmpty() )
+ else if ( filterList.isEmpty() )
{
return Messages.LdapNotFilterComponent_MissingFilterExpression;
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapOrFilterComponent.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapOrFilterComponent.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapOrFilterComponent.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/filter/LdapOrFilterComponent.java Fri Aug 4 08:59:15 2017
@@ -68,7 +68,7 @@ public class LdapOrFilterComponent exten
{
return Messages.LdapOrFilterComponent_MissingOrCharacter;
}
- else if ( filterList == null || filterList.isEmpty() )
+ else if ( filterList.isEmpty() )
{
return Messages.LdapOrFilterComponent_MissingFilters;
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.ui/about.ini
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.ui/about.ini?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.ui/about.ini (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.ui/about.ini Fri Aug 4 08:59:15 2017
@@ -1,2 +1,2 @@
featureImage=studio.png
-aboutText=Apache Directory Studio LDAP Browser - Tools for browsing and editing LDAP servers.\n\nVersion: ${unqualifiedVersion}.${buildQualifier}\n\nCopyright \u00A9 2006-2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.\nVisit http://directory.apache.org/studio
+aboutText=Apache Directory Studio LDAP Browser - Tools for browsing and editing LDAP servers.\n\nVersion: ${unqualifiedVersion}.${buildQualifier}\n\nCopyright \u00A9 2006-2016 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.\nVisit http://directory.apache.org/studio
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/entryeditors/EntryEditorManager.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/entryeditors/EntryEditorManager.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/entryeditors/EntryEditorManager.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/entryeditors/EntryEditorManager.java Fri Aug 4 08:59:15 2017
@@ -108,23 +108,24 @@ public class EntryEditorManager
public static final String PRIORITIES_SEPARATOR = ","; //$NON-NLS-1$
/** The list of entry editors */
- private Map<String, EntryEditorExtension> entryEditorExtensions = new HashMap<String, EntryEditorExtension>();
+ private Map<String, EntryEditorExtension> entryEditorExtensions = new HashMap<>();
/** The shared reference copies for open-save-close editors; original entry -> reference copy */
- private Map<IEntry, IEntry> oscSharedReferenceCopies = new HashMap<IEntry, IEntry>();
+ private Map<IEntry, IEntry> oscSharedReferenceCopies = new HashMap<>();
/** The shared working copies for open-save-close editors; original entry -> working copy */
- private Map<IEntry, IEntry> oscSharedWorkingCopies = new HashMap<IEntry, IEntry>();
+ private Map<IEntry, IEntry> oscSharedWorkingCopies = new HashMap<>();
/** The shared reference copies for auto-save editors; original entry -> reference copy */
- private Map<IEntry, IEntry> autoSaveSharedReferenceCopies = new HashMap<IEntry, IEntry>();
+ private Map<IEntry, IEntry> autoSaveSharedReferenceCopies = new HashMap<>();
/** The shared working copies for auto-save editors; original entry -> working copy */
- private Map<IEntry, IEntry> autoSaveSharedWorkingCopies = new HashMap<IEntry, IEntry>();
+ private Map<IEntry, IEntry> autoSaveSharedWorkingCopies = new HashMap<>();
/** The comparator for entry editors */
private Comparator<EntryEditorExtension> entryEditorComparator = new Comparator<EntryEditorExtension>()
{
+ @Override
public int compare( EntryEditorExtension o1, EntryEditorExtension o2 )
{
if ( o1 == null )
@@ -163,6 +164,7 @@ public class EntryEditorManager
/** The listener for workbench part update */
private IPartListener2 partListener = new IPartListener2()
{
+ @Override
public void partActivated( IWorkbenchPartReference partRef )
{
cleanupCopies( partRef.getPage() );
@@ -222,38 +224,45 @@ public class EntryEditorManager
}
+ @Override
public void partOpened( IWorkbenchPartReference partRef )
{
}
+ @Override
public void partClosed( IWorkbenchPartReference partRef )
{
cleanupCopies( partRef.getPage() );
}
+ @Override
public void partInputChanged( IWorkbenchPartReference partRef )
{
cleanupCopies( partRef.getPage() );
}
+ @Override
public void partHidden( IWorkbenchPartReference partRef )
{
}
+ @Override
public void partDeactivated( IWorkbenchPartReference partRef )
{
}
+ @Override
public void partBroughtToTop( IWorkbenchPartReference partRef )
{
}
+ @Override
public void partVisible( IWorkbenchPartReference partRef )
{
}
@@ -262,6 +271,7 @@ public class EntryEditorManager
/** The listener for entry update */
private EntryUpdateListener entryUpdateListener = new EntryUpdateListener()
{
+ @Override
public void entryUpdated( EntryModificationEvent event )
{
IEntry modifiedEntry = event.getModifiedEntry();
@@ -353,32 +363,35 @@ public class EntryEditorManager
// check all editors: if the input does not exist any more then close the editor
IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
// Collecting editor references to close
- List<IEditorReference> editorReferences = new ArrayList<IEditorReference>();
+ List<IEditorReference> editorReferences = new ArrayList<>();
for ( IEditorReference ref : activePage.getEditorReferences() )
{
IEntryEditor editor = getEntryEditor( ref );
- EntryEditorInput entryEditorInput = editor.getEntryEditorInput();
-
- if ( entryEditorInput != null )
+ if ( editor != null )
{
- IEntry resolvedEntry = entryEditorInput.getResolvedEntry();
-
- if ( ( editor != null ) && ( resolvedEntry != null ) )
- {
- IBrowserConnection bc = resolvedEntry.getBrowserConnection();
- Dn dn = resolvedEntry.getDn();
-
- if ( bc.getEntryFromCache( dn ) == null )
- {
- editorReferences.add( ref );
- }
- }
+ EntryEditorInput entryEditorInput = editor.getEntryEditorInput();
+
+ if ( entryEditorInput != null )
+ {
+ IEntry resolvedEntry = entryEditorInput.getResolvedEntry();
+
+ if ( ( editor != null ) && ( resolvedEntry != null ) )
+ {
+ IBrowserConnection bc = resolvedEntry.getBrowserConnection();
+ Dn dn = resolvedEntry.getDn();
+
+ if ( bc.getEntryFromCache( dn ) == null )
+ {
+ editorReferences.add( ref );
+ }
+ }
+ }
}
}
// Closing the corresponding editor references
- if ( editorReferences.size() > 0 )
+ if ( !editorReferences.isEmpty() )
{
activePage.closeEditors( editorReferences.toArray( new IEditorReference[0] ), false );
}
@@ -463,16 +476,18 @@ public class EntryEditorManager
/** The listener for connection update */
private ConnectionUpdateListener connectionUpdateListener = new ConnectionUpdateAdapter()
{
+ @Override
public void connectionClosed( Connection connection )
{
closeEditorsBelongingToConnection( connection );
- };
+ }
+ @Override
public void connectionRemoved( Connection connection )
{
closeEditorsBelongingToConnection( connection );
- };
+ }
};
@@ -507,7 +522,7 @@ public class EntryEditorManager
*/
private void initEntryEditorExtensions()
{
- entryEditorExtensions = new HashMap<String, EntryEditorExtension>();
+ entryEditorExtensions = new HashMap<>();
IExtensionRegistry registry = Platform.getExtensionRegistry();
IExtensionPoint extensionPoint = registry.getExtensionPoint( BrowserUIConstants.ENTRY_EDITOR_EXTENSION_POINT );
@@ -621,7 +636,7 @@ public class EntryEditorManager
Collection<EntryEditorExtension> entryEditorExtensions = getEntryEditorExtensions();
// Creating the sorted entry editors list
- ArrayList<EntryEditorExtension> sortedEntryEditorsList = new ArrayList<EntryEditorExtension>(
+ ArrayList<EntryEditorExtension> sortedEntryEditorsList = new ArrayList<>(
entryEditorExtensions.size() );
// Adding the remaining entry editors
@@ -650,7 +665,7 @@ public class EntryEditorManager
.getEntryEditorExtensions();
// Creating the sorted entry editors list
- Collection<EntryEditorExtension> sortedEntryEditorsList = new ArrayList<EntryEditorExtension>(
+ Collection<EntryEditorExtension> sortedEntryEditorsList = new ArrayList<>(
entryEditorExtensions.size() );
// Getting the user's priorities
@@ -665,7 +680,7 @@ public class EntryEditorManager
{
// Creating a map where entry editors are accessible via their ID
- Map<String, EntryEditorExtension> entryEditorsMap = new HashMap<String, EntryEditorExtension>();
+ Map<String, EntryEditorExtension> entryEditorsMap = new HashMap<>();
for ( EntryEditorExtension entryEditorExtension : entryEditorExtensions )
{
@@ -690,7 +705,7 @@ public class EntryEditorManager
// We are then adding them at the end of the sorted list.
// Creating a list of remaining entry editors
- List<EntryEditorExtension> remainingEntryEditors = new ArrayList<EntryEditorExtension>();
+ List<EntryEditorExtension> remainingEntryEditors = new ArrayList<>();
for ( EntryEditorExtension entryEditorExtension : entryEditorExtensions )
{
@@ -729,7 +744,7 @@ public class EntryEditorManager
IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
// Collecting editor references to close
- List<IEditorReference> editorReferences = new ArrayList<IEditorReference>();
+ List<IEditorReference> editorReferences = new ArrayList<>();
for ( IEditorReference ref : activePage.getEditorReferences() )
{
@@ -747,7 +762,7 @@ public class EntryEditorManager
}
// Closing the corresponding editor references
- if ( editorReferences.size() > 0 )
+ if ( !editorReferences.isEmpty() )
{
activePage.closeEditors( editorReferences.toArray( new IEditorReference[0] ), false );
}
@@ -793,8 +808,8 @@ public class EntryEditorManager
if ( referenceCopy != null )
{
- EntryEditorUtils.ensureAttributesInitialized( entry );
EventRegistry.suspendEventFiringInCurrentThread();
+ EntryEditorUtils.ensureAttributesInitialized( entry );
new CompoundModification().replaceAttributes( entry, referenceCopy, this );
EventRegistry.resumeEventFiringInCurrentThread();
oscSharedReferenceCopies.put( entry, referenceCopy );
@@ -816,9 +831,9 @@ public class EntryEditorManager
private void updateAutoSaveSharedReferenceCopy( IEntry entry )
{
+ EventRegistry.suspendEventFiringInCurrentThread();
EntryEditorUtils.ensureAttributesInitialized( entry );
IEntry workingCopy = autoSaveSharedReferenceCopies.get( entry );
- EventRegistry.suspendEventFiringInCurrentThread();
new CompoundModification().replaceAttributes( entry, workingCopy, this );
EventRegistry.resumeEventFiringInCurrentThread();
}
@@ -834,7 +849,7 @@ public class EntryEditorManager
private List<IEntryEditor> getOscEditors( IEntry workingCopy )
{
- List<IEntryEditor> oscEditors = new ArrayList<IEntryEditor>();
+ List<IEntryEditor> oscEditors = new ArrayList<>();
IEditorReference[] editorReferences = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
.getEditorReferences();
@@ -855,7 +870,7 @@ public class EntryEditorManager
private List<IEntryEditor> getAutoSaveEditors( IEntry workingCopy )
{
- List<IEntryEditor> autoSaveEditors = new ArrayList<IEntryEditor>();
+ List<IEntryEditor> autoSaveEditors = new ArrayList<>();
IEditorReference[] editorReferences = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
.getEditorReferences();
@@ -880,9 +895,7 @@ public class EntryEditorManager
if ( part instanceof IEntryEditor )
{
- IEntryEditor entryEditor = ( IEntryEditor ) part;
-
- return entryEditor;
+ return ( IEntryEditor ) part;
}
return null;
@@ -898,8 +911,7 @@ public class EntryEditorManager
if ( part == activeEditor )
{
- IWorkbenchPartReference reference = part.getSite().getPage().getReference( part );
- return reference;
+ return part.getSite().getPage().getReference( part );
}
}
@@ -1066,8 +1078,8 @@ public class EntryEditorManager
private void cleanupCopies( IWorkbenchPage page )
{
// cleanup unused copies (OSC + auto-save)
- Set<IEntry> oscEntries = new HashSet<IEntry>();
- Set<IEntry> autoSaveEntries = new HashSet<IEntry>();
+ Set<IEntry> oscEntries = new HashSet<>();
+ Set<IEntry> autoSaveEntries = new HashSet<>();
IEditorReference[] editorReferences = page.getEditorReferences();
for ( IEditorReference ref : editorReferences )
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/entryeditors/EntryEditorUtils.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/entryeditors/EntryEditorUtils.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/entryeditors/EntryEditorUtils.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/entryeditors/EntryEditorUtils.java Fri Aug 4 08:59:15 2017
@@ -21,8 +21,8 @@
package org.apache.directory.studio.entryeditors;
+import org.apache.directory.studio.connection.ui.RunnableContextRunner;
import org.apache.directory.studio.ldapbrowser.core.jobs.InitializeAttributesRunnable;
-import org.apache.directory.studio.ldapbrowser.core.jobs.StudioBrowserJob;
import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
import org.apache.directory.studio.ldapbrowser.core.model.IRootDSE;
import org.eclipse.core.runtime.IStatus;
@@ -45,17 +45,13 @@ public class EntryEditorUtils
* the job associated with the attributes initialization,
* or <code>null</code> if the attributes were already initialized
*/
- public static StudioBrowserJob ensureAttributesInitialized( IEntry entry )
+ public static void ensureAttributesInitialized( IEntry entry )
{
if ( !entry.isAttributesInitialized() )
{
InitializeAttributesRunnable runnable = new InitializeAttributesRunnable( entry );
- StudioBrowserJob job = new StudioBrowserJob( runnable );
- job.execute();
- return job;
+ RunnableContextRunner.execute( runnable, null, true );
}
-
- return null;
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIConstants.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIConstants.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIConstants.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/BrowserUIConstants.java Fri Aug 4 08:59:15 2017
@@ -240,4 +240,5 @@ public final class BrowserUIConstants
public static final String WIZARD_NEW_SEARCH = BrowserUIPlugin.getDefault().getPluginProperties()
.getString( "NewWizard_NewSearchWizard_id" ); //$NON-NLS-1$
+ public static final int INPUT_CHANGED = 1342730831;
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/EntryEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/EntryEditor.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/EntryEditor.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/EntryEditor.java Fri Aug 4 08:59:15 2017
@@ -27,9 +27,7 @@ import org.apache.directory.studio.entry
import org.apache.directory.studio.ldapbrowser.common.BrowserCommonActivator;
import org.apache.directory.studio.ldapbrowser.common.BrowserCommonConstants;
import org.apache.directory.studio.ldapbrowser.common.widgets.entryeditor.EntryEditorWidget;
-import org.apache.directory.studio.ldapbrowser.core.model.IBookmark;
import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
-import org.apache.directory.studio.ldapbrowser.core.model.ISearchResult;
import org.apache.directory.studio.ldapbrowser.ui.BrowserUIConstants;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.util.IPropertyChangeListener;
@@ -40,7 +38,6 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.INavigationLocation;
import org.eclipse.ui.INavigationLocationProvider;
@@ -78,6 +75,7 @@ public abstract class EntryEditor extend
IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener()
{
+ @Override
public void propertyChange( org.eclipse.jface.util.PropertyChangeEvent event )
{
// set the input again if the auto-save option has been changed
@@ -96,6 +94,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public void init( IEditorSite site, IEditorInput input ) throws PartInitException
{
setSite( site );
@@ -107,6 +106,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public void setInput( IEditorInput input )
{
super.setInput( input );
@@ -126,6 +126,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public void createPartControl( Composite parent )
{
Composite composite = new Composite( parent, SWT.NONE );
@@ -163,6 +164,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public void setFocus()
{
mainWidget.setFocus();
@@ -172,6 +174,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public Object getAdapter( Class required )
{
if ( IContentOutlinePage.class.equals( required ) )
@@ -191,6 +194,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public void dispose()
{
if ( configuration != null )
@@ -215,6 +219,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public void doSave( final IProgressMonitor monitor )
{
if ( !isAutoSave() )
@@ -228,6 +233,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public void doSaveAs()
{
}
@@ -236,6 +242,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public boolean isDirty()
{
return getEntryEditorInput().isSharedWorkingCopyDirty( this );
@@ -245,6 +252,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public boolean isSaveAsAllowed()
{
return false;
@@ -309,6 +317,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public INavigationLocation createEmptyNavigationLocation()
{
return null;
@@ -318,6 +327,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public INavigationLocation createNavigationLocation()
{
return new EntryEditorNavigationLocation( this );
@@ -340,6 +350,7 @@ public abstract class EntryEditor extend
*
* {@inheritDoc}
*/
+ @Override
public boolean canHandle( IEntry entry )
{
return true;
@@ -349,6 +360,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public EntryEditorInput getEntryEditorInput()
{
return EntryEditorUtils.getEntryEditorInput( getEditorInput() );
@@ -358,6 +370,7 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public void workingCopyModified( Object source )
{
if ( mainWidget != null && !mainWidget.getViewer().isCellEditorActive() )
@@ -401,51 +414,30 @@ public abstract class EntryEditor extend
/**
* {@inheritDoc}
*/
+ @Override
public void showEditorInput( IEditorInput input )
{
if ( input instanceof EntryEditorInput )
{
- // If the editor is dirty, let's ask for a save before changing the input
- if ( isDirty() )
- {
- if ( !EntryEditorUtils.askSaveSharedWorkingCopyBeforeInputChange( this ) )
- {
- return;
- }
- }
-
/*
- * Workaround to make link-with-editor working for the single-tab editor:
- * The call of firePropertyChange is used to inform the link-with-editor action.
- * However firePropertyChange also modifies the navigation history.
- * Thus, a dummy input with the real entry but a null extension is set.
- * This avoids to modification of the navigation history.
- * Afterwards the real input is set.
+ * Optimization: no need to set the input again if the same input is already set
*/
- EntryEditorInput eei = ( EntryEditorInput ) input;
- IEntry entry = eei.getEntryInput();
- ISearchResult searchResult = eei.getSearchResultInput();
- IBookmark bookmark = eei.getBookmarkInput();
- EntryEditorInput dummyInput;
- if ( entry != null )
+ if ( getEntryEditorInput() != null
+ && getEntryEditorInput().getResolvedEntry() == ( ( EntryEditorInput ) input ).getResolvedEntry() )
{
- dummyInput = new EntryEditorInput( entry, null );
+ return;
}
- else if ( searchResult != null )
- {
- dummyInput = new EntryEditorInput( searchResult, null );
- }
- else
+
+ // If the editor is dirty, let's ask for a save before changing the input
+ if ( isDirty() && !EntryEditorUtils.askSaveSharedWorkingCopyBeforeInputChange( this ) )
{
- dummyInput = new EntryEditorInput( bookmark, null );
+ return;
}
- setInput( dummyInput );
- firePropertyChange( IEditorPart.PROP_INPUT );
// now set the real input and mark history location
setInput( input );
getSite().getPage().getNavigationHistory().markLocation( this );
+ firePropertyChange( BrowserUIConstants.INPUT_CHANGED );
}
}
-
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/LdifEntryEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/LdifEntryEditor.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/LdifEntryEditor.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/LdifEntryEditor.java Fri Aug 4 08:59:15 2017
@@ -28,9 +28,8 @@ import org.apache.directory.studio.ldapb
import org.apache.directory.studio.ldapbrowser.common.BrowserCommonConstants;
import org.apache.directory.studio.ldapbrowser.core.jobs.InitializeAttributesRunnable;
import org.apache.directory.studio.ldapbrowser.core.jobs.StudioBrowserJob;
-import org.apache.directory.studio.ldapbrowser.core.model.IBookmark;
import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
-import org.apache.directory.studio.ldapbrowser.core.model.ISearchResult;
+import org.apache.directory.studio.ldapbrowser.ui.BrowserUIConstants;
import org.apache.directory.studio.ldifeditor.editor.LdifEditor;
import org.apache.directory.studio.ldifeditor.editor.LdifOutlinePage;
import org.apache.directory.studio.utils.ActionUtils;
@@ -41,7 +40,6 @@ import org.eclipse.jface.action.IMenuMan
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.INavigationLocation;
import org.eclipse.ui.IShowEditorInput;
@@ -356,36 +354,10 @@ public abstract class LdifEntryEditor ex
}
}
- /*
- * Workaround to make link-with-editor working for the single-tab editor:
- * The call of firePropertyChange is used to inform the link-with-editor action.
- * However firePropertyChange also modifies the navigation history.
- * Thus, a dummy input with the real entry but a null extension is set.
- * This avoids to modification of the navigation history.
- * Afterwards the real input is set.
- */
- IEntry entry = eei.getEntryInput();
- ISearchResult searchResult = eei.getSearchResultInput();
- IBookmark bookmark = eei.getBookmarkInput();
- EntryEditorInput dummyInput;
- if ( entry != null )
- {
- dummyInput = new EntryEditorInput( entry, null );
- }
- else if ( searchResult != null )
- {
- dummyInput = new EntryEditorInput( searchResult, null );
- }
- else
- {
- dummyInput = new EntryEditorInput( bookmark, null );
- }
- doSetInput( dummyInput );
- firePropertyChange( IEditorPart.PROP_INPUT );
-
// now set the real input and mark history location
doSetInput( input );
getSite().getPage().getNavigationHistory().markLocation( this );
+ firePropertyChange( BrowserUIConstants.INPUT_CHANGED );
}
}
catch ( CoreException e )
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/MultiTabEntryEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/MultiTabEntryEditor.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/MultiTabEntryEditor.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/MultiTabEntryEditor.java Fri Aug 4 08:59:15 2017
@@ -37,7 +37,6 @@ import org.apache.directory.studio.ldapb
*/
public class MultiTabEntryEditor extends EntryEditor
{
-
/**
* Gets the ID of the MultiTabEntryEditor.
*
@@ -49,10 +48,13 @@ public class MultiTabEntryEditor extends
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public boolean isAutoSave()
{
return BrowserCommonActivator.getDefault().getPreferenceStore().getBoolean(
BrowserCommonConstants.PREFERENCE_ENTRYEDITOR_AUTOSAVE_MULTI_TAB );
}
-
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/SingleTabEntryEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/SingleTabEntryEditor.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/SingleTabEntryEditor.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/SingleTabEntryEditor.java Fri Aug 4 08:59:15 2017
@@ -33,7 +33,6 @@ import org.apache.directory.studio.ldapb
*/
public class SingleTabEntryEditor extends EntryEditor
{
-
/**
* Gets the ID of the SingleTabEntryEditor.
*
@@ -45,10 +44,13 @@ public class SingleTabEntryEditor extend
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public boolean isAutoSave()
{
return BrowserCommonActivator.getDefault().getPreferenceStore().getBoolean(
BrowserCommonConstants.PREFERENCE_ENTRYEDITOR_AUTOSAVE_SINGLE_TAB );
}
-
}
Modified: directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditor.java?rev=1804081&r1=1804080&r2=1804081&view=diff
==============================================================================
--- directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditor.java (original)
+++ directory/studio/branches/studio-value/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditor.java Fri Aug 4 08:59:15 2017
@@ -170,22 +170,17 @@ public class SearchResultEditor extends
if ( input instanceof SearchResultEditorInput )
{
/*
- * Workaround to make link-with-editor working for the single-tab editor:
- * The call of firePropertyChange is used to inform the link-with-editor action.
- * However firePropertyChange also modifies the navigation history.
- * Thus, a dummy input with the real search but dummy flag is set.
- * This avoids to modification of the navigation history.
- * Afterwards the real input is set.
+ * Optimization: no need to set the input again if the same input is already set
*/
- SearchResultEditorInput srei = ( SearchResultEditorInput ) input;
- ISearch search = srei.getSearch();
- SearchResultEditorInput dummyInput = new SearchResultEditorInput( search, true );
- setInput( dummyInput );
- firePropertyChange( IEditorPart.PROP_INPUT );
+ if ( getEditorInput() != null && getEditorInput().equals( input ) )
+ {
+ return;
+ }
// now set the real input and mark history location
setInput( input );
getSite().getPage().getNavigationHistory().markLocation( this );
+ firePropertyChange( BrowserUIConstants.INPUT_CHANGED );
}
}