Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Rennie2007-07-24 15:07:04 +0000
committerMichael Rennie2007-07-24 15:07:04 +0000
commit163de77c37acda470d8a0b0b7537535364c41629 (patch)
tree12e7c6611f0edf54e25b245752730d5d9a0f5038 /org.eclipse.debug.ui
parent7e644f37d8613b0526cd54663ca8b9b29a5d06f8 (diff)
downloadeclipse.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')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationFilteredTree.java43
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.java8
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchConfigurationsMessages.properties4
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?

Back to the top