/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.dialogs;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.jkiss.dbeaver.ui.UIUtils;
import java.io.PrintWriter;
import java.io.StringWriter;
public class ViewExceptionDialog extends EditTextDialog {
private Throwable error;
public ViewExceptionDialog(Shell parentShell, Throwable error)
{
super(parentShell, "Error", error.getMessage());
this.error = error;
setReadonly(true);
}
@Override
protected void createControlsBeforeText(Composite composite) {
UIUtils.createControlLabel(composite, "Message");
}
@Override
protected Composite createDialogArea(Composite parent) {
Composite composite = super.createDialogArea(parent);
UIUtils.createControlLabel(composite, "Stacktrace");
Text stText = new Text(composite, SWT.BORDER | SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY);
StringWriter sw = new StringWriter();
PrintWriter buffer = new PrintWriter(sw, true);
error.printStackTrace(buffer);
stText.setText(sw.toString());
return composite;
}
}