com.cedarsoft.spring.rcp.tree.layered.LayeredTreeFactory Maven / Gradle / Ivy
package com.cedarsoft.spring.rcp.tree.layered;
import com.cedarsoft.spring.rcp.selection.SelectionModel;
import com.cedarsoft.spring.rcp.tree.SelectionModelBridge;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.JTree;
import java.awt.Dimension;
/**
*
*/
public class LayeredTreeFactory {
@NotNull
private final LayersConfiguration layersConfiguration;
private Dimension preferredSize = new Dimension( 400, 150 );
@Nullable
private SelectionModel selectionModel;
public LayeredTreeFactory( @NotNull LayersConfiguration layersConfiguration ) {
this.layersConfiguration = layersConfiguration;
}
public void setSelectionModel( @Nullable SelectionModel selectionModel ) {
this.selectionModel = selectionModel;
}
@Nullable
public SelectionModel getSelectionModel() {
return selectionModel;
}
@NotNull
public LayersConfiguration getLayersConfiguration() {
return layersConfiguration;
}
@NotNull
public JTree createTree( @NotNull T root ) {
final LayeredTreeModel treeModel = new LayeredTreeModel( root, layersConfiguration );
final JTree tree = new JTree( treeModel );
if ( selectionModel != null ) {
//noinspection ConstantConditions
SelectionModelBridge.connect( selectionModel, tree.getSelectionModel() );
}
tree.setPreferredSize( preferredSize );
tree.addMouseListener( new LayeredDoubleClickListener( layersConfiguration ) );
tree.addMouseListener( new LayeredPopupListener( layersConfiguration ) );
return tree;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy