tkormann 01/11/29 01:17:41
Modified: resources/org/apache/batik/util/gui/resources
JErrorPane.properties
sources/org/apache/batik/apps/svgbrowser
JSVGViewerFrame.java
sources/org/apache/batik/swing JSVGCanvas.java
sources/org/apache/batik/util/gui JErrorPane.java
Log:
change the layout
Revision Changes Path
1.2 +7 -1
xml-batik/resources/org/apache/batik/util/gui/resources/JErrorPane.properties
Index: JErrorPane.properties
===================================================================
RCS file:
/home/cvs/xml-batik/resources/org/apache/batik/util/gui/resources/JErrorPane.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JErrorPane.properties 2001/11/28 16:07:47 1.1
+++ JErrorPane.properties 2001/11/29 09:17:41 1.2
@@ -9,10 +9,16 @@
# The resources for the JErrorPane
#
# Author: [EMAIL PROTECTED]
-# $Id: JErrorPane.properties,v 1.1 2001/11/28 16:07:47 tkormann Exp $
+# $Id: JErrorPane.properties,v 1.2 2001/11/29 09:17:41 tkormann Exp $
#
ShowDetailButton.text = Show Details
ShowDetailButton.text2 = Hide Details
ShowDetailButton.mnemonic = D
ShowDetailButton.action = ShowDetailButtonAction
+
+OKButton.text = OK
+OKButton.mnemonic = O
+OKButton.action = OKButtonAction
+
+
1.66 +2 -2
xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java
Index: JSVGViewerFrame.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -r1.65 -r1.66
--- JSVGViewerFrame.java 2001/11/28 16:07:47 1.65
+++ JSVGViewerFrame.java 2001/11/29 09:17:41 1.66
@@ -154,7 +154,7 @@
* This class represents a SVG viewer swing frame.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: JSVGViewerFrame.java,v 1.65 2001/11/28 16:07:47 tkormann Exp $
+ * @version $Id: JSVGViewerFrame.java,v 1.66 2001/11/29 09:17:41 tkormann Exp $
*/
public class JSVGViewerFrame
extends JFrame
@@ -1696,7 +1696,7 @@
if (debug) {
ex.printStackTrace();
}
- JOptionPane pane =
+ JErrorPane pane =
new JErrorPane(ex, JOptionPane.ERROR_MESSAGE);
JDialog dialog = pane.createDialog(JSVGViewerFrame.this, "ERROR");
dialog.setModal(false);
1.31 +2 -2 xml-batik/sources/org/apache/batik/swing/JSVGCanvas.java
Index: JSVGCanvas.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/JSVGCanvas.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- JSVGCanvas.java 2001/11/28 16:07:47 1.30
+++ JSVGCanvas.java 2001/11/29 09:17:41 1.31
@@ -69,7 +69,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: JSVGCanvas.java,v 1.30 2001/11/28 16:07:47 tkormann Exp $
+ * @version $Id: JSVGCanvas.java,v 1.31 2001/11/29 09:17:41 tkormann Exp $
*/
public class JSVGCanvas extends JSVGComponent {
@@ -908,7 +908,7 @@
if (svgUserAgent != null) {
super.displayError(ex);
} else {
- JOptionPane pane =
+ JErrorPane pane =
new JErrorPane(ex, JOptionPane.ERROR_MESSAGE);
JDialog dialog = pane.createDialog(JSVGCanvas.this, "ERROR");
dialog.setModal(false);
1.3 +134 -110 xml-batik/sources/org/apache/batik/util/gui/JErrorPane.java
Index: JErrorPane.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/util/gui/JErrorPane.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JErrorPane.java 2001/11/29 08:14:16 1.2
+++ JErrorPane.java 2001/11/29 09:17:41 1.3
@@ -13,6 +13,7 @@
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
+import java.awt.FlowLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
@@ -24,15 +25,18 @@
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;
+import java.util.StringTokenizer;
import javax.swing.AbstractAction;
import javax.swing.Action;
+import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
+import javax.swing.JSeparator;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
@@ -45,9 +49,9 @@
* This class represents a dialog to display an error (message + Exception).
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: JErrorPane.java,v 1.2 2001/11/29 08:14:16 tkormann Exp $
+ * @version $Id: JErrorPane.java,v 1.3 2001/11/29 09:17:41 tkormann Exp $
*/
-public class JErrorPane extends JOptionPane {
+public class JErrorPane extends JPanel implements ActionMap {
/**
* The resource file name
@@ -81,12 +85,43 @@
protected String stacktrace;
/**
+ * The button factory.
+ */
+ protected ButtonFactory bf = new ButtonFactory(bundle, this);
+
+ /**
+ * The text area used to show the stack trace.
+ */
+ protected JComponent detailsArea;
+
+ /**
+ * The button used to show or not the details.
+ */
+ protected JButton showDetailButton;
+
+ /**
+ * This flag bit indicates whether or not the stack trace is shown.
+ */
+ protected boolean isDetailShown = false;
+
+ /**
+ * The sub panel that contains the stack trace text area.
+ */
+ protected JPanel subpanel;
+
+ /**
* Constructs a new JErrorPane.
*
* @param th the throwable object that describes the errror
* @param type the dialog type
*/
public JErrorPane(Throwable th, int type) {
+ super(new GridBagLayout());
+
+ setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
+
+ listeners.put("ShowDetailButtonAction", new ShowDetailButtonAction());
+ listeners.put("OKButtonAction", new OKButtonAction());
this.msg = th.getMessage();
StringWriter writer = new StringWriter();
@@ -94,123 +129,112 @@
writer.flush();
this.stacktrace = writer.toString();
- setMessage(new MessagePanel());
- setMessageType(type);
+ ExtendedGridBagConstraints constraints =
+ new ExtendedGridBagConstraints();
+
+ JTextArea msgArea = new JTextArea();
+ msgArea.setText(msg);
+ msgArea.setColumns(50);
+ msgArea.setFont(new JLabel().getFont());
+ msgArea.setForeground(new JLabel().getForeground());
+ msgArea.setOpaque(false);
+ msgArea.setEditable(false);
+ msgArea.setLineWrap(true);
+
+ constraints.setWeight(0, 0);
+ constraints.anchor = GridBagConstraints.WEST;
+ constraints.fill = GridBagConstraints.NONE;
+ constraints.setGridBounds(0, 0, 1, 1);
+ add(msgArea, constraints);
+
+ constraints.setWeight(1, 0);
+ constraints.anchor = GridBagConstraints.CENTER;
+ constraints.fill = GridBagConstraints.HORIZONTAL;
+ constraints.setGridBounds(0, 1, 1, 1);
+ add(createButtonsPanel(), constraints);
+
+ JTextArea details = new JTextArea();
+ msgArea.setColumns(50);
+ details.setText(stacktrace);
+ details.setEditable(false);
+
+ detailsArea = new JPanel(new BorderLayout(0, 10));
+ detailsArea.add(new JSeparator(), BorderLayout.NORTH);
+ detailsArea.add(new JScrollPane(details), BorderLayout.CENTER);
+
+ subpanel = new JPanel(new BorderLayout());
+
+ constraints.insets = new Insets(10, 4, 4, 4);
+ constraints.setWeight(1, 1);
+ constraints.anchor = GridBagConstraints.CENTER;
+ constraints.fill = GridBagConstraints.BOTH;
+ constraints.setGridBounds(0, 2, 1, 1);
+ add(subpanel, constraints);
}
+ public JDialog createDialog(Component owner, String title) {
+ JDialog dialog =
+ new JDialog(JOptionPane.getFrameForComponent(owner), title);
+ dialog.getContentPane().add(this, BorderLayout.CENTER);
+ dialog.pack();
+ return dialog;
+ }
+
+ protected JPanel createButtonsPanel() {
+ JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
+
+ showDetailButton = bf.createJButton("ShowDetailButton");
+ panel.add(showDetailButton);
+
+ JButton okButton = bf.createJButton("OKButton");
+ panel.add(okButton);
+
+ return panel;
+ }
+
/**
- * The message panel.
+ * The map that contains the listeners
*/
- protected class MessagePanel extends JPanel implements ActionMap {
+ protected Map listeners = new HashMap();
- /**
- * The button factory.
- */
- protected ButtonFactory bf = new ButtonFactory(bundle, this);
-
- /**
- * The text area used to show the stack trace.
- */
- protected JComponent detailsArea;
-
- /**
- * The button used to show or not the details.
- */
- protected JButton showDetailButton;
-
- /**
- * This flag bit indicates whether or not the stack trace is shown.
- */
- protected boolean isDetailShown = false;
-
- /**
- * The sub panel that contains the stack trace text area.
- */
- protected JPanel subpanel;
-
- /**
- * Constructs a new <tt>MessagePanel</tt>.
- */
- public MessagePanel() {
- super(new GridBagLayout());
-
- listeners.put("ShowDetailButtonAction",
- new ShowDetailButtonAction());
-
- ExtendedGridBagConstraints constraints =
- new ExtendedGridBagConstraints();
-
- JTextArea msgArea = new JTextArea();
- msgArea.setColumns(50);
- msgArea.setFont(new JLabel().getFont());
- msgArea.setForeground(new JLabel().getForeground());
- msgArea.setOpaque(false);
- msgArea.setEditable(false);
- msgArea.setText(msg);
- msgArea.setLineWrap(true);
-
- constraints.insets = new Insets(5, 5, 5, 5);
- constraints.setWeight(0, 0);
- constraints.anchor = GridBagConstraints.WEST;
- constraints.fill = GridBagConstraints.NONE;
- constraints.setGridBounds(0, 0, 1, 1);
- add(msgArea, constraints);
-
- constraints.insets = new Insets(0, 5, 5, 5);
- showDetailButton = bf.createJButton("ShowDetailButton");
- constraints.setWeight(0, 0);
- constraints.anchor = GridBagConstraints.NORTHWEST;
- constraints.fill = GridBagConstraints.NONE;
- constraints.setGridBounds(0, 1, 1, 1);
- add(showDetailButton, constraints);
-
- JTextArea details = new JTextArea();
- details.setText(stacktrace);
- details.setEditable(false);
- detailsArea = new JScrollPane(details);
-
- subpanel = new JPanel(new BorderLayout());
- constraints.setWeight(1d, 1d);
- constraints.anchor = GridBagConstraints.CENTER;
- constraints.fill = GridBagConstraints.BOTH;
- constraints.setGridBounds(0, 2, 1, 1);
- add(subpanel, constraints);
- }
+ /**
+ * Returns the action associated with the given string or null on error
+ *
+ * @param key the key mapped with the action to get
+ * @throws MissingListenerException if the action is not found
+ */
+ public Action getAction(String key) throws MissingListenerException {
+ return (Action)listeners.get(key);
+ }
+
+ /**
+ * The action associated with the 'OK' button.
+ */
+ protected class OKButtonAction extends AbstractAction {
- /**
- * The map that contains the listeners
- */
- protected Map listeners = new HashMap();
-
- /**
- * Returns the action associated with the given string or null on error
- *
- * @param key the key mapped with the action to get
- * @throws MissingListenerException if the action is not found
- */
- public Action getAction(String key) throws MissingListenerException {
- return (Action)listeners.get(key);
+ public void actionPerformed(ActionEvent evt) {
+ ((JDialog)getTopLevelAncestor()).dispose();
}
+ }
+
+ /**
+ * The action associated with the 'Show Detail' button.
+ */
+ protected class ShowDetailButtonAction extends AbstractAction {
- /**
- * The action associated with the 'Show Detail' button.
- */
- protected class ShowDetailButtonAction extends AbstractAction {
-
- public void actionPerformed(ActionEvent evt) {
- if (isDetailShown) {
- subpanel.remove(detailsArea);
- isDetailShown = false;
- showDetailButton.setText
- (resources.getString("ShowDetailButton.text"));
- } else {
- subpanel.add(detailsArea, BorderLayout.CENTER);
- showDetailButton.setText
- (resources.getString("ShowDetailButton.text2"));
- isDetailShown = true;
- }
- ((JDialog)getTopLevelAncestor()).pack();
+ public void actionPerformed(ActionEvent evt) {
+ if (isDetailShown) {
+ subpanel.remove(detailsArea);
+ isDetailShown = false;
+ showDetailButton.setText
+ (resources.getString("ShowDetailButton.text"));
+ } else {
+ subpanel.add(detailsArea, BorderLayout.CENTER);
+ showDetailButton.setText
+ (resources.getString("ShowDetailButton.text2"));
+ isDetailShown = true;
}
+ ((JDialog)getTopLevelAncestor()).pack();
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]