Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsarsenau2002-05-14 17:55:40 +0000
committersarsenau2002-05-14 17:55:40 +0000
commit894a6570ac5fff18fc616d5764d725e9feb07416 (patch)
tree43e11097da6882b7bdbbe2cc1e5c1da411f66a68 /org.eclipse.ui.externaltools
parente0cbd99e2dbc6c6c52f1fd549f9a03e3528fb000 (diff)
downloadeclipse.platform.debug-894a6570ac5fff18fc616d5764d725e9feb07416.tar.gz
eclipse.platform.debug-894a6570ac5fff18fc616d5764d725e9feb07416.tar.xz
eclipse.platform.debug-894a6570ac5fff18fc616d5764d725e9feb07416.zip
Parse Ant XML directly instead of ProjectHelper class
Diffstat (limited to 'org.eclipse.ui.externaltools')
-rw-r--r--org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntTargetList.java56
-rw-r--r--org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntUtil.java73
-rw-r--r--org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ProgramRunner.java7
-rw-r--r--org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntAction.java20
-rw-r--r--org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizard.java19
-rw-r--r--org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizardPage.java60
-rw-r--r--org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntTargetContentProvider.java11
-rw-r--r--org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntTargetLabelProvider.java7
-rw-r--r--org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/EditDialog.java27
-rw-r--r--org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/LogConsoleDocument.java74
10 files changed, 235 insertions, 119 deletions
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntTargetList.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntTargetList.java
new file mode 100644
index 000000000..5889ae5c2
--- /dev/null
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntTargetList.java
@@ -0,0 +1,56 @@
+package org.eclipse.ui.externaltools.internal.core;
+
+/**********************************************************************
+Copyright (c) 2002 IBM Corp. 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:
+**********************************************************************/
+import java.util.ArrayList;
+
+/**
+ * This class represents a list of targets that an
+ * Ant file can run.
+ */
+public class AntTargetList {
+ // The list of targets.
+ private ArrayList targets = new ArrayList();
+
+ // The target that will be run if no targets are specified
+ // by the user.
+ private String defaultTarget = null;
+
+ /**
+ * Add a target to the list.
+ */
+ public void add(String target) {
+ targets.add(target);
+ }
+
+ /**
+ * Retrieve the default target. This method will return null
+ * if the default target has not yet been specified.
+ */
+ public String getDefaultTarget() {
+ return defaultTarget;
+ }
+
+ /**
+ * Retrieve all the targets as an array.
+ */
+ public String[] getTargets() {
+ String[] array = new String[targets.size()];
+ targets.toArray(array);
+ return array;
+ }
+
+ /**
+ * Set the default target.
+ */
+ public void setDefaultTarget(String target) {
+ defaultTarget = target;
+ }
+}
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntUtil.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntUtil.java
index accaba201..3a2cd9a2f 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntUtil.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntUtil.java
@@ -9,17 +9,18 @@ http://www.eclipse.org/legal/cpl-v05.html
 
Contributors:
**********************************************************************/
-import java.io.File;
+import java.io.*;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.ProjectHelper;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.*;
+import org.eclipse.ui.*;
/**
* General utility class dealing with Ant files
*/
public final class AntUtil {
+ private static final String ATT_DEFAULT = "default"; //NON-NLS-1$
+ private static final String ATT_NAME = "name"; //NON-NLS-1$
+ private static final String TAG_TARGET = "target"; //NON-NLS-1$
// Holds the current monitor that the Ant build logger can access
private static IProgressMonitor monitor;
@@ -31,25 +32,55 @@ public final class AntUtil {
}
/**
- * Creates an intialized Ant project for the given
- * Ant file. Returns <code>null</code> if file
- * is invalid Ant format.
- */
- public static Project createAntProject(IPath path) {
- // create an ant project and initialize it
- Project antProject = new Project();
- antProject.init();
- antProject.setProperty("ant.file", path.toOSString()); //$NON-NLS-1$;
-
+ * Returns the list of targets for the Ant file specified
+ * by the provided IPath, or <code>null</code> if no file is
+ * found or the file is not a valid Ant file.
+ */
+ public static AntTargetList getTargetList(IPath path) {
+ IMemento memento = getMemento(path);
+ return getTargetList(memento);
+ }
+
+ /**
+ * Returns an IMemento representing the Ant tool found in
+ * the supplied IPath, or <code>null</code> if a file is not found.
+ */
+ private static IMemento getMemento(IPath path) {
try {
- ProjectHelper.configureProject(antProject, new File(path.toOSString()));
- } catch (VirtualMachineError e) {
- throw e; // Let others handle this
- } catch (Throwable t) {
- return null; // Assume invalid format problems
+ Reader reader = new FileReader(path.toFile());
+ return XMLMemento.createReadRoot(reader);
+ } catch (FileNotFoundException e) {
+ ExternalToolsPlugin.getDefault().log("Error: Ant file not found.", e); // $NON-NLS-1$
+ return null;
+ }
+ }
+
+ /**
+ * Returns the list of targets of the Ant file represented by the
+ * supplied IMemento, or <code>null</code> if the memento is null or
+ * does not represent a valid Ant file.
+ */
+ private static AntTargetList getTargetList(IMemento memento) {
+ if (memento == null)
+ return null;
+ AntTargetList targets = new AntTargetList();
+
+ String defaultTarget = memento.getString(ATT_DEFAULT);
+ targets.setDefaultTarget(defaultTarget);
+
+ IMemento[] targetMementos = memento.getChildren(TAG_TARGET);
+ for (int i=0; i < targetMementos.length; i++) {
+ IMemento targetMemento = targetMementos[i];
+ String target = targetMemento.getString(ATT_NAME);
+ targets.add(target);
}
- return antProject;
+ // If the file has no targets, then it is not a
+ // valid Ant file.
+ if (targets.getTargets().length == 0)
+ return null;
+ else
+ return targets;
}
/**
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ProgramRunner.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ProgramRunner.java
index 9b1317a9a..97ab525d4 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ProgramRunner.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ProgramRunner.java
@@ -12,10 +12,6 @@ Contributors:
import java.io.IOException;
import java.io.InputStream;
-import org.apache.tools.ant.BuildEvent;
-import org.apache.tools.ant.BuildListener;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -62,7 +58,7 @@ public class ProgramRunner extends ExternalToolsRunner {
* Returns a runnable that is used to capture and print out a stream
* from another process.
*/
- private Runnable getRunnable(final InputStream input, final BuildListener listener, final int severity, final boolean[] finished) {
+/* private Runnable getRunnable(final InputStream input, final BuildListener listener, final int severity, final boolean[] finished) {
return new Runnable() {
public void run() {
try {
@@ -89,4 +85,5 @@ public class ProgramRunner extends ExternalToolsRunner {
}
};
}
+*/
}
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntAction.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntAction.java
index 350ee8c61..09619ad72 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntAction.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntAction.java
@@ -9,25 +9,13 @@ http://www.eclipse.org/legal/cpl-v05.html
 
Contributors:
**********************************************************************/
-import java.io.File;
-
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.ProjectHelper;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.externaltools.internal.core.AntUtil;
-import org.eclipse.ui.externaltools.internal.core.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.core.IPreferenceConstants;
-import org.eclipse.ui.externaltools.internal.core.ToolMessages;
+import org.eclipse.ui.externaltools.internal.core.*;
/**
* Action to run an ant build file.
@@ -59,8 +47,8 @@ public class AntAction extends Action {
saveDirtyEditors();
- Project project = AntUtil.createAntProject(file.getLocation());
- if (project == null) {
+ AntTargetList targetList = AntUtil.getTargetList(file.getLocation());
+ if (targetList == null) {
MessageDialog.openError(
window.getShell(),
ToolMessages.getString("AntAction.runErrorTitle"), //$NON-NLS-1$;
@@ -68,7 +56,7 @@ public class AntAction extends Action {
return;
}
- AntLaunchWizard wizard = new AntLaunchWizard(project, file, window);
+ AntLaunchWizard wizard = new AntLaunchWizard(targetList, file, window);
wizard.setNeedsProgressMonitor(true);
WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
dialog.create();
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizard.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizard.java
index 22f89859d..47f3bdacb 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizard.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizard.java
@@ -12,20 +12,13 @@ Contributors:
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
-import org.apache.tools.ant.Project;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.*;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.externaltools.internal.core.DefaultRunnerContext;
-import org.eclipse.ui.externaltools.internal.core.ExternalTool;
-import org.eclipse.ui.externaltools.internal.core.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.core.ToolMessages;
-import org.eclipse.ui.externaltools.internal.core.ToolUtil;
+import org.eclipse.ui.externaltools.internal.core.*;
/**
* The wizard to run an Ant script file when the Run Ant...
@@ -43,7 +36,7 @@ public class AntLaunchWizard extends Wizard {
/**
* The Ant project described in the xml file.
*/
- private Project antProject = null;
+ private AntTargetList targetList = null;
/**
* The tool script representing Ant script
@@ -73,9 +66,9 @@ public class AntLaunchWizard extends Wizard {
* @param antProject
* @param antFile
*/
- public AntLaunchWizard(Project antProject, IFile antFile, IWorkbenchWindow window) {
+ public AntLaunchWizard(AntTargetList targetList, IFile antFile, IWorkbenchWindow window) {
super();
- this.antProject = antProject;
+ this.targetList = targetList;
this.antFile = antFile;
this.window = window;
String name = antFile.getFullPath().toString();
@@ -94,7 +87,7 @@ public class AntLaunchWizard extends Wizard {
* Method declared on IWizard.
*/
public void addPages() {
- page1 = new AntLaunchWizardPage(antProject);
+ page1 = new AntLaunchWizardPage(targetList);
addPage(page1);
String args = antTool.getArguments();
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizardPage.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizardPage.java
index dfa6fc327..89b8d63a0 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizardPage.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizardPage.java
@@ -9,31 +9,17 @@ http://www.eclipse.org/legal/cpl-v05.html
 
Contributors:
**********************************************************************/
-import java.net.MalformedURLException;
-import java.net.URL;
+import java.net.*;
import java.util.ArrayList;
-import java.util.Iterator;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Target;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.jface.viewers.*;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-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.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.externaltools.internal.core.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.core.ToolMessages;
+import org.eclipse.swt.events.*;
+import org.eclipse.swt.layout.*;
+import org.eclipse.swt.widgets.*;
+import org.eclipse.ui.externaltools.internal.core.*;
/**
* First page of the run Ant wizard. Allows the user to pick
@@ -44,7 +30,7 @@ public class AntLaunchWizardPage extends WizardPage {
private static final int SIZING_SELECTION_WIDGET_HEIGHT = 200;
private static final int SIZING_SELECTION_WIDGET_WIDTH = 200;
- private Project project;
+ private AntTargetList targetList;
private String initialTargets[];
private String initialArguments;
private boolean initialDisplayLog = true;
@@ -55,9 +41,9 @@ public class AntLaunchWizardPage extends WizardPage {
private Button showLog;
private Text argumentsField;
- public AntLaunchWizardPage(Project project) {
+ public AntLaunchWizardPage(AntTargetList targetList) {
super("AntScriptPage"); //$NON-NLS-1$;
- this.project = project;
+ this.targetList = targetList;
setTitle(ToolMessages.getString("AntLaunchWizard.dialogTitle")); //$NON-NLS-1$;
setDescription(ToolMessages.getString("AntLaunchWizard.dialogDescription")); //$NON-NLS-1$;
setImageDescriptor(getImageDescriptor("icons/full/wizban/ant_wiz.gif")); //$NON-NLS-1$;
@@ -95,14 +81,14 @@ public class AntLaunchWizardPage extends WizardPage {
listViewer.getTable().setLayoutData(data);
listViewer.setSorter(new ViewerSorter() {
public int compare(Viewer viewer, Object o1, Object o2) {
- return ((Target) o1).getName().compareTo(((Target) o2).getName());
+ return ((String)o1).compareTo((String) o2);
}
});
- if (project.getDefaultTarget() != null)
- labelProvider.setDefaultTargetName(project.getDefaultTarget());
+ if (targetList.getDefaultTarget() != null)
+ labelProvider.setDefaultTargetName(targetList.getDefaultTarget());
listViewer.setLabelProvider(labelProvider);
listViewer.setContentProvider(new AntTargetContentProvider());
- listViewer.setInput(project);
+ listViewer.setInput(targetList);
// The arguments field
label = new Label(composite, SWT.NONE);
@@ -150,9 +136,7 @@ public class AntLaunchWizardPage extends WizardPage {
*/
public String[] getSelectedTargets() {
String[] names = new String[selectedTargets.size()];
- for (int i = 0; i < selectedTargets.size(); i++) {
- names[i] = ((Target)selectedTargets.get(i)).getName();
- }
+ selectedTargets.toArray(names);
return names;
}
@@ -169,15 +153,19 @@ public class AntLaunchWizardPage extends WizardPage {
*/
private void selectInitialTargets() {
if (initialTargets != null && initialTargets.length > 0) {
+ String[] targets = targetList.getTargets();
for (int i = 0; i < initialTargets.length; i++) {
- Target target = (Target)project.getTargets().get(initialTargets[i]);
- if (target != null && !selectedTargets.contains(target)) {
- listViewer.setChecked(target, true);
- selectedTargets.add(target);
+ for (int j = 0; j < targets.length; j++) {
+ if (targets[j].equals(initialTargets[i])) {
+ String target = targets[j];
+ listViewer.setChecked(target, true);
+ selectedTargets.add(target);
+ break;
+ }
}
}
} else {
- Target target = (Target)project.getTargets().get(project.getDefaultTarget());
+ String target = targetList.getDefaultTarget();
if (target != null) {
listViewer.setChecked(target, true);
selectedTargets.add(target);
@@ -224,7 +212,7 @@ public class AntLaunchWizardPage extends WizardPage {
*/
private class TargetCheckListener implements ICheckStateListener {
public void checkStateChanged(CheckStateChangedEvent e) {
- Target checkedTarget = (Target) e.getElement();
+ String checkedTarget = (String) e.getElement();
if (e.getChecked())
selectedTargets.add(checkedTarget);
else
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntTargetContentProvider.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntTargetContentProvider.java
index 20e166048..9e9f72f4c 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntTargetContentProvider.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntTargetContentProvider.java
@@ -9,9 +9,8 @@ http://www.eclipse.org/legal/cpl-v05.html
 
Contributors:
**********************************************************************/
-import org.apache.tools.ant.Project;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.*;
+import org.eclipse.ui.externaltools.internal.core.AntTargetList;
/**
* Content provider for targets within an Ant script
@@ -27,9 +26,9 @@ public class AntTargetContentProvider implements IStructuredContentProvider {
/* (non-Javadoc)
* Method declared on IStructuredContentProvider.
*/
- public Object[] getElements(Object inputElement) {
- Project project = (Project) inputElement;
- return project.getTargets().values().toArray();
+ public Object[] getElements(Object input) {
+ AntTargetList targetList = (AntTargetList) input;
+ return targetList.getTargets();
}
/* (non-Javadoc)
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntTargetLabelProvider.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntTargetLabelProvider.java
index ae5c37448..29ce328e3 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntTargetLabelProvider.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntTargetLabelProvider.java
@@ -11,7 +11,6 @@ Contributors:
**********************************************************************/
import java.util.ArrayList;
-import org.apache.tools.ant.Target;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.ui.externaltools.internal.core.ToolMessages;
@@ -26,10 +25,10 @@ public class AntTargetLabelProvider extends LabelProvider {
* Method declared on ILabelProvider.
*/
public String getText(Object model) {
- Target targetToDisplay = (Target) model;
+ String targetToDisplay = (String) model;
if (targetToDisplay != null) {
- StringBuffer result = new StringBuffer(targetToDisplay.getName());
- if (targetToDisplay.getName().equals(defaultTargetName)) {
+ StringBuffer result = new StringBuffer(targetToDisplay);
+ if (targetToDisplay.equals(defaultTargetName)) {
result.append(" ("); //$NON-NLS-1$;
result.append(ToolMessages.getString("AntTargetLabelProvider.defaultTarget")); //$NON-NLS-1$;
result.append(")"); //$NON-NLS-1$;
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/EditDialog.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/EditDialog.java
index 14e7bcb35..03ba767b8 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/EditDialog.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/EditDialog.java
@@ -10,9 +10,8 @@ http://www.eclipse.org/legal/cpl-v05.html
Contributors:
**********************************************************************/
import java.io.File;
-import java.util.*;
+import java.util.ArrayList;
-import org.apache.tools.ant.*;
import org.eclipse.core.resources.*;
import org.eclipse.core.runtime.*;
import org.eclipse.jface.dialogs.*;
@@ -22,12 +21,11 @@ import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.externaltools.internal.core.*;
import org.eclipse.ui.*;
import org.eclipse.ui.dialogs.*;
+import org.eclipse.ui.externaltools.internal.core.*;
import org.eclipse.ui.help.WorkbenchHelp;
import org.eclipse.ui.model.*;
-import org.eclipse.swt.widgets.List;
/**
* Dialog box to enter the required information for running
@@ -638,8 +636,8 @@ public class EditDialog extends TitleAreaDialog {
list.add(ToolMessages.getString("EditDialog.varProjectXDirLabel")); //$NON-NLS-1$
Path path = new Path(locationField.getText().trim());
- Project project = AntUtil.createAntProject(path);
- if (project != null)
+ AntTargetList targetList = AntUtil.getTargetList(path);
+ if (targetList != null)
list.add(ToolMessages.getString("EditDialog.varAntTargetLabel")); //$NON-NLS-1$
return dialogArea;
@@ -820,18 +818,18 @@ public class EditDialog extends TitleAreaDialog {
private class TargetSelectionDialog extends SelectionDialog implements ICheckStateListener {
private ArrayList selectedTargets = new ArrayList();
private CheckboxTableViewer listViewer;
- private Project project;
+ private AntTargetList targetList;
private AntTargetLabelProvider labelProvider = new AntTargetLabelProvider();
public TargetSelectionDialog(Shell parent, String location) {
super(parent);
IPath path = new Path(location);
- project = AntUtil.createAntProject(path);
+ targetList = AntUtil.getTargetList(path);
setTitle(ToolMessages.getString("EditDialog.varAntTargetLabel")); //$NON-NLS-1$
}
public void checkStateChanged(CheckStateChangedEvent e) {
- Target checkedTarget = (Target)e.getElement();
+ String checkedTarget = (String)e.getElement();
if (e.getChecked())
selectedTargets.add(checkedTarget);
else
@@ -854,15 +852,15 @@ public class EditDialog extends TitleAreaDialog {
listViewer.getTable().setLayoutData(data);
listViewer.setSorter(new ViewerSorter() {
public int compare(Viewer viewer,Object o1,Object o2) {
- return ((Target)o1).getName().compareTo(((Target)o2).getName());
+ return ((String)o1).compareTo((String)o2);
}
});
- if (project != null && project.getDefaultTarget() != null)
- labelProvider.setDefaultTargetName(project.getDefaultTarget());
+ if (targetList != null && targetList.getDefaultTarget() != null)
+ labelProvider.setDefaultTargetName(targetList.getDefaultTarget());
listViewer.setLabelProvider(labelProvider);
listViewer.setContentProvider(new AntTargetContentProvider());
- listViewer.setInput(project);
+ listViewer.setInput(targetList);
listViewer.addCheckStateListener(this);
listViewer.refresh();
@@ -880,8 +878,7 @@ public class EditDialog extends TitleAreaDialog {
protected String[] getTargetNames() {
String[] result = new String[selectedTargets.size()];
- for (int i = 0; i < selectedTargets.size(); i++)
- result[i] = ((Target) selectedTargets.get(i)).getName();
+ selectedTargets.toArray(result);
return result;
}
}
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/LogConsoleDocument.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/LogConsoleDocument.java
index dda6ecd07..0e3da1764 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/LogConsoleDocument.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/LogConsoleDocument.java
@@ -9,13 +9,17 @@ http://www.eclipse.org/legal/cpl-v05.html
 
Contributors:
**********************************************************************/
+import java.util.*;
import java.util.ArrayList;
import org.apache.tools.ant.Project;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.TextViewer;
+import org.eclipse.jface.util.*;
+import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.custom.StyleRange;
+import org.eclipse.swt.graphics.*;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Display;
@@ -36,10 +40,10 @@ public class LogConsoleDocument {
static Color DEBUG_COLOR;
static Font ANT_FONT;
- // class variables that handle the colors and the font;
- private static LogPropertyChangeListener changeListener = LogPropertyChangeListener.getInstance();
private static LogConsoleDocument instance = null;
+ private LogPropertyChangeListener changeListener = new LogPropertyChangeListener();
+
/*package*/ ArrayList views = new ArrayList();
private Document document;
private ArrayList styleRanges;
@@ -190,7 +194,71 @@ public class LogConsoleDocument {
break;
default:
addRangeStyle(start, end, LogConsoleDocument.INFO_COLOR);
+ }
}
-}
+
+ private class LogPropertyChangeListener implements IPropertyChangeListener {
+
+ // private constructor to ensure the singleton
+ private LogPropertyChangeListener() {
+ }
+
+ /**
+ * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
+ */
+ public void propertyChange(PropertyChangeEvent event) {
+ String propertyName= event.getProperty();
+
+ if (propertyName.equals(IPreferenceConstants.CONSOLE_ERROR_RGB)) {
+ Color temp = LogConsoleDocument.ERROR_COLOR;
+ LogConsoleDocument.ERROR_COLOR = ToolsPreferencePage.getPreferenceColor(IPreferenceConstants.CONSOLE_ERROR_RGB);
+ temp.dispose();
+ clearOutput();
+ } else if (propertyName.equals(IPreferenceConstants.CONSOLE_WARNING_RGB)) {
+ Color temp = LogConsoleDocument.WARN_COLOR;
+ LogConsoleDocument.WARN_COLOR = ToolsPreferencePage.getPreferenceColor(IPreferenceConstants.CONSOLE_WARNING_RGB);
+ temp.dispose();
+ clearOutput();
+ } else if (propertyName.equals(IPreferenceConstants.CONSOLE_INFO_RGB)) {
+ Color temp = LogConsoleDocument.INFO_COLOR;
+ LogConsoleDocument.INFO_COLOR = ToolsPreferencePage.getPreferenceColor(IPreferenceConstants.CONSOLE_INFO_RGB);
+ temp.dispose();
+ clearOutput();
+ } else if (propertyName.equals(IPreferenceConstants.CONSOLE_VERBOSE_RGB)) {
+ Color temp = LogConsoleDocument.VERBOSE_COLOR;
+ LogConsoleDocument.VERBOSE_COLOR = ToolsPreferencePage.getPreferenceColor(IPreferenceConstants.CONSOLE_VERBOSE_RGB);
+ temp.dispose();
+ clearOutput();
+ } else if (propertyName.equals(IPreferenceConstants.CONSOLE_DEBUG_RGB)) {
+ Color temp = LogConsoleDocument.DEBUG_COLOR;
+ LogConsoleDocument.DEBUG_COLOR = ToolsPreferencePage.getPreferenceColor(IPreferenceConstants.CONSOLE_DEBUG_RGB);
+ temp.dispose();
+ clearOutput();
+ } else if (propertyName.equals(IPreferenceConstants.CONSOLE_FONT)) {
+ FontData data= ToolsPreferencePage.getConsoleFontData();
+ Font temp= LogConsoleDocument.ANT_FONT;
+ LogConsoleDocument.ANT_FONT = new Font(Display.getCurrent(), data);
+ temp.dispose();
+ updateFont();
+ } else
+ return;
+ }
+
+ /**
+ * Clears the output of all the consoles
+ */
+ private void clearOutput() {
+ LogConsoleDocument.getInstance().clearOutput();
+ }
+
+ /**
+ * Updates teh font in all the consoles
+ */
+ private void updateFont() {
+ for (Iterator iterator = LogConsoleDocument.getInstance().getViews().iterator(); iterator.hasNext();)
+ ((LogConsoleView) iterator.next()).updateFont();
+ }
+ }
+
}

Back to the top