Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public class ErrorsDialog extends StandardDialog {
private GenericTableModel<ProgramError> tableModel;
private JSplitPane splitPane;
private JScrollPane tableScrollPane;
private JScrollPane detailsScrollPane;
private JTextField date;
private JTextField severity;
private JTextField reportStatus;
Expand Down Expand Up @@ -86,8 +87,8 @@ public ErrorsDialog(@MainWindow final Window owner,
@Override
public void display() {
new ErrorsDialogController(model)
.init(this, tableModel, table, date, severity, reportStatus, details, deleteAll,
delete, send, getCancelButton());
.init(this, tableModel, table, date, severity, reportStatus, details,
detailsScrollPane, deleteAll, delete, send, getCancelButton());
super.display();
}

Expand All @@ -110,6 +111,8 @@ private void initComponents() {
"getLevel", "getReportStatus", "getMessage");
tableModel.setHeaderNames("Severity", "Report Status", "Message");
tableScrollPane = new JScrollPane();
detailsScrollPane = new JScrollPane();
detailsScrollPane.setViewportView(details);
splitPane = getSplitPane();
table = new PackingTable(tableModel, tableScrollPane);
table.setAutoCreateRowSorter(true);
Expand All @@ -135,7 +138,7 @@ private JPanel getBottomPanel() {
bottom.add(new JLabel("Report Status: "), "");
bottom.add(reportStatus, "growx, pushx");
bottom.add(new JLabel("Details: "), "");
bottom.add(new JScrollPane(details), "grow, push");
bottom.add(detailsScrollPane, "grow, push");
return bottom;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@
import com.dmdirc.logger.ProgramError;

import com.google.common.base.Joiner;
import com.google.common.collect.Lists;

import java.text.SimpleDateFormat;
import java.util.Optional;

import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
Expand All @@ -57,21 +57,23 @@ class ErrorsDialogController implements ErrorsDialogModelListener {
private JButton deleteAll;
private JButton delete;
private JButton send;
private JScrollPane detailsScroll;

public ErrorsDialogController(final ErrorsDialogModel model) {
this.model = model;
}

public void init(final ErrorsDialog dialog, final GenericTableModel<ProgramError> tableModel,
final JTable table, final JTextField date, final JTextField severity,
final JTextField reportStatus, final JTextArea details, final JButton deleteAll,
final JButton delete, final JButton send, final JButton close) {
final JTextField reportStatus, final JTextArea details, final JScrollPane detailsScroll,
final JButton deleteAll, final JButton delete, final JButton send, final JButton close) {
this.tableModel = tableModel;
this.table = table;
this.date = date;
this.severity = severity;
this.reportStatus = reportStatus;
this.details = details;
this.detailsScroll = detailsScroll;
this.deleteAll = deleteAll;
this.delete = delete;
this.send = send;
Expand Down Expand Up @@ -130,10 +132,15 @@ public void selectedErrorChanged(final Optional<ProgramError> selectedError) {
reportStatus.setText(
selectedError.map(ProgramError::getReportStatus).map(ErrorReportStatus::name)
.orElse(""));
details.setText(selectedError.map(ProgramError::getDetails).orElse(""));
details.append(Joiner.on('\n').skipNulls()
.join(selectedError.map(ProgramError::getTrace).orElse(Lists.newArrayList())));
details.setText("");
selectedError.map(ProgramError::getMessage).ifPresent(
message -> details.append("Message: " + message + '\n'));
selectedError.map(ProgramError::getDetails).ifPresent(
detail -> details.append("Detail: " + detail +'\n'));
selectedError.map(ProgramError::getTrace).ifPresent(
trace -> details.append("Exception: " + Joiner.on('\n').skipNulls().join(trace)));
checkEnabledStates();
UIUtilities.resetScrollPane(detailsScroll);
});
}

Expand Down