}
@Override
@NotNull
protected JComponent createControl() {
JideSplitPane splitPane = new JideSplitPane();
R rootObject = getRootObject();
treeModel = hierarchyModelFactory.createHierarchyTreeModel( rootObject );
detailsModel = hierarchyModelFactory.createDetailsModel( rootObject );
detailsModel.setContext( getContext() );
//wire the models
hierarchyTree = new HierarchyTree( treeModel );
hierarchyTree.addSelectionListener( detailsModel );
detailsModel.select( new DetailsTreeSelectionEvent( DetailsTreeSelectionEvent.Type.SELECTED, getEditorObject() ) );
TreePath initialSelectionPath = getInitialSelectionPath();
hierarchyTree.getSelectionModel().setSelectionPath( initialSelectionPath );
hierarchyTree.addSelectionListener( detailsModel );
splitPane.add( new JScrollPane( hierarchyTree ), JideBoxLayout.FLEXIBLE );
DetailsPanel detailsPanel = new DetailsPanel( detailsModel );
detailsPanel.setBorder( BorderFactory.createLineBorder( Color.BLACK ) );
splitPane.add( detailsPanel, JideBoxLayout.VARY );
// splitPane.add( new JScrollPane( new DetailsPanel( detailsModel ) ), JideBoxLayout.VARY );
splitPane.setBorder( BorderFactory.createEmptyBorder( 5, 5, 5, 5 ) );
return splitPane;
}