|
From: <caw...@us...> - 2007-08-17 16:09:45
|
Revision: 3000
http://rubyeclipse.svn.sourceforge.net/rubyeclipse/?rev=3000&view=rev
Author: cawilliams
Date: 2007-08-17 09:09:27 -0700 (Fri, 17 Aug 2007)
Log Message:
-----------
fix #5582 - Right-click search menu options are broken
Modified Paths:
--------------
trunk/org.rubypeople.rdt.ui/plugin.xml
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/SearchMessages.java
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/SearchMessages.properties
Added Paths:
-----------
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/actions/OccurrencesSearchMenuAction.java
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/actions/RDTQuickMenuAction.java
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/OpenRubySearchPageAction.java
Modified: trunk/org.rubypeople.rdt.ui/plugin.xml
===================================================================
--- trunk/org.rubypeople.rdt.ui/plugin.xml 2007-08-17 15:44:05 UTC (rev 2999)
+++ trunk/org.rubypeople.rdt.ui/plugin.xml 2007-08-17 16:09:27 UTC (rev 3000)
@@ -952,7 +952,246 @@
</actionSetPartAssociation>
</extension>
+ <!-- Begin Ruby Search action set -->
<extension
+ point="org.eclipse.ui.actionSets">
+ <actionSet
+ label="%RubySearchActionSet.label"
+ description="%RubySearchActionSet.description"
+ visible="false"
+ id="org.rubypeople.rdt.ui.SearchActionSet">
+<!-- see http://bugs.eclipse.org/bugs/show_bug.cgi?id=15684 -->
+<!-- Note: The menu (re-) definition has to be here due to bug: -->
+<!-- =================================================================== -->
+<!-- Search Menu -->
+<!-- =================================================================== -->
+ <menu
+ label="%searchMenu.label"
+ path="navigate"
+ id="org.eclipse.search.menu">
+ <groupMarker name="internalDialogGroup"/> <!-- not to be used by clients -->
+ <groupMarker name="dialogGroup"/> <!-- to be used by clients -->
+ <separator name="fileSearchContextMenuActionsGroup"/> <!-- to be used by clients -->
+ <separator name="contextMenuActionsGroup"/> <!-- to be used by clients -->
+ <separator name="occurencesActionsGroup"/> <!-- to be used by clients -->
+ <separator name="extraSearchGroup"/> <!-- to be used by clients -->
+ </menu>
+<!-- dialog group -->
+ <action
+ label="%openRubySearchPageAction.label"
+ icon="$nl$/icons/full/obj16/rsearch_obj.gif"
+ helpContextId="rubysearch_action_context"
+ class="org.rubypeople.rdt.internal.ui.search.OpenRubySearchPageAction"
+ menubarPath="org.eclipse.search.menu/dialogGroup"
+ id="org.rubypeople.rdt.ui.actions.OpenRubySearchPage">
+ </action>
+<!-- context menu group -->
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.occurrences.in.file.quickMenu"
+ label="%occurrencesSubMenu.label"
+ style="pulldown"
+ class="org.rubypeople.rdt.internal.ui.actions.OccurrencesSearchMenuAction"
+ menubarPath="org.eclipse.search.menu/occurencesActionsGroup"
+ id="org.rubypeople.rdt.internal.ui.actions.OccurrencesSearchMenuAction">
+ </action>
+ <menu
+ label="%writeAccessSubMenu.label"
+ path="org.eclipse.search.menu/contextMenuActionsGroup"
+ id="writeAccessSubMenu">
+ <separator
+ name="group1">
+ </separator>
+ </menu>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.occurrences.in.file"
+ label="%OccurrencesInFile.label"
+ retarget="true"
+ id="org.rubypeople.rdt.ui.actions.OccurrencesInFile">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.write.access.in.working.set"
+ label="%InWorkingSet.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/writeAccessSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.WriteAccessInWorkingSet">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.write.access.in.hierarchy"
+ label="%InHierarchy.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/writeAccessSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.WriteAccessInHierarchy">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.write.access.in.project"
+ label="%InProject.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/writeAccessSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.WriteAccessInProject">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.write.access.in.workspace"
+ label="%InWorkspace.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/writeAccessSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.WriteAccessInWorkspace">
+ </action>
+ <menu
+ label="%readAccessSubMenu.label"
+ path="org.eclipse.search.menu/contextMenuActionsGroup"
+ id="readAccessSubMenu">
+ <separator
+ name="group1">
+ </separator>
+ </menu>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.read.access.in.working.set"
+ label="%InWorkingSet.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/readAccessSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.ReadAccessInWorkingSet">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.read.access.in.hierarchy"
+ label="%InHierarchy.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/readAccessSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.ReadAccessInHierarchy">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.read.access.in.project"
+ label="%InProject.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/readAccessSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.ReadAccessInProject">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.read.access.in.workspace"
+ label="%InWorkspace.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/readAccessSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.ReadAccessInWorkspace">
+ </action>
+ <menu
+ label="%declarationsSubMenu.label"
+ path="org.eclipse.search.menu/contextMenuActionsGroup"
+ id="declarationsSubMenu">
+ <separator
+ name="group1">
+ </separator>
+ </menu>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.declarations.in.working.set"
+ label="%InWorkingSet.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/declarationsSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.DeclarationsInWorkingSet">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.declarations.in.hierarchy"
+ label="%InHierarchy.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/declarationsSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.DeclarationsInHierarchy">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.declarations.in.project"
+ label="%InProject.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/declarationsSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.DeclarationsInProject">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.declarations.in.workspace"
+ label="%DeclarationsInWorkspace.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/declarationsSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.DeclarationsInWorkspace">
+ </action>
+ <menu
+ label="%referencesSubMenu.label"
+ path="org.eclipse.search.menu/contextMenuActionsGroup"
+ id="referencesSubMenu">
+ <separator
+ name="group1">
+ </separator>
+ </menu>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.references.in.working.set"
+ label="%InWorkingSet.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/referencesSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.ReferencesInWorkingSet">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.references.in.hierarchy"
+ label="%InHierarchy.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/referencesSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.ReferencesInHierarchy">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.references.in.project"
+ label="%InProject.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/referencesSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.ReferencesInProject">
+ </action>
+ <action
+ definitionId="org.rubypeople.rdt.ui.edit.text.ruby.search.references.in.workspace"
+ label="%ReferencesInWorkspace.label"
+ retarget="true"
+ menubarPath="org.eclipse.search.menu/referencesSubMenu/group1"
+ allowLabelUpdate="true"
+ id="org.rubypeople.rdt.ui.actions.ReferencesInWorkspace">
+ </action>
+ </actionSet>
+ </extension>
+ <extension
+ point="org.eclipse.ui.actionSetPartAssociations">
+ <actionSetPartAssociation
+ targetID="org.rubypeople.rdt.ui.SearchActionSet">
+ <part
+ id="org.rubypeople.rdt.ui.ViewRubyResources">
+ </part>
+ <part
+ id="org.rubypeople.rdt.ui.TypeHierarchy">
+ </part>
+ <part
+ id="org.rubypeople.rdt.ui.EditorRubyFile">
+ </part>
+ <part
+ id="org.rubypeople.rdt.ui.ProjectsView">
+ </part>
+ <part
+ id="org.rubypeople.rdt.ui.TypesView">
+ </part>
+ <part
+ id="org.rubypeoplee.rdt.ui.MembersView">
+ </part>
+ <part
+ id="org.eclipse.search.SearchResultView">
+ </part>
+ </actionSetPartAssociation>
+ </extension>
+<!-- End Ruby contributions for Search view -->
+
+ <extension
point="org.eclipse.ui.editors.markerUpdaters">
<updater
markerType="org.rubypeople.rdt.debug.core.RubyBreakpointMarker"
Added: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/actions/OccurrencesSearchMenuAction.java
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/actions/OccurrencesSearchMenuAction.java (rev 0)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/actions/OccurrencesSearchMenuAction.java 2007-08-17 16:09:27 UTC (rev 3000)
@@ -0,0 +1,180 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.rubypeople.rdt.internal.ui.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IPartService;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowPulldownDelegate2;
+import org.eclipse.ui.actions.RetargetAction;
+import org.rubypeople.rdt.internal.ui.RubyPlugin;
+import org.rubypeople.rdt.internal.ui.rubyeditor.RubyEditor;
+import org.rubypeople.rdt.internal.ui.search.SearchMessages;
+import org.rubypeople.rdt.ui.actions.IRubyEditorActionDefinitionIds;
+import org.rubypeople.rdt.ui.actions.RdtActionConstants;
+
+/**
+ * <p>
+ * This is required because of
+ * https://bugs.eclipse.org/bugs/show_bug.cgi?id=79162
+ * and
+ * https://bugs.eclipse.org/bugs/show_bug.cgi?id=137679
+ * </p>
+ */
+public class OccurrencesSearchMenuAction implements IWorkbenchWindowPulldownDelegate2 {
+
+ private static Action NO_ACTION_AVAILABLE= new Action(SearchMessages.group_occurrences_quickMenu_noEntriesAvailable) {
+ public boolean isEnabled() {
+ return false;
+ }
+ };
+
+ private Menu fMenu;
+
+ private IPartService fPartService;
+ private RetargetAction[] fRetargetActions;
+
+ /**
+ * {@inheritDoc}
+ */
+ public Menu getMenu(Menu parent) {
+ setMenu(new Menu(parent));
+ fillMenu(fMenu);
+ return fMenu;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public Menu getMenu(Control parent) {
+ setMenu(new Menu(parent));
+ fillMenu(fMenu);
+ return fMenu;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void dispose() {
+ setMenu(null);
+ disposeSubmenuActions();
+ }
+
+ private RetargetAction createSubmenuAction(IPartService partService, String actionID, String text, String actionDefinitionId) {
+ RetargetAction action= new RetargetAction(actionID, text);
+ action.setActionDefinitionId(actionDefinitionId);
+
+ partService.addPartListener(action);
+ IWorkbenchPart activePart = partService.getActivePart();
+ if (activePart != null) {
+ action.partActivated(activePart);
+ }
+ return action;
+ }
+
+ private void disposeSubmenuActions() {
+ if (fPartService != null && fRetargetActions != null) {
+ for (int i= 0; i < fRetargetActions.length; i++) {
+ fPartService.removePartListener(fRetargetActions[i]);
+ fRetargetActions[i].dispose();
+ }
+ }
+ fRetargetActions= null;
+ fPartService= null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(IWorkbenchWindow window) {
+ disposeSubmenuActions(); // paranoia code: double initialization should not happen
+ if (window != null) {
+ fPartService= window.getPartService();
+ if (fPartService != null) {
+ fRetargetActions= new RetargetAction[] {
+ createSubmenuAction(fPartService, RdtActionConstants.FIND_OCCURRENCES_IN_FILE, SearchMessages.Search_FindOccurrencesInFile_shortLabel, IRubyEditorActionDefinitionIds.SEARCH_OCCURRENCES_IN_FILE)
+ };
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void run(IAction action) {
+ RubyEditor editor= null;
+ IWorkbenchPart activePart= RubyPlugin.getActivePage().getActivePart();
+ if (activePart instanceof RubyEditor)
+ editor= (RubyEditor) activePart;
+
+ (new RDTQuickMenuAction(editor, IRubyEditorActionDefinitionIds.SEARCH_OCCURRENCES_IN_FILE_QUICK_MENU) {
+ protected void fillMenu(IMenuManager menu) {
+ fillQuickMenu(menu);
+ }
+ }).run();
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void selectionChanged(IAction action, ISelection selection) {
+ }
+
+ private void fillQuickMenu(IMenuManager manager) {
+ IAction[] actions= fRetargetActions;
+ if (actions != null) {
+ boolean hasAction= false;
+ for (int i= 0; i < actions.length; i++) {
+ IAction action= actions[i];
+ if (action.isEnabled()) {
+ hasAction= true;
+ manager.add(action);
+ }
+ }
+ if (!hasAction) {
+ manager.add(NO_ACTION_AVAILABLE);
+ }
+ } else {
+ manager.add(NO_ACTION_AVAILABLE);
+ }
+ }
+
+ /**
+ * The menu to show in the workbench menu
+ */
+ private void fillMenu(Menu menu) {
+ if (fRetargetActions != null) {
+ for (int i= 0; i < fRetargetActions.length; i++) {
+ ActionContributionItem item= new ActionContributionItem(fRetargetActions[i]);
+ item.fill(menu, -1);
+ }
+ } else {
+ // can only happen if 'init' was not called: programming error
+ ActionContributionItem item= new ActionContributionItem(NO_ACTION_AVAILABLE);
+ item.fill(menu, -1);
+ }
+ }
+
+ private void setMenu(Menu menu) {
+ if (fMenu != null) {
+ fMenu.dispose();
+ }
+ fMenu = menu;
+ }
+}
Property changes on: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/actions/OccurrencesSearchMenuAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/actions/RDTQuickMenuAction.java
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/actions/RDTQuickMenuAction.java (rev 0)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/actions/RDTQuickMenuAction.java 2007-08-17 16:09:27 UTC (rev 3000)
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.rubypeople.rdt.internal.ui.actions;
+
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.text.ITextViewerExtension5;
+import org.eclipse.jface.text.Region;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.ui.internal.ide.actions.QuickMenuAction;
+import org.rubypeople.rdt.internal.ui.rubyeditor.RubyEditor;
+import org.rubypeople.rdt.internal.ui.text.RubyWordFinder;
+
+
+public abstract class RDTQuickMenuAction extends QuickMenuAction {
+
+ private RubyEditor fEditor;
+
+ public RDTQuickMenuAction(String commandId) {
+ super(commandId);
+ }
+
+ public RDTQuickMenuAction(RubyEditor editor, String commandId) {
+ super(commandId);
+ fEditor= editor;
+ }
+
+ protected Point computeMenuLocation(StyledText text) {
+ if (fEditor == null || text != fEditor.getViewer().getTextWidget())
+ return null;
+ return computeWordStart();
+ }
+
+ private Point computeWordStart() {
+ ITextSelection selection= (ITextSelection)fEditor.getSelectionProvider().getSelection();
+ IRegion textRegion= RubyWordFinder.findWord(fEditor.getViewer().getDocument(), selection.getOffset());
+ if (textRegion == null)
+ return null;
+
+ IRegion widgetRegion= modelRange2WidgetRange(textRegion);
+ if (widgetRegion == null)
+ return null;
+
+ int start= widgetRegion.getOffset();
+
+ StyledText styledText= fEditor.getViewer().getTextWidget();
+ Point result= styledText.getLocationAtOffset(start);
+ result.y+= styledText.getLineHeight(start);
+
+ if (!styledText.getClientArea().contains(result))
+ return null;
+ return result;
+ }
+
+ private IRegion modelRange2WidgetRange(IRegion region) {
+ ISourceViewer viewer= fEditor.getViewer();
+ if (viewer instanceof ITextViewerExtension5) {
+ ITextViewerExtension5 extension= (ITextViewerExtension5)viewer;
+ return extension.modelRange2WidgetRange(region);
+ }
+
+ IRegion visibleRegion= viewer.getVisibleRegion();
+ int start= region.getOffset() - visibleRegion.getOffset();
+ int end= start + region.getLength();
+ if (end > visibleRegion.getLength())
+ end= visibleRegion.getLength();
+
+ return new Region(start, end - start);
+ }
+}
Property changes on: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/actions/RDTQuickMenuAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/OpenRubySearchPageAction.java
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/OpenRubySearchPageAction.java (rev 0)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/OpenRubySearchPageAction.java 2007-08-17 16:09:27 UTC (rev 3000)
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.rubypeople.rdt.internal.ui.search;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.search.ui.NewSearchUI;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.rubypeople.rdt.internal.ui.RubyPlugin;
+
+/**
+ * Opens the Search Dialog and brings the Ruby search page to front
+ */
+public class OpenRubySearchPageAction implements IWorkbenchWindowActionDelegate {
+
+ private static final String RUBY_SEARCH_PAGE_ID= "org.rubypeople.rdt.ui.RubySearchPage"; //$NON-NLS-1$
+
+ private IWorkbenchWindow fWindow;
+
+ public OpenRubySearchPageAction() {
+ }
+
+ public void init(IWorkbenchWindow window) {
+ fWindow= window;
+ }
+
+ public void run(IAction action) {
+ if (fWindow == null || fWindow.getActivePage() == null) {
+ beep();
+ RubyPlugin.logErrorMessage("Could not open the search dialog - for some reason the window handle was null"); //$NON-NLS-1$
+ return;
+ }
+ NewSearchUI.openSearchDialog(fWindow, RUBY_SEARCH_PAGE_ID);
+ }
+
+ public void selectionChanged(IAction action, ISelection selection) {
+ // do nothing since the action isn't selection dependent.
+ }
+
+ public void dispose() {
+ fWindow= null;
+ }
+
+ protected void beep() {
+ Shell shell= RubyPlugin.getActiveWorkbenchShell();
+ if (shell != null && shell.getDisplay() != null)
+ shell.getDisplay().beep();
+ }
+}
Property changes on: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/OpenRubySearchPageAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/SearchMessages.java
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/SearchMessages.java 2007-08-17 15:44:05 UTC (rev 2999)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/SearchMessages.java 2007-08-17 16:09:27 UTC (rev 3000)
@@ -133,6 +133,7 @@
public static String group_occurrences;
public static String group_declarations;
public static String group_writeReferences;
+ public static String group_occurrences_quickMenu_noEntriesAvailable;
public static String RubyElementAction_operationUnavailable_title;
public static String RubyElementAction_operationUnavailable_generic;
Modified: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/SearchMessages.properties
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/SearchMessages.properties 2007-08-17 15:44:05 UTC (rev 2999)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/search/SearchMessages.properties 2007-08-17 16:09:27 UTC (rev 3000)
@@ -84,6 +84,7 @@
group_readReferences= &Read Access
group_writeReferences= &Write Access
group_occurrences= Occurre&nces in File
+group_occurrences_quickMenu_noEntriesAvailable= <no entries available>
RubyElementAction_operationUnavailable_title= Operation Unavailable
RubyElementAction_operationUnavailable_generic= The operation is unavailable on the current selection. Please select a valid Ruby element name.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|