Vaadin TreeGrid has no expand or collapse iconcustom icons in jqgrid treegridjqGrid treeGrid Expand Collapse not workingjqgrid treegrid cant collapsing and expandingHow to hide expand/collapse icon in vaadin treetable?Vaadin: how to set drop criterion on TreeGridVaadin treegrid conditional formattingWhat is Dojo treegrid expand/collapse event?How to include own icon collection in Vaadin flow?ExternalResource in Vaadin 10 - Custom Icons for ButtonGet Vaadin Version in flow
How flexible are number-of-pages submission guidelines for conferences?
Why is the Tm defined as the temperature at which 50% of dsDNA has changed into ssDNA?
I multiply the source, you (probably) multiply the output!
Is there a standard terminology for female equivalents of terms such as 'Kingdom' and if so, what are the most common terms?
Stack class in Java 8
Are there take-over requests in aviation?
Is there a basic list of ways in which a low-level Rogue can get advantage for sneak attack?
What is this dollar sign ($) icon in my Menu Bar?
Job offer without any details but asking me to withdraw other applications - is it normal?
SCOTUS - Can Congress overrule Marbury v. Madison by statute?
How accurate is the new appraisal system?
Do landing gear doors need repairs after a gear gravity deploy landing?
Procedure for traffic not in sight
Usage of Offrir and Donner
Is there a "right" way to interpret a novel? If so, how do we make sure our novel is interpreted correctly?
What happens when a caster loses concentration on a banished creature?
How do I restrict an interpolated function to only take values > 0?
Was Robin Hood's point of view ethically sound?
What is going on: C++ std::move on std::shared_ptr increases use_count?
Is there any detail about ambulances in Star Wars?
Gas pipes - why does gas burn "outwards?"
What is this sticking out of my wall?
Number of aircraft to operate in an airline company
What is negative current?
Vaadin TreeGrid has no expand or collapse icon
custom icons in jqgrid treegridjqGrid treeGrid Expand Collapse not workingjqgrid treegrid cant collapsing and expandingHow to hide expand/collapse icon in vaadin treetable?Vaadin: how to set drop criterion on TreeGridVaadin treegrid conditional formattingWhat is Dojo treegrid expand/collapse event?How to include own icon collection in Vaadin flow?ExternalResource in Vaadin 10 - Custom Icons for ButtonGet Vaadin Version in flow
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I use Vaadin to create a simple Web Application that contains a single TreeGrid.
The TreeGrid shows up, but there is no handle to expand or collapse a root element ("Year 2010" or "Year 2011") although there are children.
When I use expand(..) Method, the tree is expanded (as shown in the screenshot), but there is no icon to collapse it. In the screenshot below "Year 2011" is the expanded root node where "Customer Project1" and "Customer Project 2" are children.
The project is build with Maven, I use vaadin-bom version 13.0.2 with vaadin-grid-flow-3.0.3.jar.
Below the screenshot there is the code I use. I think the problem must be somewhere in method createTreeGrid().
The working example from Vaadin can be found here
Vaadin example
So anyone any ideas on how to solve this? any help appreciated... :-)
Thorsten

package hello;
@Route
public class MainView extends VerticalLayout
public MainView()
add( createTreeGrid() );
private TreeGrid<Project> createTreeGrid()
TreeGrid<Project> treeGrid = new TreeGrid<>();
final List<Project> generateProjectsForYears = generateProjectsForYears( 2010, 2016 );
treeGrid.setItems( generateProjectsForYears, Project::getSubProjects );
treeGrid.addColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
treeGrid.addColumn( Project::getHoursDone ).setHeader( "Hours Done" );
treeGrid.addColumn( Project::getLastModified ).setHeader( "Last Modified" );
treeGrid.expand( generateProjectsForYears.get( 1 ) ); // works!
return treeGrid;
private List<Project> generateProjectsForYears( int startYear, int endYear )
List<Project> projects = new ArrayList<>();
for ( int year = startYear; year <= endYear; year++ )
Project yearProject = new Project( "Year " + year );
Random random = new Random();
for ( int i = 1; i < 2 + random.nextInt( 5 ); i++ )
Project customerProject = new Project( "Customer Project " + i );
customerProject.setSubProjects( Arrays.asList(
new LeafProject( "Implementation", random.nextInt( 100 ), year ),
new LeafProject( "Planning", random.nextInt( 10 ), year ),
new LeafProject( "Prototyping", random.nextInt( 20 ), year ) ) );
yearProject.addSubProject( customerProject );
projects.add( yearProject );
return projects;
private class Project
private List<Project> subProjects = new ArrayList<>();
private String name;
public Project( String name )
this.name = name;
public String getName()
return name;
public List<Project> getSubProjects()
return subProjects;
public void setSubProjects( List<Project> subProjects )
this.subProjects = subProjects;
public void addSubProject( Project subProject )
subProjects.add( subProject );
public int getHoursDone()
return getSubProjects().stream()
.map( project -> project.getHoursDone() )
.reduce( 0, Integer::sum );
public Date getLastModified()
return getSubProjects().stream()
.map( project -> project.getLastModified() )
.max( Date::compareTo ).orElse( null );
private class LeafProject extends Project
private int hoursDone;
private Date lastModified;
public LeafProject( String name, int hoursDone, int year )
super( name );
this.hoursDone = hoursDone;
Random random = new Random();
lastModified = new Date( year - 1900, random.nextInt( 12 ),
random.nextInt( 10 ) );
@Override
public int getHoursDone()
return hoursDone;
@Override
public Date getLastModified()
return lastModified;
vaadin treegrid vaadin-flow
add a comment |
I use Vaadin to create a simple Web Application that contains a single TreeGrid.
The TreeGrid shows up, but there is no handle to expand or collapse a root element ("Year 2010" or "Year 2011") although there are children.
When I use expand(..) Method, the tree is expanded (as shown in the screenshot), but there is no icon to collapse it. In the screenshot below "Year 2011" is the expanded root node where "Customer Project1" and "Customer Project 2" are children.
The project is build with Maven, I use vaadin-bom version 13.0.2 with vaadin-grid-flow-3.0.3.jar.
Below the screenshot there is the code I use. I think the problem must be somewhere in method createTreeGrid().
The working example from Vaadin can be found here
Vaadin example
So anyone any ideas on how to solve this? any help appreciated... :-)
Thorsten

package hello;
@Route
public class MainView extends VerticalLayout
public MainView()
add( createTreeGrid() );
private TreeGrid<Project> createTreeGrid()
TreeGrid<Project> treeGrid = new TreeGrid<>();
final List<Project> generateProjectsForYears = generateProjectsForYears( 2010, 2016 );
treeGrid.setItems( generateProjectsForYears, Project::getSubProjects );
treeGrid.addColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
treeGrid.addColumn( Project::getHoursDone ).setHeader( "Hours Done" );
treeGrid.addColumn( Project::getLastModified ).setHeader( "Last Modified" );
treeGrid.expand( generateProjectsForYears.get( 1 ) ); // works!
return treeGrid;
private List<Project> generateProjectsForYears( int startYear, int endYear )
List<Project> projects = new ArrayList<>();
for ( int year = startYear; year <= endYear; year++ )
Project yearProject = new Project( "Year " + year );
Random random = new Random();
for ( int i = 1; i < 2 + random.nextInt( 5 ); i++ )
Project customerProject = new Project( "Customer Project " + i );
customerProject.setSubProjects( Arrays.asList(
new LeafProject( "Implementation", random.nextInt( 100 ), year ),
new LeafProject( "Planning", random.nextInt( 10 ), year ),
new LeafProject( "Prototyping", random.nextInt( 20 ), year ) ) );
yearProject.addSubProject( customerProject );
projects.add( yearProject );
return projects;
private class Project
private List<Project> subProjects = new ArrayList<>();
private String name;
public Project( String name )
this.name = name;
public String getName()
return name;
public List<Project> getSubProjects()
return subProjects;
public void setSubProjects( List<Project> subProjects )
this.subProjects = subProjects;
public void addSubProject( Project subProject )
subProjects.add( subProject );
public int getHoursDone()
return getSubProjects().stream()
.map( project -> project.getHoursDone() )
.reduce( 0, Integer::sum );
public Date getLastModified()
return getSubProjects().stream()
.map( project -> project.getLastModified() )
.max( Date::compareTo ).orElse( null );
private class LeafProject extends Project
private int hoursDone;
private Date lastModified;
public LeafProject( String name, int hoursDone, int year )
super( name );
this.hoursDone = hoursDone;
Random random = new Random();
lastModified = new Date( year - 1900, random.nextInt( 12 ),
random.nextInt( 10 ) );
@Override
public int getHoursDone()
return hoursDone;
@Override
public Date getLastModified()
return lastModified;
vaadin treegrid vaadin-flow
add a comment |
I use Vaadin to create a simple Web Application that contains a single TreeGrid.
The TreeGrid shows up, but there is no handle to expand or collapse a root element ("Year 2010" or "Year 2011") although there are children.
When I use expand(..) Method, the tree is expanded (as shown in the screenshot), but there is no icon to collapse it. In the screenshot below "Year 2011" is the expanded root node where "Customer Project1" and "Customer Project 2" are children.
The project is build with Maven, I use vaadin-bom version 13.0.2 with vaadin-grid-flow-3.0.3.jar.
Below the screenshot there is the code I use. I think the problem must be somewhere in method createTreeGrid().
The working example from Vaadin can be found here
Vaadin example
So anyone any ideas on how to solve this? any help appreciated... :-)
Thorsten

package hello;
@Route
public class MainView extends VerticalLayout
public MainView()
add( createTreeGrid() );
private TreeGrid<Project> createTreeGrid()
TreeGrid<Project> treeGrid = new TreeGrid<>();
final List<Project> generateProjectsForYears = generateProjectsForYears( 2010, 2016 );
treeGrid.setItems( generateProjectsForYears, Project::getSubProjects );
treeGrid.addColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
treeGrid.addColumn( Project::getHoursDone ).setHeader( "Hours Done" );
treeGrid.addColumn( Project::getLastModified ).setHeader( "Last Modified" );
treeGrid.expand( generateProjectsForYears.get( 1 ) ); // works!
return treeGrid;
private List<Project> generateProjectsForYears( int startYear, int endYear )
List<Project> projects = new ArrayList<>();
for ( int year = startYear; year <= endYear; year++ )
Project yearProject = new Project( "Year " + year );
Random random = new Random();
for ( int i = 1; i < 2 + random.nextInt( 5 ); i++ )
Project customerProject = new Project( "Customer Project " + i );
customerProject.setSubProjects( Arrays.asList(
new LeafProject( "Implementation", random.nextInt( 100 ), year ),
new LeafProject( "Planning", random.nextInt( 10 ), year ),
new LeafProject( "Prototyping", random.nextInt( 20 ), year ) ) );
yearProject.addSubProject( customerProject );
projects.add( yearProject );
return projects;
private class Project
private List<Project> subProjects = new ArrayList<>();
private String name;
public Project( String name )
this.name = name;
public String getName()
return name;
public List<Project> getSubProjects()
return subProjects;
public void setSubProjects( List<Project> subProjects )
this.subProjects = subProjects;
public void addSubProject( Project subProject )
subProjects.add( subProject );
public int getHoursDone()
return getSubProjects().stream()
.map( project -> project.getHoursDone() )
.reduce( 0, Integer::sum );
public Date getLastModified()
return getSubProjects().stream()
.map( project -> project.getLastModified() )
.max( Date::compareTo ).orElse( null );
private class LeafProject extends Project
private int hoursDone;
private Date lastModified;
public LeafProject( String name, int hoursDone, int year )
super( name );
this.hoursDone = hoursDone;
Random random = new Random();
lastModified = new Date( year - 1900, random.nextInt( 12 ),
random.nextInt( 10 ) );
@Override
public int getHoursDone()
return hoursDone;
@Override
public Date getLastModified()
return lastModified;
vaadin treegrid vaadin-flow
I use Vaadin to create a simple Web Application that contains a single TreeGrid.
The TreeGrid shows up, but there is no handle to expand or collapse a root element ("Year 2010" or "Year 2011") although there are children.
When I use expand(..) Method, the tree is expanded (as shown in the screenshot), but there is no icon to collapse it. In the screenshot below "Year 2011" is the expanded root node where "Customer Project1" and "Customer Project 2" are children.
The project is build with Maven, I use vaadin-bom version 13.0.2 with vaadin-grid-flow-3.0.3.jar.
Below the screenshot there is the code I use. I think the problem must be somewhere in method createTreeGrid().
The working example from Vaadin can be found here
Vaadin example
So anyone any ideas on how to solve this? any help appreciated... :-)
Thorsten

package hello;
@Route
public class MainView extends VerticalLayout
public MainView()
add( createTreeGrid() );
private TreeGrid<Project> createTreeGrid()
TreeGrid<Project> treeGrid = new TreeGrid<>();
final List<Project> generateProjectsForYears = generateProjectsForYears( 2010, 2016 );
treeGrid.setItems( generateProjectsForYears, Project::getSubProjects );
treeGrid.addColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
treeGrid.addColumn( Project::getHoursDone ).setHeader( "Hours Done" );
treeGrid.addColumn( Project::getLastModified ).setHeader( "Last Modified" );
treeGrid.expand( generateProjectsForYears.get( 1 ) ); // works!
return treeGrid;
private List<Project> generateProjectsForYears( int startYear, int endYear )
List<Project> projects = new ArrayList<>();
for ( int year = startYear; year <= endYear; year++ )
Project yearProject = new Project( "Year " + year );
Random random = new Random();
for ( int i = 1; i < 2 + random.nextInt( 5 ); i++ )
Project customerProject = new Project( "Customer Project " + i );
customerProject.setSubProjects( Arrays.asList(
new LeafProject( "Implementation", random.nextInt( 100 ), year ),
new LeafProject( "Planning", random.nextInt( 10 ), year ),
new LeafProject( "Prototyping", random.nextInt( 20 ), year ) ) );
yearProject.addSubProject( customerProject );
projects.add( yearProject );
return projects;
private class Project
private List<Project> subProjects = new ArrayList<>();
private String name;
public Project( String name )
this.name = name;
public String getName()
return name;
public List<Project> getSubProjects()
return subProjects;
public void setSubProjects( List<Project> subProjects )
this.subProjects = subProjects;
public void addSubProject( Project subProject )
subProjects.add( subProject );
public int getHoursDone()
return getSubProjects().stream()
.map( project -> project.getHoursDone() )
.reduce( 0, Integer::sum );
public Date getLastModified()
return getSubProjects().stream()
.map( project -> project.getLastModified() )
.max( Date::compareTo ).orElse( null );
private class LeafProject extends Project
private int hoursDone;
private Date lastModified;
public LeafProject( String name, int hoursDone, int year )
super( name );
this.hoursDone = hoursDone;
Random random = new Random();
lastModified = new Date( year - 1900, random.nextInt( 12 ),
random.nextInt( 10 ) );
@Override
public int getHoursDone()
return hoursDone;
@Override
public Date getLastModified()
return lastModified;
vaadin treegrid vaadin-flow
vaadin treegrid vaadin-flow
edited Mar 28 at 8:30
SirPeople
2,58612 silver badges31 bronze badges
2,58612 silver badges31 bronze badges
asked Mar 28 at 8:00
user1119859user1119859
1931 gold badge2 silver badges12 bronze badges
1931 gold badge2 silver badges12 bronze badges
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You have to define a hierarchy column.
So simply replace
treeGrid.addColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
with
treeGrid.addHierarchyColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
Thanks for the help. I saw a method setHierachyColumn(), but since it was'nt used in the official example I didn't give it a try. It's also quite confusing with the different versions of vaadin.
– user1119859
Mar 28 at 8:47
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55392653%2fvaadin-treegrid-has-no-expand-or-collapse-icon%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You have to define a hierarchy column.
So simply replace
treeGrid.addColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
with
treeGrid.addHierarchyColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
Thanks for the help. I saw a method setHierachyColumn(), but since it was'nt used in the official example I didn't give it a try. It's also quite confusing with the different versions of vaadin.
– user1119859
Mar 28 at 8:47
add a comment |
You have to define a hierarchy column.
So simply replace
treeGrid.addColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
with
treeGrid.addHierarchyColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
Thanks for the help. I saw a method setHierachyColumn(), but since it was'nt used in the official example I didn't give it a try. It's also quite confusing with the different versions of vaadin.
– user1119859
Mar 28 at 8:47
add a comment |
You have to define a hierarchy column.
So simply replace
treeGrid.addColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
with
treeGrid.addHierarchyColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
You have to define a hierarchy column.
So simply replace
treeGrid.addColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
with
treeGrid.addHierarchyColumn( Project::getName ).setHeader( "Project Name" ).setId( "name-column" );
answered Mar 28 at 8:16
codinghauscodinghaus
1,3611 gold badge6 silver badges17 bronze badges
1,3611 gold badge6 silver badges17 bronze badges
Thanks for the help. I saw a method setHierachyColumn(), but since it was'nt used in the official example I didn't give it a try. It's also quite confusing with the different versions of vaadin.
– user1119859
Mar 28 at 8:47
add a comment |
Thanks for the help. I saw a method setHierachyColumn(), but since it was'nt used in the official example I didn't give it a try. It's also quite confusing with the different versions of vaadin.
– user1119859
Mar 28 at 8:47
Thanks for the help. I saw a method setHierachyColumn(), but since it was'nt used in the official example I didn't give it a try. It's also quite confusing with the different versions of vaadin.
– user1119859
Mar 28 at 8:47
Thanks for the help. I saw a method setHierachyColumn(), but since it was'nt used in the official example I didn't give it a try. It's also quite confusing with the different versions of vaadin.
– user1119859
Mar 28 at 8:47
add a comment |
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55392653%2fvaadin-treegrid-has-no-expand-or-collapse-icon%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown