mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
removal of old make ui componets (wizards/views/actions/properties)
This commit is contained in:
parent
79d4dd460c
commit
5d90b3e85b
20 changed files with 100 additions and 2240 deletions
|
@ -1,3 +1,34 @@
|
||||||
|
2003-09-16 David Inglis
|
||||||
|
Removal of make builder ui components.
|
||||||
|
|
||||||
|
plugin.xml
|
||||||
|
removed wizards and views.
|
||||||
|
|
||||||
|
* src/org/eclipse/cdt/internal/ui/cview/CView.java
|
||||||
|
removed build actions.
|
||||||
|
|
||||||
|
* src/org/eclipse/cdt/internal/ui/preferences/CProjectPropertyPage.java
|
||||||
|
removed tabs that are now in make plugin.
|
||||||
|
|
||||||
|
* src/org/eclipse/cdt/ui/wizards/conversion/ConversionWizard.java
|
||||||
|
* src/org/eclipse/cdt/ui/wizards/conversion/ConvertProjectWizardPage.java
|
||||||
|
updated to use new c wizards.
|
||||||
|
|
||||||
|
* src/org/eclipse/cdt/internal/ui/makeview/MakeAction.java
|
||||||
|
* src/org/eclipse/cdt/internal/ui/makeview/MakeContentProvider.java
|
||||||
|
* src/org/eclipse/cdt/internal/ui/makeview/MakeLabelProvider.java
|
||||||
|
* src/org/eclipse/cdt/internal/ui/makeview/MakeTarget.java
|
||||||
|
* src/org/eclipse/cdt/internal/ui/makeview/MakeTargetAction.java
|
||||||
|
* src/org/eclipse/cdt/internal/ui/makeview/MakeView.java
|
||||||
|
* src/org/eclipse/cdt/ui/wizards/conversion/ConvertToStdMakeConversionWizard.java
|
||||||
|
* src/org/eclipse/cdt/ui/wizards/conversion/ConvertToStdMakeProjectWizardPage.java
|
||||||
|
* src/org/eclipse/cdt/ui/wizards/BuildPathInfoBlock.java
|
||||||
|
* src/org/eclipse/cdt/ui/wizards/SettingsBlock.java
|
||||||
|
* src/org/eclipse/cdt/ui/wizards/StdCCWizard.java
|
||||||
|
* src/org/eclipse/cdt/ui/wizards/StdCWizard.java
|
||||||
|
* src/org/eclipse/cdt/ui/wizards/StdMakeProjectWizard.java
|
||||||
|
All removed now in make plugins.
|
||||||
|
|
||||||
2003-09-15 John Camelon
|
2003-09-15 John Camelon
|
||||||
Fixed Bug 43126 : ISourceElementRequestor.acceptParameterReference accesses internal class
|
Fixed Bug 43126 : ISourceElementRequestor.acceptParameterReference accesses internal class
|
||||||
|
|
||||||
|
|
|
@ -11,27 +11,18 @@ perspective.name=C/C++ Development
|
||||||
viewsCategory.name=&C
|
viewsCategory.name=&C
|
||||||
BuildConsoleView.name=C-Build
|
BuildConsoleView.name=C-Build
|
||||||
CView.name=C/C++ Projects
|
CView.name=C/C++ Projects
|
||||||
MakeView.name=Make Targets
|
|
||||||
|
|
||||||
# The Wizards
|
# The Wizards
|
||||||
# C
|
# C
|
||||||
newCWizardsCategory.name=C
|
newCWizardsCategory.name=C
|
||||||
StdCWizard.name=Standard Make C Project
|
|
||||||
StdCWizard.description=Create a new C project and let me create and manage the makefile
|
|
||||||
|
|
||||||
# C++
|
# C++
|
||||||
newCCWizardsCategory.name=C++
|
newCCWizardsCategory.name=C++
|
||||||
StdCCWizard.name=Standard Make C++ Project
|
|
||||||
StdCCWizard.description=Create a new C++ project and let me create and manage the makefile
|
|
||||||
|
|
||||||
#Project Conversion
|
#Project Conversion
|
||||||
ConversionWizard.name=Convert a project's nature
|
ConversionWizard.name=Convert a project's nature
|
||||||
ConversionWizard.description=Convert a project's nature
|
ConversionWizard.description=Convert a project's nature
|
||||||
|
|
||||||
#Convert Standard Make C/C++
|
|
||||||
StdMakeConversionWizard.name=Convert to a C or C++ Project
|
|
||||||
StdMakeConversionWizard.description=Convert a project's nature to C or C++
|
|
||||||
|
|
||||||
NewWizards.folder = Folder
|
NewWizards.folder = Folder
|
||||||
NewWizards.folder.description = Create a new folder resource
|
NewWizards.folder.description = Create a new folder resource
|
||||||
NewWizards.file = File
|
NewWizards.file = File
|
||||||
|
|
|
@ -129,13 +129,6 @@
|
||||||
class="org.eclipse.cdt.internal.ui.cview.CView"
|
class="org.eclipse.cdt.internal.ui.cview.CView"
|
||||||
id="org.eclipse.cdt.ui.CView">
|
id="org.eclipse.cdt.ui.CView">
|
||||||
</view>
|
</view>
|
||||||
<view
|
|
||||||
name="%MakeView.name"
|
|
||||||
icon="icons/full/obj16/build_menu.gif"
|
|
||||||
category="org.eclipse.cdt.ui.views"
|
|
||||||
class="org.eclipse.cdt.internal.ui.makeview.MakeView"
|
|
||||||
id="org.eclipse.cdt.ui.MakeView">
|
|
||||||
</view>
|
|
||||||
</extension>
|
</extension>
|
||||||
<!-- The wizards -->
|
<!-- The wizards -->
|
||||||
<!-- For C Wizards -->
|
<!-- For C Wizards -->
|
||||||
|
@ -145,61 +138,11 @@
|
||||||
name="%newCWizardsCategory.name"
|
name="%newCWizardsCategory.name"
|
||||||
id="org.eclipse.cdt.ui.newCWizards">
|
id="org.eclipse.cdt.ui.newCWizards">
|
||||||
</category>
|
</category>
|
||||||
<wizard
|
|
||||||
name="%StdCWizard.name"
|
|
||||||
icon="icons/full/ctool16/newc_app.gif"
|
|
||||||
category="org.eclipse.cdt.ui.newCWizards"
|
|
||||||
class="org.eclipse.cdt.ui.wizards.StdCWizard"
|
|
||||||
project="true"
|
|
||||||
finalPerspective="org.eclipse.cdt.ui.CPerspective"
|
|
||||||
id="org.eclipse.cdt.ui.wizards.StdCWizard">
|
|
||||||
<description>
|
|
||||||
%StdCWizard.description
|
|
||||||
</description>
|
|
||||||
</wizard>
|
|
||||||
<!-- For C Conversion Wizard -->
|
|
||||||
<wizard
|
|
||||||
name="%StdMakeConversionWizard.name"
|
|
||||||
icon="icons/full/ctool16/convert-normal.gif"
|
|
||||||
category="org.eclipse.cdt.ui.newCWizards"
|
|
||||||
class="org.eclipse.cdt.ui.wizards.conversion.ConvertToStdMakeConversionWizard"
|
|
||||||
project="true"
|
|
||||||
finalPerspective="org.eclipse.cdt.ui.CPerspective"
|
|
||||||
id="org.eclipse.cdt.ui.wizards.ConvertToStdMakeConversionWizard">
|
|
||||||
<description>
|
|
||||||
%StdMakeConversionWizard.description
|
|
||||||
</description>
|
|
||||||
</wizard>
|
|
||||||
<!-- For C++ Wizards -->
|
<!-- For C++ Wizards -->
|
||||||
<category
|
<category
|
||||||
name="%newCCWizardsCategory.name"
|
name="%newCCWizardsCategory.name"
|
||||||
id="org.eclipse.cdt.ui.newCCWizards">
|
id="org.eclipse.cdt.ui.newCCWizards">
|
||||||
</category>
|
</category>
|
||||||
<wizard
|
|
||||||
name="%StdCCWizard.name"
|
|
||||||
icon="icons/full/ctool16/newcc_app.gif"
|
|
||||||
category="org.eclipse.cdt.ui.newCCWizards"
|
|
||||||
class="org.eclipse.cdt.ui.wizards.StdCCWizard"
|
|
||||||
project="true"
|
|
||||||
finalPerspective="org.eclipse.cdt.ui.CPerspective"
|
|
||||||
id="org.eclipse.cdt.ui.wizards.StdCCWizard">
|
|
||||||
<description>
|
|
||||||
%StdCCWizard.description
|
|
||||||
</description>
|
|
||||||
</wizard>
|
|
||||||
<!-- For C++ Conversion Wizard -->
|
|
||||||
<wizard
|
|
||||||
name="%StdMakeConversionWizard.name"
|
|
||||||
icon="icons/full/ctool16/convert-normal.gif"
|
|
||||||
category="org.eclipse.cdt.ui.newCCWizards"
|
|
||||||
class="org.eclipse.cdt.ui.wizards.conversion.ConvertToStdMakeConversionWizard"
|
|
||||||
project="true"
|
|
||||||
finalPerspective="org.eclipse.cdt.ui.CPerspective"
|
|
||||||
id="org.eclipse.cdt.ui.wizards.ConvertToStdMakeConversionWizard">
|
|
||||||
<description>
|
|
||||||
%StdMakeConversionWizard.description
|
|
||||||
</description>
|
|
||||||
</wizard>
|
|
||||||
<!-- File and Folder Wizards -->
|
<!-- File and Folder Wizards -->
|
||||||
<wizard
|
<wizard
|
||||||
name="%NewWizards.folder"
|
name="%NewWizards.folder"
|
||||||
|
|
|
@ -20,7 +20,6 @@ import org.eclipse.cdt.core.model.ICProject;
|
||||||
import org.eclipse.cdt.core.model.IParent;
|
import org.eclipse.cdt.core.model.IParent;
|
||||||
import org.eclipse.cdt.core.model.ISourceReference;
|
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.core.resources.MakeUtil;
|
|
||||||
import org.eclipse.cdt.internal.core.model.CProject;
|
import org.eclipse.cdt.internal.core.model.CProject;
|
||||||
import org.eclipse.cdt.internal.core.model.TranslationUnit;
|
import org.eclipse.cdt.internal.core.model.TranslationUnit;
|
||||||
import org.eclipse.cdt.internal.ui.IContextMenuConstants;
|
import org.eclipse.cdt.internal.ui.IContextMenuConstants;
|
||||||
|
@ -29,9 +28,6 @@ import org.eclipse.cdt.internal.ui.editor.FileSearchAction;
|
||||||
import org.eclipse.cdt.internal.ui.editor.FileSearchActionInWorkingSet;
|
import org.eclipse.cdt.internal.ui.editor.FileSearchActionInWorkingSet;
|
||||||
import org.eclipse.cdt.internal.ui.editor.OpenIncludeAction;
|
import org.eclipse.cdt.internal.ui.editor.OpenIncludeAction;
|
||||||
import org.eclipse.cdt.internal.ui.editor.SearchDialogAction;
|
import org.eclipse.cdt.internal.ui.editor.SearchDialogAction;
|
||||||
import org.eclipse.cdt.internal.ui.makeview.MakeAction;
|
|
||||||
import org.eclipse.cdt.internal.ui.makeview.MakeTarget;
|
|
||||||
import org.eclipse.cdt.internal.ui.makeview.MakeTargetAction;
|
|
||||||
import org.eclipse.cdt.internal.ui.preferences.CPluginPreferencePage;
|
import org.eclipse.cdt.internal.ui.preferences.CPluginPreferencePage;
|
||||||
import org.eclipse.cdt.internal.ui.util.EditorUtility;
|
import org.eclipse.cdt.internal.ui.util.EditorUtility;
|
||||||
import org.eclipse.cdt.internal.ui.util.ProblemTreeViewer;
|
import org.eclipse.cdt.internal.ui.util.ProblemTreeViewer;
|
||||||
|
@ -140,7 +136,6 @@ public class CView extends ViewPart implements IMenuListener, ISetSelectionTarge
|
||||||
AddBookmarkAction addBookmarkAction;
|
AddBookmarkAction addBookmarkAction;
|
||||||
//BuildAction buildAction;
|
//BuildAction buildAction;
|
||||||
//BuildAction rebuildAction;
|
//BuildAction rebuildAction;
|
||||||
MakeTargetAction makeTargetAction;
|
|
||||||
CopyResourceAction copyResourceAction;
|
CopyResourceAction copyResourceAction;
|
||||||
DeleteResourceAction deleteResourceAction;
|
DeleteResourceAction deleteResourceAction;
|
||||||
OpenFileAction openFileAction;
|
OpenFileAction openFileAction;
|
||||||
|
@ -594,7 +589,6 @@ public class CView extends ViewPart implements IMenuListener, ISetSelectionTarge
|
||||||
refreshAction = new RefreshAction(shell);
|
refreshAction = new RefreshAction(shell);
|
||||||
buildAction = new BuildAction(shell, IncrementalProjectBuilder.INCREMENTAL_BUILD);
|
buildAction = new BuildAction(shell, IncrementalProjectBuilder.INCREMENTAL_BUILD);
|
||||||
rebuildAction = new BuildAction(shell, IncrementalProjectBuilder.FULL_BUILD);
|
rebuildAction = new BuildAction(shell, IncrementalProjectBuilder.FULL_BUILD);
|
||||||
makeTargetAction = new MakeTargetAction(shell);
|
|
||||||
moveResourceAction = new MoveResourceAction (shell);
|
moveResourceAction = new MoveResourceAction (shell);
|
||||||
copyResourceAction = new CopyResourceAction(shell);
|
copyResourceAction = new CopyResourceAction(shell);
|
||||||
renameResourceAction = new RenameResourceAction(shell, viewer.getTree());
|
renameResourceAction = new RenameResourceAction(shell, viewer.getTree());
|
||||||
|
@ -660,7 +654,6 @@ public class CView extends ViewPart implements IMenuListener, ISetSelectionTarge
|
||||||
* E.g. A project was opened or closed.
|
* E.g. A project was opened or closed.
|
||||||
*/
|
*/
|
||||||
void updateActions(IStructuredSelection selection) {
|
void updateActions(IStructuredSelection selection) {
|
||||||
makeTargetAction.selectionChanged(selection);
|
|
||||||
copyResourceAction.selectionChanged(selection);
|
copyResourceAction.selectionChanged(selection);
|
||||||
refreshAction.selectionChanged(selection);
|
refreshAction.selectionChanged(selection);
|
||||||
moveResourceAction.selectionChanged(selection);
|
moveResourceAction.selectionChanged(selection);
|
||||||
|
@ -775,7 +768,7 @@ public class CView extends ViewPart implements IMenuListener, ISetSelectionTarge
|
||||||
|
|
||||||
newMenu.add(goIntoAction);
|
newMenu.add(goIntoAction);
|
||||||
|
|
||||||
NewWizardMenu newWizMenu = new NewWizardMenu(newMenu, getSite().getWorkbenchWindow(), false);
|
new NewWizardMenu(newMenu, getSite().getWorkbenchWindow(), false);
|
||||||
|
|
||||||
menu.add(newMenu);
|
menu.add(newMenu);
|
||||||
|
|
||||||
|
@ -830,32 +823,6 @@ public class CView extends ViewPart implements IMenuListener, ISetSelectionTarge
|
||||||
//menu.add(buildAction);
|
//menu.add(buildAction);
|
||||||
//}
|
//}
|
||||||
//}
|
//}
|
||||||
boolean isContainer = (resource instanceof IContainer);
|
|
||||||
if (isContainer) {
|
|
||||||
MakeTarget[] aBuild = new MakeTarget[1];
|
|
||||||
aBuild[0] = new MakeTarget(resource, "all");
|
|
||||||
menu.add(new MakeAction(aBuild, getViewSite().getShell(), "Build"));
|
|
||||||
|
|
||||||
MakeTarget[] aReBuild = new MakeTarget[1];
|
|
||||||
aReBuild[0] = new MakeTarget(resource, "clean all");
|
|
||||||
menu.add(new MakeAction(aReBuild, getViewSite().getShell(), "Rebuild"));
|
|
||||||
MakeTarget[] aClean = new MakeTarget[1];
|
|
||||||
aClean[0] = new MakeTarget(resource, "clean");
|
|
||||||
menu.add(new MakeAction(aClean, getViewSite().getShell(), "Clean"));
|
|
||||||
|
|
||||||
MenuManager submenu= new MenuManager("Make");
|
|
||||||
String [] directives = MakeUtil.getPersistentTargets(resource);
|
|
||||||
if (directives.length > 0) {
|
|
||||||
for (int i = 0; i < directives.length; i++) {
|
|
||||||
MakeTarget[] a = new MakeTarget[1];
|
|
||||||
a[0] = new MakeTarget(resource, directives[i]);
|
|
||||||
submenu.add(new MakeAction(a, getViewSite().getShell(), directives[i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
menu.add(submenu);
|
|
||||||
|
|
||||||
menu.add(makeTargetAction);
|
|
||||||
}
|
|
||||||
menu.add(new GroupMarker(BUILD_GROUP_MARKER_END));
|
menu.add(new GroupMarker(BUILD_GROUP_MARKER_END));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,124 +0,0 @@
|
||||||
package org.eclipse.cdt.internal.ui.makeview;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.eclipse.core.resources.IFile;
|
|
||||||
import org.eclipse.core.resources.IProject;
|
|
||||||
import org.eclipse.core.resources.IResource;
|
|
||||||
import org.eclipse.core.resources.IncrementalProjectBuilder;
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
|
||||||
import org.eclipse.jface.action.Action;
|
|
||||||
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
|
|
||||||
import org.eclipse.jface.operation.IRunnableWithProgress;
|
|
||||||
import org.eclipse.swt.widgets.Shell;
|
|
||||||
import org.eclipse.ui.IEditorInput;
|
|
||||||
import org.eclipse.ui.IEditorPart;
|
|
||||||
import org.eclipse.ui.IEditorReference;
|
|
||||||
import org.eclipse.ui.IFileEditorInput;
|
|
||||||
import org.eclipse.ui.IWorkbenchPage;
|
|
||||||
import org.eclipse.ui.IWorkbenchWindow;
|
|
||||||
import org.eclipse.ui.PlatformUI;
|
|
||||||
import org.eclipse.ui.actions.BuildAction;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.core.resources.MakeUtil;
|
|
||||||
import org.eclipse.cdt.internal.ui.CPluginImages;
|
|
||||||
|
|
||||||
|
|
||||||
public class MakeAction extends Action {
|
|
||||||
static final String PREFIX = "BuildAction.";
|
|
||||||
|
|
||||||
MakeTarget[] targets;
|
|
||||||
Shell shell;
|
|
||||||
|
|
||||||
public MakeAction (MakeTarget[] targets, Shell shell, String s) {
|
|
||||||
super (s);
|
|
||||||
this.shell = shell;
|
|
||||||
this.targets = targets;
|
|
||||||
|
|
||||||
setToolTipText(PREFIX);
|
|
||||||
setImageDescriptor(CPluginImages.DESC_BUILD_MENU);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Causes all editors to save any modified resources depending on the user's
|
|
||||||
* preference.
|
|
||||||
*/
|
|
||||||
void saveAllResources() {
|
|
||||||
|
|
||||||
if (!BuildAction.isSaveAllSet())
|
|
||||||
return;
|
|
||||||
|
|
||||||
List projects = new ArrayList();
|
|
||||||
for (int i = 0; i < targets.length; ++i ) {
|
|
||||||
MakeTarget target = targets[i];
|
|
||||||
projects.add(target.getResource().getProject());
|
|
||||||
}
|
|
||||||
|
|
||||||
IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
|
|
||||||
for (int i = 0; i < windows.length; i++) {
|
|
||||||
IWorkbenchPage [] pages = windows[i].getPages();
|
|
||||||
for (int j = 0; j < pages.length; j++) {
|
|
||||||
IWorkbenchPage page = pages[j];
|
|
||||||
IEditorReference[] editorReferences = page.getEditorReferences();
|
|
||||||
for (int k = 0; k < editorReferences.length; k++) {
|
|
||||||
IEditorPart editor = editorReferences[k].getEditor(false);
|
|
||||||
if (editor != null && editor.isDirty()) {
|
|
||||||
IEditorInput input = editor.getEditorInput();
|
|
||||||
if (input instanceof IFileEditorInput) {
|
|
||||||
IFile inputFile = ((IFileEditorInput)input).getFile();
|
|
||||||
if (projects.contains(inputFile.getProject())) {
|
|
||||||
page.saveEditor(editor, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void run() {
|
|
||||||
try {
|
|
||||||
saveAllResources();
|
|
||||||
IRunnableWithProgress op = new IRunnableWithProgress () {
|
|
||||||
public void run(IProgressMonitor monitor)
|
|
||||||
throws InvocationTargetException, InterruptedException {
|
|
||||||
for (int i = 0; i < targets.length; ++i ) {
|
|
||||||
MakeTarget target = targets[i];
|
|
||||||
IResource res = target.getResource();
|
|
||||||
IProject project = res.getProject();
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (! project.equals(res) || target.isLeaf()) {
|
|
||||||
String dir = res.getLocation().toOSString();
|
|
||||||
MakeUtil.setSessionBuildDir(project, dir);
|
|
||||||
if (target.isLeaf()) {
|
|
||||||
MakeUtil.setSessionTarget(project, target.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Full build to force builder for targets like clean and rebuild.
|
|
||||||
// maybe this should be a option
|
|
||||||
project.build (IncrementalProjectBuilder.FULL_BUILD, monitor);
|
|
||||||
} catch (CoreException e) {
|
|
||||||
}
|
|
||||||
|
|
||||||
MakeUtil.removeSessionBuildDir(project);
|
|
||||||
MakeUtil.removeSessionTarget(project);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
new ProgressMonitorDialog(shell).run(true, true, op);
|
|
||||||
} catch (InvocationTargetException e) {
|
|
||||||
// handle exception
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
// handle cancelation
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,168 +0,0 @@
|
||||||
package org.eclipse.cdt.internal.ui.makeview;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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 {
|
|
||||||
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
return new Object[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see ITreeContentProvider#getParent(Object)
|
|
||||||
*/
|
|
||||||
public Object getParent(Object obj) {
|
|
||||||
if (obj instanceof MakeTarget) {
|
|
||||||
MakeTarget directives = (MakeTarget)obj;
|
|
||||||
return directives.getParent();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see ITreeContentProvider#hasChildren(Object)
|
|
||||||
*/
|
|
||||||
public boolean hasChildren(Object obj) {
|
|
||||||
return getChildren(obj).length > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see IStructuredContentProvider#getElements(Object)
|
|
||||||
*/
|
|
||||||
public Object[] getElements(Object obj) {
|
|
||||||
return getChildren(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see IContentProvider#dispose()
|
|
||||||
*/
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see IContentProvider#inputChanged(Viewer, Object, Object)
|
|
||||||
*/
|
|
||||||
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 (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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,77 +0,0 @@
|
||||||
package org.eclipse.cdt.internal.ui.makeview;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* 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.swt.graphics.Image;
|
|
||||||
|
|
||||||
public class MakeLabelProvider implements ILabelProvider {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The cache of images that have been dispensed by this provider.
|
|
||||||
* Maps ImageDescriptor->Image.
|
|
||||||
*/
|
|
||||||
private Map imageTable = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return image;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see ILabelProvider#getText(Object)
|
|
||||||
*/
|
|
||||||
public String getText(Object obj) {
|
|
||||||
if (obj instanceof MakeTarget) {
|
|
||||||
return ((MakeTarget)obj).toString();
|
|
||||||
}
|
|
||||||
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) {
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,141 +0,0 @@
|
||||||
package org.eclipse.cdt.internal.ui.makeview;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import org.eclipse.core.resources.IContainer;
|
|
||||||
import org.eclipse.core.resources.IProject;
|
|
||||||
import org.eclipse.core.resources.IResource;
|
|
||||||
import org.eclipse.core.resources.IWorkspaceRoot;
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
|
||||||
import org.eclipse.core.runtime.IAdaptable;
|
|
||||||
|
|
||||||
import org.eclipse.jface.resource.ImageDescriptor;
|
|
||||||
import org.eclipse.ui.model.IWorkbenchAdapter;
|
|
||||||
import org.eclipse.cdt.core.CProjectNature;
|
|
||||||
import org.eclipse.cdt.core.resources.MakeUtil;
|
|
||||||
import org.eclipse.cdt.internal.ui.CPluginImages;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A leaf is a IResource with a Make Directive.
|
|
||||||
* We use the term Directive instead of Make Targets
|
|
||||||
* to not confuse with remote targets.
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class MakeTarget implements IAdaptable {
|
|
||||||
|
|
||||||
private static final MakeTarget[] emptyArray= new MakeTarget[0];
|
|
||||||
private IResource resource;
|
|
||||||
private String target;
|
|
||||||
|
|
||||||
public MakeTarget(IResource res) {
|
|
||||||
this(res, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
public MakeTarget(IResource res, String goals) {
|
|
||||||
resource = res;
|
|
||||||
target = (goals == null) ? "" : goals;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see IAdaptable#getAdapter(Object)
|
|
||||||
*/
|
|
||||||
public Object getAdapter(Class adapter) {
|
|
||||||
if (adapter == IResource.class) {
|
|
||||||
return resource;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
public MakeTarget[] getChildren() {
|
|
||||||
if (resource != null && target.length() == 0) {
|
|
||||||
ArrayList list = new ArrayList();
|
|
||||||
if (resource instanceof IWorkspaceRoot) {
|
|
||||||
IWorkspaceRoot root = (IWorkspaceRoot)resource;
|
|
||||||
IProject [] projects = root.getProjects();
|
|
||||||
for (int i = 0; i < projects.length; i++) {
|
|
||||||
if (projects[i].isOpen()) {
|
|
||||||
try {
|
|
||||||
if (projects[i].hasNature(CProjectNature.C_NATURE_ID)) {
|
|
||||||
list.add (new MakeTarget(projects[i]));
|
|
||||||
}
|
|
||||||
} catch (CoreException e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (resource instanceof IContainer) {
|
|
||||||
IContainer container = (IContainer)resource;
|
|
||||||
try {
|
|
||||||
IResource[] resources = container.members();
|
|
||||||
for (int i = 0; i < resources.length; i++) {
|
|
||||||
if (resources[i] instanceof IContainer) {
|
|
||||||
list.add (new MakeTarget(resources[i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (CoreException e) {
|
|
||||||
}
|
|
||||||
String [] targets = MakeUtil.getPersistentTargets(resource);
|
|
||||||
for (int i = 0; i < targets.length; i++) {
|
|
||||||
if (targets[i] == null)
|
|
||||||
targets[i] = "";
|
|
||||||
list.add (new MakeTarget(resource, targets[i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return (MakeTarget[])list.toArray(emptyArray);
|
|
||||||
}
|
|
||||||
return emptyArray;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
public MakeTarget getParent() {
|
|
||||||
if (target.length() == 0)
|
|
||||||
return new MakeTarget(resource.getParent());
|
|
||||||
return new MakeTarget(resource);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString() {
|
|
||||||
if (target.length() == 0)
|
|
||||||
return resource.getName();
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImageDescriptor getImageDescriptor() {
|
|
||||||
if (isLeaf()) {
|
|
||||||
return CPluginImages.DESC_BUILD_MENU;
|
|
||||||
}
|
|
||||||
IWorkbenchAdapter adapter = (IWorkbenchAdapter)((IAdaptable)resource).getAdapter(IWorkbenchAdapter.class);
|
|
||||||
if (adapter == null)
|
|
||||||
return null;
|
|
||||||
return adapter.getImageDescriptor(resource);
|
|
||||||
}
|
|
||||||
|
|
||||||
public IResource getResource () {
|
|
||||||
return resource;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isLeaf () {
|
|
||||||
return (target.length() != 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see Object#equals(Object)
|
|
||||||
*/
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (null == obj)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (!(obj instanceof MakeTarget))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
MakeTarget other = (MakeTarget)obj;
|
|
||||||
return (resource.equals(other.resource) && target.equals(other.target));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,49 +0,0 @@
|
||||||
package org.eclipse.cdt.internal.ui.makeview;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import org.eclipse.core.resources.IResource;
|
|
||||||
import org.eclipse.core.runtime.IAdaptable;
|
|
||||||
import org.eclipse.jface.action.Action;
|
|
||||||
import org.eclipse.jface.dialogs.InputDialog;
|
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
|
||||||
import org.eclipse.swt.widgets.Shell;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.core.resources.MakeUtil;
|
|
||||||
import org.eclipse.cdt.internal.ui.CPluginImages;
|
|
||||||
|
|
||||||
|
|
||||||
public class MakeTargetAction extends Action {
|
|
||||||
|
|
||||||
Shell shell;
|
|
||||||
IResource resource;
|
|
||||||
|
|
||||||
public MakeTargetAction (Shell shell) {
|
|
||||||
super("Add Make Targets");
|
|
||||||
this.shell = shell;
|
|
||||||
|
|
||||||
setToolTipText("BuildAction");
|
|
||||||
setImageDescriptor(CPluginImages.DESC_BUILD_MENU);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void run() {
|
|
||||||
InputDialog dialog = new InputDialog(shell, "Target Dialog: ", "Enter Target(s): ", null, null);
|
|
||||||
dialog.open();
|
|
||||||
String value = dialog.getValue();
|
|
||||||
if (value != null && value.length() > 0) {
|
|
||||||
if (resource != null)
|
|
||||||
MakeUtil.addPersistentTarget(resource, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void selectionChanged(IStructuredSelection selection) {
|
|
||||||
Object obj = (IAdaptable)selection.getFirstElement();
|
|
||||||
if (obj instanceof IAdaptable) {
|
|
||||||
IAdaptable element = (IAdaptable)obj;
|
|
||||||
resource = (IResource)element.getAdapter(IResource.class);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,172 +0,0 @@
|
||||||
package org.eclipse.cdt.internal.ui.makeview;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
import org.eclipse.core.resources.IResource;
|
|
||||||
import org.eclipse.core.resources.ResourcesPlugin;
|
|
||||||
import org.eclipse.jface.action.Action;
|
|
||||||
import org.eclipse.jface.action.IMenuListener;
|
|
||||||
import org.eclipse.jface.action.IMenuManager;
|
|
||||||
import org.eclipse.jface.action.MenuManager;
|
|
||||||
import org.eclipse.jface.dialogs.InputDialog;
|
|
||||||
import org.eclipse.jface.viewers.DoubleClickEvent;
|
|
||||||
import org.eclipse.jface.viewers.IDoubleClickListener;
|
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
|
||||||
import org.eclipse.jface.viewers.TreeViewer;
|
|
||||||
import org.eclipse.swt.SWT;
|
|
||||||
import org.eclipse.swt.widgets.Composite;
|
|
||||||
import org.eclipse.swt.widgets.Control;
|
|
||||||
import org.eclipse.swt.widgets.Menu;
|
|
||||||
import org.eclipse.ui.part.ViewPart;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.core.resources.MakeUtil;
|
|
||||||
|
|
||||||
|
|
||||||
public class MakeView extends ViewPart {
|
|
||||||
|
|
||||||
TreeViewer viewer;
|
|
||||||
|
|
||||||
public MakeView() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see IWorkbenchPart#setFocus()
|
|
||||||
*/
|
|
||||||
public void setFocus() {
|
|
||||||
viewer.getTree().setFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handles double clicks in viewer.
|
|
||||||
* Opens editor if file double-clicked.
|
|
||||||
*/
|
|
||||||
protected void handleDoubleClick(DoubleClickEvent event) {
|
|
||||||
IStructuredSelection s = (IStructuredSelection)event.getSelection();
|
|
||||||
Object element = s.getFirstElement();
|
|
||||||
//System.out.println ("Double click on " + element);
|
|
||||||
if (element instanceof MakeTarget) {
|
|
||||||
MakeTarget ta = (MakeTarget)element;
|
|
||||||
Action build = new MakeAction (new MakeTarget[] {ta}, getViewSite().getShell(), "Build");
|
|
||||||
build.run ();
|
|
||||||
}
|
|
||||||
//if (viewer.isExpandable(element)) {
|
|
||||||
// viewer.setExpandedState(element, !viewer.getExpandedState(element));
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 MakeAction(new MakeTarget[]{ta}, getViewSite().getShell(), "Build");
|
|
||||||
Action refresh = new Action("Refresh") {
|
|
||||||
public void run() {
|
|
||||||
viewer.refresh ();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
menu.add (add);
|
|
||||||
menu.add (edit);
|
|
||||||
menu.add (del);
|
|
||||||
//menu.add (new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
|
|
||||||
menu.add (build);
|
|
||||||
menu.add (refresh);
|
|
||||||
if (ta.isLeaf()) {
|
|
||||||
add.setEnabled(false);
|
|
||||||
} else {
|
|
||||||
edit.setEnabled(false);
|
|
||||||
del.setEnabled(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//menu.add (new Separator(IWorkbenchActionConstants.MB_ADDITIONS+"-end"));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @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);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
getSite().setSelectionProvider(viewer);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -7,157 +7,68 @@ package org.eclipse.cdt.internal.ui.preferences;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
|
||||||
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
|
||||||
import org.eclipse.cdt.internal.ui.dialogs.IStatusChangeListener;
|
|
||||||
import org.eclipse.cdt.internal.ui.dialogs.StatusTool;
|
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
import org.eclipse.cdt.ui.CUIPlugin;
|
||||||
import org.eclipse.cdt.ui.wizards.BinaryParserBlock;
|
import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
|
||||||
import org.eclipse.cdt.ui.wizards.BuildPathInfoBlock;
|
|
||||||
import org.eclipse.cdt.ui.wizards.IndexerBlock;
|
|
||||||
import org.eclipse.cdt.ui.wizards.SettingsBlock;
|
|
||||||
import org.eclipse.cdt.utils.ui.controls.TabFolderLayout;
|
|
||||||
import org.eclipse.cdt.utils.ui.swt.IValidation;
|
|
||||||
import org.eclipse.core.resources.IProject;
|
import org.eclipse.core.resources.IProject;
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
import org.eclipse.core.runtime.IStatus;
|
|
||||||
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
|
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
|
||||||
import org.eclipse.jface.operation.IRunnableWithProgress;
|
import org.eclipse.jface.operation.IRunnableWithProgress;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
import org.eclipse.swt.graphics.Image;
|
|
||||||
import org.eclipse.swt.layout.FillLayout;
|
import org.eclipse.swt.layout.FillLayout;
|
||||||
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.Label;
|
import org.eclipse.swt.widgets.Label;
|
||||||
import org.eclipse.swt.widgets.Shell;
|
import org.eclipse.swt.widgets.Shell;
|
||||||
import org.eclipse.swt.widgets.TabFolder;
|
|
||||||
import org.eclipse.swt.widgets.TabItem;
|
|
||||||
import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation;
|
import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation;
|
||||||
import org.eclipse.ui.dialogs.PropertyPage;
|
import org.eclipse.ui.dialogs.PropertyPage;
|
||||||
import org.eclipse.ui.help.WorkbenchHelp;
|
|
||||||
|
|
||||||
public class CProjectPropertyPage extends PropertyPage implements IStatusChangeListener, IValidation {
|
public class CProjectPropertyPage extends PropertyPage implements ICOptionContainer {
|
||||||
|
|
||||||
private static final String MSG_NOCPROJECT= "CProjectPropertyPage.nocproject";
|
private CProjectOptionBlock fOptionBlock;
|
||||||
private static final String MSG_CLOSEDPROJECT= "CProjectPropertyPage.closedproject";
|
|
||||||
|
private static final String MSG_CLOSEDPROJECT = "CProjectPropertyPage.closedproject";
|
||||||
private TabFolder folder;
|
|
||||||
SettingsBlock settingsBlock;
|
public CProjectPropertyPage() {
|
||||||
IndexerBlock indexerBlock;
|
super();
|
||||||
BinaryParserBlock binaryParserBlock;
|
fOptionBlock = new CProjectOptionBlock(this);
|
||||||
private BuildPathInfoBlock pathInfoBlock;
|
}
|
||||||
|
|
||||||
protected Control createContents(Composite parent) {
|
protected Control createContents(Composite parent) {
|
||||||
Composite composite= new Composite(parent, SWT.NONE);
|
Composite composite = new Composite(parent, SWT.NONE);
|
||||||
composite.setLayout(new FillLayout());
|
composite.setLayout(new FillLayout());
|
||||||
|
|
||||||
IProject project= getProject();
|
IProject project = getProject();
|
||||||
if (!project.isOpen()) {
|
if (!project.isOpen()) {
|
||||||
contentForClosedProject(composite);
|
contentForClosedProject(composite);
|
||||||
} else {
|
} else {
|
||||||
contentForCProject(composite);
|
contentForCProject(composite);
|
||||||
}
|
}
|
||||||
|
|
||||||
return composite;
|
return composite;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void contentForCProject(Composite parent) {
|
private void contentForCProject(Composite parent) {
|
||||||
folder = new TabFolder(parent, SWT.NONE);
|
fOptionBlock.createContents(parent);
|
||||||
folder.setLayout(new TabFolderLayout());
|
// WorkbenchHelp.setHelp(parent, ICMakeHelpContextIds.PROJECT_PROPERTY_PAGE);
|
||||||
|
|
||||||
settingsBlock = new SettingsBlock(this, getProject());
|
|
||||||
TabItem item2 = new TabItem(folder, SWT.NONE);
|
|
||||||
item2.setText(settingsBlock.getLabel());
|
|
||||||
Image img2 = settingsBlock.getImage();
|
|
||||||
if (img2 != null)
|
|
||||||
item2.setImage(img2);
|
|
||||||
item2.setData(settingsBlock);
|
|
||||||
item2.setControl(settingsBlock.getControl(folder));
|
|
||||||
|
|
||||||
indexerBlock = new IndexerBlock(this, getProject());
|
|
||||||
TabItem item3 = new TabItem(folder, SWT.NONE);
|
|
||||||
item3.setText(indexerBlock.getLabel());
|
|
||||||
Image img3 = indexerBlock.getImage();
|
|
||||||
if (img3 != null)
|
|
||||||
item3.setImage(img3);
|
|
||||||
item3.setData(indexerBlock);
|
|
||||||
item3.setControl(indexerBlock.getControl(folder));
|
|
||||||
|
|
||||||
binaryParserBlock = new BinaryParserBlock(this, getProject());
|
|
||||||
TabItem item4 = new TabItem(folder, SWT.NONE);
|
|
||||||
item4.setText(binaryParserBlock.getLabel());
|
|
||||||
Image img4 = binaryParserBlock.getImage();
|
|
||||||
if (img4 != null)
|
|
||||||
item4.setImage(img4);
|
|
||||||
item4.setData(binaryParserBlock);
|
|
||||||
item4.setControl(binaryParserBlock.getControl(folder));
|
|
||||||
|
|
||||||
pathInfoBlock = new BuildPathInfoBlock(this, getProject());
|
|
||||||
TabItem pathItem = new TabItem(folder, SWT.NONE);
|
|
||||||
pathItem.setText(pathInfoBlock.getLabel());
|
|
||||||
Image pathImg = pathInfoBlock.getImage();
|
|
||||||
if (pathImg != null) {
|
|
||||||
pathItem.setImage(pathImg);
|
|
||||||
}
|
|
||||||
pathItem.setData(pathInfoBlock);
|
|
||||||
pathItem.setControl(pathInfoBlock.getControl(folder));
|
|
||||||
|
|
||||||
WorkbenchHelp.setHelp(parent, ICHelpContextIds.PROJECT_PROPERTY_PAGE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void contentForClosedProject(Composite parent) {
|
private void contentForClosedProject(Composite parent) {
|
||||||
Label label= new Label(parent, SWT.LEFT);
|
Label label = new Label(parent, SWT.LEFT);
|
||||||
label.setText(CUIPlugin.getResourceString(MSG_CLOSEDPROJECT));
|
label.setText(CUIPlugin.getResourceString(MSG_CLOSEDPROJECT));
|
||||||
label.setFont(parent.getFont());
|
label.setFont(parent.getFont());
|
||||||
|
|
||||||
noDefaultAndApplyButton();
|
noDefaultAndApplyButton();
|
||||||
}
|
|
||||||
|
|
||||||
public void setComplete(boolean complete) {
|
|
||||||
boolean ok = true;
|
|
||||||
|
|
||||||
if (ok && settingsBlock != null) {
|
|
||||||
ok = settingsBlock.isValid();
|
|
||||||
}
|
|
||||||
if (ok && indexerBlock != null) {
|
|
||||||
ok = indexerBlock.isValid();
|
|
||||||
}
|
|
||||||
if (ok && binaryParserBlock != null) {
|
|
||||||
ok = binaryParserBlock.isValid();
|
|
||||||
}
|
|
||||||
if (ok && pathInfoBlock != null) {
|
|
||||||
ok = pathInfoBlock.isValid();
|
|
||||||
}
|
|
||||||
setValid(ok);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see PreferencePage#performOk
|
* @see PreferencePage#performOk
|
||||||
*/
|
*/
|
||||||
public boolean performOk() {
|
public boolean performOk() {
|
||||||
Shell shell= getControl().getShell();
|
Shell shell = getControl().getShell();
|
||||||
IRunnableWithProgress runnable= new IRunnableWithProgress() {
|
IRunnableWithProgress runnable = new IRunnableWithProgress() {
|
||||||
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
|
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
|
||||||
monitor.beginTask("Property changes", 20);
|
fOptionBlock.performApply(monitor);
|
||||||
if (settingsBlock != null) {
|
|
||||||
settingsBlock.doRun(getProject(), monitor);
|
|
||||||
}
|
|
||||||
monitor.worked(2);
|
|
||||||
if (indexerBlock != null) {
|
|
||||||
indexerBlock.doRun(getProject(), monitor);
|
|
||||||
}
|
|
||||||
monitor.worked(10);
|
|
||||||
if (binaryParserBlock != null) {
|
|
||||||
binaryParserBlock.doRun(getProject(), monitor);
|
|
||||||
}
|
|
||||||
monitor.worked(15);
|
|
||||||
if (pathInfoBlock != null) {
|
|
||||||
pathInfoBlock.doRun(getProject(), monitor);
|
|
||||||
}
|
|
||||||
monitor.worked(19);
|
|
||||||
monitor.done();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
IRunnableWithProgress op= new WorkspaceModifyDelegatingOperation(runnable);
|
IRunnableWithProgress op = new WorkspaceModifyDelegatingOperation(runnable);
|
||||||
try {
|
try {
|
||||||
new ProgressMonitorDialog(shell).run(false, true, op);
|
new ProgressMonitorDialog(shell).run(false, true, op);
|
||||||
} catch (InvocationTargetException e) {
|
} catch (InvocationTargetException e) {
|
||||||
|
@ -168,35 +79,42 @@ public class CProjectPropertyPage extends PropertyPage implements IStatusChangeL
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
IProject getProject() {
|
public IProject getProject() {
|
||||||
Object element= getElement();
|
Object element = getElement();
|
||||||
if (element instanceof IProject) {
|
if (element instanceof IProject) {
|
||||||
return (IProject)element;
|
return (IProject) element;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see DialogPage#setVisible(boolean)
|
* @see DialogPage#setVisible(boolean)
|
||||||
*/
|
*/
|
||||||
public void setVisible(boolean visible) {
|
public void setVisible(boolean visible) {
|
||||||
super.setVisible(visible);
|
super.setVisible(visible);
|
||||||
if (visible && folder != null) {
|
fOptionBlock.setVisible(visible);
|
||||||
settingsBlock.setVisible(visible);
|
}
|
||||||
indexerBlock.setVisible(visible);
|
|
||||||
binaryParserBlock.setVisible(visible);
|
public void updateContainer() {
|
||||||
pathInfoBlock.setVisible(visible);
|
boolean ok = true;
|
||||||
folder.setFocus();
|
ok = fOptionBlock.isValid();
|
||||||
|
if (!ok) {
|
||||||
|
setErrorMessage(fOptionBlock.getErrorMessage());
|
||||||
}
|
}
|
||||||
}
|
if (ok) {
|
||||||
|
setErrorMessage(null);
|
||||||
/**
|
}
|
||||||
* @see IStatusChangeListener#statusChanged(IStatus)
|
setValid(ok);
|
||||||
*/
|
}
|
||||||
public void statusChanged(IStatus status) {
|
|
||||||
setValid(!status.matches(IStatus.ERROR));
|
protected void performDefaults() {
|
||||||
StatusTool.applyToStatusLine(this, status);
|
fOptionBlock.performDefaults();
|
||||||
}
|
super.performDefaults();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isValid() {
|
||||||
|
updateContainer();
|
||||||
|
return super.isValid();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,629 +0,0 @@
|
||||||
package org.eclipse.cdt.ui.wizards;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.core.build.standard.StandardBuildManager;
|
|
||||||
import org.eclipse.cdt.core.resources.IStandardBuildInfo;
|
|
||||||
import org.eclipse.cdt.internal.ui.util.SWTUtil;
|
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
|
||||||
import org.eclipse.cdt.utils.ui.controls.ControlFactory;
|
|
||||||
import org.eclipse.cdt.utils.ui.swt.IValidation;
|
|
||||||
import org.eclipse.core.resources.IProject;
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
|
||||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
|
||||||
import org.eclipse.jface.dialogs.InputDialog;
|
|
||||||
import org.eclipse.swt.SWT;
|
|
||||||
import org.eclipse.swt.events.MouseEvent;
|
|
||||||
import org.eclipse.swt.events.MouseListener;
|
|
||||||
import org.eclipse.swt.events.SelectionAdapter;
|
|
||||||
import org.eclipse.swt.events.SelectionEvent;
|
|
||||||
import org.eclipse.swt.graphics.Font;
|
|
||||||
import org.eclipse.swt.graphics.Image;
|
|
||||||
import org.eclipse.swt.layout.GridData;
|
|
||||||
import org.eclipse.swt.widgets.Button;
|
|
||||||
import org.eclipse.swt.widgets.Composite;
|
|
||||||
import org.eclipse.swt.widgets.Label;
|
|
||||||
import org.eclipse.swt.widgets.List;
|
|
||||||
import org.eclipse.swt.widgets.Shell;
|
|
||||||
|
|
||||||
/**********************************************************************
|
|
||||||
* Copyright (c) 2002,2003 Rational Software Corporation and others.
|
|
||||||
* All rights reserved. This program and the accompanying materials
|
|
||||||
* are made available under the terms of the Common Public License v0.5
|
|
||||||
* which accompanies this distribution, and is available at
|
|
||||||
* http://www.eclipse.org/legal/cpl-v05.html
|
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* IBM Rational Software - Initial API and implementation
|
|
||||||
***********************************************************************/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
public class BuildPathInfoBlock implements IWizardTab {
|
|
||||||
private static final String PREFIX = "BuildPathInfoBlock"; //$NON-NLS-1$
|
|
||||||
private static final String LABEL = PREFIX + ".label"; //$NON-NLS-1$
|
|
||||||
private static final String PATHS = PREFIX + ".paths"; //$NON-NLS-1$
|
|
||||||
private static final String SYMBOLS = PREFIX + ".symbols"; //$NON-NLS-1$
|
|
||||||
private static final String BROWSE = PREFIX + ".browse"; //$NON-NLS-1$
|
|
||||||
private static final String PATH_TITLE = BROWSE + ".path"; //$NON-NLS-1$
|
|
||||||
private static final String PATH_LABEL = BROWSE + ".path.label"; //$NON-NLS-1$
|
|
||||||
private static final String SYMBOL_TITLE = BROWSE + ".symbol"; //$NON-NLS-1$
|
|
||||||
private static final String SYMBOL_LABEL = BROWSE + ".symbol.label"; //$NON-NLS-1$
|
|
||||||
private static final String NEW = "BuildPropertyCommon.label.new"; //$NON-NLS-1$
|
|
||||||
private static final String REMOVE = "BuildPropertyCommon.label.remove"; //$NON-NLS-1$
|
|
||||||
private static final String UP = "BuildPropertyCommon.label.up"; //$NON-NLS-1$
|
|
||||||
private static final String DOWN = "BuildPropertyCommon.label.down"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
private IProject project;
|
|
||||||
private IValidation page;
|
|
||||||
private List pathList;
|
|
||||||
private List symbolList;
|
|
||||||
private Composite pathButtonComp;
|
|
||||||
private Button addPath;
|
|
||||||
private Button removePath;
|
|
||||||
private Button pathUp;
|
|
||||||
private Button pathDown;
|
|
||||||
private Composite symbolButtonComp;
|
|
||||||
private Button addSymbol;
|
|
||||||
private Button removeSymbol;
|
|
||||||
private Button symbolUp;
|
|
||||||
private Button symbolDown;
|
|
||||||
private Shell shell;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param valid
|
|
||||||
*/
|
|
||||||
public BuildPathInfoBlock(IValidation valid) {
|
|
||||||
this(valid, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param page
|
|
||||||
* @param project
|
|
||||||
*/
|
|
||||||
public BuildPathInfoBlock(IValidation valid, IProject project) {
|
|
||||||
this.page = valid;
|
|
||||||
this.project = project;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param composite
|
|
||||||
*/
|
|
||||||
private void createPathListButtons(Composite parent) {
|
|
||||||
// Create a composite for the buttons
|
|
||||||
pathButtonComp = ControlFactory.createComposite(parent, 1);
|
|
||||||
GridData gd = new GridData(GridData.FILL_BOTH);
|
|
||||||
pathButtonComp.setFont(parent.getFont());
|
|
||||||
|
|
||||||
// Add the buttons
|
|
||||||
addPath = ControlFactory.createPushButton(pathButtonComp, CUIPlugin.getResourceString(NEW));
|
|
||||||
addPath.addSelectionListener(new SelectionAdapter() {
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
handleAddPath();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
addPath.setEnabled(true);
|
|
||||||
addPath.setFont(parent.getFont());
|
|
||||||
addPath.setLayoutData(new GridData());
|
|
||||||
SWTUtil.setButtonDimensionHint(addPath);
|
|
||||||
|
|
||||||
removePath = ControlFactory.createPushButton(pathButtonComp, CUIPlugin.getResourceString(REMOVE));
|
|
||||||
removePath.addSelectionListener(new SelectionAdapter() {
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
handleRemovePath();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
removePath.setFont(parent.getFont());
|
|
||||||
removePath.setLayoutData(new GridData());
|
|
||||||
SWTUtil.setButtonDimensionHint(removePath);
|
|
||||||
|
|
||||||
pathUp = ControlFactory.createPushButton(pathButtonComp, CUIPlugin.getResourceString(UP));
|
|
||||||
pathUp.addSelectionListener(new SelectionAdapter() {
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
handlePathUp();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
pathUp.setFont(parent.getFont());
|
|
||||||
pathUp.setLayoutData(new GridData());
|
|
||||||
SWTUtil.setButtonDimensionHint(pathUp);
|
|
||||||
|
|
||||||
pathDown = ControlFactory.createPushButton(pathButtonComp, CUIPlugin.getResourceString(DOWN));
|
|
||||||
pathDown.addSelectionListener(new SelectionAdapter() {
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
handlePathDown();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
pathDown.setFont(parent.getFont());
|
|
||||||
pathDown.setLayoutData(new GridData());
|
|
||||||
SWTUtil.setButtonDimensionHint(pathDown);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param composite
|
|
||||||
*/
|
|
||||||
private void createPathListControl(Composite parent, int numColumns) {
|
|
||||||
// Create the list
|
|
||||||
pathList = new List(parent, SWT.BORDER | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
|
|
||||||
pathList.addSelectionListener(new SelectionAdapter () {
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
enablePathButtons();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
pathList.addMouseListener(new MouseListener() {
|
|
||||||
|
|
||||||
public void mouseDoubleClick(MouseEvent e) {
|
|
||||||
editPathListItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void mouseDown(MouseEvent e) {
|
|
||||||
// Handled by the selection listener
|
|
||||||
}
|
|
||||||
|
|
||||||
public void mouseUp(MouseEvent e) {
|
|
||||||
// Handled by the selection listener
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Make it occupy the first 2 columns
|
|
||||||
GridData gd = new GridData(GridData.FILL_BOTH);
|
|
||||||
gd.horizontalSpan = numColumns - 1;
|
|
||||||
pathList.setLayoutData(gd);
|
|
||||||
pathList.setFont(parent.getFont());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param composite
|
|
||||||
*/
|
|
||||||
private void createSymbolListButtons(Composite parent) {
|
|
||||||
// Create a composite for the buttons
|
|
||||||
symbolButtonComp = ControlFactory.createComposite(parent, 1);
|
|
||||||
GridData gd = new GridData(GridData.FILL_BOTH);
|
|
||||||
symbolButtonComp.setFont(parent.getFont());
|
|
||||||
|
|
||||||
// Add the buttons
|
|
||||||
addSymbol = ControlFactory.createPushButton(symbolButtonComp, CUIPlugin.getResourceString(NEW));
|
|
||||||
addSymbol.addSelectionListener(new SelectionAdapter() {
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
handleAddSymbol();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
addSymbol.setEnabled(true);
|
|
||||||
addSymbol.setFont(parent.getFont());
|
|
||||||
addSymbol.setLayoutData(new GridData());
|
|
||||||
SWTUtil.setButtonDimensionHint(addSymbol);
|
|
||||||
|
|
||||||
removeSymbol = ControlFactory.createPushButton(symbolButtonComp, CUIPlugin.getResourceString(REMOVE));
|
|
||||||
removeSymbol.addSelectionListener(new SelectionAdapter() {
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
handleRemoveSymbol();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
removeSymbol.setFont(parent.getFont());
|
|
||||||
removeSymbol.setLayoutData(new GridData());
|
|
||||||
SWTUtil.setButtonDimensionHint(removeSymbol);
|
|
||||||
|
|
||||||
symbolUp = ControlFactory.createPushButton(symbolButtonComp, CUIPlugin.getResourceString(UP));
|
|
||||||
symbolUp.addSelectionListener(new SelectionAdapter() {
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
handleSymbolUp();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
symbolUp.setFont(parent.getFont());
|
|
||||||
symbolUp.setLayoutData(new GridData());
|
|
||||||
SWTUtil.setButtonDimensionHint(symbolUp);
|
|
||||||
|
|
||||||
symbolDown = ControlFactory.createPushButton(symbolButtonComp, CUIPlugin.getResourceString(DOWN));
|
|
||||||
symbolDown.addSelectionListener(new SelectionAdapter() {
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
handleSymbolDown();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
symbolDown.setFont(parent.getFont());
|
|
||||||
symbolDown.setLayoutData(new GridData());
|
|
||||||
SWTUtil.setButtonDimensionHint(symbolDown);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param composite
|
|
||||||
*/
|
|
||||||
private void createSymbolListControl(Composite parent, int numColumns) {
|
|
||||||
// Create the list
|
|
||||||
symbolList = new List(parent, SWT.BORDER | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
|
|
||||||
symbolList.addSelectionListener(new SelectionAdapter() {
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
enableSymbolButtons();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
symbolList.addMouseListener(new MouseListener() {
|
|
||||||
|
|
||||||
public void mouseDoubleClick(MouseEvent e) {
|
|
||||||
editSymbolListItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void mouseDown(MouseEvent e) {
|
|
||||||
// Handled by the selection event
|
|
||||||
}
|
|
||||||
|
|
||||||
public void mouseUp(MouseEvent e) {
|
|
||||||
// Handled by the selection event
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Make it occupy the first n-1 columns
|
|
||||||
GridData gd = new GridData(GridData.FILL_BOTH);
|
|
||||||
gd.horizontalSpan = numColumns - 1;
|
|
||||||
symbolList.setLayoutData(gd);
|
|
||||||
symbolList.setFont(parent.getFont());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.cdt.ui.wizards.IWizardTab#doRun(org.eclipse.core.resources.IProject, org.eclipse.core.runtime.IProgressMonitor)
|
|
||||||
*/
|
|
||||||
public void doRun(IProject project, IProgressMonitor monitor) {
|
|
||||||
if (monitor == null) {
|
|
||||||
monitor = new NullProgressMonitor();
|
|
||||||
}
|
|
||||||
if (project != null) {
|
|
||||||
try {
|
|
||||||
// Store the paths and symbols
|
|
||||||
monitor.beginTask("Setting Include Paths", 1);
|
|
||||||
StandardBuildManager.setIncludePaths(project, getPathListContents());
|
|
||||||
|
|
||||||
monitor.beginTask("Setting Defined Symbols", 1);
|
|
||||||
StandardBuildManager.setPreprocessorSymbols(project, getSymbolListContents());
|
|
||||||
|
|
||||||
StandardBuildManager.saveBuildInfo(project);
|
|
||||||
} catch (CoreException e) {
|
|
||||||
// Should probably tell someone
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Double-click handler to allow edit of path information
|
|
||||||
*/
|
|
||||||
protected void editPathListItem() {
|
|
||||||
// Edit the selection index
|
|
||||||
int index = pathList.getSelectionIndex();
|
|
||||||
if (index != -1) {
|
|
||||||
String selItem = pathList.getItem(index);
|
|
||||||
if (selItem != null) {
|
|
||||||
InputDialog dialog = new InputDialog(shell, CUIPlugin.getResourceString(PATH_TITLE), CUIPlugin.getResourceString(PATH_LABEL), selItem, null);
|
|
||||||
String newItem = null;
|
|
||||||
if (dialog.open() == InputDialog.OK) {
|
|
||||||
newItem = dialog.getValue();
|
|
||||||
if (newItem != null && !newItem.equals(selItem)) {
|
|
||||||
pathList.setItem(index, newItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Double-click handler to allow edit of symbol information
|
|
||||||
*/
|
|
||||||
protected void editSymbolListItem() {
|
|
||||||
// Edit the selection index
|
|
||||||
int index = symbolList.getSelectionIndex();
|
|
||||||
if (index != -1) {
|
|
||||||
String selItem = symbolList.getItem(index);
|
|
||||||
if (selItem != null) {
|
|
||||||
InputDialog dialog = new InputDialog(shell, CUIPlugin.getResourceString(SYMBOL_TITLE), CUIPlugin.getResourceString(SYMBOL_LABEL), selItem, null);
|
|
||||||
String newItem = null;
|
|
||||||
if (dialog.open() == InputDialog.OK) {
|
|
||||||
newItem = dialog.getValue();
|
|
||||||
if (newItem != null && !newItem.equals(selItem)) {
|
|
||||||
symbolList.setItem(index, newItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Enables the buttons on the path control if the right conditions are met
|
|
||||||
*/
|
|
||||||
private void enablePathButtons() {
|
|
||||||
// Enable the remove button if there is at least 1 item in the list
|
|
||||||
int items = pathList.getItemCount();
|
|
||||||
if (items > 0){
|
|
||||||
removePath.setEnabled(true);
|
|
||||||
// Enable the up/down buttons depending on what item is selected
|
|
||||||
int index = pathList.getSelectionIndex();
|
|
||||||
pathUp.setEnabled(items > 1 && index > 0);
|
|
||||||
pathDown.setEnabled(items > 1 && index < (items - 1));
|
|
||||||
} else {
|
|
||||||
removePath.setEnabled(false);
|
|
||||||
pathUp.setEnabled(false);
|
|
||||||
pathDown.setEnabled(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void enableSymbolButtons() {
|
|
||||||
// Enable the remove button if there is at least 1 item in the list
|
|
||||||
int items = symbolList.getItemCount();
|
|
||||||
if (items > 0){
|
|
||||||
removeSymbol.setEnabled(true);
|
|
||||||
// Enable the up/down buttons depending on what item is selected
|
|
||||||
int index = symbolList.getSelectionIndex();
|
|
||||||
symbolUp.setEnabled(items > 1 && index > 0);
|
|
||||||
symbolDown.setEnabled(items > 1 && index < (items - 1));
|
|
||||||
} else {
|
|
||||||
removeSymbol.setEnabled(false);
|
|
||||||
symbolUp.setEnabled(false);
|
|
||||||
symbolDown.setEnabled(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.cdt.ui.wizards.IWizardTab#getControl(org.eclipse.swt.widgets.Composite)
|
|
||||||
*/
|
|
||||||
public Composite getControl(Composite parent) {
|
|
||||||
this.shell = parent.getShell();
|
|
||||||
|
|
||||||
// Create the composite control for the tab
|
|
||||||
int tabColumns = 3;
|
|
||||||
Font font = parent.getFont();
|
|
||||||
Composite composite = ControlFactory.createComposite(parent, tabColumns);
|
|
||||||
composite.setFont(font);
|
|
||||||
GridData gd;
|
|
||||||
|
|
||||||
// Create a label for the include paths control
|
|
||||||
Label paths = ControlFactory.createLabel(composite, CUIPlugin.getResourceString(PATHS));
|
|
||||||
gd = new GridData(GridData.FILL_HORIZONTAL);
|
|
||||||
gd.horizontalSpan = tabColumns;
|
|
||||||
paths.setLayoutData(gd);
|
|
||||||
paths.setFont(font);
|
|
||||||
|
|
||||||
//Create the list and button controls
|
|
||||||
createPathListControl(composite, tabColumns);
|
|
||||||
createPathListButtons(composite);
|
|
||||||
enablePathButtons();
|
|
||||||
|
|
||||||
// Create a label for the symbols control
|
|
||||||
Label symbols = ControlFactory.createLabel(composite, CUIPlugin.getResourceString(SYMBOLS));
|
|
||||||
gd = new GridData(GridData.FILL_HORIZONTAL);
|
|
||||||
gd.horizontalSpan = tabColumns;
|
|
||||||
symbols.setLayoutData(gd);
|
|
||||||
symbols.setFont(font);
|
|
||||||
|
|
||||||
// Create list and button controls for symbols
|
|
||||||
createSymbolListControl(composite, tabColumns);
|
|
||||||
createSymbolListButtons(composite);
|
|
||||||
enableSymbolButtons();
|
|
||||||
|
|
||||||
return composite;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.cdt.ui.wizards.IWizardTab#getImage()
|
|
||||||
*/
|
|
||||||
public Image getImage() {
|
|
||||||
// We don't decorate the tabs for the wizard or property page
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.cdt.ui.wizards.IWizardTab#getLabel()
|
|
||||||
*/
|
|
||||||
public String getLabel() {
|
|
||||||
// Return the label defined in the CPluginProperties.resource file
|
|
||||||
return CUIPlugin.getResourceString(LABEL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private String[] getPathListContents() {
|
|
||||||
return pathList.getItems();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private String[] getSymbolListContents() {
|
|
||||||
return symbolList.getItems();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected void handleAddPath() {
|
|
||||||
// Popup an entry dialog
|
|
||||||
InputDialog dialog = new InputDialog(shell, CUIPlugin.getResourceString(PATH_TITLE), CUIPlugin.getResourceString(PATH_LABEL), "", null);
|
|
||||||
String path = null;
|
|
||||||
if (dialog.open() == InputDialog.OK) {
|
|
||||||
path = dialog.getValue();
|
|
||||||
}
|
|
||||||
if (path != null && path.length() > 0) {
|
|
||||||
pathList.add(path);
|
|
||||||
pathList.select(pathList.getItemCount() - 1);
|
|
||||||
enablePathButtons();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected void handleAddSymbol() {
|
|
||||||
// Popup an entry dialog
|
|
||||||
InputDialog dialog = new InputDialog(shell, CUIPlugin.getResourceString(SYMBOL_TITLE), CUIPlugin.getResourceString(SYMBOL_LABEL), "", null);
|
|
||||||
String symbol = null;
|
|
||||||
if (dialog.open() == InputDialog.OK) {
|
|
||||||
symbol = dialog.getValue();
|
|
||||||
}
|
|
||||||
if (symbol != null && symbol.length() > 0) {
|
|
||||||
symbolList.add(symbol);
|
|
||||||
symbolList.select(symbolList.getItemCount() - 1);
|
|
||||||
enableSymbolButtons();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected void handlePathDown() {
|
|
||||||
// Get the selection index
|
|
||||||
int index = pathList.getSelectionIndex();
|
|
||||||
int items = pathList.getItemCount();
|
|
||||||
if (index == -1 || index == items - 1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Swap the items in the list
|
|
||||||
String selItem = pathList.getItem(index);
|
|
||||||
pathList.remove(index);
|
|
||||||
if (index + 1 == items) {
|
|
||||||
pathList.add(selItem);
|
|
||||||
} else {
|
|
||||||
pathList.add(selItem, ++index);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Keep the swapped item selected
|
|
||||||
pathList.select(index);
|
|
||||||
enablePathButtons();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected void handlePathUp() {
|
|
||||||
// Get the selection index
|
|
||||||
int index = pathList.getSelectionIndex();
|
|
||||||
if (index == -1 || index == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Swap the items in the list
|
|
||||||
String selItem = pathList.getItem(index);
|
|
||||||
pathList.remove(index);
|
|
||||||
pathList.add(selItem, --index);
|
|
||||||
|
|
||||||
// Keep the index selected
|
|
||||||
pathList.select(index);
|
|
||||||
enablePathButtons();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected void handleRemovePath() {
|
|
||||||
// Get the selection index
|
|
||||||
int index = pathList.getSelectionIndex();
|
|
||||||
if (index == -1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove the element at that index
|
|
||||||
pathList.remove(index);
|
|
||||||
index = index - 1 < 0 ? 0 : index -1;
|
|
||||||
pathList.select(index);
|
|
||||||
|
|
||||||
// Check if the buttons should still be enabled
|
|
||||||
enablePathButtons();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected void handleRemoveSymbol() {
|
|
||||||
// Get the selection index
|
|
||||||
int index = symbolList.getSelectionIndex();
|
|
||||||
if (index == -1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Remove the item at that index
|
|
||||||
symbolList.remove(index);
|
|
||||||
index = index - 1 < 0 ? 0 : index -1;
|
|
||||||
symbolList.select(index);
|
|
||||||
// Check if the button state should be toggled
|
|
||||||
enableSymbolButtons();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected void handleSymbolDown() {
|
|
||||||
// Get the selection index
|
|
||||||
int index = symbolList.getSelectionIndex();
|
|
||||||
int items = symbolList.getItemCount();
|
|
||||||
if (index == -1 || index == items - 1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Swap the items in the list
|
|
||||||
String selItem = symbolList.getItem(index);
|
|
||||||
symbolList.remove(index);
|
|
||||||
if (index + 1 == items) {
|
|
||||||
symbolList.add(selItem);
|
|
||||||
} else {
|
|
||||||
symbolList.add(selItem, ++index);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Keep the swapped item selected
|
|
||||||
symbolList.select(index);
|
|
||||||
enableSymbolButtons();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected void handleSymbolUp() {
|
|
||||||
// Get the selection index
|
|
||||||
int index = symbolList.getSelectionIndex();
|
|
||||||
if (index == -1 || index == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Swap the items in the list
|
|
||||||
String selItem = symbolList.getItem(index);
|
|
||||||
symbolList.remove(index);
|
|
||||||
symbolList.add(selItem, --index);
|
|
||||||
|
|
||||||
// Keep the index selected
|
|
||||||
symbolList.select(index);
|
|
||||||
enableSymbolButtons();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.cdt.ui.wizards.IWizardTab#isValid()
|
|
||||||
*/
|
|
||||||
public boolean isValid() {
|
|
||||||
// Info on this page is not critical
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setPathListContents() {
|
|
||||||
if (project != null) {
|
|
||||||
try {
|
|
||||||
IStandardBuildInfo info = StandardBuildManager.getBuildInfo(project);
|
|
||||||
pathList.setItems(info.getIncludePaths());
|
|
||||||
} catch (CoreException e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setSymbolListContents() {
|
|
||||||
if (project != null) {
|
|
||||||
try {
|
|
||||||
IStandardBuildInfo info = StandardBuildManager.getBuildInfo(project);
|
|
||||||
symbolList.setItems(info.getPreprocessorSymbols());
|
|
||||||
} catch (CoreException e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.cdt.ui.wizards.IWizardTab#setVisible(boolean)
|
|
||||||
*/
|
|
||||||
public void setVisible(boolean visible) {
|
|
||||||
// Set the content from the project
|
|
||||||
setPathListContents();
|
|
||||||
pathList.select(0);
|
|
||||||
enablePathButtons();
|
|
||||||
setSymbolListContents();
|
|
||||||
symbolList.select(0);
|
|
||||||
enableSymbolButtons();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,252 +0,0 @@
|
||||||
package org.eclipse.cdt.ui.wizards;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import org.eclipse.core.resources.IProject;
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
|
||||||
import org.eclipse.core.runtime.IPath;
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
|
||||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
|
||||||
import org.eclipse.core.runtime.Path;
|
|
||||||
import org.eclipse.core.runtime.SubProgressMonitor;
|
|
||||||
import org.eclipse.swt.SWT;
|
|
||||||
import org.eclipse.swt.events.SelectionAdapter;
|
|
||||||
import org.eclipse.swt.events.SelectionEvent;
|
|
||||||
import org.eclipse.swt.graphics.Image;
|
|
||||||
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.Event;
|
|
||||||
import org.eclipse.swt.widgets.Group;
|
|
||||||
import org.eclipse.swt.widgets.Label;
|
|
||||||
import org.eclipse.swt.widgets.Listener;
|
|
||||||
import org.eclipse.swt.widgets.Text;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CProjectNature;
|
|
||||||
import org.eclipse.cdt.utils.ui.swt.IValidation;
|
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
|
||||||
import org.eclipse.cdt.utils.ui.controls.ControlFactory;
|
|
||||||
import org.eclipse.cdt.utils.ui.controls.RadioButtonsArea;
|
|
||||||
|
|
||||||
|
|
||||||
public class SettingsBlock implements IWizardTab {
|
|
||||||
|
|
||||||
private static final String PREFIX = "SettingsBlock"; //$NON-NLS-1$
|
|
||||||
private static final String LABEL = PREFIX + ".label"; //$NON-NLS-1$
|
|
||||||
private static final String KEEP_GOING = PREFIX + ".keepOnGoing"; //$NON-NLS-1$
|
|
||||||
private static final String STOP_ERROR = PREFIX + ".stopOnError"; //$NON-NLS-1$
|
|
||||||
private static final String MAKE_OPTION = PREFIX + ".makeOption.label";
|
|
||||||
//$NON-NLS-1$
|
|
||||||
private static final String MAKE_USE_DEFAULT =
|
|
||||||
PREFIX + ".makeOption.use_default";
|
|
||||||
//$NON-NLS-1$
|
|
||||||
private static final String MAKE_BUILD_CMD = PREFIX + ".makeOption.build_cmd";
|
|
||||||
//$NON-NLS-1$
|
|
||||||
|
|
||||||
private static final String KEEP_ARG = "keep"; //$NON-NLS-1$
|
|
||||||
private static final String STOP_ARG = "stop"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
protected RadioButtonsArea radioButtons;
|
|
||||||
protected Button defButton;
|
|
||||||
protected Text cmdText;
|
|
||||||
|
|
||||||
private boolean stopOnError;
|
|
||||||
private boolean useDefaultBuildCmd;
|
|
||||||
private boolean defaultSelectionMade = false;
|
|
||||||
private String buildCmd;
|
|
||||||
IValidation page;
|
|
||||||
|
|
||||||
public SettingsBlock(IValidation valid) {
|
|
||||||
this(valid, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SettingsBlock(IValidation valid, IProject project) {
|
|
||||||
if (project != null) {
|
|
||||||
try {
|
|
||||||
CProjectNature nature =
|
|
||||||
(CProjectNature) project.getNature(CProjectNature.C_NATURE_ID);
|
|
||||||
if (nature != null) {
|
|
||||||
stopOnError = nature.isStopOnError();
|
|
||||||
useDefaultBuildCmd = nature.isDefaultBuildCmd();
|
|
||||||
if (!useDefaultBuildCmd) {
|
|
||||||
buildCmd = nature.getBuildCommand().toOSString();
|
|
||||||
if (buildCmd.indexOf(' ') > 0) {
|
|
||||||
buildCmd = "\"" + buildCmd + "\"";
|
|
||||||
}
|
|
||||||
buildCmd += " " + nature.getFullBuildArguments();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (CoreException e) {
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// FIXME: Should use the default settings
|
|
||||||
stopOnError = false;
|
|
||||||
useDefaultBuildCmd = true;
|
|
||||||
}
|
|
||||||
page = valid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return CUIPlugin.getResourceString(LABEL);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Image getImage() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Composite getControl(Composite parent) {
|
|
||||||
Composite composite = ControlFactory.createComposite(parent, 1);
|
|
||||||
|
|
||||||
String[][] radios =
|
|
||||||
new String[][] { { CUIPlugin.getResourceString(STOP_ERROR), STOP_ARG }, {
|
|
||||||
CUIPlugin.getResourceString(KEEP_GOING), KEEP_ARG }
|
|
||||||
};
|
|
||||||
radioButtons =
|
|
||||||
new RadioButtonsArea(composite, CUIPlugin.getResourceString(LABEL), 1, radios);
|
|
||||||
|
|
||||||
Group mgroup =
|
|
||||||
ControlFactory.createGroup(
|
|
||||||
composite,
|
|
||||||
CUIPlugin.getResourceString(MAKE_OPTION),
|
|
||||||
1);
|
|
||||||
defButton =
|
|
||||||
ControlFactory.createCheckBox(
|
|
||||||
mgroup,
|
|
||||||
CUIPlugin.getResourceString(MAKE_USE_DEFAULT));
|
|
||||||
defButton.addSelectionListener(new SelectionAdapter() {
|
|
||||||
public void widgetSelected(SelectionEvent e) {
|
|
||||||
if (defButton.getSelection() == true) {
|
|
||||||
cmdText.setEnabled(false);
|
|
||||||
radioButtons.setEnabled(true);
|
|
||||||
if (null != page)
|
|
||||||
page.setComplete(isValid());
|
|
||||||
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
cmdText.setEnabled(true);
|
|
||||||
radioButtons.setEnabled(false);
|
|
||||||
if (null != page)
|
|
||||||
page.setComplete(isValid());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Composite cmdComp = new Composite(mgroup, SWT.NULL);
|
|
||||||
GridLayout layout = new GridLayout();
|
|
||||||
layout.numColumns = 2;
|
|
||||||
layout.makeColumnsEqualWidth = false;
|
|
||||||
layout.marginWidth = 0;
|
|
||||||
layout.horizontalSpacing = 0;
|
|
||||||
cmdComp.setLayout(layout);
|
|
||||||
cmdComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
|
||||||
Label label =
|
|
||||||
ControlFactory.createLabel(cmdComp, CUIPlugin.getResourceString(MAKE_BUILD_CMD));
|
|
||||||
((GridData) (label.getLayoutData())).horizontalAlignment = GridData.BEGINNING;
|
|
||||||
((GridData) (label.getLayoutData())).grabExcessHorizontalSpace = false;
|
|
||||||
cmdText = ControlFactory.createTextField(cmdComp, SWT.SINGLE | SWT.BORDER);
|
|
||||||
((GridData) (cmdText.getLayoutData())).horizontalAlignment = GridData.FILL;
|
|
||||||
((GridData) (cmdText.getLayoutData())).grabExcessHorizontalSpace = true;
|
|
||||||
cmdText.addListener(SWT.Modify, new Listener() {
|
|
||||||
public void handleEvent(Event e) {
|
|
||||||
page.setComplete(isValid());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if ( buildCmd != null )
|
|
||||||
cmdText.setText(buildCmd);
|
|
||||||
if (useDefaultBuildCmd) {
|
|
||||||
cmdText.setEnabled(false);
|
|
||||||
} else {
|
|
||||||
radioButtons.setEnabled(false);
|
|
||||||
}
|
|
||||||
return composite;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isValid() {
|
|
||||||
if (defButton.getSelection() != true) {
|
|
||||||
String cmd = getBuildLine();
|
|
||||||
if (cmd == null || cmd.length() == 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVisible(boolean visible) {
|
|
||||||
if ( !defaultSelectionMade ) {
|
|
||||||
if (stopOnError)
|
|
||||||
radioButtons.setSelectValue(STOP_ARG);
|
|
||||||
else
|
|
||||||
radioButtons.setSelectValue(KEEP_ARG);
|
|
||||||
defButton.setSelection(useDefaultBuildCmd);
|
|
||||||
defaultSelectionMade = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void doRun(IProject project, IProgressMonitor monitor) {
|
|
||||||
try {
|
|
||||||
if (monitor == null) {
|
|
||||||
monitor = new NullProgressMonitor();
|
|
||||||
}
|
|
||||||
monitor.beginTask("Settings", 1);
|
|
||||||
CProjectNature nature =
|
|
||||||
(CProjectNature) project.getNature(CProjectNature.C_NATURE_ID);
|
|
||||||
if (nature != null) {
|
|
||||||
nature.setStopOnError(isStopOnError());
|
|
||||||
nature.setBuildCommandOverride(useDefaultBuildCmd());
|
|
||||||
if (!useDefaultBuildCmd()) {
|
|
||||||
String bldLine = getBuildLine();
|
|
||||||
int start = 0;
|
|
||||||
int end = -1;
|
|
||||||
if (!bldLine.startsWith("\"")) {
|
|
||||||
end = bldLine.indexOf(' ');
|
|
||||||
} else {
|
|
||||||
start = 1;
|
|
||||||
end = bldLine.indexOf('"', 1);
|
|
||||||
}
|
|
||||||
IPath path;
|
|
||||||
if (end == -1) {
|
|
||||||
path = new Path(bldLine);
|
|
||||||
} else {
|
|
||||||
path = new Path(bldLine.substring(start, end));
|
|
||||||
}
|
|
||||||
nature.setBuildCommand(path, new SubProgressMonitor(monitor, 50));
|
|
||||||
String args = "";
|
|
||||||
if (end != -1) {
|
|
||||||
args = bldLine.substring(end + 1);
|
|
||||||
}
|
|
||||||
nature.setFullBuildArguments(args, new SubProgressMonitor(monitor, 50));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (CoreException e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isStopOnError() {
|
|
||||||
if ( defaultSelectionMade ) {
|
|
||||||
if (radioButtons != null)
|
|
||||||
return radioButtons.getSelectedValue().equals(STOP_ARG);
|
|
||||||
}
|
|
||||||
return stopOnError;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean useDefaultBuildCmd() {
|
|
||||||
if ( defaultSelectionMade ) {
|
|
||||||
if (defButton != null)
|
|
||||||
return defButton.getSelection();
|
|
||||||
}
|
|
||||||
return useDefaultBuildCmd;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getBuildLine() {
|
|
||||||
if (cmdText != null) {
|
|
||||||
String cmd = cmdText.getText();
|
|
||||||
if (cmd != null)
|
|
||||||
return cmd.trim();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,49 +0,0 @@
|
||||||
package org.eclipse.cdt.ui.wizards;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
|
||||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
|
||||||
import org.eclipse.swt.widgets.TabFolder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
public class StdCCWizard extends StdMakeProjectWizard {
|
|
||||||
|
|
||||||
private static final String WZ_TITLE = "StdCCWizard.title";
|
|
||||||
private static final String WZ_DESC = "StdCCWizard.description";
|
|
||||||
private static final String SETTINGS_TITLE= "StdCCWizardSettings.title"; //$NON-NLS-1$
|
|
||||||
private static final String SETTINGS_DESC= "StdCCWizardSettings.description"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
public StdCCWizard() {
|
|
||||||
this(CUIPlugin.getResourceString(WZ_TITLE), CUIPlugin.getResourceString(WZ_DESC));
|
|
||||||
}
|
|
||||||
|
|
||||||
public StdCCWizard(String title, String desc) {
|
|
||||||
super(title, desc);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addTabItems(TabFolder folder) {
|
|
||||||
super.addTabItems(folder);
|
|
||||||
fTabFolderPage.setTitle(CUIPlugin.getResourceString(SETTINGS_TITLE));
|
|
||||||
fTabFolderPage.setDescription(CUIPlugin.getResourceString(SETTINGS_DESC));
|
|
||||||
}
|
|
||||||
protected void doRun(IProgressMonitor monitor) throws CoreException {
|
|
||||||
super.doRun(monitor);
|
|
||||||
// Add C++ Nature.
|
|
||||||
if (newProject != null) {
|
|
||||||
if (monitor == null) {
|
|
||||||
monitor = new NullProgressMonitor();
|
|
||||||
}
|
|
||||||
monitor.beginTask("Standard C++ Make", 1);
|
|
||||||
// Add C++ Nature to the newly created project.
|
|
||||||
CCorePlugin.getDefault().convertProjectFromCtoCC(newProject, monitor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
package org.eclipse.cdt.ui.wizards;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
|
||||||
import org.eclipse.swt.widgets.TabFolder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
public class StdCWizard extends StdMakeProjectWizard {
|
|
||||||
|
|
||||||
private static final String WZ_TITLE = "StdCWizard.title";
|
|
||||||
private static final String WZ_DESC = "StdCWizard.description";
|
|
||||||
private static final String SETTINGS_TITLE= "StdCWizardSettings.title"; //$NON-NLS-1$
|
|
||||||
private static final String SETTINGS_DESC= "StdCWizardSettings.description"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
public StdCWizard() {
|
|
||||||
this(CUIPlugin.getResourceString(WZ_TITLE), CUIPlugin.getResourceString(WZ_DESC));
|
|
||||||
}
|
|
||||||
|
|
||||||
public StdCWizard(String title, String desc) {
|
|
||||||
super(title, desc);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addTabItems(TabFolder folder) {
|
|
||||||
super.addTabItems(folder);
|
|
||||||
fTabFolderPage.setTitle(CUIPlugin.getResourceString(SETTINGS_TITLE));
|
|
||||||
fTabFolderPage.setDescription(CUIPlugin.getResourceString(SETTINGS_DESC));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,128 +0,0 @@
|
||||||
package org.eclipse.cdt.ui.wizards;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
|
||||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
|
||||||
import org.eclipse.core.runtime.SubProgressMonitor;
|
|
||||||
import org.eclipse.swt.SWT;
|
|
||||||
import org.eclipse.swt.graphics.Image;
|
|
||||||
import org.eclipse.swt.widgets.TabFolder;
|
|
||||||
import org.eclipse.swt.widgets.TabItem;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
public abstract class StdMakeProjectWizard extends CProjectWizard {
|
|
||||||
|
|
||||||
private static final String OP_ERROR= "StdMakeProjectWizard.op_error";
|
|
||||||
private static final String WZ_TITLE= "StdMakeProjectWizard.title";
|
|
||||||
private static final String WZ_DESC= "StdMakeProjectWizard.description";
|
|
||||||
private static final String SETTINGS_TITLE= "StdMakeWizardSettings.title"; //$NON-NLS-1$
|
|
||||||
private static final String SETTINGS_DESC= "StdMakeWizardSettings.description"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
private ReferenceBlock referenceBlock;
|
|
||||||
private SettingsBlock settingsBlock;
|
|
||||||
private BinaryParserBlock binaryParserBlock;
|
|
||||||
private BuildPathInfoBlock pathInfoBlock;
|
|
||||||
|
|
||||||
public StdMakeProjectWizard() {
|
|
||||||
this(CUIPlugin.getResourceString(WZ_TITLE), CUIPlugin.getResourceString(WZ_DESC));
|
|
||||||
}
|
|
||||||
|
|
||||||
public StdMakeProjectWizard(String title, String desc) {
|
|
||||||
super(title, desc);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addTabItems(TabFolder folder) {
|
|
||||||
fTabFolderPage.setTitle(CUIPlugin.getResourceString(SETTINGS_TITLE));
|
|
||||||
fTabFolderPage.setDescription(CUIPlugin.getResourceString(SETTINGS_DESC));
|
|
||||||
|
|
||||||
referenceBlock = new ReferenceBlock(getValidation());
|
|
||||||
TabItem item = new TabItem(folder, SWT.NONE);
|
|
||||||
item.setText(referenceBlock.getLabel());
|
|
||||||
Image img = referenceBlock.getImage();
|
|
||||||
if (img != null)
|
|
||||||
item.setImage(img);
|
|
||||||
item.setData(referenceBlock);
|
|
||||||
item.setControl(referenceBlock.getControl(folder));
|
|
||||||
addTabItem(referenceBlock);
|
|
||||||
|
|
||||||
settingsBlock = new SettingsBlock(getValidation());
|
|
||||||
TabItem item2 = new TabItem(folder, SWT.NONE);
|
|
||||||
item2.setText(settingsBlock.getLabel());
|
|
||||||
Image img2 = settingsBlock.getImage();
|
|
||||||
if (img2 != null)
|
|
||||||
item2.setImage(img2);
|
|
||||||
item2.setData(settingsBlock);
|
|
||||||
item2.setControl(settingsBlock.getControl(folder));
|
|
||||||
addTabItem(settingsBlock);
|
|
||||||
|
|
||||||
binaryParserBlock = new BinaryParserBlock(getValidation());
|
|
||||||
TabItem item3 = new TabItem(folder, SWT.NONE);
|
|
||||||
item3.setText(binaryParserBlock.getLabel());
|
|
||||||
Image img3 = binaryParserBlock.getImage();
|
|
||||||
if (img3 != null)
|
|
||||||
item3.setImage(img3);
|
|
||||||
item3.setData(binaryParserBlock);
|
|
||||||
item3.setControl(binaryParserBlock.getControl(folder));
|
|
||||||
addTabItem(binaryParserBlock);
|
|
||||||
|
|
||||||
pathInfoBlock = new BuildPathInfoBlock(getValidation());
|
|
||||||
TabItem pathItem = new TabItem(folder, SWT.NONE);
|
|
||||||
pathItem.setText(pathInfoBlock.getLabel());
|
|
||||||
Image pathImg = pathInfoBlock.getImage();
|
|
||||||
if (pathImg != null) {
|
|
||||||
pathItem.setImage(pathImg);
|
|
||||||
}
|
|
||||||
pathItem.setData(pathInfoBlock);
|
|
||||||
pathItem.setControl(pathInfoBlock.getControl(folder));
|
|
||||||
addTabItem(pathInfoBlock);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void doRunPrologue(IProgressMonitor monitor) {
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void doRunEpilogue(IProgressMonitor monitor) {
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void doRun(IProgressMonitor monitor) throws CoreException {
|
|
||||||
// super.doRun() just creates the project and does not assign a builder to it.
|
|
||||||
super.doRun(monitor);
|
|
||||||
|
|
||||||
// Modify the project based on what the user has selected
|
|
||||||
if (newProject != null) {
|
|
||||||
if (monitor == null) {
|
|
||||||
monitor = new NullProgressMonitor();
|
|
||||||
}
|
|
||||||
monitor.beginTask("Standard Make", 4);
|
|
||||||
// Update the referenced project if provided.
|
|
||||||
if (referenceBlock != null) {
|
|
||||||
referenceBlock.doRun(newProject, new SubProgressMonitor(monitor, 1));
|
|
||||||
}
|
|
||||||
// Update the settings.
|
|
||||||
if (settingsBlock != null) {
|
|
||||||
settingsBlock.doRun(newProject, new SubProgressMonitor(monitor, 1));
|
|
||||||
}
|
|
||||||
// Update the binary parser
|
|
||||||
if (binaryParserBlock != null) {
|
|
||||||
binaryParserBlock.doRun(newProject, new SubProgressMonitor(monitor, 1));
|
|
||||||
}
|
|
||||||
// Update the binary parser
|
|
||||||
if (pathInfoBlock != null) {
|
|
||||||
pathInfoBlock.doRun(newProject, new SubProgressMonitor(monitor, 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getProjectID() {
|
|
||||||
return CCorePlugin.PLUGIN_ID + ".make";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -7,13 +7,10 @@ package org.eclipse.cdt.ui.wizards.conversion;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
import org.eclipse.cdt.core.CCorePlugin;
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
import org.eclipse.cdt.ui.CUIPlugin;
|
||||||
import org.eclipse.cdt.ui.wizards.CProjectWizard;
|
import org.eclipse.cdt.ui.wizards.NewCProjectWizard;
|
||||||
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||||
|
|
||||||
import org.eclipse.swt.widgets.TabFolder;
|
|
||||||
import org.eclipse.ui.IWorkbench;
|
import org.eclipse.ui.IWorkbench;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -27,7 +24,7 @@ import org.eclipse.ui.IWorkbench;
|
||||||
* @see CtoCCConversionWizard#addPages
|
* @see CtoCCConversionWizard#addPages
|
||||||
*/
|
*/
|
||||||
public abstract class ConversionWizard
|
public abstract class ConversionWizard
|
||||||
extends CProjectWizard {
|
extends NewCProjectWizard {
|
||||||
|
|
||||||
// Titles and descriptions may be overwritten by subclasses through the accessor methods.
|
// Titles and descriptions may be overwritten by subclasses through the accessor methods.
|
||||||
private static final String WZ_TITLE = "ConversionWizard.title"; //$NON-NLS-1$
|
private static final String WZ_TITLE = "ConversionWizard.title"; //$NON-NLS-1$
|
||||||
|
@ -108,16 +105,6 @@ public abstract class ConversionWizard
|
||||||
return PREFIX;
|
return PREFIX;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method addTabItems, allows subclasses to add additional pages
|
|
||||||
*
|
|
||||||
* @see org.eclipse.cdt.ui.wizards.CProjectWizard#addTabItems(TabFolder)
|
|
||||||
*/
|
|
||||||
public void addTabItems(TabFolder folder) {
|
|
||||||
|
|
||||||
// we have no tabs, but must implement this abstract method
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method doRun calls the doRunPrologue and mainPage's doRun method and the
|
* Method doRun calls the doRunPrologue and mainPage's doRun method and the
|
||||||
* doRunEpliogue. Subclasses may overwrite to add further actions
|
* doRunEpliogue. Subclasses may overwrite to add further actions
|
||||||
|
|
|
@ -67,7 +67,7 @@ import org.eclipse.ui.PlatformUI;
|
||||||
public abstract class ConvertProjectWizardPage
|
public abstract class ConvertProjectWizardPage
|
||||||
extends WizardPage {
|
extends WizardPage {
|
||||||
|
|
||||||
public static final String KEY_TITLE = "ConvertionWizard.title";
|
public static final String KEY_TITLE = "ConvertionWizard.title";
|
||||||
public static final String KEY_CONVERTING = "ConvertionWizard.converting";
|
public static final String KEY_CONVERTING = "ConvertionWizard.converting";
|
||||||
private static final String PROJECT_LIST = "ConversionWizard.projectlist";
|
private static final String PROJECT_LIST = "ConversionWizard.projectlist";
|
||||||
|
|
||||||
|
@ -504,15 +504,19 @@ public abstract class ConvertProjectWizardPage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
protected void addCNature(IProject project, IProgressMonitor monitor, boolean addMakeBuilder) throws CoreException{
|
protected void addCNature(IProject project, IProgressMonitor monitor, boolean addMakeBuilder) throws CoreException{
|
||||||
CCorePlugin.getDefault().convertProjectToC(project, monitor, CCorePlugin.PLUGIN_ID + ".make", addMakeBuilder); //$NON-NLS-1$
|
if ( getWizard() instanceof ConversionWizard) {
|
||||||
|
CCorePlugin.getDefault().convertProjectToC(project, monitor, ((ConversionWizard)getWizard()).getProjectID());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void addCCNature(IProject project, IProgressMonitor monitor, boolean addMakeBuilder) throws CoreException{
|
protected void addCCNature(IProject project, IProgressMonitor monitor, boolean addMakeBuilder) throws CoreException{
|
||||||
if (project.hasNature(CProjectNature.C_NATURE_ID)) {
|
if ( getWizard() instanceof ConversionWizard) {
|
||||||
CCorePlugin.getDefault().convertProjectFromCtoCC(project, monitor); //$NON-NLS-1$
|
if (project.hasNature(CProjectNature.C_NATURE_ID)) {
|
||||||
} else {
|
CCorePlugin.getDefault().convertProjectFromCtoCC(project, monitor);
|
||||||
CCorePlugin.getDefault().convertProjectToCC(project, monitor, CCorePlugin.PLUGIN_ID + ".make", addMakeBuilder); //$NON-NLS-1$
|
} else {
|
||||||
}
|
CCorePlugin.getDefault().convertProjectToCC(project, monitor, ((ConversionWizard)getWizard()).getProjectID());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,93 +0,0 @@
|
||||||
package org.eclipse.cdt.ui.wizards.conversion;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This wizard provides a method by which the user can
|
|
||||||
* add a C nature to a project that previously had no nature associated with it.
|
|
||||||
*/
|
|
||||||
public class ConvertToStdMakeConversionWizard extends ConversionWizard {
|
|
||||||
|
|
||||||
private static final String WZ_TITLE = "ConvertToStdMakeConversionWizard.title"; //$NON-NLS-1$
|
|
||||||
private static final String WZ_DESC = "ConvertToStdMakeConversionWizard.description"; //$NON-NLS-1$
|
|
||||||
private static final String PREFIX= "ConvertToStdMakeConversionWizard"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
private static final String WINDOW_TITLE = "ConvertToStdMakeConversionWizard.windowTitle";//$NON-NLS-1$
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ConvertToStdMakeConversionWizard Wizard constructor
|
|
||||||
*/
|
|
||||||
public ConvertToStdMakeConversionWizard() {
|
|
||||||
this(getWindowTitleResource(), getWzDescriptionResource());
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* ConvertToStdMakeConversionWizard Wizard constructor
|
|
||||||
*
|
|
||||||
* @param title
|
|
||||||
* @param desc
|
|
||||||
*/
|
|
||||||
public ConvertToStdMakeConversionWizard(String title, String desc) {
|
|
||||||
super(title, desc);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getWzDescriptionResource, allows Wizard description label value
|
|
||||||
* to be changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getWzDescriptionResource() {
|
|
||||||
return CUIPlugin.getResourceString(WZ_DESC);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getWzTitleResource, allows Wizard description label value
|
|
||||||
* to be changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getWzTitleResource() {
|
|
||||||
return CUIPlugin.getResourceString(WZ_TITLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getWindowTitleResource, allows Wizard Title label value to be
|
|
||||||
* changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getWindowTitleResource() {
|
|
||||||
|
|
||||||
return CUIPlugin.getResourceString(WINDOW_TITLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getPrefix, allows prefix value to be changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getPrefix() {
|
|
||||||
return PREFIX;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method addPages adds our Simple to C conversion Wizard page.
|
|
||||||
*
|
|
||||||
* @see Wizard#createPages
|
|
||||||
*/
|
|
||||||
public void addPages() {
|
|
||||||
mainPage = new ConvertToStdMakeProjectWizardPage(getPrefix());
|
|
||||||
|
|
||||||
addPage(mainPage);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getProjectID() {
|
|
||||||
return CCorePlugin.PLUGIN_ID + ".make";//$NON-NLS-1$
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,66 +0,0 @@
|
||||||
package org.eclipse.cdt.ui.wizards.conversion;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (c) Copyright QNX Software Systems Ltd. 2002.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
|
||||||
import org.eclipse.core.resources.IProject;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* ConvertToStdMakeProjectWizardPage
|
|
||||||
* Standard main page for a wizard that adds a C project Nature to a project with no nature associated with it.
|
|
||||||
* This conversion is one way in that the project cannot be converted back (i.e have the nature removed).
|
|
||||||
*
|
|
||||||
* @author Judy N. Green
|
|
||||||
* @since Aug 6, 2002
|
|
||||||
*<p>
|
|
||||||
* Example useage:
|
|
||||||
* <pre>
|
|
||||||
* mainPage = new ConvertToStdMakeProjectWizardPage("ConvertProjectPage");
|
|
||||||
* mainPage.setTitle("Project Conversion");
|
|
||||||
* mainPage.setDescription("Add C or C++ a Nature to a project.");
|
|
||||||
* </pre>
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class ConvertToStdMakeProjectWizardPage extends ConvertProjectWizardPage {
|
|
||||||
|
|
||||||
private static final String WZ_TITLE = "StdMakeConversionWizard.title"; //$NON-NLS-1$
|
|
||||||
private static final String WZ_DESC = "StdMakeConversionWizard.description"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor for ConvertToStdMakeProjectWizardPage.
|
|
||||||
* @param pageName
|
|
||||||
*/
|
|
||||||
public ConvertToStdMakeProjectWizardPage(String pageName) {
|
|
||||||
super(pageName);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getWzTitleResource returns the correct Title Label for this class
|
|
||||||
* overriding the default in the superclass.
|
|
||||||
*/
|
|
||||||
protected String getWzTitleResource(){
|
|
||||||
return CUIPlugin.getResourceString(WZ_TITLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getWzDescriptionResource returns the correct description
|
|
||||||
* Label for this class overriding the default in the superclass.
|
|
||||||
*/
|
|
||||||
protected String getWzDescriptionResource(){
|
|
||||||
return CUIPlugin.getResourceString(WZ_DESC);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method isCandidate returns true for all projects.
|
|
||||||
*
|
|
||||||
* @param project
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
public boolean isCandidate(IProject project) {
|
|
||||||
return true; // all
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue