1
0
Fork 0
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:
Alain Magloire 2005-01-27 03:41:50 +00:00
parent a03bc42e1a
commit e6868902c5
4 changed files with 66 additions and 12 deletions

View file

@ -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

View file

@ -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{

View file

@ -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);
}

View file

@ -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;
@ -236,7 +245,9 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
treeViewer.setLabelProvider(new DecoratingCLabelProvider(new StandardCElementLabelProvider(), true));
treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
treeViewer.addSelectionChangedListener(this);
initDragAndDrop();
MenuManager manager= new MenuManager(fContextMenuId);
manager.setRemoveAllWhenShown(true);
manager.addMenuListener(new IMenuListener() {
@ -430,5 +441,24 @@ 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));
}
}