org.libredraw.client.StackTrace.java Source code

Java tutorial

Introduction

Here is the source code for org.libredraw.client.StackTrace.java

Source

/*
   This file is part of LibreDraw.
    
LibreDraw is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
    
LibreDraw is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
    
You should have received a copy of the GNU General Public License
along with LibreDraw.  If not, see <http://www.gnu.org/licenses/>.
*/

package org.libredraw.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;

public class StackTrace extends DialogBox {

    private static StackTraceUiBinder uiBinder = GWT.create(StackTraceUiBinder.class);
    @UiField
    Button closeButton;
    @UiField
    HTML htmlPanel;

    interface StackTraceUiBinder extends UiBinder<Widget, StackTrace> {
    }

    public StackTrace(Throwable caught) {
        setWidget(uiBinder.createAndBindUi(this));
        this.setText("Stacktrace");
        this.setAnimationEnabled(true);
        this.setAnimationEnabled(true);
        this.setGlassEnabled(true);
        this.center();

        String output = caught.getClass().getName() + caught.getLocalizedMessage();
        for (StackTraceElement ste : caught.getStackTrace())
            output += "</br>" + ste.toString();

        htmlPanel.setHTML(output);
    }

    @UiHandler("closeButton")
    void onCloseButtonClick(ClickEvent event) {
        this.hide();
        this.removeFromParent();
    }
}