All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openide.explorer.view.IconView Maven / Gradle / Ivy

Go to download

The NetBeans Platform is a generic base for desktop applications. It provides the services common to almost all large desktop applications: window management, menus, settings and storage, an update manager, and file access. Get a head start by reusing these standard components, allowing you to concentrate fully on your application's business logic.

The newest version!
/*
 *                 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.openide.explorer.view;

import java.awt.event.*;
import java.awt.*;
import java.beans.*;
import java.io.*;
import javax.swing.*;

import org.openide.awt.ListPane;
import org.openide.explorer.*;
import org.openide.nodes.*;

/* TODO:
 - improve cell renderer (two lines of text or hints)
 - better behaviour during scrolling (ListPane)
 - external selection bug (BUG ID: 01110034)
 -
 - XXX if doing anything with this class other than deleting it, rewrite it to use a JTable - that would be
 - much more sensible and scalable.  -Tim
 -
*/

/** A view displaying icons.
*
* @author   Jaroslav Tulach
*/
public class IconView extends ListView implements Externalizable {

    /** generated Serialized Version UID */
    static final long serialVersionUID = -9129850245819731264L;


    public IconView () {
    }

    /** Creates the list that will display the data.
    */
    protected JList createList () {
        JList list = new ListPane () {
	    /**
	     * Overrides JComponent's getToolTipText method in order to allow
	     * renderer's tips to be used if it has text set.
	     * @param event the MouseEvent that initiated the ToolTip display
	     */
	    public String getToolTipText (MouseEvent event) {
		if (event != null) {
		    Point p = event.getPoint ();
		    int index = locationToIndex (p);
		    if (index >= 0) {
		        VisualizerNode v = (VisualizerNode)getModel().getElementAt(index);
			String tooltip = v.getShortDescription();
			String displayName = v.getDisplayName ();
			if ((tooltip != null) && !tooltip.equals (displayName)) {
		            return tooltip;
			}
		    }
		}
		return null;
	    }
	};
        list.setCellRenderer (new NodeRenderer());
        return list;
    }
    
    
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy