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/23 21:47:56 UTC
svn commit: r926769 - in /directory/studio/trunk: ldapbrowser-ui/
ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/
test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/
Author: seelmann
Date: Tue Mar 23 20:47:55 2010
New Revision: 926769
URL: http://svn.apache.org/viewvc?rev=926769&view=rev
Log:
Fix for DIRSTUDIO-625 (Add Connection Context in the LDAP Browser Window)
o added connection information for search result editor
o use a matching strategy for the search result editor
o search result editor tab label is now the search name, tooltip is the search URL
Added:
directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SingleTabSearchResultEditorMatchingStrategy.java
Modified:
directory/studio/trunk/ldapbrowser-ui/plugin.xml
directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditor.java
directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorInput.java
directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/SearchTest.java
Modified: directory/studio/trunk/ldapbrowser-ui/plugin.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-ui/plugin.xml?rev=926769&r1=926768&r2=926769&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-ui/plugin.xml (original)
+++ directory/studio/trunk/ldapbrowser-ui/plugin.xml Tue Mar 23 20:47:55 2010
@@ -74,6 +74,7 @@
default="true"
icon="resources/icons/browser_searchresulteditor.gif"
id="%Editor_SearchResultEditor_id"
+ matchingStrategy="org.apache.directory.studio.ldapbrowser.ui.editors.searchresult.SingleTabSearchResultEditorMatchingStrategy"
name="%Editor_SearchResultEditor_name"/>
<editor
class="org.apache.directory.studio.ldapbrowser.ui.editors.schemabrowser.SchemaBrowser"
Modified: directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditor.java?rev=926769&r1=926768&r2=926769&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditor.java (original)
+++ directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditor.java Tue Mar 23 20:47:55 2010
@@ -54,6 +54,7 @@ import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.INavigationLocation;
import org.eclipse.ui.INavigationLocationProvider;
import org.eclipse.ui.IReusableEditor;
+import org.eclipse.ui.IShowEditorInput;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.EditorPart;
@@ -70,7 +71,7 @@ import org.eclipse.ui.part.ShowInContext
* @version $Rev$, $Date$
*/
public class SearchResultEditor extends EditorPart implements INavigationLocationProvider, IReusableEditor,
- IPropertyChangeListener
+ IShowEditorInput, IPropertyChangeListener
{
/** The configuration. */
@@ -166,28 +167,36 @@ public class SearchResultEditor extends
if ( input instanceof SearchResultEditorInput && universalListener != null )
{
- SearchResultEditorInput srei = ( SearchResultEditorInput ) input;
- ISearch search = srei.getSearch();
+ setPartName( input.getName() );
+ SearchResultEditorInput srei = ( SearchResultEditorInput ) input;
setSearchResultEditorWidgetInput( srei );
-
- if ( search != null )
- {
- // disable one instance hack before firing the input change event
- // otherwise the navigation history is cleared.
- // Note: seems this behavior has been changed with Eclipse 3.3
- SearchResultEditorInput.enableOneInstanceHack( false );
- firePropertyChange( IEditorPart.PROP_INPUT );
-
- // enable one instance hack for marking the location
- // Note: seems this behavior has been changed with Eclipse 3.3
- SearchResultEditorInput.enableOneInstanceHack( true );
- getSite().getPage().getNavigationHistory().markLocation( this );
- }
}
+ }
- // finally enable the one instance hack
- SearchResultEditorInput.enableOneInstanceHack( true );
+
+ public void showEditorInput( IEditorInput input )
+ {
+ 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.
+ */
+ SearchResultEditorInput srei = ( SearchResultEditorInput ) input;
+ ISearch search = srei.getSearch();
+ SearchResultEditorInput dummyInput = new SearchResultEditorInput( search, true );
+ setInput( dummyInput );
+ firePropertyChange( IEditorPart.PROP_INPUT );
+
+ // now set the real input and mark history location
+ setInput( input );
+ getSite().getPage().getNavigationHistory().markLocation( this );
+ }
}
Modified: directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorInput.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorInput.java?rev=926769&r1=926768&r2=926769&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorInput.java (original)
+++ directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SearchResultEditorInput.java Tue Mar 23 20:47:55 2010
@@ -21,6 +21,7 @@
package org.apache.directory.studio.ldapbrowser.ui.editors.searchresult;
+import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
import org.apache.directory.studio.ldapbrowser.core.model.ISearch;
import org.apache.directory.studio.ldapbrowser.ui.BrowserUIConstants;
import org.apache.directory.studio.ldapbrowser.ui.BrowserUIPlugin;
@@ -53,8 +54,8 @@ public class SearchResultEditorInput imp
/** The search input */
private ISearch search;
- /** One instance hack flag */
- private static boolean oneInstanceHackEnabled = true;
+ /** Flag indicating this is a dummy input */
+ private boolean dummy;
/**
@@ -64,7 +65,20 @@ public class SearchResultEditorInput imp
*/
public SearchResultEditorInput( ISearch search )
{
+ this( search, false );
+ }
+
+
+ /**
+ * Creates a new instance of SearchResultEditorInput.
+ *
+ * @param search the search input
+ * @param dummy the is dummy flag
+ */
+ /*package*/SearchResultEditorInput( ISearch search, boolean dummy )
+ {
this.search = search;
+ this.dummy = dummy;
}
@@ -95,7 +109,12 @@ public class SearchResultEditorInput imp
*/
public String getName()
{
- return Messages.getString( "SearchResultEditorInput.SearchResultEditor" ); //$NON-NLS-1$
+ if ( search != null )
+ {
+ return search.getName();
+ }
+
+ return Messages.getString( "SearchResultEditorContentProvider.NoSearchSelected" ); //$NON-NLS-1$
}
@@ -104,7 +123,19 @@ public class SearchResultEditorInput imp
*/
public String getToolTipText()
{
- return Messages.getString( "SearchResultEditorInput.SearchResultEditorToolTip" ); //$NON-NLS-1$
+ if ( search != null )
+ {
+ String toolTipText = search.getUrl().toString();
+
+ IBrowserConnection browserConnection = search.getBrowserConnection();
+ if ( browserConnection != null && browserConnection.getConnection() != null )
+ {
+ toolTipText += " - " + browserConnection.getConnection().getName();//$NON-NLS-1$
+ }
+ return toolTipText;
+ }
+
+ return Messages.getString( "SearchResultEditorContentProvider.NoSearchSelected" ); //$NON-NLS-1$
}
@@ -144,6 +175,11 @@ public class SearchResultEditorInput imp
*/
public int hashCode()
{
+ if ( dummy )
+ {
+ return 0;
+ }
+
return getToolTipText().hashCode();
}
@@ -153,51 +189,34 @@ public class SearchResultEditorInput imp
*/
public boolean equals( Object obj )
{
+ if ( !( obj instanceof SearchResultEditorInput ) )
+ {
+ return false;
+ }
- boolean equal;
+ SearchResultEditorInput other = ( SearchResultEditorInput ) obj;
- if ( oneInstanceHackEnabled )
+ if ( dummy && other.dummy )
{
- equal = ( obj instanceof SearchResultEditorInput );
+ return true;
}
- else
+ if ( dummy != other.dummy )
{
- if ( obj instanceof SearchResultEditorInput )
- {
- SearchResultEditorInput other = ( SearchResultEditorInput ) obj;
- if ( this.search == null && other.search == null )
- {
- return true;
- }
- else if ( this.search == null || other.search == null )
- {
- return false;
- }
- else
- {
- equal = other.search.equals( this.search );
- }
- }
- else
- {
- equal = false;
- }
+ return false;
}
- return equal;
- }
-
-
- /**
- * Enables or disabled the one instance hack.
- *
- * @param b
- * true to enable the one instance hack,
- * false to disable the one instance hack
- */
- public static void enableOneInstanceHack( boolean b )
- {
- oneInstanceHackEnabled = b;
+ if ( this.search == null && other.search == null )
+ {
+ return true;
+ }
+ else if ( this.search == null || other.search == null )
+ {
+ return false;
+ }
+ else
+ {
+ return other.search.equals( this.search );
+ }
}
}
Added: directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SingleTabSearchResultEditorMatchingStrategy.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SingleTabSearchResultEditorMatchingStrategy.java?rev=926769&view=auto
==============================================================================
--- directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SingleTabSearchResultEditorMatchingStrategy.java (added)
+++ directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/searchresult/SingleTabSearchResultEditorMatchingStrategy.java Tue Mar 23 20:47:55 2010
@@ -0,0 +1,51 @@
+/*
+ * 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.editors.searchresult;
+
+
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorMatchingStrategy;
+import org.eclipse.ui.IEditorReference;
+
+
+/**
+ * Matching strategy for a single tab search result editor.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class SingleTabSearchResultEditorMatchingStrategy implements IEditorMatchingStrategy
+{
+
+ /**
+ * Returns true if the input is a {@link SearchResultEditorInput}.
+ */
+ public boolean matches( IEditorReference editorRef, IEditorInput input )
+ {
+ if ( !( input instanceof SearchResultEditorInput ) )
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+}
Modified: directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/SearchTest.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/SearchTest.java?rev=926769&r1=926768&r2=926769&view=diff
==============================================================================
--- directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/SearchTest.java (original)
+++ directory/studio/trunk/test-integration-ui/src/main/java/org/apache/directory/studio/test/integration/ui/SearchTest.java Tue Mar 23 20:47:55 2010
@@ -191,7 +191,7 @@ public class SearchTest
dialogBot.clickSearchButton();
browserViewBot.selectEntry( "Searches", "Search Admin" );
- SearchResultEditorBot srEditorBot = studioBot.getSearchResultEditorBot( "Search Result Editor" );
+ SearchResultEditorBot srEditorBot = studioBot.getSearchResultEditorBot( "Search Admin" );
srEditorBot.activate();
assertTrue( srEditorBot.isEnabled() );