// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.dialogs; import static org.openstreetmap.josm.tools.I18n.tr; import java.awt.Dimension; import java.awt.GridBagLayout; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import org.openstreetmap.josm.Main; import org.openstreetmap.josm.gui.ExtendedDialog; import org.openstreetmap.josm.gui.widgets.JosmEditorPane; import org.openstreetmap.josm.tools.GBC; /** * Generic dialog with message and scrolling area * @author Alexei * @since 5114 */ public class LogShowDialog extends ExtendedDialog { /** * Constructs a new {@code LogShowDialog}. * @param title The text that will be shown in the window titlebar * @param msg Single-line Label * @param log Multi-line log */ public LogShowDialog(String title, String msg, String log) { super(Main.parent, title, new String[] {tr("OK")}); setButtonIcons(new String[] {"ok.png"}); setContent(build(msg, log)); } protected final JPanel build(String msg, String log) { JPanel p = new JPanel(new GridBagLayout()); JLabel lbl = new JLabel(msg); lbl.setFont(lbl.getFont().deriveFont(0, 14)); p.add(lbl, GBC.eol().insets(5, 0, 5, 0)); JosmEditorPane txt = new JosmEditorPane(); txt.setContentType("text/html"); txt.setText(log); txt.setEditable(false); txt.setOpaque(false); lbl.setLabelFor(txt); JScrollPane sp = new JScrollPane(txt); sp.setOpaque(false); sp.setPreferredSize(new Dimension(600, 300)); p.add(sp, GBC.eop().insets(5, 15, 0, 0).fill(GBC.HORIZONTAL)); return p; } }