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
|
||||
Part of implementing PR 83112
|
||||
* 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.IParent;
|
||||
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.IStructure;
|
||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||
|
@ -148,13 +149,20 @@ public class RenameElementProcessor extends RenameProcessor implements IReferenc
|
|||
}
|
||||
|
||||
private int getCurrentElementNameStartPos() {
|
||||
if(fCElement == null)
|
||||
if (fCElement == null)
|
||||
return 0;
|
||||
String name = fCElement.getElementName();
|
||||
if (name.indexOf(QUALIFIER) != -1){
|
||||
return (((CElement)fCElement).getIdStartPos() + name.lastIndexOf(QUALIFIER) + 2);
|
||||
try {
|
||||
String name = fCElement.getElementName();
|
||||
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{
|
||||
|
|
|
@ -11,9 +11,11 @@
|
|||
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.ISourceRange;
|
||||
import org.eclipse.cdt.core.model.ISourceReference;
|
||||
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.ui.actions.SelectionConverter;
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
|
@ -68,10 +70,17 @@ public class RenameRefactoringAction extends SelectionDispatchAction {
|
|||
setEnabled(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if( (((CElement)element).getIdStartPos() != textSelection.getOffset())
|
||||
|| (((CElement)element).getIdLength() != textSelection.getLength())) {
|
||||
enable = false;
|
||||
if (element instanceof ISourceReference) {
|
||||
try {
|
||||
ISourceReference sourceRef = (ISourceReference)element;
|
||||
ISourceRange range = sourceRef.getSourceRange();
|
||||
if( (range.getIdStartPos() != textSelection.getOffset())
|
||||
|| (range.getIdLength() != textSelection.getLength())) {
|
||||
enable = false;
|
||||
}
|
||||
} catch (CModelException e) {
|
||||
//
|
||||
}
|
||||
}
|
||||
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.actions.AbstractToggleLinkingAction;
|
||||
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.util.ProblemTreeViewer;
|
||||
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.TreeViewer;
|
||||
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.Control;
|
||||
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.texteditor.ITextEditorActionDefinitionIds;
|
||||
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
|
||||
import org.eclipse.ui.views.navigator.LocalSelectionTransfer;
|
||||
|
||||
public class CContentOutlinePage extends Page implements IContentOutlinePage, ISelectionChangedListener {
|
||||
private CEditor fEditor;
|
||||
|
@ -237,6 +246,8 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
|
|||
treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
|
||||
treeViewer.addSelectionChangedListener(this);
|
||||
|
||||
initDragAndDrop();
|
||||
|
||||
MenuManager manager= new MenuManager(fContextMenuId);
|
||||
manager.setRemoveAllWhenShown(true);
|
||||
manager.addMenuListener(new IMenuListener() {
|
||||
|
@ -431,4 +442,23 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
|
|||
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