Important Notice - Forums is archived
To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.

TUTORIALVaadin lets you build secure, UX-first PWAs entirely in Java.
Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
Calling javascript synchronously by Enver Haase, 3 weeks ago
mi tree con checkbox
hola a todos, he buscado un tree con checkboxes pero no he encontrado un componente o add on en el directorio de vaadin que se asemeje, asi que hice algo parecido a tree con checkbox (no es un componente nuevo), si tiene alguna sugerencia para mejorarlo les agradezco: esto es lo que hice
public class ArbolcheckApp extends Application {
private static final long serialVersionUID = -4849995480912548058L;
final static Object hw_PROPERTY_NAME = "name";
final static Object hw_PROPERTY_ICON = "icon";
final static ThemeResource x = new ThemeResource(
"../runo/icons/16/cancel.png" );
final static ThemeResource ok = new ThemeResource( "../runo/icons/16/ok.png" );
private Label label = new Label( "", 3 );
@Override
public void init() {
final Window mainWindow = new Window( "Arbolcheck Application" );
final Tree tree = new Tree( "Tree sortable using drag'n'drop",
getHardwareContainer() );
Button button = new Button( "Verificar", new Button.ClickListener() {
private static final long serialVersionUID = 638177444305472321L;
String values = "Elementos Seleccionados:<br>";
public void buttonClick( ClickEvent event ) {
for ( Object id : tree.rootItemIds() ) {
for ( Object id2 : tree.getChildren( id ) ) {
if (tree.getItemIcon( id2 ).toString() == "../runo/icons/16/ok.png") {
values += "Padre: " + id + " - Hijo: " + id2 + "<br>";
}
}
}
label.setValue( values );
values = "Elementos Seleccionados:<br>";
}
} );
mainWindow.addComponent( tree );
mainWindow.addComponent( button );
mainWindow.addComponent( label );
setMainWindow( mainWindow );
tree.setItemCaptionPropertyId( hw_PROPERTY_NAME );
tree.setItemIconPropertyId( hw_PROPERTY_ICON );
// Expand whole tree
for ( Object id : tree.rootItemIds() ) {
tree.expandItemsRecursively( id );
}
// Disallow selecting items from the tree
tree.setSelectable( false );
// listener
tree.addListener( new ItemClickEvent.ItemClickListener() {
private static final long serialVersionUID = -4061715387118131741L;
public void itemClick( ItemClickEvent event ) {
String ico = tree.getItemIcon( event.getItemId() ).toString();
// si presiono una x coloco un ok
if (event.getButton() == ItemClickEvent.BUTTON_LEFT
&& "../runo/icons/16/cancel.png".equals( ico ))
tree.setItemIcon( event.getItemId(), ok );
// si presiono un ok coloco un x
else if (event.getButton() == ItemClickEvent.BUTTON_LEFT
&& "../runo/icons/16/ok.png".equals( ico ))
tree.setItemIcon( event.getItemId(), x );
}
} );
}
public static HierarchicalContainer getHardwareContainer() {
final String[][] hardware = { //
{ "Desktops", "Dell OptiPlex GX240", "Dell OptiPlex GX260",
"Dell OptiPlex GX280" },
{ "Monitors", "Benq T190HD", "Benq T220HD", "Benq T240HD" },
{ "Laptops", "IBM ThinkPad T40", "IBM ThinkPad T43", "IBM ThinkPad T60" } };
Item item = null;
int itemId = 0; // Increasing numbering for itemId:s
// Create new container
HierarchicalContainer hwContainer = new HierarchicalContainer();
// Create containerproperty for name
hwContainer.addContainerProperty( hw_PROPERTY_NAME, String.class, null );
// Create containerproperty for icon
hwContainer.addContainerProperty( hw_PROPERTY_ICON, ThemeResource.class, x );
for ( int i = 0; i < hardware.length; i++ ) {
// Add new item
item = hwContainer.addItem( itemId );
// Add name property for item
item.getItemProperty( hw_PROPERTY_NAME ).setValue( hardware[ i ][ 0 ] );
// Allow children
hwContainer.setChildrenAllowed( itemId, true );
itemId++;
for ( int j = 1; j < hardware[ i ].length; j++ ) {
if (j == 1) {
item.getItemProperty( hw_PROPERTY_ICON ).setValue(
new ThemeResource( "../runo/icons/16/folder.png" ) );
}
// Add child items
item = hwContainer.addItem( itemId );
item.getItemProperty( hw_PROPERTY_NAME ).setValue( hardware[ i ][ j ] );
hwContainer.setParent( itemId, itemId - j );
hwContainer.setChildrenAllowed( itemId, false );
itemId++;
}
}
return hwContainer;
}
}
Last updated on
You cannot reply to this thread.