org.swixml.jsr.widgets.JTreeEx Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of swixml Show documentation
Show all versions of swixml Show documentation
GUI generating engine for Java applications
The newest version!
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.swixml.jsr.widgets;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.TreeModel;
import org.jdesktop.beansbinding.BeanProperty;
import org.jdesktop.beansbinding.Converter;
import org.swixml.LogAware;
import org.swixml.SwingEngine;
import org.swixml.jsr295.BindingUtils;
/**
*
* @author sorrentino
*/
@SuppressWarnings("serial")
public class JTreeEx extends JTree implements BindableBasicWidget, LogAware {
private Action action;
private Action dblClickAction = null;
private ImageIcon leafIcon = null;
private ImageIcon openIcon = null;
private ImageIcon closedIcon = null;
/**
*
*/
public JTreeEx() {
super();
init();
}
/**
*
* @param newModel
*/
public JTreeEx(TreeModel newModel) {
super(newModel);
init();
}
private void init() {
super.addTreeSelectionListener(new TreeSelectionListener(){
public void valueChanged(TreeSelectionEvent e) {
Action a = getAction();
if( null==a ) return;
ActionEvent ev = new ActionEvent( e, 0, null );
a.actionPerformed(ev);
}
});
MouseListener ml = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
int selRow = getRowForLocation(e.getX(), e.getY());
//TreePath selPath = getPathForLocation(e.getX(), e.getY());
logger.fine( String.format("mousePressed selRow=[%d] clickCount=[%d]\n", selRow, e.getClickCount()) );
if(selRow != -1) {
if(e.getClickCount() == 2) {
Action a = getDblClickAction();
if( a==null ) return;
ActionEvent ev = new ActionEvent(e, 0, null );
a.actionPerformed(ev);
}
}
}
};
addMouseListener(ml);
}
public final Action getDblClickAction() {
return dblClickAction;
}
public final void setDblClickAction(Action dblClickAction) {
this.dblClickAction = dblClickAction;
}
public ImageIcon getOpenIcon() {
return openIcon;
}
public void setOpenIcon(ImageIcon folderIcon) {
this.openIcon = folderIcon;
}
public ImageIcon getLeafIcon() {
return leafIcon;
}
public void setLeafIcon(ImageIcon leafIcon) {
this.leafIcon = leafIcon;
}
public ImageIcon getClosedIcon() {
return closedIcon;
}
public void setClosedIcon(ImageIcon closedIcon) {
this.closedIcon = closedIcon;
}
/**
*
* @return
*/
public Action getAction() {
return action;
}
/**
*
* @param action
*/
public void setAction(Action action) {
this.action = action;
}
public String getBindWith() {
return (String) getClientProperty(BINDWITH_PROPERTY);
}
public void setBindWith(String bindWith) {
putClientProperty(BINDWITH_PROPERTY, bindWith);
}
public void setConverter(Converter, ?> converter) {
}
public Converter, ?> getConverter() {
return null;
}
@Override
public void addNotify() {
if( getBindWith()!=null ) {
Object client = getClientProperty( SwingEngine.CLIENT_PROPERTY );
BeanProperty
© 2015 - 2025 Weber Informatics LLC | Privacy Policy