git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268217 13f79535-47bb-0310-9956-ffa450edef68master
@@ -1,3 +1,8 @@ | |||||
2000-11-20 Simeon H.K. Fitch <simeon@fitch.net> | |||||
* org/apache/tools/ant/gui/command/DisplayErrorCmd.java: Added | |||||
code to allow display of stack backtrace if needed. | |||||
2000-11-18 Simeon H.K. Fitch <simeon@fitch.net> | 2000-11-18 Simeon H.K. Fitch <simeon@fitch.net> | ||||
* org/apache/tools/ant/gui/customizer/PropertiesPropertyEditor.java: | * org/apache/tools/ant/gui/customizer/PropertiesPropertyEditor.java: | ||||
@@ -57,6 +57,7 @@ import javax.xml.parsers.*; | |||||
import java.io.File; | import java.io.File; | ||||
import java.io.IOException; | import java.io.IOException; | ||||
import org.w3c.dom.*; | import org.w3c.dom.*; | ||||
import org.xml.sax.SAXException; | |||||
import com.sun.xml.parser.Parser; | import com.sun.xml.parser.Parser; | ||||
import com.sun.xml.tree.SimpleElementFactory; | import com.sun.xml.tree.SimpleElementFactory; | ||||
import com.sun.xml.tree.XmlDocument; | import com.sun.xml.tree.XmlDocument; | ||||
@@ -119,7 +120,7 @@ public class ACSFactory { | |||||
* @param f File to load. | * @param f File to load. | ||||
* @return | * @return | ||||
*/ | */ | ||||
public ACSProjectElement load(File f) throws IOException { | |||||
public ACSProjectElement load(File f) throws IOException, SAXException { | |||||
XmlDocument doc = null; | XmlDocument doc = null; | ||||
try { | try { | ||||
@@ -139,8 +140,9 @@ public class ACSFactory { | |||||
sax.parse(f, null); | sax.parse(f, null); | ||||
doc = builder.getDocument(); | doc = builder.getDocument(); | ||||
} | } | ||||
catch(Exception ex) { | |||||
catch(ParserConfigurationException ex) { | |||||
ex.printStackTrace(); | ex.printStackTrace(); | ||||
throw new IOException(ex.getMessage()); | throw new IOException(ex.getMessage()); | ||||
} | } | ||||
@@ -53,7 +53,11 @@ | |||||
*/ | */ | ||||
package org.apache.tools.ant.gui.command; | package org.apache.tools.ant.gui.command; | ||||
import org.apache.tools.ant.gui.AppContext; | import org.apache.tools.ant.gui.AppContext; | ||||
import javax.swing.JOptionPane; | |||||
import org.apache.tools.ant.gui.util.StackFrame; | |||||
import javax.swing.*; | |||||
import java.awt.FlowLayout; | |||||
import java.awt.event.ActionListener; | |||||
import java.awt.event.ActionEvent; | |||||
/** | /** | ||||
* Command for displaying an arbitrary error message to the user. | * Command for displaying an arbitrary error message to the user. | ||||
@@ -101,7 +105,35 @@ public class DisplayErrorCmd implements Command { | |||||
String title = _context.getResources().getString(getClass(), "title"); | String title = _context.getResources().getString(getClass(), "title"); | ||||
JOptionPane.showMessageDialog( | JOptionPane.showMessageDialog( | ||||
_context.getParentFrame(), _message, | |||||
_context.getParentFrame(), new MsgPanel(), | |||||
title, JOptionPane.ERROR_MESSAGE); | title, JOptionPane.ERROR_MESSAGE); | ||||
} | } | ||||
// Panel for assembling the error information. | |||||
private class MsgPanel extends JPanel implements ActionListener { | |||||
public MsgPanel() { | |||||
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); | |||||
add(new JLabel(_message)); | |||||
if(_ex != null) { | |||||
add(new JLabel(_ex.getMessage())); | |||||
JButton b = new JButton(_context.getResources(). | |||||
getString(DisplayErrorCmd.class, | |||||
"expand")); | |||||
b.addActionListener(this); | |||||
add(Box.createVerticalStrut(20)); | |||||
add(b); | |||||
} | |||||
} | |||||
// Called when the user clicks the expand button. | |||||
public void actionPerformed(ActionEvent e) { | |||||
JComponent source = (JComponent) e.getSource(); | |||||
JComponent parent = (JComponent) source.getParent(); | |||||
parent.remove(source); | |||||
JTextArea text = new JTextArea(); | |||||
text.setEditable(false); | |||||
text.setText(StackFrame.toString(_ex)); | |||||
parent.add(new JScrollPane(text)); | |||||
SwingUtilities.windowForComponent(parent).pack(); | |||||
} | |||||
} | |||||
} | } |
@@ -98,13 +98,13 @@ public class LoadFileCmd implements Command { | |||||
ProjectProxy project = new ProjectProxy(_context, _file); | ProjectProxy project = new ProjectProxy(_context, _file); | ||||
_context.setProject(project); | _context.setProject(project); | ||||
} | } | ||||
catch(IOException ex) { | |||||
catch(Exception ex) { | |||||
String message = _context.getResources().getMessage( | String message = _context.getResources().getMessage( | ||||
getClass(), "loadError", | getClass(), "loadError", | ||||
new Object[] { _file.toString() }); | new Object[] { _file.toString() }); | ||||
_context.getEventBus(). | _context.getEventBus(). | ||||
postEvent(new ErrorEvent(_context, message)); | |||||
postEvent(new ErrorEvent(_context, message, ex)); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -34,7 +34,8 @@ org.apache.tools.ant.gui.XMLFileFilter.description=XML Files | |||||
org.apache.tools.ant.gui.command.LoadFileCmd.noFile=The file "{0}" was not found. | org.apache.tools.ant.gui.command.LoadFileCmd.noFile=The file "{0}" was not found. | ||||
org.apache.tools.ant.gui.command.LoadFileCmd.loadError=The file "{0}" could not be loaded. | org.apache.tools.ant.gui.command.LoadFileCmd.loadError=The file "{0}" could not be loaded. | ||||
org.apache.tools.ant.gui.command.DisplayErrorCmd.title=Error... | |||||
org.apache.tools.ant.gui.command.DisplayErrorCmd.title=Antidote Error... | |||||
org.apache.tools.ant.gui.command.DisplayErrorCmd.expand=Details >> | |||||
org.apache.tools.ant.gui.command.SaveCmd.saveError=Could not save to "{0}". | org.apache.tools.ant.gui.command.SaveCmd.saveError=Could not save to "{0}". | ||||
org.apache.tools.ant.gui.command.SaveCmd.noProject=No project to save. | org.apache.tools.ant.gui.command.SaveCmd.noProject=No project to save. | ||||