Package net.sf.latexdraw.badaboom

Source Code of net.sf.latexdraw.badaboom.BadaboomListener

package net.sf.latexdraw.badaboom;

import java.util.Objects;

import javax.swing.DefaultListSelectionModel;
import javax.swing.JEditorPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

/**
* Defines a listener for the 'Bordel !' manager.<br>
* <br>
* This file is part of LaTeXDraw.<br>
* Copyright (c) 2005-2014 Arnaud BLOUIN<br>
* <br>
* LaTeXDraw 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 2 of the License, or (at your option) any later version.
* <br>
* LaTeXDraw is distributed 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.<br>
* <br>
* 02/18/2008<br>
* @author Arnaud BLOUIN
* @version 3.0
* @since 3.0
*/
public class BadaboomListener implements ListSelectionListener {
  /** The manager to listen. */
  protected BadaboomManager manager;


  /**
   * Creates a Border manager listener.
   * @param bordelManager The manager to listen.
   * @throws NullPointerException If the given manager is null.
   */
  public BadaboomListener(final BadaboomManager bordelManager) {
    super();
    manager = Objects.requireNonNull(bordelManager);
  }


  @Override
  public void valueChanged(final ListSelectionEvent e) {
    final int index = e!=null && e.getSource() instanceof DefaultListSelectionModel ?
            ((DefaultListSelectionModel)e.getSource()).getMinSelectionIndex() : -1;
    final JEditorPane desc = manager.description;

    if(index<0 || index>=BadaboomCollector.INSTANCE.size())
      desc.setText("");//$NON-NLS-1$
    else {
      final Throwable ex        = BadaboomCollector.INSTANCE.get(index);
      final StackTraceElement[] stack = ex.getStackTrace();
      int i;
      final int size           = stack.length;
      final StringBuilder buf      = new StringBuilder(ex.toString());

       for(i=0; i<size; i++)
         buf.append("\n\tat ").append(stack[i]);//$NON-NLS-1$

       desc.setText(buf.toString());
       desc.setCaretPosition(0);
    }
  }



  /**
   * @return the manager.
   */
  public BadaboomManager getManager() {
    return manager;
  }
}
TOP

Related Classes of net.sf.latexdraw.badaboom.BadaboomListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.