public ReportScreen(SwingView view) {
		super(view);

		JPanel panel = new JPanel(new GridBagLayout());
		panel.setBorder(BorderFactory.createTitledBorder("Details"));
		GridBagConstraints c = new GridBagConstraints();
		c.gridx = 0;
		c.gridy = 0;
		c.fill = GridBagConstraints.HORIZONTAL;
		c.insets = new Insets(5, 5, 0, 0);

		panel.add(new JLabel("Reported by:"), c);
		c.gridx++;
		panel.add(authorButton, c);

		c.gridx = 0;
		c.gridy++;
		c.ipady = 20;
		c.insets = new Insets(25, 25, 0, 25);
		panel.add(viewReportButton, c);

		c.gridx++;
		panel.add(deleteReportButton, c);

		c.gridx++;
		c.gridx++;
		JButton dismissReportButton = new JButton("Dismiss");
		dismissReportButton.addActionListener(e -> view.setScreen(view.getMainScreen()));
		panel.add(dismissReportButton, c);

		postContentPane.setContentType("text/html");
		postContentPane.setEditable(false);
		postContentPane.setOpaque(false);
		postContentPane.addHyperlinkListener(event -> {
			if (!event.getEventType().equals(HyperlinkEvent.EventType.ACTIVATED)) {
				return;
			}

			String description = event.getDescription();
			if (description.startsWith("vb:member") && description.contains("u=")) {
				int memberId = Integer.parseInt(description.substring(description.indexOf("u=") + 2));
				DesktopUtilities.viewUserProfile(view.getURL(), memberId);
			} else if (description.startsWith("vb:showthread") && description.contains("t=")) {
				String threadText = description.substring(description.indexOf("t="));
				int threadId = Integer.parseInt(threadText.substring(2, threadText.indexOf("/")));
//						String postText = description.substring(description.indexOf("p="));
				int postId = Integer.parseInt(description.substring(description.indexOf("p=") + 2));
				DesktopUtilities.viewPost(view.getURL(), threadId, postId);
			} else if (description.startsWith("vb:editpost") && description.contains("p=")) {
				String threadText = description.substring(description.indexOf("p="));
				int threadId = Integer.parseInt(threadText.substring(2));
				DesktopUtilities.viewThread(view.getURL(), threadId);
			} else if (description.startsWith("mailto:")) {
				DesktopUtilities.mailTo(description);
			} else {
				DesktopUtilities.browse(view.getURL() + "/" + description);
//					logger.warn("Unhandled URL description: " + description + ".");
			}
		});

		c.gridx = 0;
		c.gridy++;
		c.gridwidth = 5;
		c.ipady = 0;
		c.insets = new Insets(5, 5, 0, 0);
		panel.add(postContentPane, c);

		contentPane = new JScrollPane(panel);
	}