mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-23 00:45:28 +02:00
update make view to use make target provider
This commit is contained in:
parent
2bb372a867
commit
8043fd6640
5 changed files with 149 additions and 282 deletions
|
@ -44,7 +44,6 @@
|
|||
%MakeConversionWizard.description
|
||||
</description>
|
||||
</wizard>
|
||||
|
||||
<!-- For C++ Wizards -->
|
||||
<wizard
|
||||
name="%WizardNewCCMakeProject.name"
|
||||
|
@ -59,7 +58,7 @@
|
|||
</description>
|
||||
</wizard>
|
||||
<wizard
|
||||
name="%WizardConvertMakeWizard.name"
|
||||
name="%WizardConvertMakeProject.name"
|
||||
icon="icons/ctool16/convert-normal.gif"
|
||||
category="org.eclipse.cdt.ui.newCCWizards"
|
||||
class="org.eclipse.cdt.make.ui.wizards.ConvertToMakeProjectWizard"
|
||||
|
@ -70,7 +69,6 @@
|
|||
%MakeConversionWizard.description
|
||||
</description>
|
||||
</wizard>
|
||||
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.ui.popupMenus">
|
||||
|
@ -217,10 +215,11 @@
|
|||
<extension
|
||||
point="org.eclipse.ui.actionSets">
|
||||
<actionSet
|
||||
label="%ActionSetMake.label"
|
||||
id="org.eclipse.cdt.make.ui.actionSet1">
|
||||
label="%ActionUpdateActionSet.label"
|
||||
id="org.eclipse.cdt.make.ui.updateActionSet">
|
||||
<action
|
||||
label="org.eclipse.cdt.make.ui.action1"
|
||||
class="org.eclipse.cdt.make.ui.actions.UpdateMakeProjectAction"
|
||||
id="org.eclipse.cdt.make.ui.action1">
|
||||
</action>
|
||||
</actionSet>
|
||||
|
|
|
@ -7,23 +7,15 @@ package org.eclipse.cdt.make.ui.actions;
|
|||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.cdt.make.core.IMakeBuilderInfo;
|
||||
import org.eclipse.cdt.make.core.MakeBuilder;
|
||||
import org.eclipse.cdt.make.core.MakeCorePlugin;
|
||||
import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
|
||||
import org.eclipse.cdt.make.ui.views.MakeTarget;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IWorkspaceRunnable;
|
||||
import org.eclipse.core.resources.IncrementalProjectBuilder;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.OperationCanceledException;
|
||||
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
|
||||
import org.eclipse.jface.operation.IRunnableContext;
|
||||
import org.eclipse.jface.operation.IRunnableWithProgress;
|
||||
import org.eclipse.ui.IEditorInput;
|
||||
|
|
|
@ -5,35 +5,35 @@ package org.eclipse.cdt.make.ui.views;
|
|||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
import org.eclipse.cdt.make.core.IMakeTarget;
|
||||
import org.eclipse.cdt.make.core.IMakeTargetListener;
|
||||
import org.eclipse.cdt.make.core.IMakeTargetProvider;
|
||||
import org.eclipse.cdt.make.core.MakeTargetEvent;
|
||||
import org.eclipse.core.resources.IContainer;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.IResourceChangeEvent;
|
||||
import org.eclipse.core.resources.IResourceChangeListener;
|
||||
import org.eclipse.core.resources.IResourceDelta;
|
||||
import org.eclipse.core.resources.IWorkspace;
|
||||
import org.eclipse.core.resources.IWorkspaceRoot;
|
||||
import org.eclipse.jface.viewers.ITreeContentProvider;
|
||||
import org.eclipse.jface.viewers.Viewer;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
|
||||
public class MakeContentProvider implements ITreeContentProvider, IResourceChangeListener {
|
||||
|
||||
public class MakeContentProvider implements ITreeContentProvider, IMakeTargetListener {
|
||||
protected Viewer viewer;
|
||||
|
||||
/**
|
||||
* Constructor for MakeContentProvider
|
||||
*/
|
||||
public MakeContentProvider() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ITreeContentProvider#getChildren(Object)
|
||||
*/
|
||||
public Object[] getChildren(Object obj) {
|
||||
if (obj instanceof MakeTarget) {
|
||||
MakeTarget md = (MakeTarget)obj;
|
||||
return (Object[])md.getChildren();
|
||||
if (obj instanceof IContainer) {
|
||||
if (viewer != null) {
|
||||
Object input = viewer.getInput();
|
||||
if (input instanceof IMakeTargetProvider) {
|
||||
IMakeTargetProvider provider = (IMakeTargetProvider)obj;
|
||||
return provider.getTargets((IContainer)obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
return new Object[0];
|
||||
}
|
||||
|
@ -42,9 +42,10 @@ public class MakeContentProvider implements ITreeContentProvider, IResourceChang
|
|||
* @see ITreeContentProvider#getParent(Object)
|
||||
*/
|
||||
public Object getParent(Object obj) {
|
||||
if (obj instanceof MakeTarget) {
|
||||
MakeTarget directives = (MakeTarget)obj;
|
||||
return directives.getParent();
|
||||
if (obj instanceof IMakeTarget) {
|
||||
return ((IMakeTarget)obj).getContainer();
|
||||
} else if (obj instanceof IContainer) {
|
||||
return ((IContainer)obj).getParent();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -69,10 +70,10 @@ public class MakeContentProvider implements ITreeContentProvider, IResourceChang
|
|||
public void dispose() {
|
||||
if (viewer != null) {
|
||||
Object obj = viewer.getInput();
|
||||
if (obj instanceof MakeTarget) {
|
||||
MakeTarget target = (MakeTarget)obj;
|
||||
IWorkspace workspace = target.getResource().getWorkspace();
|
||||
workspace.removeResourceChangeListener(this);
|
||||
if (obj instanceof IMakeTargetProvider) {
|
||||
IMakeTargetProvider provider = (IMakeTargetProvider)obj;
|
||||
provider.removeListener(this);
|
||||
provider = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -83,86 +84,21 @@ public class MakeContentProvider implements ITreeContentProvider, IResourceChang
|
|||
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
|
||||
this.viewer = viewer;
|
||||
if (oldInput != null) {
|
||||
if (oldInput instanceof MakeTarget) {
|
||||
IResource res = ((MakeTarget)oldInput).getResource();
|
||||
if (res instanceof IWorkspaceRoot) {
|
||||
IWorkspace workspace = res.getWorkspace();
|
||||
workspace.removeResourceChangeListener(this);
|
||||
}
|
||||
if (oldInput instanceof IMakeTargetProvider) {
|
||||
((IMakeTargetProvider)oldInput).removeListener(this);
|
||||
}
|
||||
}
|
||||
if (newInput != null) {
|
||||
if (newInput instanceof MakeTarget) {
|
||||
IResource res = ((MakeTarget)newInput).getResource();
|
||||
if (res instanceof IWorkspaceRoot) {
|
||||
IWorkspace workspace = res.getWorkspace();
|
||||
workspace.addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);
|
||||
}
|
||||
if (newInput instanceof IMakeTargetProvider) {
|
||||
((IMakeTargetProvider)newInput).addListener(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void resourceChanged (final IResourceChangeEvent event) {
|
||||
final IResourceDelta deltas = event.getDelta();
|
||||
Control ctrl = viewer.getControl();
|
||||
if (ctrl != null && !ctrl.isDisposed()) {
|
||||
// Get the affected resource
|
||||
ctrl.getDisplay().syncExec(new Runnable() {
|
||||
public void run() {
|
||||
processDelta (deltas);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void processDelta (IResourceDelta delta) {
|
||||
// Bail out if the widget was disposed.
|
||||
Control ctrl = viewer.getControl();
|
||||
if (ctrl == null || ctrl.isDisposed()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (delta == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
int changeFlags = delta.getFlags();
|
||||
|
||||
IResourceDelta[] affectedChildren =
|
||||
delta.getAffectedChildren(IResourceDelta.CHANGED);
|
||||
|
||||
// Not interested in Content changes.
|
||||
for (int i = 0; i < affectedChildren.length; i++) {
|
||||
if ((affectedChildren[i].getFlags() & IResourceDelta.TYPE) != 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// handle open and closing.
|
||||
if ((changeFlags & (IResourceDelta.OPEN | IResourceDelta.SYNC)) != 0) {
|
||||
ctrl.setRedraw(false);
|
||||
viewer.refresh();
|
||||
ctrl.setRedraw(true);
|
||||
return;
|
||||
}
|
||||
|
||||
// Handle changed children recursively.
|
||||
for (int i = 0; i < affectedChildren.length; i++) {
|
||||
processDelta(affectedChildren[i]);
|
||||
}
|
||||
|
||||
// We are only interested in creation and deletion of folders.
|
||||
affectedChildren = delta.getAffectedChildren(IResourceDelta.REMOVED | IResourceDelta.ADDED);
|
||||
if (affectedChildren.length > 0) {
|
||||
for (int i = 0; i < affectedChildren.length; i++) {
|
||||
IResource r = affectedChildren[i].getResource();
|
||||
if (r instanceof IContainer) {
|
||||
ctrl.setRedraw(false);
|
||||
viewer.refresh();
|
||||
ctrl.setRedraw(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.make.core.IMakeTargetListener#targetChanged(org.eclipse.cdt.make.core.MakeTargetEvent)
|
||||
*/
|
||||
public void targetChanged(MakeTargetEvent event) {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,38 +5,23 @@ package org.eclipse.cdt.make.ui.views;
|
|||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
import java.util.Hashtable;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.jface.resource.ImageDescriptor;
|
||||
import org.eclipse.jface.viewers.ILabelProvider;
|
||||
import org.eclipse.jface.viewers.ILabelProviderListener;
|
||||
import org.eclipse.cdt.make.core.IMakeTarget;
|
||||
import org.eclipse.core.resources.IContainer;
|
||||
import org.eclipse.jface.viewers.LabelProvider;
|
||||
import org.eclipse.swt.graphics.Image;
|
||||
import org.eclipse.ui.ISharedImages;
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
|
||||
public class MakeLabelProvider implements ILabelProvider {
|
||||
|
||||
/**
|
||||
* The cache of images that have been dispensed by this provider.
|
||||
* Maps ImageDescriptor->Image.
|
||||
*/
|
||||
private Map imageTable = null;
|
||||
public class MakeLabelProvider extends LabelProvider {
|
||||
|
||||
/**
|
||||
* @see ILabelProvider#getImage(Object)
|
||||
*/
|
||||
public Image getImage(Object obj) {
|
||||
Image image = null;
|
||||
//obtain the cached image corresponding to the descriptor
|
||||
if (imageTable == null) {
|
||||
imageTable = new Hashtable(4);
|
||||
}
|
||||
if (obj instanceof MakeTarget) {
|
||||
ImageDescriptor descriptor = ((MakeTarget)obj).getImageDescriptor();
|
||||
image = (Image) imageTable.get(descriptor);
|
||||
if (image == null) {
|
||||
image = descriptor.createImage();
|
||||
imageTable.put(descriptor, image);
|
||||
}
|
||||
if (obj instanceof IMakeTarget) {
|
||||
} else if (obj instanceof IContainer) {
|
||||
return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
|
||||
}
|
||||
return image;
|
||||
}
|
||||
|
@ -46,33 +31,10 @@ public class MakeLabelProvider implements ILabelProvider {
|
|||
*/
|
||||
public String getText(Object obj) {
|
||||
if (obj instanceof MakeTarget) {
|
||||
return ((MakeTarget)obj).toString();
|
||||
return ((IMakeTarget)obj).getName();
|
||||
} else if (obj instanceof IContainer) {
|
||||
return ((IContainer)obj).getName();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* @see IBaseLabelProvider#addListener(ILabelProviderListener)
|
||||
*/
|
||||
public void addListener(ILabelProviderListener arg0) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see IBaseLabelProvider#dispose()
|
||||
*/
|
||||
public void dispose() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see IBaseLabelProvider#isLabelProperty(Object, String)
|
||||
*/
|
||||
public boolean isLabelProperty(Object arg0, String arg1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see IBaseLabelProvider#removeListener(ILabelProviderListener)
|
||||
*/
|
||||
public void removeListener(ILabelProviderListener arg0) {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,27 +5,31 @@ package org.eclipse.cdt.make.ui.views;
|
|||
* All Rights Reserved.
|
||||
*/
|
||||
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.jface.action.Action;
|
||||
import org.eclipse.cdt.make.core.MakeCorePlugin;
|
||||
import org.eclipse.jface.action.IMenuListener;
|
||||
import org.eclipse.jface.action.IMenuManager;
|
||||
import org.eclipse.jface.action.IToolBarManager;
|
||||
import org.eclipse.jface.action.MenuManager;
|
||||
import org.eclipse.jface.dialogs.InputDialog;
|
||||
import org.eclipse.jface.action.Separator;
|
||||
import org.eclipse.jface.viewers.DoubleClickEvent;
|
||||
import org.eclipse.jface.viewers.IDoubleClickListener;
|
||||
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.KeyAdapter;
|
||||
import org.eclipse.swt.events.KeyEvent;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Menu;
|
||||
import org.eclipse.ui.IActionBars;
|
||||
import org.eclipse.ui.part.DrillDownAdapter;
|
||||
import org.eclipse.ui.part.ViewPart;
|
||||
|
||||
public class MakeView extends ViewPart {
|
||||
|
||||
|
||||
TreeViewer viewer;
|
||||
DrillDownAdapter drillDownAdapter;
|
||||
|
||||
public MakeView() {
|
||||
super();
|
||||
|
@ -39,9 +43,92 @@ public class MakeView extends ViewPart {
|
|||
}
|
||||
|
||||
/**
|
||||
* Handles double clicks in viewer.
|
||||
* Opens editor if file double-clicked.
|
||||
* @see ContentOutlinePage#createControl
|
||||
*/
|
||||
public void createPartControl(Composite parent) {
|
||||
viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
|
||||
viewer.setUseHashlookup(true);
|
||||
viewer.setContentProvider(new MakeContentProvider());
|
||||
viewer.setLabelProvider(new MakeLabelProvider());
|
||||
|
||||
drillDownAdapter = new DrillDownAdapter(viewer);
|
||||
|
||||
viewer.addDoubleClickListener(new IDoubleClickListener() {
|
||||
public void doubleClick(DoubleClickEvent event) {
|
||||
handleDoubleClick(event);
|
||||
}
|
||||
});
|
||||
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
|
||||
public void selectionChanged(SelectionChangedEvent event) {
|
||||
handleSelectionChanged(event);
|
||||
}
|
||||
});
|
||||
viewer.getControl().addKeyListener(new KeyAdapter() {
|
||||
public void keyPressed(KeyEvent event) {
|
||||
if (event.character == SWT.DEL && event.stateMask == 0) {
|
||||
handleDeleteKeyPressed();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
viewer.setContentProvider(new MakeContentProvider());
|
||||
viewer.setLabelProvider(new MakeLabelProvider());
|
||||
viewer.setInput(MakeCorePlugin.getDefault().getTargetProvider());
|
||||
getSite().setSelectionProvider(viewer);
|
||||
|
||||
makeActions();
|
||||
hookContextMenu();
|
||||
contributeToActionBars();
|
||||
}
|
||||
|
||||
private void makeActions() {
|
||||
// dinglis-TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
private void contributeToActionBars() {
|
||||
IActionBars bars = getViewSite().getActionBars();
|
||||
fillLocalPullDown(bars.getMenuManager());
|
||||
fillLocalToolBar(bars.getToolBarManager());
|
||||
}
|
||||
|
||||
private void fillLocalToolBar(IToolBarManager toolBar) {
|
||||
drillDownAdapter.addNavigationActions(toolBar);
|
||||
}
|
||||
|
||||
private void fillLocalPullDown(IMenuManager manager) {
|
||||
}
|
||||
|
||||
|
||||
private void hookContextMenu() {
|
||||
MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
|
||||
menuMgr.setRemoveAllWhenShown(true);
|
||||
menuMgr.addMenuListener(new IMenuListener() {
|
||||
public void menuAboutToShow(IMenuManager manager) {
|
||||
MakeView.this.fillContextMenu(manager);
|
||||
updateActions((IStructuredSelection) viewer.getSelection());
|
||||
}
|
||||
});
|
||||
Menu menu = menuMgr.createContextMenu(viewer.getControl());
|
||||
viewer.getControl().setMenu(menu);
|
||||
getSite().registerContextMenu(menuMgr, viewer);
|
||||
}
|
||||
|
||||
|
||||
protected void fillContextMenu(IMenuManager manager) {
|
||||
// manager.add(deleteAction);
|
||||
// manager.add(renameAction);
|
||||
manager.add(new Separator());
|
||||
drillDownAdapter.addNavigationActions(manager);
|
||||
// Other plug-ins can contribute there actions here
|
||||
manager.add(new Separator("Additions"));
|
||||
}
|
||||
|
||||
protected void handleDeleteKeyPressed() {
|
||||
// dinglis-TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected void handleDoubleClick(DoubleClickEvent event) {
|
||||
IStructuredSelection s = (IStructuredSelection) event.getSelection();
|
||||
Object element = s.getFirstElement();
|
||||
|
@ -56,126 +143,17 @@ public class MakeView extends ViewPart {
|
|||
//}
|
||||
}
|
||||
|
||||
/**
|
||||
* called to create the context menu of the outline
|
||||
*/
|
||||
protected void contextMenuAboutToShow(IMenuManager menu) {
|
||||
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
|
||||
Object element = selection.getFirstElement();
|
||||
if (element instanceof MakeTarget) {
|
||||
final MakeTarget ta = (MakeTarget) element;
|
||||
Action add = new Action("Add...") {
|
||||
public void run() {
|
||||
InputDialog dialog =
|
||||
new InputDialog(getViewSite().getShell(), "Target Dialog: ", "Enter Target(s): ", null, null);
|
||||
dialog.open();
|
||||
String value = dialog.getValue();
|
||||
if (value != null && value.length() > 0) {
|
||||
// IResource res = ta.getResource();
|
||||
// MakeUtil.addPersistentTarget(res, value);
|
||||
viewer.getControl().setRedraw(false);
|
||||
viewer.refresh();
|
||||
viewer.getControl().setRedraw(true);
|
||||
viewer.expandToLevel(ta, 2);
|
||||
}
|
||||
}
|
||||
};
|
||||
Action edit = new Action("Edit...") {
|
||||
public void run() {
|
||||
String oldtarget = ta.toString();
|
||||
InputDialog dialog =
|
||||
new InputDialog(getViewSite().getShell(), "Target Dialog: ", "Enter Target(s): ", oldtarget, null);
|
||||
dialog.open();
|
||||
String value = dialog.getValue();
|
||||
if (value != null && value.length() > 0 && !value.equals(oldtarget)) {
|
||||
// IResource res = ta.getResource();
|
||||
// MakeUtil.replacePersistentTarget(res, oldtarget, value);
|
||||
viewer.getControl().setRedraw(false);
|
||||
viewer.refresh();
|
||||
viewer.getControl().setRedraw(true);
|
||||
viewer.expandToLevel(ta, 2);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Action del = new Action("Delete") {
|
||||
public void run() {
|
||||
String target = ta.toString();
|
||||
if (target != null) {
|
||||
// IResource res = ta.getResource();
|
||||
// MakeUtil.removePersistentTarget(res, target);
|
||||
viewer.getControl().setRedraw(false);
|
||||
viewer.refresh();
|
||||
viewer.getControl().setRedraw(true);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Action build = new MakeBuildAction(new MakeTarget[] { ta }, getViewSite().getShell(), "Build");
|
||||
|
||||
menu.add(add);
|
||||
menu.add(edit);
|
||||
menu.add(del);
|
||||
//menu.add (new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
|
||||
// menu.add(build);
|
||||
if (ta.isLeaf()) {
|
||||
add.setEnabled(false);
|
||||
} else {
|
||||
edit.setEnabled(false);
|
||||
del.setEnabled(false);
|
||||
}
|
||||
}
|
||||
//menu.add (new Separator(IWorkbenchActionConstants.MB_ADDITIONS+"-end"));
|
||||
void handleSelectionChanged(SelectionChangedEvent event) {
|
||||
IStructuredSelection sel = (IStructuredSelection) event.getSelection();
|
||||
// updateStatusLine(sel);
|
||||
updateActions(sel);
|
||||
}
|
||||
|
||||
void updateActions(IStructuredSelection sel) {
|
||||
// deleteAction.selectionChanged(sel);
|
||||
// renameAction.selectionChanged(sel);
|
||||
}
|
||||
|
||||
private void contributeToActionBars() {
|
||||
IActionBars bars = getViewSite().getActionBars();
|
||||
// fillLocalPullDown(bars.getMenuManager());
|
||||
fillLocalToolBar(bars.getToolBarManager());
|
||||
}
|
||||
|
||||
private void fillLocalToolBar(IToolBarManager toolBar) {
|
||||
Action refreshAllAction = new Action("Refresh") {
|
||||
public void run() {
|
||||
viewer.refresh();
|
||||
}
|
||||
|
||||
};
|
||||
toolBar.add(refreshAllAction);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ContentOutlinePage#createControl
|
||||
*/
|
||||
public void createPartControl(Composite parent) {
|
||||
|
||||
viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
|
||||
viewer.setUseHashlookup(true);
|
||||
viewer.setContentProvider(new MakeContentProvider());
|
||||
viewer.setLabelProvider(new MakeLabelProvider());
|
||||
|
||||
MenuManager manager = new MenuManager("#PopUp");
|
||||
manager.setRemoveAllWhenShown(true);
|
||||
manager.addMenuListener(new IMenuListener() {
|
||||
public void menuAboutToShow(IMenuManager manager) {
|
||||
contextMenuAboutToShow(manager);
|
||||
}
|
||||
});
|
||||
|
||||
Control control = viewer.getControl();
|
||||
Menu menu = manager.createContextMenu(control);
|
||||
control.setMenu(menu);
|
||||
|
||||
viewer.setInput(new MakeTarget(ResourcesPlugin.getWorkspace().getRoot()));
|
||||
|
||||
viewer.addDoubleClickListener(new IDoubleClickListener() {
|
||||
public void doubleClick(DoubleClickEvent event) {
|
||||
handleDoubleClick(event);
|
||||
}
|
||||
});
|
||||
|
||||
contributeToActionBars();
|
||||
|
||||
getSite().setSelectionProvider(viewer);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue