|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.search; import java.awt.EventQueue; import java.io.IOException; import java.lang.ref.Reference; import java.lang.ref.WeakReference; import org.openide.ErrorManager; import org.openide.nodes.Node; import org.openide.util.NbBundle; import org.openide.windows.IOProvider; import org.openide.windows.InputOutput; import org.openide.windows.OutputListener; import org.openide.windows.OutputWriter; /** * Presents search results in output window. * * @author Petr Kuzel * @author Marian Petras */ public final class SearchDisplayer { /** name of attribute "text to display in the Output Window" */ public static final String ATTR_OUTPUT_LINE = "output line"; //NOI18N /** writer to that tab */ private OutputWriter ow = null; /** */ private Reference owRef = null; /** Creates new SearchDisplayer */ SearchDisplayer() { } /** */ void prepareOutput() { String tabName = NbBundle.getMessage(ResultView.class, "TITLE_SEARCH_RESULTS"); //NOI18N InputOutput searchIO = IOProvider.getDefault().getIO(tabName, false); ow = searchIO.getOut(); owRef = new WeakReference(ow); searchIO.select(); } /** */ static void clearOldOutput(final Reference outputWriterRef) { if (outputWriterRef != null) { OutputWriter oldWriter = (OutputWriter) outputWriterRef.get(); if (oldWriter != null) { try { oldWriter.reset(); } catch (IOException ex) { ErrorManager.getDefault().notify(ex); } } } } /** * Displays the given nodes. * * @param nodes nodes to display */ void displayNodes(final Node[] nodes) { /* Prepare the output lines: */ final String[] outputLines = new String[nodes.length]; final OutputListener[] listeners = new OutputListener[nodes.length]; for (int i = 0; i < nodes.length; i++) { final Node node = nodes[i]; final Object o = node.getValue(ATTR_OUTPUT_LINE); outputLines[i] = o instanceof String ? (String) o : node.getShortDescription(); listeners[i] = node instanceof OutputListener ? (OutputListener)node : null; } /* Print the output lines: */ try { EventQueue.invokeAndWait(new Runnable() { public void run() { try { for (int i = 0; i < outputLines.length; i++) { OutputListener listener = listeners[i]; if (listener != null) { ow.println(outputLines[i], listener); } else { ow.println(outputLines[i]); } } } catch (Exception ex) { ErrorManager.getDefault() .notify(ErrorManager.EXCEPTION, ex); } } }); } catch (Exception ex) { ErrorManager.getDefault().notify(ex); } } /** */ void finishDisplaying() { ow.flush(); ow.close(); ow = null; } /** */ Reference getOutputWriterRef() { return owRef; } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.