in src/main/java/org/apache/cayenne/modeler/layout/MainWindowLayout.java [166:259]
public void displayCayenneProject(final CayenneProject cayenneProject) throws IOException
{
this.cayenneProject = cayenneProject;
// this.dataDomainAdapter = new DataDomainAdapter(cayenneProject);
// Wire up the window's title bar to be aware of changes to the dirty indicator.
getStage().titleProperty().bind(titleProperty);
cayenneProject.dirtyProperty().addListener((observable, oldValue, newValue) -> setTitle());
setTitle();
treeRoot.setExpanded(true);
treeView.setRoot(treeRoot);
treeView.setShowRoot(false);
treeView.setCellFactory(new Callback<TreeView<String>, TreeCell<String>>()
{
@Override
public TreeCell<String> call(TreeView<String> p)
{
return new ProjectTreeCell();
}
});
// addDataDomain(CayenneModelManager.getModels().get(0));
// System.out.println(CayenneModelManager.getModels().size());
treeView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) ->
{
LOGGER.debug("observable: " + observable + ", new: " + newValue + ", old: " + oldValue);
try
{
if (oldValue != null)
{
final DetailEditorSupport<?> detailEditor = getDetailEditor(oldValue);
if (detailEditor != null)
detailEditor.endEditing();
}
if (newValue != null)
{
observable.getValue().getParent();
// displayDataDomain((DataDomainTreeItem) newValue);
// displayDataMap((DataMapTreeItem) newValue);
// displayObjectEntity((ObjectEntityTreeItem) newValue);
// displayDatabaseEntity((DatabaseEntityTreeItem) newValue);
// displayDataNode((DataNodeTreeItem) newValue);
if (newValue instanceof DataDomainTreeItem)
displayDetailEditor(getDataDomainDetail(), ((DataDomainTreeItem) newValue).getPropertyAdapter());
else if (newValue instanceof DataMapTreeItem)
displayDetailEditor(getDataMapDetail(), ((DataMapTreeItem) newValue).getPropertyAdapter());
else if (newValue instanceof ObjectEntityTreeItem)
displayDetailEditor(getObjectEntityDetail(), ((ObjectEntityTreeItem) newValue).getPropertyAdapter());
else if (newValue instanceof DatabaseEntityTreeItem)
displayDetailEditor(getDatabaseEntityDetail(), ((DatabaseEntityTreeItem) newValue).getPropertyAdapter());
else if (newValue instanceof DataNodeTreeItem)
displayDetailEditor(getDataNodeDetail(), ((DataNodeTreeItem) newValue).getPropertyAdapter());
// if (newValue.getValue() instanceof DataDomainTreeViewModel)
// displayDataDomain((DataDomainTreeViewModel) newValue.getValue());
// else if (newValue.getValue() instanceof DataMapTreeViewModel)
// displayDataMap(((DataMapTreeViewModel) newValue.getValue()).getDataMap());
// // else if (newValue.getValue() instanceof
// // DataNodeTreeViewModel)
// // displayDataNode();
// else if (newValue.getValue() instanceof ObjectEntityTreeViewModel)
// displayObjectEntity((ObjectEntityTreeViewModel) newValue.getValue());
// else if (newValue.getValue() instanceof DatabaseEntityTreeViewModel)
// displayDatabaseEntity((DatabaseEntityTreeViewModel) newValue.getValue());
}
else
{
treeView.getSelectionModel().select(0);
}
}
catch (final IOException e)
{
LOGGER.error("Cannot load UI.", e);
}
});
setTitle();
// displayDataDomain(domain);
// Register for notifications.
NotificationCenter.addProjectListener(cayenneProject, this);
addDataDomain();
treeView.requestFocus();
treeView.getSelectionModel().select(0);
}