Merge pull request #1087 from SiboVG/bug-report-bold
Improve Bug Report formatting
This commit is contained in:
		
						commit
						1def2b6c6d
					
				| @ -14,10 +14,12 @@ import java.util.TreeSet; | |||||||
| 
 | 
 | ||||||
| import javax.swing.JButton; | import javax.swing.JButton; | ||||||
| import javax.swing.JDialog; | import javax.swing.JDialog; | ||||||
|  | import javax.swing.JEditorPane; | ||||||
| import javax.swing.JLabel; | import javax.swing.JLabel; | ||||||
| import javax.swing.JPanel; | import javax.swing.JPanel; | ||||||
| import javax.swing.JScrollPane; | import javax.swing.JScrollPane; | ||||||
| import javax.swing.JTextArea; | import javax.swing.JTextArea; | ||||||
|  | import javax.swing.JTextPane; | ||||||
| 
 | 
 | ||||||
| import com.jogamp.opengl.JoglVersion; | import com.jogamp.opengl.JoglVersion; | ||||||
| 
 | 
 | ||||||
| @ -68,11 +70,13 @@ public class BugReportDialog extends JDialog { | |||||||
| 		panel.add(new JLabel(trans.get("bugreport.dlg.otherwise") + " "), | 		panel.add(new JLabel(trans.get("bugreport.dlg.otherwise") + " "), | ||||||
| 				  "gapleft para, split 2, gapright rel"); | 				  "gapleft para, split 2, gapright rel"); | ||||||
| 		panel.add(new URLLabel(REPORT_EMAIL_URL, REPORT_EMAIL), "growx, wrap para"); | 		panel.add(new URLLabel(REPORT_EMAIL_URL, REPORT_EMAIL), "growx, wrap para"); | ||||||
| 		 | 
 | ||||||
| 		 | 		final JEditorPane editorPane = new JEditorPane("text/html", formatNewlineHTML(message)); | ||||||
| 		final JTextArea textArea = new JTextArea(message, 20, 70); | 		editorPane.putClientProperty(JTextPane.HONOR_DISPLAY_PROPERTIES, true); | ||||||
| 		textArea.setEditable(true); | 		editorPane.setPreferredSize(new Dimension(600, 400)); | ||||||
| 		panel.add(new JScrollPane(textArea), "grow, wrap"); | 		editorPane.setEditable(true); | ||||||
|  | 		editorPane.setCaretPosition(0);		// Scroll to the top by default | ||||||
|  | 		panel.add(new JScrollPane(editorPane), "grow, wrap"); | ||||||
| 		 | 		 | ||||||
| 		panel.add(new StyledLabel(trans.get("bugreport.lbl.Theinformation"), -1), "wrap para"); | 		panel.add(new StyledLabel(trans.get("bugreport.lbl.Theinformation"), -1), "wrap para"); | ||||||
| 		 | 		 | ||||||
| @ -106,17 +110,18 @@ public class BugReportDialog extends JDialog { | |||||||
| 		 | 		 | ||||||
| 		StringBuilder sb = new StringBuilder(); | 		StringBuilder sb = new StringBuilder(); | ||||||
| 		 | 		 | ||||||
| 		sb.append("---------- Bug report ----------\n"); | 		sb.append("<html>---------- Bug report ----------\n"); | ||||||
| 		sb.append('\n'); | 		sb.append('\n'); | ||||||
| 		sb.append("Include detailed steps on how to trigger the bug:\n"); | 		sb.append("<b>Include detailed steps on how to trigger the bug:</b>\n"); | ||||||
|  | 		sb.append("<i>(You can edit text directly in this window)</i>\n"); | ||||||
| 		sb.append('\n'); | 		sb.append('\n'); | ||||||
| 		sb.append("1. \n"); | 		sb.append("1. \n"); | ||||||
| 		sb.append("2. \n"); | 		sb.append("2. \n"); | ||||||
| 		sb.append("3. \n"); | 		sb.append("3. \n"); | ||||||
| 		sb.append('\n'); | 		sb.append('\n'); | ||||||
| 		 | 		 | ||||||
| 		sb.append("What does the software do and what in your opinion should it do in the " + | 		sb.append("<b>What does the software do and what in your opinion should it do in the " + | ||||||
| 				"case described above:\n"); | 				"case described above:</b>\n"); | ||||||
| 		sb.append('\n'); | 		sb.append('\n'); | ||||||
| 		sb.append('\n'); | 		sb.append('\n'); | ||||||
| 		sb.append('\n'); | 		sb.append('\n'); | ||||||
| @ -133,7 +138,7 @@ public class BugReportDialog extends JDialog { | |||||||
| 		addSystemInformation(sb); | 		addSystemInformation(sb); | ||||||
| 		sb.append("---------- Error log ----------\n"); | 		sb.append("---------- Error log ----------\n"); | ||||||
| 		addErrorLog(sb); | 		addErrorLog(sb); | ||||||
| 		sb.append("---------- End of bug report ----------\n"); | 		sb.append("---------- End of bug report ----------</html>\n"); | ||||||
| 		sb.append('\n'); | 		sb.append('\n'); | ||||||
| 		 | 		 | ||||||
| 		BugReportDialog reportDialog = new BugReportDialog(parent, | 		BugReportDialog reportDialog = new BugReportDialog(parent, | ||||||
| @ -152,14 +157,15 @@ public class BugReportDialog extends JDialog { | |||||||
| 	public static void showExceptionDialog(Window parent, Thread t, Throwable e) { | 	public static void showExceptionDialog(Window parent, Thread t, Throwable e) { | ||||||
| 		StringBuilder sb = new StringBuilder(); | 		StringBuilder sb = new StringBuilder(); | ||||||
| 		 | 		 | ||||||
| 		sb.append("---------- Bug report ----------\n"); | 		sb.append("<html>---------- Bug report ----------\n"); | ||||||
| 		sb.append('\n'); |  | ||||||
| 		sb.append("Please include a description about what actions you were " + |  | ||||||
| 				"performing when the exception occurred:\n"); |  | ||||||
| 		sb.append('\n'); |  | ||||||
| 		sb.append('\n'); |  | ||||||
| 		sb.append('\n'); | 		sb.append('\n'); | ||||||
|  | 		sb.append("<b>Please include a description about what actions you were " + | ||||||
|  | 				"performing when the exception occurred:</b>\n"); | ||||||
|  | 		sb.append("<i>(You can edit text directly in this window)</i>\n"); | ||||||
| 		sb.append('\n'); | 		sb.append('\n'); | ||||||
|  | 		sb.append("1. \n"); | ||||||
|  | 		sb.append("2. \n"); | ||||||
|  | 		sb.append("3. \n"); | ||||||
| 		 | 		 | ||||||
| 		 | 		 | ||||||
| 		sb.append("Include your email address (optional; it helps if we can " + | 		sb.append("Include your email address (optional; it helps if we can " + | ||||||
| @ -191,7 +197,7 @@ public class BugReportDialog extends JDialog { | |||||||
| 		addSystemInformation(sb); | 		addSystemInformation(sb); | ||||||
| 		sb.append("---------- Error log ----------\n"); | 		sb.append("---------- Error log ----------\n"); | ||||||
| 		addErrorLog(sb); | 		addErrorLog(sb); | ||||||
| 		sb.append("---------- End of bug report ----------\n"); | 		sb.append("---------- End of bug report ----------</html>\n"); | ||||||
| 		sb.append('\n'); | 		sb.append('\n'); | ||||||
| 		 | 		 | ||||||
| 		BugReportDialog reportDialog = | 		BugReportDialog reportDialog = | ||||||
| @ -235,5 +241,16 @@ public class BugReportDialog extends JDialog { | |||||||
| 			sb.append(l.toString()).append('\n'); | 			sb.append(l.toString()).append('\n'); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 	/** | ||||||
|  | 	 * Replace newline character \n to an HTML newline. Instead of just using a <br> tag, we replace newlines with a | ||||||
|  | 	 * paragraph tag with zero margin. This is so that when you copy the HTML text and paste it somewhere, that the | ||||||
|  | 	 * HTML newlines are also interpreted as newlines in the new text. A <br> tag would just be replaced by a space. | ||||||
|  | 	 * @param text text to be formatted | ||||||
|  | 	 * @return text with HTML newlines | ||||||
|  | 	 */ | ||||||
|  | 	private static String formatNewlineHTML(String text) { | ||||||
|  | 		return text.replaceAll("\n(.*?)(?=(\n|$))", "<p style=\"margin-top: 0\">$1</p>"); | ||||||
|  | 	} | ||||||
| 	 | 	 | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| package net.sf.openrocket.logging; | package net.sf.openrocket.logging; | ||||||
| 
 | 
 | ||||||
| import java.io.PrintWriter; | import java.io.PrintWriter; | ||||||
|  | import java.util.Locale; | ||||||
| import java.util.concurrent.atomic.AtomicInteger; | import java.util.concurrent.atomic.AtomicInteger; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
| @ -127,7 +128,7 @@ public class LogLine implements Comparable<LogLine> { | |||||||
| 	public String toString() { | 	public String toString() { | ||||||
| 		if (formattedMessage == null) { | 		if (formattedMessage == null) { | ||||||
| 			String str; | 			String str; | ||||||
| 			str = String.format("%4d %10.3f %-" + LogLevel.LENGTH + "s %s %s", | 			str = String.format(Locale.ENGLISH, "%4d %10.3f %-" + LogLevel.LENGTH + "s %s %s", | ||||||
| 					count, timestamp / 1000.0, (level != null) ? level.toString() : "NULL", | 					count, timestamp / 1000.0, (level != null) ? level.toString() : "NULL", | ||||||
| 					getLocation(), | 					getLocation(), | ||||||
| 					message); | 					message); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user