diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog
index 42399995b3b..6af66f616be 100644
--- a/debug/org.eclipse.cdt.debug.core/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.core/ChangeLog
@@ -1,3 +1,10 @@
+2005-06-09 Mikhail Khodjaiants
+ Bug 94139: User-defined register groups.
+ Support fo the "Restore Default Register Groups" action.
+ * ICDebugTarget.java
+ * CRegisterManager.java
+ * CDebugTarget.java
+
2005-06-07 Mikhail Khodjaiants
Bug 94139: User-defined register groups.
Support fo the "Edit Register Group" action.
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java
index 50c74ed150d..35888501293 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/ICDebugTarget.java
@@ -126,4 +126,12 @@ public interface ICDebugTarget extends IDebugTarget,
* @since 3.0
*/
public void modifyRegisterGroup( IPersistableRegisterGroup group, IRegisterDescriptor[] descriptors );
+
+
+ /**
+ * Removes all user-defined register groups and restores the hardware groups.
+ *
+ * @since 3.0
+ */
+ public void restoreDefaultRegisterGroups();
}
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java
index 4333a00b210..fe7ac771d54 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java
@@ -80,7 +80,18 @@ public class CRegisterManager {
}
public void dispose() {
- removeAllRegisterGroups();
+ DebugPlugin.getDefault().asyncExec(
+ new Runnable() {
+ public void run() {
+ synchronized( fRegisterGroups ) {
+ Iterator it = fRegisterGroups.iterator();
+ while( it.hasNext() ) {
+ ((CRegisterGroup)it.next()).dispose();
+ }
+ fRegisterGroups.clear();
+ }
+ }
+ } );
}
public IRegisterDescriptor[] getAllRegisterDescriptors() throws DebugException {
@@ -154,6 +165,23 @@ public class CRegisterManager {
} );
}
+ public void restoreDefaults() {
+ DebugPlugin.getDefault().asyncExec(
+ new Runnable() {
+ public void run() {
+ synchronized( fRegisterGroups ) {
+ Iterator it = fRegisterGroups.iterator();
+ while( it.hasNext() ) {
+ ((CRegisterGroup)it.next()).dispose();
+ }
+ fRegisterGroups.clear();
+ initializeDefaults();
+ }
+ getDebugTarget().fireChangeEvent( DebugEvent.CONTENT );
+ }
+ } );
+ }
+
private void createRegisterGroups() {
fRegisterGroups = Collections.synchronizedList( new ArrayList( 20 ) );
ILaunchConfiguration config = getDebugTarget().getLaunch().getLaunchConfiguration();
@@ -209,7 +237,7 @@ public class CRegisterManager {
}
}
- private void initializeDefaults() {
+ protected void initializeDefaults() {
String current = null;
int startIndex = 0;
for ( int i = 0; i < fRegisterDescriptors.length; ++i ) {
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java
index 23fa2c93704..c03eb8839d7 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java
@@ -1755,6 +1755,13 @@ public class CDebugTarget extends CDebugElement implements ICDebugTarget, ICDIEv
getRegisterManager().modifyRegisterGroup( group, descriptors );
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.debug.core.model.ICDebugTarget#restoreDefaultRegisterGroups()
+ */
+ public void restoreDefaultRegisterGroups() {
+ getRegisterManager().restoreDefaults();
+ }
+
protected void skipBreakpoints( boolean enabled ) {
getBreakpointManager().skipBreakpoints( enabled );
}
diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog
index dab1cdcdd9d..7b60097802c 100644
--- a/debug/org.eclipse.cdt.debug.ui/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog
@@ -1,3 +1,10 @@
+2005-06-09 Mikhail Khodjaiants
+ Bug 94139: User-defined register groups.
+ Support fo the "Restore Default Register Groups" action.
+ + RestoreDefaultRegisterGroupsActionDelegate.java
+ * plugin.properties
+ * plugin.xml
+
2005-06-07 Mikhail Khodjaiants
New images for mapping source containers.
* icons/obj16/mapentry_obj.gif
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.properties b/debug/org.eclipse.cdt.debug.ui/plugin.properties
index 05d6f5809f8..33706161a29 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.properties
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.properties
@@ -126,3 +126,5 @@ RemoveRegisterGroupAction.label=Remove Register Group
RemoveRegisterGroupAction.tooltip=Remove Register Group
EditRegisterGroupAction.label=Edit Register Group
EditRegisterGroupAction.tooltip=Edit Register Group
+RestoredefaultRegisterGroupsAction.label=Restore Default Register Groups
+RestoredefaultRegisterGroupsAction.tooltip=Restore Default Register Groups
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml
index a18e4326b43..51c067ca944 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.xml
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml
@@ -650,6 +650,20 @@
class="org.eclipse.cdt.debug.core.model.ICVariable">
+
+
+
+
+