diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog
index d6ee9da0df8..915c32f1b2d 100644
--- a/debug/org.eclipse.cdt.debug.ui/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog
@@ -1,3 +1,15 @@
+2004-08-24 Mikhail Khodjaiants
+ Replaced the "Breakpoint Properties" dialog by standard property pages.
+ * CBreakpointPreferenceStore.java
+ * CBreakpointPropertiesAction.java
+ * CBreakpointPropertiesRulerAction.java
+ * CBreakpointPropertiesRulerActionDelegate.java
+ * CBreakpointPreferencePage.java renamed to CBreakpointPropertyPage.java
+ * CBreakpointPropertiesDialog.java: removed
+ * plugin.xml
+ * plugin.properties
+ * ActionMessages.properties
+
2004-08-12 Mikhail Khodjaiants
Fix for bug 70453. Linux: error exiting Eclipse on Linux RedHat or SuSe Enterprise Server 9.
Applied modified patch from Sean Evoy.
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.properties b/debug/org.eclipse.cdt.debug.ui/plugin.properties
index 0a917ba6b60..0ba85c71e63 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.properties
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.properties
@@ -119,3 +119,5 @@ DebugTextHover.description=Shows the value of the expression selected in the deb
DebuggingCContext.name=Debugging C/C++
DebuggingCContext.description=Debugging C/C++ Programs
+
+CommonBreakpointPage.label=Common
\ No newline at end of file
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml
index 0fe3915651a..f9e7277b6d7 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.xml
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml
@@ -1071,6 +1071,12 @@
class="org.eclipse.cdt.debug.ui.sourcelookup.SourcePropertyPage"
id="org.eclipse.cdt.debug.ui.sourcelookup.SourcePropertyPage">
+
0 && (oldValue == null || !oldValue.equals( newValue ) ) )
- {
+ if ( listeners.length > 0 && (oldValue == null || !oldValue.equals( newValue )) ) {
PropertyChangeEvent pe = new PropertyChangeEvent( this, name, oldValue, newValue );
- for ( int i = 0; i < listeners.length; ++i )
- {
+ for( int i = 0; i < listeners.length; ++i ) {
IPropertyChangeListener l = (IPropertyChangeListener)listeners[i];
l.propertyChange( pe );
}
}
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getBoolean(String)
*/
- public boolean getBoolean( String name )
- {
+ public boolean getBoolean( String name ) {
Object b = fProperties.get( name );
- if ( b instanceof Boolean )
- {
+ if ( b instanceof Boolean ) {
return ((Boolean)b).booleanValue();
}
return false;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultBoolean(String)
*/
- public boolean getDefaultBoolean( String name )
- {
+ public boolean getDefaultBoolean( String name ) {
return false;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultDouble(String)
*/
- public double getDefaultDouble( String name )
- {
+ public double getDefaultDouble( String name ) {
return 0;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultFloat(String)
*/
- public float getDefaultFloat( String name )
- {
+ public float getDefaultFloat( String name ) {
return 0;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultInt(String)
*/
- public int getDefaultInt( String name )
- {
+ public int getDefaultInt( String name ) {
return 0;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultLong(String)
*/
- public long getDefaultLong( String name )
- {
+ public long getDefaultLong( String name ) {
return 0;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultString(String)
*/
- public String getDefaultString( String name )
- {
+ public String getDefaultString( String name ) {
return null;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getDouble(String)
*/
- public double getDouble( String name )
- {
+ public double getDouble( String name ) {
return 0;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getFloat(String)
*/
- public float getFloat( String name )
- {
+ public float getFloat( String name ) {
return 0;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getInt(String)
*/
- public int getInt( String name )
- {
+ public int getInt( String name ) {
Object i = fProperties.get( name );
- if ( i instanceof Integer )
- {
+ if ( i instanceof Integer ) {
return ((Integer)i).intValue();
}
return 1;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getLong(String)
*/
- public long getLong( String name )
- {
+ public long getLong( String name ) {
return 0;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#getString(String)
*/
- public String getString( String name )
- {
+ public String getString( String name ) {
Object str = fProperties.get( name );
- if ( str instanceof String )
- {
+ if ( str instanceof String ) {
return (String)str;
}
return null;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#isDefault(String)
*/
- public boolean isDefault( String name )
- {
+ public boolean isDefault( String name ) {
return false;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#needsSaving()
*/
- public boolean needsSaving()
- {
+ public boolean needsSaving() {
return fIsDirty;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#putValue(String, String)
*/
- public void putValue( String name, String newValue )
- {
+ public void putValue( String name, String newValue ) {
Object oldValue = fProperties.get( name );
- if ( oldValue == null || !oldValue.equals( newValue ) )
- {
+ if ( oldValue == null || !oldValue.equals( newValue ) ) {
fProperties.put( name, newValue );
setDirty( true );
}
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#removePropertyChangeListener(IPropertyChangeListener)
*/
- public void removePropertyChangeListener( IPropertyChangeListener listener )
- {
+ public void removePropertyChangeListener( IPropertyChangeListener listener ) {
fListeners.remove( listener );
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, double)
*/
- public void setDefault( String name, double value )
- {
+ public void setDefault( String name, double value ) {
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, float)
*/
- public void setDefault( String name, float value )
- {
+ public void setDefault( String name, float value ) {
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, int)
*/
- public void setDefault( String name, int value )
- {
+ public void setDefault( String name, int value ) {
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, long)
*/
- public void setDefault( String name, long value )
- {
+ public void setDefault( String name, long value ) {
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, String)
*/
- public void setDefault( String name, String defaultObject )
- {
+ public void setDefault( String name, String defaultObject ) {
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, boolean)
*/
- public void setDefault( String name, boolean value )
- {
+ public void setDefault( String name, boolean value ) {
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setToDefault(String)
*/
- public void setToDefault( String name )
- {
+ public void setToDefault( String name ) {
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, double)
*/
- public void setValue( String name, double value )
- {
+ public void setValue( String name, double value ) {
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, float)
*/
- public void setValue( String name, float value )
- {
+ public void setValue( String name, float value ) {
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, int)
*/
- public void setValue( String name, int newValue )
- {
+ public void setValue( String name, int newValue ) {
int oldValue = getInt( name );
- if ( oldValue != newValue )
- {
+ if ( oldValue != newValue ) {
fProperties.put( name, new Integer( newValue ) );
setDirty( true );
firePropertyChangeEvent( name, new Integer( oldValue ), new Integer( newValue ) );
}
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, long)
*/
- public void setValue( String name, long value )
- {
+ public void setValue( String name, long value ) {
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, String)
*/
- public void setValue( String name, String newValue )
- {
+ public void setValue( String name, String newValue ) {
Object oldValue = fProperties.get( name );
- if ( oldValue == null || !oldValue.equals( newValue ) )
- {
+ if ( oldValue == null || !oldValue.equals( newValue ) ) {
fProperties.put( name, newValue );
setDirty( true );
firePropertyChangeEvent( name, oldValue, newValue );
}
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, boolean)
*/
- public void setValue( String name, boolean newValue )
- {
+ public void setValue( String name, boolean newValue ) {
boolean oldValue = getBoolean( name );
- if ( oldValue != newValue )
- {
+ if ( oldValue != newValue ) {
fProperties.put( name, new Boolean( newValue ) );
- setDirty(true);
+ setDirty( true );
firePropertyChangeEvent( name, new Boolean( oldValue ), new Boolean( newValue ) );
}
}
- protected void setDirty( boolean isDirty )
- {
+ protected void setDirty( boolean isDirty ) {
fIsDirty = isDirty;
}
-}
+}
\ No newline at end of file
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesAction.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesAction.java
index 84fe6de5a22..112fcd3d920 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesAction.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesAction.java
@@ -11,86 +11,87 @@
package org.eclipse.cdt.debug.internal.ui.actions;
import org.eclipse.cdt.debug.core.model.ICBreakpoint;
+import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.dialogs.PropertyDialogAction;
/**
- *
* Presents a custom properties dialog to configure the attibutes of a C/C++ breakpoint.
- *
- * @since Sep 3, 2002
*/
-public class CBreakpointPropertiesAction implements IObjectActionDelegate
-{
+public class CBreakpointPropertiesAction implements IObjectActionDelegate {
+
private IWorkbenchPart fPart;
+
private ICBreakpoint fBreakpoint;
/**
* Constructor for CBreakpointPropertiesAction.
*/
- public CBreakpointPropertiesAction()
- {
+ public CBreakpointPropertiesAction() {
super();
}
/* (non-Javadoc)
- * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
+ * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
*/
- public void setActivePart( IAction action, IWorkbenchPart targetPart )
- {
+ public void setActivePart( IAction action, IWorkbenchPart targetPart ) {
fPart = targetPart;
}
/* (non-Javadoc)
- * @see org.eclipse.ui.IActionDelegate#run(IAction)
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
*/
- public void run( IAction action )
- {
- Dialog d = new CBreakpointPropertiesDialog( getActivePart().getSite().getShell(), getBreakpoint() );
- d.open();
+ public void run( IAction action ) {
+ PropertyDialogAction propertyAction = new PropertyDialogAction( CDebugUIPlugin.getActiveWorkbenchShell(), new ISelectionProvider() {
+
+ public void addSelectionChangedListener( ISelectionChangedListener listener ) {
+ }
+
+ public ISelection getSelection() {
+ return new StructuredSelection( getBreakpoint() );
+ }
+
+ public void removeSelectionChangedListener( ISelectionChangedListener listener ) {
+ }
+
+ public void setSelection( ISelection selection ) {
+ }
+ } );
+ propertyAction.run();
}
/* (non-Javadoc)
- * @see org.eclipse.ui.IActionDelegate#selectionChanged(IAction, ISelection)
+ * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
*/
- public void selectionChanged( IAction action, ISelection selection )
- {
- if ( selection instanceof IStructuredSelection )
- {
+ public void selectionChanged( IAction action, ISelection selection ) {
+ if ( selection instanceof IStructuredSelection ) {
IStructuredSelection ss = (IStructuredSelection)selection;
- if ( ss.isEmpty() || ss.size() > 1 )
- {
+ if ( ss.isEmpty() || ss.size() > 1 ) {
return;
}
Object element = ss.getFirstElement();
- if ( element instanceof ICBreakpoint )
- {
+ if ( element instanceof ICBreakpoint ) {
setBreakpoint( (ICBreakpoint)element );
}
}
}
- protected IWorkbenchPart getActivePart()
- {
+ protected IWorkbenchPart getActivePart() {
return fPart;
}
- protected void setActivePart( IWorkbenchPart part )
- {
- fPart = part;
- }
-
- protected ICBreakpoint getBreakpoint()
- {
+ protected ICBreakpoint getBreakpoint() {
return fBreakpoint;
}
- protected void setBreakpoint( ICBreakpoint breakpoint )
- {
+ protected void setBreakpoint( ICBreakpoint breakpoint ) {
fBreakpoint = breakpoint;
}
-}
+}
\ No newline at end of file
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesDialog.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesDialog.java
deleted file mode 100644
index f195369db50..00000000000
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesDialog.java
+++ /dev/null
@@ -1,510 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 QNX Software Systems and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * QNX Software Systems - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.debug.internal.ui.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.cdt.debug.core.model.ICBreakpoint;
-import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.preference.IPreferencePageContainer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- *
- *
- * @since Aug 29, 2002
- */
-public class CBreakpointPropertiesDialog extends Dialog
- implements IPreferencePageContainer
-{
- /**
- * Layout for the page container.
- *
- * @see CBreakpointPropertiesDialog#createPageContainer(Composite, int)
- */
- private class PageLayout extends Layout
- {
- public void layout( Composite composite, boolean force )
- {
- Rectangle rect = composite.getClientArea();
- Control[] children = composite.getChildren();
- for ( int i = 0; i < children.length; i++ )
- {
- children[i].setSize( rect.width, rect.height );
- }
- }
-
- public Point computeSize( Composite composite, int wHint, int hHint, boolean force )
- {
- if ( wHint != SWT.DEFAULT && hHint != SWT.DEFAULT )
- return new Point( wHint, hHint );
- int x = getMinimumPageSize().x;
- int y = getMinimumPageSize().y;
-
- Control[] children = composite.getChildren();
- for ( int i = 0; i < children.length; i++ )
- {
- Point size = children[i].computeSize( SWT.DEFAULT, SWT.DEFAULT, force );
- x = Math.max( x, size.x );
- y = Math.max( y, size.y );
- }
- if ( wHint != SWT.DEFAULT )
- x = wHint;
- if ( hHint != SWT.DEFAULT )
- y = hHint;
- return new Point( x, y );
- }
- }
-
- private Composite fTitleArea;
- private Label fTitleImage;
- private CLabel fMessageLabel;
-
- private String fMessage;
- private Color fNormalMsgAreaBackground;
- private Image fErrorMsgImage;
-
-
- private CBreakpointPreferencePage fPage;
-
- private Button fOkButton;
-
- /**
- * Must declare our own images as the JFaceResource images will not be created unless
- * a property/preference dialog has been shown
- */
- protected static final String PREF_DLG_TITLE_IMG = "breakpoint_preference_dialog_title_image"; //$NON-NLS-1$
- protected static final String PREF_DLG_IMG_TITLE_ERROR = "breakpoint_preference_dialog_title_error_image"; //$NON-NLS-1$
- static
- {
- ImageRegistry reg = CDebugUIPlugin.getDefault().getImageRegistry();
- reg.put( PREF_DLG_TITLE_IMG, ImageDescriptor.createFromFile( PreferenceDialog.class, "images/pref_dialog_title.gif" ) ); //$NON-NLS-1$
- reg.put( PREF_DLG_IMG_TITLE_ERROR, ImageDescriptor.createFromFile( Dialog.class, "images/message_error.gif" ) ); //$NON-NLS-1$
- }
-
- /**
- * The Composite in which a page is shown.
- */
- private Composite fPageContainer;
-
- /**
- * The minimum page size; 200 by 200 by default.
- *
- * @see #setMinimumPageSize(Point)
- */
- private Point fMinimumPageSize = new Point(200,200);
-
- /**
- * The breakpoint that this dialog is operating on
- */
- private ICBreakpoint fBreakpoint;
-
- /**
- * The "fake" preference store used to interface between
- * the breakpoint and the breakpoint preference page.
- */
- private CBreakpointPreferenceStore fCBreakpointPreferenceStore;
-
- /**
- * Constructor for CBreakpointPropertiesDialog.
- * @param parentShell
- */
- public CBreakpointPropertiesDialog( Shell parentShell, ICBreakpoint breakpoint )
- {
- super( parentShell );
- setBreakpoint( breakpoint );
- fCBreakpointPreferenceStore= new CBreakpointPreferenceStore();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.IPreferencePageContainer#getPreferenceStore()
- */
- public IPreferenceStore getPreferenceStore()
- {
- return fCBreakpointPreferenceStore;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.IPreferencePageContainer#updateButtons()
- */
- public void updateButtons()
- {
- if ( fOkButton != null )
- {
- fOkButton.setEnabled( fPage.isValid() );
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.IPreferencePageContainer#updateMessage()
- */
- public void updateMessage()
- {
- String pageMessage = fPage.getMessage();
- String pageErrorMessage = fPage.getErrorMessage();
-
- // Adjust the font
- if ( pageMessage == null && pageErrorMessage == null )
- fMessageLabel.setFont( JFaceResources.getBannerFont() );
- else
- fMessageLabel.setFont( JFaceResources.getDialogFont() );
-
- // Set the message and error message
- if ( pageMessage == null )
- {
- setMessage( fPage.getTitle() );
- }
- else
- {
- setMessage( pageMessage );
- }
- setErrorMessage( pageErrorMessage );
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.IPreferencePageContainer#updateTitle()
- */
- public void updateTitle()
- {
- setTitle( fPage.getTitle() );
- }
-
- /**
- * Display the given error message. The currently displayed message
- * is saved and will be redisplayed when the error message is set
- * to null
.
- *
- * @param errorMessage the errorMessage to display or null
- */
- public void setErrorMessage( String errorMessage )
- {
- if ( errorMessage == null )
- {
- if ( fMessageLabel.getImage() != null )
- {
- // we were previously showing an error
- fMessageLabel.setBackground( fNormalMsgAreaBackground );
- fMessageLabel.setImage( null );
- fTitleImage.setImage( CDebugUIPlugin.getDefault().getImageRegistry().get( PREF_DLG_TITLE_IMG ) );
- fTitleArea.layout( true );
- }
- // show the message
- setMessage( fMessage );
- }
- else
- {
- fMessageLabel.setText( errorMessage );
- if ( fMessageLabel.getImage() == null )
- {
- // we were not previously showing an error
-
- // lazy initialize the error background color and image
- if ( fErrorMsgImage == null )
- {
- fErrorMsgImage = CDebugUIPlugin.getDefault().getImageRegistry().get( PREF_DLG_IMG_TITLE_ERROR );
- }
-
- // show the error
- fNormalMsgAreaBackground = fMessageLabel.getBackground();
- fMessageLabel.setBackground( JFaceColors.getErrorBackground( fMessageLabel.getDisplay() ) );
- fMessageLabel.setImage( fErrorMsgImage );
- fTitleImage.setImage( null );
- fTitleArea.layout( true );
- }
- }
- }
-
- /**
- * Set the message text. If the message line currently displays an error,
- * the message is stored and will be shown after a call to clearErrorMessage
- */
- public void setMessage( String newMessage )
- {
- fMessage = newMessage;
- if ( fMessage == null )
- {
- fMessage = ""; //$NON-NLS-1$
- }
- if ( fMessageLabel.getImage() == null )
- {
- // we are not showing an error
- fMessageLabel.setText( fMessage );
- }
- }
-
- /**
- * Sets the title for this dialog.
- *
- * @param title the title.
- */
- public void setTitle( String title )
- {
- Shell shell = getShell();
- if ( ( shell != null ) && !shell.isDisposed() )
- {
- shell.setText( title );
- }
- }
-
- /**
- * @see Dialog#okPressed()
- */
- protected void okPressed()
- {
- final List changedProperties = new ArrayList( 5 );
- getPreferenceStore().addPropertyChangeListener(
- new IPropertyChangeListener()
- {
- /**
- * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
- */
- public void propertyChange( PropertyChangeEvent event )
- {
- changedProperties.add( event.getProperty() );
- }
- } );
- fPage.performOk();
- setBreakpointProperties( changedProperties );
- super.okPressed();
- }
-
- /**
- * All of the properties that the user has changed via the dialog
- * are written through to the breakpoint.
- */
- protected void setBreakpointProperties( final List changedProperties )
- {
- IWorkspaceRunnable wr = new IWorkspaceRunnable()
- {
- public void run( IProgressMonitor monitor ) throws CoreException
- {
- ICBreakpoint breakpoint = getBreakpoint();
- Iterator changed = changedProperties.iterator();
- while ( changed.hasNext() )
- {
- String property = (String)changed.next();
- if ( property.equals( CBreakpointPreferenceStore.IGNORE_COUNT ) )
- {
- breakpoint.setIgnoreCount( getPreferenceStore().getInt( CBreakpointPreferenceStore.IGNORE_COUNT ) );
- }
- else if ( property.equals( CBreakpointPreferenceStore.CONDITION ) )
- {
- breakpoint.setCondition( getPreferenceStore().getString( CBreakpointPreferenceStore.CONDITION ) );
- }
- }
- }
- };
-
- try
- {
- ResourcesPlugin.getWorkspace().run( wr, null );
- }
- catch( CoreException ce )
- {
- CDebugUIPlugin.log( ce );
- }
- }
-
- protected ICBreakpoint getBreakpoint()
- {
- return fBreakpoint;
- }
-
- protected void setBreakpoint( ICBreakpoint breakpoint )
- {
- fBreakpoint = breakpoint;
- }
-
- /**
- * @see Dialog#createDialogArea(Composite)
- */
- protected Control createDialogArea( Composite parent )
- {
- GridData gd;
- Composite composite = (Composite) super.createDialogArea( parent );
- ((GridLayout)composite.getLayout()).numColumns = 1;
-
- // Build the title area and separator line
- Composite titleComposite = new Composite( composite, SWT.NONE );
- GridLayout layout = new GridLayout();
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- layout.verticalSpacing = 0;
- layout.horizontalSpacing = 0;
- titleComposite.setLayout( layout );
- titleComposite.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
-
- createTitleArea( titleComposite );
-
- Label titleBarSeparator = new Label( titleComposite, SWT.HORIZONTAL | SWT.SEPARATOR );
- gd = new GridData( GridData.FILL_HORIZONTAL );
- titleBarSeparator.setLayoutData( gd );
-
- // Build the Page container
- fPageContainer = createPageContainer( composite, 2 );
- fPageContainer.setLayoutData( new GridData( GridData.FILL_BOTH ) );
- fPageContainer.setFont( parent.getFont() );
-
- fPage = new CBreakpointPreferencePage( getBreakpoint() );
- fPage.setContainer( this );
- fPage.createControl( fPageContainer );
-
- // Build the separator line
- Label separator = new Label( composite, SWT.HORIZONTAL | SWT.SEPARATOR );
- gd = new GridData( GridData.FILL_HORIZONTAL );
- gd.horizontalSpan = 2;
- separator.setLayoutData( gd );
-
- return composite;
- }
-
- /**
- * Creates the dialog's title area.
- *
- * @param parent the SWT parent for the title area composite
- * @return the created title area composite
- */
- private Composite createTitleArea( Composite parent )
- {
- // Create the title area which will contain
- // a title, message, and image.
- fTitleArea = new Composite( parent, SWT.NONE );
- GridLayout layout = new GridLayout();
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- layout.verticalSpacing = 0;
- layout.horizontalSpacing = 0;
- layout.numColumns = 2;
-
- // Get the colors for the title area
- Display display = parent.getDisplay();
- Color bg = JFaceColors.getBannerBackground( display );
- Color fg = JFaceColors.getBannerForeground( display );
-
- GridData layoutData = new GridData( GridData.FILL_BOTH );
- fTitleArea.setLayout( layout );
- fTitleArea.setLayoutData( layoutData );
- fTitleArea.setBackground( bg );
-
- // Message label
- fMessageLabel = new CLabel( fTitleArea, SWT.LEFT );
- fMessageLabel.setBackground( bg );
- fMessageLabel.setForeground( fg );
- fMessageLabel.setText( " " ); //$NON-NLS-1$
- fMessageLabel.setFont( JFaceResources.getBannerFont() );
-
- final IPropertyChangeListener fontListener =
- new IPropertyChangeListener()
- {
- public void propertyChange( PropertyChangeEvent event )
- {
- if ( JFaceResources.BANNER_FONT.equals( event.getProperty() ) ||
- JFaceResources.DIALOG_FONT.equals( event.getProperty() ) )
- {
- updateMessage();
- }
- }
- };
-
- fMessageLabel.addDisposeListener(
- new DisposeListener()
- {
- public void widgetDisposed( DisposeEvent event )
- {
- JFaceResources.getFontRegistry().removeListener( fontListener );
- }
- } );
-
- JFaceResources.getFontRegistry().addListener( fontListener );
-
- GridData gd = new GridData( GridData.FILL_BOTH );
- fMessageLabel.setLayoutData( gd );
-
- // Title image
- fTitleImage = new Label( fTitleArea, SWT.LEFT );
- fTitleImage.setBackground( bg );
- fTitleImage.setImage( CDebugUIPlugin.getDefault().getImageRegistry().get( PREF_DLG_TITLE_IMG ) );
- gd = new GridData();
- gd.horizontalAlignment = GridData.END;
- fTitleImage.setLayoutData( gd );
-
- return fTitleArea;
- }
-
- /**
- * Creates the inner page container.
- */
- private Composite createPageContainer( Composite parent, int numColumns )
- {
- Composite result = new Composite( parent, SWT.NULL );
- result.setLayout( new PageLayout() );
- return result;
- }
-
- /**
- * Sets the minimum page size.
- *
- * @param size the page size encoded as
- * new Point(width,height)
- * @see #setMinimumPageSize(int,int)
- */
- public void setMinimumPageSize( Point size )
- {
- fMinimumPageSize.x = size.x;
- fMinimumPageSize.y = size.y;
- }
-
- /**
- * @see Dialog#createButtonsForButtonBar(Composite)
- */
- protected void createButtonsForButtonBar( Composite parent )
- {
- fOkButton = createButton( parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true );
- createButton( parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false );
- }
-
- protected Point getMinimumPageSize()
- {
- return fMinimumPageSize;
- }
-}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesRulerAction.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesRulerAction.java
index 3f76c2488a5..97156797440 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesRulerAction.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesRulerAction.java
@@ -13,9 +13,13 @@ package org.eclipse.cdt.debug.internal.ui.actions;
import org.eclipse.cdt.debug.core.model.ICBreakpoint;
import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
import org.eclipse.cdt.debug.internal.ui.IInternalCDebugUIConstants;
-import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.text.source.IVerticalRulerInfo;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.dialogs.PropertyDialogAction;
import org.eclipse.ui.help.WorkbenchHelp;
/**
@@ -40,8 +44,22 @@ public class CBreakpointPropertiesRulerAction extends AbstractBreakpointRulerAct
*/
public void run() {
if ( getBreakpoint() != null ) {
- Dialog d = new CBreakpointPropertiesDialog( getTargetPart().getSite().getShell(), (ICBreakpoint)getBreakpoint() );
- d.open();
+ PropertyDialogAction action = new PropertyDialogAction( getTargetPart().getSite().getShell(), new ISelectionProvider() {
+
+ public void addSelectionChangedListener( ISelectionChangedListener listener ) {
+ }
+
+ public ISelection getSelection() {
+ return new StructuredSelection( getBreakpoint() );
+ }
+
+ public void removeSelectionChangedListener( ISelectionChangedListener listener ) {
+ }
+
+ public void setSelection( ISelection selection ) {
+ }
+ } );
+ action.run();
}
}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesRulerActionDelegate.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesRulerActionDelegate.java
index 001a5ba9a1d..e6d6682016d 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesRulerActionDelegate.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertiesRulerActionDelegate.java
@@ -1,13 +1,9 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 QNX Software Systems and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
+/***************************************************************************************************************************************************************
+ * Copyright (c) 2000, 2004 QNX Software Systems and others. All rights reserved. This program and the accompanying materials are made available under the terms
+ * of the Common Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html
*
- * Contributors:
- * QNX Software Systems - Initial API and implementation
- *******************************************************************************/
+ * Contributors: QNX Software Systems - Initial API and implementation
+ **************************************************************************************************************************************************************/
package org.eclipse.cdt.debug.internal.ui.actions;
import org.eclipse.jface.action.IAction;
@@ -15,19 +11,12 @@ import org.eclipse.jface.text.source.IVerticalRulerInfo;
import org.eclipse.ui.texteditor.AbstractRulerActionDelegate;
import org.eclipse.ui.texteditor.ITextEditor;
-/**
- *
- * Enter type comment.
- *
- * @since Aug 29, 2002
- */
-public class CBreakpointPropertiesRulerActionDelegate extends AbstractRulerActionDelegate
-{
+public class CBreakpointPropertiesRulerActionDelegate extends AbstractRulerActionDelegate {
+
/* (non-Javadoc)
- * @see org.eclipse.ui.texteditor.AbstractRulerActionDelegate#createAction(ITextEditor, IVerticalRulerInfo)
+ * @see org.eclipse.ui.texteditor.AbstractRulerActionDelegate#createAction(org.eclipse.ui.texteditor.ITextEditor, org.eclipse.jface.text.source.IVerticalRulerInfo)
*/
- protected IAction createAction( ITextEditor editor, IVerticalRulerInfo rulerInfo )
- {
+ protected IAction createAction( ITextEditor editor, IVerticalRulerInfo rulerInfo ) {
return new CBreakpointPropertiesRulerAction( editor, rulerInfo );
}
-}
+}
\ No newline at end of file
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPreferencePage.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertyPage.java
similarity index 65%
rename from debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPreferencePage.java
rename to debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertyPage.java
index 6f42d37b6f9..a4ec7901ca9 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPreferencePage.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/CBreakpointPropertyPage.java
@@ -10,37 +10,48 @@
***********************************************************************/
package org.eclipse.cdt.debug.internal.ui.actions;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import org.eclipse.cdt.debug.core.CDebugUtils;
import org.eclipse.cdt.debug.core.model.ICAddressBreakpoint;
import org.eclipse.cdt.debug.core.model.ICBreakpoint;
import org.eclipse.cdt.debug.core.model.ICFunctionBreakpoint;
import org.eclipse.cdt.debug.core.model.ICWatchpoint;
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.debug.core.model.ILineBreakpoint;
+import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbenchPropertyPage;
/**
* The preference page used to present the properties of a breakpoint as preferences. A CBreakpointPreferenceStore is used to interface between this page and
* the breakpoint.
*/
-public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
+public class CBreakpointPropertyPage extends FieldEditorPreferencePage implements IWorkbenchPropertyPage {
class BreakpointIntegerFieldEditor extends IntegerFieldEditor {
public BreakpointIntegerFieldEditor( String name, String labelText, Composite parent ) {
super( name, labelText, parent );
- setErrorMessage( ActionMessages.getString( "CBreakpointPreferencePage.0" ) ); //$NON-NLS-1$
+ setErrorMessage( ActionMessages.getString( "CBreakpointPropertyPage.0" ) ); //$NON-NLS-1$
}
/**
@@ -203,23 +214,31 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
}
}
+ private BooleanFieldEditor fEnabled;
+
private BreakpointStringFieldEditor fCondition;
private Text fIgnoreCountTextControl;
private BreakpointIntegerFieldEditor fIgnoreCount;
- private ICBreakpoint fBreakpoint;
+ private IAdaptable fElement;
/**
- * Constructor for CBreakpointPreferencePage.
+ * The "fake" preference store used to interface between
+ * the breakpoint and the breakpoint preference page.
+ */
+ private CBreakpointPreferenceStore fCBreakpointPreferenceStore;
+
+ /**
+ * Constructor for CBreakpointPropertyPage.
*
* @param breakpoint
*/
- public CBreakpointPreferencePage( ICBreakpoint breakpoint ) {
+ public CBreakpointPropertyPage() {
super( GRID );
- setBreakpoint( breakpoint );
noDefaultAndApplyButton();
+ fCBreakpointPreferenceStore = new CBreakpointPreferenceStore();
}
/*
@@ -230,6 +249,7 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
protected void createFieldEditors() {
ICBreakpoint breakpoint = getBreakpoint();
createTypeSpecificLabelFieldEditors( breakpoint );
+ createEnabledField( getFieldEditorParent() );
IPreferenceStore store = getPreferenceStore();
try {
String condition = breakpoint.getCondition();
@@ -256,7 +276,8 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
private void createTypeSpecificLabelFieldEditors( ICBreakpoint breakpoint ) {
if ( breakpoint instanceof ICFunctionBreakpoint ) {
ICFunctionBreakpoint fbrkpt = (ICFunctionBreakpoint)breakpoint;
- String function = ActionMessages.getString( "CBreakpointPreferencePage.1" ); //$NON-NLS-1$
+ addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.18" ), ActionMessages.getString( "CBreakpointPropertyPage.3" ) ) ); //$NON-NLS-1$//$NON-NLS-2$
+ String function = ActionMessages.getString( "CBreakpointPropertyPage.1" ); //$NON-NLS-1$
try {
function = fbrkpt.getFunction();
}
@@ -265,13 +286,13 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
catch( NumberFormatException e ) {
}
if ( function != null ) {
- addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.2" ), function ) ); //$NON-NLS-1$
+ addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.2" ), function ) ); //$NON-NLS-1$
}
- setTitle( ActionMessages.getString( "CBreakpointPreferencePage.3" ) ); //$NON-NLS-1$
}
else if ( breakpoint instanceof ICAddressBreakpoint ) {
ICAddressBreakpoint abrkpt = (ICAddressBreakpoint)breakpoint;
- String address = ActionMessages.getString( "CBreakpointPreferencePage.4" ); //$NON-NLS-1$
+ addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.18" ), ActionMessages.getString( "CBreakpointPropertyPage.6" ) ) ); //$NON-NLS-1$//$NON-NLS-2$
+ String address = ActionMessages.getString( "CBreakpointPropertyPage.4" ); //$NON-NLS-1$
try {
address = CDebugUtils.toHexAddressString( Long.parseLong( abrkpt.getAddress() ) );
}
@@ -280,16 +301,15 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
catch( NumberFormatException e ) {
}
if ( address != null ) {
- addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.5" ), address ) ); //$NON-NLS-1$
+ addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.5" ), address ) ); //$NON-NLS-1$
}
- setTitle( ActionMessages.getString( "CBreakpointPreferencePage.6" ) ); //$NON-NLS-1$
}
else if ( breakpoint instanceof ILineBreakpoint ) {
+ addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.18" ), ActionMessages.getString( "CBreakpointPropertyPage.8" ) ) ); //$NON-NLS-1$//$NON-NLS-2$
String fileName = breakpoint.getMarker().getResource().getLocation().toOSString();
if ( fileName != null ) {
- addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.7" ), fileName ) ); //$NON-NLS-1$
+ addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.7" ), fileName ) ); //$NON-NLS-1$
}
- setTitle( ActionMessages.getString( "CBreakpointPreferencePage.8" ) ); //$NON-NLS-1$
ILineBreakpoint lBreakpoint = (ILineBreakpoint)breakpoint;
StringBuffer lineNumber = new StringBuffer( 4 );
try {
@@ -302,43 +322,48 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
CDebugUIPlugin.log( ce );
}
if ( lineNumber.length() > 0 ) {
- addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.9" ), lineNumber.toString() ) ); //$NON-NLS-1$
+ addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.9" ), lineNumber.toString() ) ); //$NON-NLS-1$
}
}
else if ( breakpoint instanceof ICWatchpoint ) {
- String projectName = breakpoint.getMarker().getResource().getLocation().toOSString();
- if ( projectName != null ) {
- addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.10" ), projectName ) ); //$NON-NLS-1$
- }
ICWatchpoint watchpoint = (ICWatchpoint)breakpoint;
- String title = ""; //$NON-NLS-1$
+ String type = ""; //$NON-NLS-1$
String expression = ""; //$NON-NLS-1$
try {
if ( watchpoint.isReadType() && !watchpoint.isWriteType() )
- title = ActionMessages.getString( "CBreakpointPreferencePage.11" ); //$NON-NLS-1$
+ type = ActionMessages.getString( "CBreakpointPropertyPage.11" ); //$NON-NLS-1$
else if ( !watchpoint.isReadType() && watchpoint.isWriteType() )
- title = ActionMessages.getString( "CBreakpointPreferencePage.12" ); //$NON-NLS-1$
+ type = ActionMessages.getString( "CBreakpointPropertyPage.12" ); //$NON-NLS-1$
else
- title = ActionMessages.getString( "CBreakpointPreferencePage.13" ); //$NON-NLS-1$
+ type = ActionMessages.getString( "CBreakpointPropertyPage.13" ); //$NON-NLS-1$
expression = watchpoint.getExpression();
}
catch( CoreException ce ) {
CDebugUIPlugin.log( ce );
}
- setTitle( title );
- addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.14" ), expression ) ); //$NON-NLS-1$
+ addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.18" ), type ) ); //$NON-NLS-1$
+ String projectName = breakpoint.getMarker().getResource().getLocation().toOSString();
+ if ( projectName != null ) {
+ addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.10" ), projectName ) ); //$NON-NLS-1$
+ }
+ addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.14" ), expression ) ); //$NON-NLS-1$
}
}
+ protected void createEnabledField( Composite parent ) {
+ fEnabled = new BooleanFieldEditor( CBreakpointPreferenceStore.ENABLED, ActionMessages.getString( "CBreakpointPropertyPage.19" ), parent ); //$NON-NLS-1$
+ addField( fEnabled );
+ }
+
protected void createConditionEditor( Composite parent ) {
- fCondition = new BreakpointStringFieldEditor( CBreakpointPreferenceStore.CONDITION, ActionMessages.getString( "CBreakpointPreferencePage.15" ), parent ); //$NON-NLS-1$
+ fCondition = new BreakpointStringFieldEditor( CBreakpointPreferenceStore.CONDITION, ActionMessages.getString( "CBreakpointPropertyPage.15" ), parent ); //$NON-NLS-1$
fCondition.setEmptyStringAllowed( true );
- fCondition.setErrorMessage( ActionMessages.getString( "CBreakpointPreferencePage.16" ) ); //$NON-NLS-1$
+ fCondition.setErrorMessage( ActionMessages.getString( "CBreakpointPropertyPage.16" ) ); //$NON-NLS-1$
addField( fCondition );
}
protected void createIgnoreCountEditor( Composite parent ) {
- fIgnoreCount = new BreakpointIntegerFieldEditor( CBreakpointPreferenceStore.IGNORE_COUNT, ActionMessages.getString( "CBreakpointPreferencePage.17" ), parent ); //$NON-NLS-1$
+ fIgnoreCount = new BreakpointIntegerFieldEditor( CBreakpointPreferenceStore.IGNORE_COUNT, ActionMessages.getString( "CBreakpointPropertyPage.17" ), parent ); //$NON-NLS-1$
fIgnoreCount.setValidRange( 0, Integer.MAX_VALUE );
fIgnoreCountTextControl = fIgnoreCount.getTextControl( parent );
try {
@@ -355,10 +380,69 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
}
protected ICBreakpoint getBreakpoint() {
- return fBreakpoint;
+ IAdaptable element = getElement();
+ return ( element instanceof ICBreakpoint ) ? (ICBreakpoint)element : null;
}
- protected void setBreakpoint( ICBreakpoint breakpoint ) {
- fBreakpoint = breakpoint;
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchPropertyPage#getElement()
+ */
+ public IAdaptable getElement() {
+ return fElement;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchPropertyPage#setElement(org.eclipse.core.runtime.IAdaptable)
+ */
+ public void setElement( IAdaptable element ) {
+ fElement = element;
+ }
+
+ public IPreferenceStore getPreferenceStore() {
+ return fCBreakpointPreferenceStore;
+ }
+
+ public boolean performOk() {
+ final List changedProperties = new ArrayList( 5 );
+ getPreferenceStore().addPropertyChangeListener( new IPropertyChangeListener() {
+
+ /**
+ * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
+ */
+ public void propertyChange( PropertyChangeEvent event ) {
+ changedProperties.add( event.getProperty() );
+ }
+ } );
+ boolean result = super.performOk();
+ setBreakpointProperties( changedProperties );
+ return result;
+ }
+
+ protected void setBreakpointProperties( final List changedProperties ) {
+ IWorkspaceRunnable wr = new IWorkspaceRunnable() {
+
+ public void run( IProgressMonitor monitor ) throws CoreException {
+ ICBreakpoint breakpoint = getBreakpoint();
+ Iterator changed = changedProperties.iterator();
+ while( changed.hasNext() ) {
+ String property = (String)changed.next();
+ if ( property.equals( CBreakpointPreferenceStore.ENABLED ) ) {
+ breakpoint.setEnabled( getPreferenceStore().getBoolean( CBreakpointPreferenceStore.ENABLED ) );
+ }
+ else if ( property.equals( CBreakpointPreferenceStore.IGNORE_COUNT ) ) {
+ breakpoint.setIgnoreCount( getPreferenceStore().getInt( CBreakpointPreferenceStore.IGNORE_COUNT ) );
+ }
+ else if ( property.equals( CBreakpointPreferenceStore.CONDITION ) ) {
+ breakpoint.setCondition( getPreferenceStore().getString( CBreakpointPreferenceStore.CONDITION ) );
+ }
+ }
+ }
+ };
+ try {
+ ResourcesPlugin.getWorkspace().run( wr, null );
+ }
+ catch( CoreException ce ) {
+ CDebugUIPlugin.log( ce );
+ }
}
}