diff options
author | Michael Rennie | 2007-07-24 15:07:04 +0000 |
---|---|---|
committer | Michael Rennie | 2007-07-24 15:07:04 +0000 |
commit | 163de77c37acda470d8a0b0b7537535364c41629 (patch) | |
tree | 12e7c6611f0edf54e25b245752730d5d9a0f5038 /org.eclipse.debug.ui | |
parent | 7e644f37d8613b0526cd54663ca8b9b29a5d06f8 (diff) | |
download | eclipse.platform.debug-163de77c37acda470d8a0b0b7537535364c41629.tar.gz eclipse.platform.debug-163de77c37acda470d8a0b0b7537535364c41629.tar.xz eclipse.platform.debug-163de77c37acda470d8a0b0b7537535364c41629.zip |
Bug 183800
[launching] Discard changes question dialog on run dialog does give no real choice
Diffstat (limited to 'org.eclipse.debug.ui')
3 files changed, 55 insertions, 0 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationFilteredTree.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationFilteredTree.java index b305ce1d3..10ab28b63 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationFilteredTree.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationFilteredTree.java @@ -17,6 +17,7 @@ import org.eclipse.debug.core.ILaunchConfigurationType; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.debug.ui.ILaunchGroup; +import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.TreeViewer; @@ -32,6 +33,10 @@ import org.eclipse.ui.model.WorkbenchViewerComparator; /** * Overrides the default filtered tree to use our own tree viewer which supports preserving selection after filtering + * + * @see LaunchConfigurationView + * @see LaunchConfigurationViewer + * * @since 3.3 */ public final class LaunchConfigurationFilteredTree extends FilteredTree { @@ -40,6 +45,7 @@ public final class LaunchConfigurationFilteredTree extends FilteredTree { private ViewerFilter[] fFilters = null; private int fTreeStyle = -1; private PatternFilter fPatternFilter = null; + boolean filtertextchanging = false; /** * Constructor @@ -113,6 +119,43 @@ public final class LaunchConfigurationFilteredTree extends FilteredTree { PlatformUI.getWorkbench().getHelpSystem().displayHelp(id); } + /* (non-Javadoc) + * @see org.eclipse.ui.dialogs.FilteredTree#textChanged() + */ + protected void textChanged() { + if(!filtertextchanging) { + filtertextchanging = true; + LaunchConfigurationsDialog dialog = (LaunchConfigurationsDialog)LaunchConfigurationsDialog.getCurrentlyVisibleLaunchConfigurationDialog(); + if(dialog != null) { + LaunchConfigurationTabGroupViewer viewer = dialog.getTabViewer(); + if(viewer != null && viewer.isDirty()) { + if(viewer.canSave()) { + if(MessageDialog.openQuestion(getShell(), LaunchConfigurationsMessages.LaunchConfigurationFilteredTree_discard_changes, LaunchConfigurationsMessages.LaunchConfigurationFilteredTree_search_with_changes)) { + viewer.handleApplyPressed(); + super.textChanged(); + } + else { + setFilterText(LaunchConfigurationsMessages.LaunchConfigurationFilteredTree_type_filter_text); + } + } + else { + if(MessageDialog.openQuestion(getShell(), LaunchConfigurationsMessages.LaunchConfigurationFilteredTree_discard_changes, LaunchConfigurationsMessages.LaunchConfigurationFilteredTree_search_with_errors)) { + viewer.handleRevertPressed(); + super.textChanged(); + } + else { + setFilterText(LaunchConfigurationsMessages.LaunchConfigurationFilteredTree_type_filter_text); + } + } + } + else { + super.textChanged(); + } + } + filtertextchanging = false; + } + } + /** * Computes the context id for this viewer * @return the context id diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java index 496cab832..6b0bc39e0 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java @@ -55,6 +55,14 @@ public class LaunchConfigurationsMessages extends NLS { public static String LaunchConfigurationEditDialog_0; public static String LaunchConfigurationEditDialog_1; + + public static String LaunchConfigurationFilteredTree_discard_changes; + + public static String LaunchConfigurationFilteredTree_search_with_changes; + + public static String LaunchConfigurationFilteredTree_search_with_errors; + + public static String LaunchConfigurationFilteredTree_type_filter_text; public static String LaunchConfigurationTabGroupViewer_0; public static String LaunchConfigurationDialog_Create__manage__and_run_launch_configurations_8; public static String LaunchConfigurationDialog_Discard_changes__38; diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties index c6c3c0354..ad2fc7d17 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties @@ -72,6 +72,8 @@ LaunchConfigurationDialog_Exception_occurred_while_saving_launch_configuration_4 LaunchConfigurationDialog_Launch_configuration_already_exists_with_this_name_12=Launch configuration already exists with this name LaunchConfigurationDialog_Launch_Configuration_Error_46=Launch Configuration Error LaunchConfigurationDialog_Launch_Configurations_18=Launch Configurations +LaunchConfigurationFilteredTree_search_with_changes=You cannot perform a text search when the current configuration has pending changes.\n\nDo you want to save the changes and continue searching? +LaunchConfigurationFilteredTree_search_with_errors=You cannot perform a text search when the current configuration has errors.\n\nDo you want to discard the changes and continue searching? LaunchConfigurationDialog_Name_required_for_launch_configuration_11=Name required for launch configuration LaunchConfigurationDialog_No_33=No LaunchConfigurationEditDialog_0=Modify configuration and continue. @@ -80,6 +82,8 @@ LaunchConfigurationDialog_Ready_to_launch_2=Ready to launch LaunchConfigurationDialog_Save_changes__31=Save changes? LaunchConfigurationDialog_The_configuration___29=The configuration "{0}" has unsaved changes. Do you wish to save them? LaunchConfigurationDialog_The_configuration___35=The configuration "{0}" has unsaved changes that CANNOT be saved because of the following error:\n\n +LaunchConfigurationFilteredTree_discard_changes=Discard Changes? +LaunchConfigurationFilteredTree_type_filter_text=type filter text LaunchConfigurationDialog_unspecified_28=unspecified LaunchConfigurationDialog_Yes_32=Yes LaunchConfigurationDialog_Do_you_wish_to_delete_the_selected_launch_configurations__1=Do you wish to delete the selected launch configurations? |