mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
2005-01-26 Alain Magloire
Part of implementing PR 83112 * src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java Changes in the interface of the Core Model * refactor/org/eclipse/cdt/internal/corext/refactoring/rename/RenameElementProcessor.java * refactor/org/eclipse/cdt/internal/ui/refactoring/actions/RenameRefactoringAction.java
This commit is contained in:
parent
a03bc42e1a
commit
e6868902c5
4 changed files with 66 additions and 12 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2005-01-26 Alain Magloire
|
||||||
|
Part of implementing PR 83112
|
||||||
|
* src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java
|
||||||
|
Changes in the interface of the Core Model
|
||||||
|
* refactor/org/eclipse/cdt/internal/corext/refactoring/rename/RenameElementProcessor.java
|
||||||
|
* refactor/org/eclipse/cdt/internal/ui/refactoring/actions/RenameRefactoringAction.java
|
||||||
|
|
||||||
2005-01-26 Alain Magloire
|
2005-01-26 Alain Magloire
|
||||||
Part of implementing PR 83112
|
Part of implementing PR 83112
|
||||||
* src/org/eclipse/cdt/internal/ui/cview/CView.java
|
* src/org/eclipse/cdt/internal/ui/cview/CView.java
|
||||||
|
|
|
@ -33,6 +33,7 @@ import org.eclipse.cdt.core.model.IMethodDeclaration;
|
||||||
import org.eclipse.cdt.core.model.INamespace;
|
import org.eclipse.cdt.core.model.INamespace;
|
||||||
import org.eclipse.cdt.core.model.IParent;
|
import org.eclipse.cdt.core.model.IParent;
|
||||||
import org.eclipse.cdt.core.model.ISourceManipulation;
|
import org.eclipse.cdt.core.model.ISourceManipulation;
|
||||||
|
import org.eclipse.cdt.core.model.ISourceRange;
|
||||||
import org.eclipse.cdt.core.model.ISourceReference;
|
import org.eclipse.cdt.core.model.ISourceReference;
|
||||||
import org.eclipse.cdt.core.model.IStructure;
|
import org.eclipse.cdt.core.model.IStructure;
|
||||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||||
|
@ -148,13 +149,20 @@ public class RenameElementProcessor extends RenameProcessor implements IReferenc
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getCurrentElementNameStartPos() {
|
private int getCurrentElementNameStartPos() {
|
||||||
if(fCElement == null)
|
if (fCElement == null)
|
||||||
return 0;
|
return 0;
|
||||||
String name = fCElement.getElementName();
|
try {
|
||||||
if (name.indexOf(QUALIFIER) != -1){
|
String name = fCElement.getElementName();
|
||||||
return (((CElement)fCElement).getIdStartPos() + name.lastIndexOf(QUALIFIER) + 2);
|
ISourceReference sourceRef = (ISourceReference)fCElement;
|
||||||
|
ISourceRange range = sourceRef.getSourceRange();
|
||||||
|
if (name.indexOf(QUALIFIER) != -1) {
|
||||||
|
return range.getIdStartPos() + name.lastIndexOf(QUALIFIER) + 2;
|
||||||
|
}
|
||||||
|
return range.getIdStartPos();
|
||||||
|
} catch (CModelException e) {
|
||||||
|
//
|
||||||
}
|
}
|
||||||
return ((CElement)fCElement).getIdStartPos();
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getElementQualifiedName(ICElement element) throws CModelException{
|
private String getElementQualifiedName(ICElement element) throws CModelException{
|
||||||
|
|
|
@ -11,9 +11,11 @@
|
||||||
package org.eclipse.cdt.internal.ui.refactoring.actions;
|
package org.eclipse.cdt.internal.ui.refactoring.actions;
|
||||||
|
|
||||||
|
|
||||||
|
import org.eclipse.cdt.core.model.CModelException;
|
||||||
import org.eclipse.cdt.core.model.ICElement;
|
import org.eclipse.cdt.core.model.ICElement;
|
||||||
|
import org.eclipse.cdt.core.model.ISourceRange;
|
||||||
|
import org.eclipse.cdt.core.model.ISourceReference;
|
||||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||||
import org.eclipse.cdt.internal.core.model.CElement;
|
|
||||||
import org.eclipse.cdt.internal.corext.refactoring.RenameRefactoring;
|
import org.eclipse.cdt.internal.corext.refactoring.RenameRefactoring;
|
||||||
import org.eclipse.cdt.internal.ui.actions.SelectionConverter;
|
import org.eclipse.cdt.internal.ui.actions.SelectionConverter;
|
||||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||||
|
@ -68,10 +70,17 @@ public class RenameRefactoringAction extends SelectionDispatchAction {
|
||||||
setEnabled(false);
|
setEnabled(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (element instanceof ISourceReference) {
|
||||||
if( (((CElement)element).getIdStartPos() != textSelection.getOffset())
|
try {
|
||||||
|| (((CElement)element).getIdLength() != textSelection.getLength())) {
|
ISourceReference sourceRef = (ISourceReference)element;
|
||||||
enable = false;
|
ISourceRange range = sourceRef.getSourceRange();
|
||||||
|
if( (range.getIdStartPos() != textSelection.getOffset())
|
||||||
|
|| (range.getIdLength() != textSelection.getLength())) {
|
||||||
|
enable = false;
|
||||||
|
}
|
||||||
|
} catch (CModelException e) {
|
||||||
|
//
|
||||||
|
}
|
||||||
}
|
}
|
||||||
setEnabled(enable);
|
setEnabled(enable);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,12 @@ import org.eclipse.cdt.internal.ui.CPluginImages;
|
||||||
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
||||||
import org.eclipse.cdt.internal.ui.actions.AbstractToggleLinkingAction;
|
import org.eclipse.cdt.internal.ui.actions.AbstractToggleLinkingAction;
|
||||||
import org.eclipse.cdt.internal.ui.actions.ActionMessages;
|
import org.eclipse.cdt.internal.ui.actions.ActionMessages;
|
||||||
|
import org.eclipse.cdt.internal.ui.cview.SelectionTransferDragAdapter;
|
||||||
|
import org.eclipse.cdt.internal.ui.cview.SelectionTransferDropAdapter;
|
||||||
|
import org.eclipse.cdt.internal.ui.dnd.CDTViewerDragAdapter;
|
||||||
|
import org.eclipse.cdt.internal.ui.dnd.DelegatingDropAdapter;
|
||||||
|
import org.eclipse.cdt.internal.ui.dnd.TransferDragSourceListener;
|
||||||
|
import org.eclipse.cdt.internal.ui.dnd.TransferDropTargetListener;
|
||||||
import org.eclipse.cdt.internal.ui.search.actions.SelectionSearchGroup;
|
import org.eclipse.cdt.internal.ui.search.actions.SelectionSearchGroup;
|
||||||
import org.eclipse.cdt.internal.ui.util.ProblemTreeViewer;
|
import org.eclipse.cdt.internal.ui.util.ProblemTreeViewer;
|
||||||
import org.eclipse.cdt.internal.ui.viewsupport.DecoratingCLabelProvider;
|
import org.eclipse.cdt.internal.ui.viewsupport.DecoratingCLabelProvider;
|
||||||
|
@ -41,6 +47,8 @@ import org.eclipse.jface.viewers.SelectionChangedEvent;
|
||||||
import org.eclipse.jface.viewers.StructuredSelection;
|
import org.eclipse.jface.viewers.StructuredSelection;
|
||||||
import org.eclipse.jface.viewers.TreeViewer;
|
import org.eclipse.jface.viewers.TreeViewer;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
|
import org.eclipse.swt.dnd.DND;
|
||||||
|
import org.eclipse.swt.dnd.Transfer;
|
||||||
import org.eclipse.swt.widgets.Composite;
|
import org.eclipse.swt.widgets.Composite;
|
||||||
import org.eclipse.swt.widgets.Control;
|
import org.eclipse.swt.widgets.Control;
|
||||||
import org.eclipse.swt.widgets.Menu;
|
import org.eclipse.swt.widgets.Menu;
|
||||||
|
@ -53,6 +61,7 @@ import org.eclipse.ui.part.IPageSite;
|
||||||
import org.eclipse.ui.part.Page;
|
import org.eclipse.ui.part.Page;
|
||||||
import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
|
import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
|
||||||
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
|
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
|
||||||
|
import org.eclipse.ui.views.navigator.LocalSelectionTransfer;
|
||||||
|
|
||||||
public class CContentOutlinePage extends Page implements IContentOutlinePage, ISelectionChangedListener {
|
public class CContentOutlinePage extends Page implements IContentOutlinePage, ISelectionChangedListener {
|
||||||
private CEditor fEditor;
|
private CEditor fEditor;
|
||||||
|
@ -236,7 +245,9 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
|
||||||
treeViewer.setLabelProvider(new DecoratingCLabelProvider(new StandardCElementLabelProvider(), true));
|
treeViewer.setLabelProvider(new DecoratingCLabelProvider(new StandardCElementLabelProvider(), true));
|
||||||
treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
|
treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
|
||||||
treeViewer.addSelectionChangedListener(this);
|
treeViewer.addSelectionChangedListener(this);
|
||||||
|
|
||||||
|
initDragAndDrop();
|
||||||
|
|
||||||
MenuManager manager= new MenuManager(fContextMenuId);
|
MenuManager manager= new MenuManager(fContextMenuId);
|
||||||
manager.setRemoveAllWhenShown(true);
|
manager.setRemoveAllWhenShown(true);
|
||||||
manager.addMenuListener(new IMenuListener() {
|
manager.addMenuListener(new IMenuListener() {
|
||||||
|
@ -430,5 +441,24 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
|
||||||
}
|
}
|
||||||
contentUpdated();
|
contentUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initDragAndDrop() {
|
||||||
|
int ops= DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
|
||||||
|
Transfer[] transfers= new Transfer[] {
|
||||||
|
LocalSelectionTransfer.getInstance()
|
||||||
|
};
|
||||||
|
|
||||||
|
// Drop Adapter
|
||||||
|
TransferDropTargetListener[] dropListeners= new TransferDropTargetListener[] {
|
||||||
|
new SelectionTransferDropAdapter(treeViewer)
|
||||||
|
};
|
||||||
|
treeViewer.addDropSupport(ops | DND.DROP_DEFAULT, transfers, new DelegatingDropAdapter(dropListeners));
|
||||||
|
|
||||||
|
// Drag Adapter
|
||||||
|
TransferDragSourceListener[] dragListeners= new TransferDragSourceListener[] {
|
||||||
|
new SelectionTransferDragAdapter(treeViewer)
|
||||||
|
};
|
||||||
|
treeViewer.addDragSupport(ops, transfers, new CDTViewerDragAdapter(treeViewer, dragListeners));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue