|
64 | 64 | import javax.swing.JScrollPane; |
65 | 65 | import javax.swing.JSplitPane; |
66 | 66 | import javax.swing.JTextField; |
| 67 | +import javax.swing.JTextPane; |
67 | 68 | import javax.swing.ScrollPaneConstants; |
68 | 69 | import javax.swing.SwingConstants; |
69 | 70 | import javax.swing.SwingUtilities; |
70 | 71 | import javax.swing.border.EmptyBorder; |
71 | 72 | import javax.swing.event.DocumentEvent; |
72 | 73 | import javax.swing.event.DocumentListener; |
73 | 74 |
|
| 75 | +import net.miginfocom.swing.MigLayout; |
| 76 | + |
74 | 77 | import org.scijava.Context; |
75 | 78 | import org.scijava.Priority; |
76 | 79 | import org.scijava.plugin.Parameter; |
@@ -335,18 +338,26 @@ public SwingSearchPanel() { |
335 | 338 | // populate details pane |
336 | 339 | detailsTitle.setText("<html><h2>" + result.name() + "</h2>"); |
337 | 340 | detailsProps.removeAll(); |
338 | | - detailsProps.setLayout(new GridLayout(result.properties().size(), 2)); |
| 341 | + detailsProps.setLayout(new MigLayout("fillx,wrap 2", "[200px|pref]", "pref")); |
339 | 342 | result.properties().forEach((k, v) -> { |
340 | | - final JLabel keyLabel = new JLabel("<html>" + |
341 | | - "<strong style=\"color: gray; padding-right: 5px\">" + k + |
342 | | - " </strong>", SwingConstants.RIGHT); |
343 | | - detailsProps.add(keyLabel); |
344 | | - final JTextField valueField = new JTextField(); |
345 | | - valueField.setText(v); |
346 | | - valueField.setEditable(false); |
347 | | - valueField.setBackground(null); |
348 | | - valueField.setBorder(null); |
349 | | - detailsProps.add(valueField); |
| 343 | + if (k == null) { |
| 344 | + final JTextPane textPane = new JTextPane(); |
| 345 | + textPane.setContentType("text/html"); |
| 346 | + textPane.setText(v); |
| 347 | + detailsProps.add(textPane, "span 2"); |
| 348 | + } |
| 349 | + else { |
| 350 | + final JLabel keyLabel = new JLabel("<html>" + |
| 351 | + "<strong style=\"color: gray; padding-right: 5px\">" + k + |
| 352 | + " </strong>", SwingConstants.RIGHT); |
| 353 | + detailsProps.add(keyLabel); |
| 354 | + final JTextField valueField = new JTextField(); |
| 355 | + valueField.setText(v); |
| 356 | + valueField.setEditable(false); |
| 357 | + valueField.setBackground(null); |
| 358 | + valueField.setBorder(null); |
| 359 | + detailsProps.add(valueField); |
| 360 | + } |
350 | 361 | }); |
351 | 362 | detailsButtons.removeAll(); |
352 | 363 | final List<SearchAction> actions = searchService.actions(result); |
|
0 commit comments