Generalized more dispatch code.
diff --git a/src/main/java/org/apache/cayenne/modeler/layout/DetailEditorSupport.java b/src/main/java/org/apache/cayenne/modeler/layout/DetailEditorSupport.java
index 5073f86..b1cf376 100644
--- a/src/main/java/org/apache/cayenne/modeler/layout/DetailEditorSupport.java
+++ b/src/main/java/org/apache/cayenne/modeler/layout/DetailEditorSupport.java
@@ -30,7 +30,7 @@
{
static final Log LOGGER = LogFactory.getLog(DetailEditorSupport.class);
- default void showLayout(final T propertyAdapter)
+ default void showEditor(final T propertyAdapter)
{
setPropertyAdapter(propertyAdapter);
initializeBindings();
@@ -47,7 +47,7 @@
return new ArrayList<>();
}
- void setPropertyAdapter(final T propertyAdapter);
+ void setPropertyAdapter(T propertyAdapter);
default void beginEditing()
{
diff --git a/src/main/java/org/apache/cayenne/modeler/layout/MainWindowLayout.java b/src/main/java/org/apache/cayenne/modeler/layout/MainWindowLayout.java
index b818cb3..2bfc747 100644
--- a/src/main/java/org/apache/cayenne/modeler/layout/MainWindowLayout.java
+++ b/src/main/java/org/apache/cayenne/modeler/layout/MainWindowLayout.java
@@ -23,6 +23,7 @@
import java.util.Optional;
import org.apache.cayenne.modeler.CayenneModeler;
+import org.apache.cayenne.modeler.adapters.CayennePropertyAdapter;
import org.apache.cayenne.modeler.adapters.DataMapAdapter;
import org.apache.cayenne.modeler.adapters.DataNodeAdapter;
import org.apache.cayenne.modeler.adapters.DatabaseEntityAdapter;
@@ -194,16 +195,21 @@
{
observable.getValue().getParent();
+// displayDataDomain((DataDomainTreeItem) newValue);
+// displayObjectEntity((ObjectEntityTreeItem) newValue);
+// displayDatabaseEntity((DatabaseEntityTreeItem) newValue);
+// displayDataNode((DataNodeTreeItem) newValue);
+
if (newValue instanceof DataDomainTreeItem)
- displayDataDomain((DataDomainTreeItem) newValue);
+ displayDetailEditor(getDataDomainDetail(), ((DataDomainTreeItem) newValue).getPropertyAdapter());
else if (newValue instanceof DataMapTreeItem)
displayDataMap((DataMapTreeItem) newValue);
else if (newValue instanceof ObjectEntityTreeItem)
- displayObjectEntity((ObjectEntityTreeItem) newValue);
+ displayDetailEditor(getObjectEntityDetail(), ((ObjectEntityTreeItem) newValue).getPropertyAdapter());
else if (newValue instanceof DatabaseEntityTreeItem)
- displayDatabaseEntity((DatabaseEntityTreeItem) newValue);
+ displayDetailEditor(getDatabaseEntityDetail(), ((DatabaseEntityTreeItem) newValue).getPropertyAdapter());
else if (newValue instanceof DataNodeTreeItem)
- displayDataNode((DataNodeTreeItem) newValue);
+ displayDetailEditor(getDataNodeDetail(), ((DataNodeTreeItem) newValue).getPropertyAdapter());
// if (newValue.getValue() instanceof DataDomainTreeViewModel)
// displayDataDomain((DataDomainTreeViewModel) newValue.getValue());
// else if (newValue.getValue() instanceof DataMapTreeViewModel)
@@ -303,41 +309,54 @@
{
final DataNodeTreeItem dataMapBranch = new DataNodeTreeItem(dataNodeAdapter, dataDomainBranch);
}
-// private void displayDataDomain(final DataDomainTreeViewModel domain)
- private void displayDataDomain(final DataDomainTreeItem dataDomainTreeItem) throws IOException
+
+ private <T extends CayennePropertyAdapter> void displayDetailEditor(DetailEditorSupport<T> des, T cpa)
{
- displayDetailView(getDataDomainDetail());
- getDataDomainDetail().setPropertyAdapter(dataDomainTreeItem.getPropertyAdapter());
- getDataDomainDetail().beginEditing();
+// @SuppressWarnings("unchecked")
+// DetailEditorSupport<? extends CayennePropertyAdapter> des = (DetailEditorSupport<? extends CayennePropertyAdapter>) avl;
+
+// T<? extends CayennePropertyAdapter> cpa2;
+
+ displayDetailView((Node) des);
+ des.setPropertyAdapter(cpa);
+ des.beginEditing();
}
+// private void displayDataDomain(final DataDomainTreeViewModel domain)
+// private void displayDataDomain(final DataDomainTreeItem dataDomainTreeItem) throws IOException
+// {
+// displayDetailView(getDataDomainDetail());
+// getDataDomainDetail().setPropertyAdapter(dataDomainTreeItem.getPropertyAdapter());
+// getDataDomainDetail().beginEditing();
+// }
private void displayDataMap(final DataMapTreeItem dataMapTreeItem) throws IOException
{
displayDetailView(getDataMapDetail());
- getDataMapDetail().setPropertyAdapter(dataMapTreeItem.getPropertyAdapter());
- getDataMapDetail().beginEditing();
+ getDataMapDetail().showEditor(dataMapTreeItem.getPropertyAdapter());
+// getDataMapDetail().setPropertyAdapter(dataMapTreeItem.getPropertyAdapter());
+// getDataMapDetail().beginEditing();
}
- private void displayDataNode(final DataNodeTreeItem dataNodeTreeItem) throws IOException
- {
- displayDetailView(getDataNodeDetail());
- getDataNodeDetail().setPropertyAdapter(dataNodeTreeItem.getPropertyAdapter());
- getDataNodeDetail().beginEditing();
- }
+// private void displayDataNode(final DataNodeTreeItem dataNodeTreeItem) throws IOException
+// {
+// displayDetailView(getDataNodeDetail());
+// getDataNodeDetail().setPropertyAdapter(dataNodeTreeItem.getPropertyAdapter());
+// getDataNodeDetail().beginEditing();
+// }
- private void displayObjectEntity(final ObjectEntityTreeItem objectEntityTreeItem) throws IOException
- {
- displayDetailView(getObjectEntityDetail());
- getObjectEntityDetail().setPropertyAdapter(objectEntityTreeItem.getPropertyAdapter());
- getObjectEntityDetail().beginEditing();
- }
+// private void displayObjectEntity(final ObjectEntityTreeItem objectEntityTreeItem) throws IOException
+// {
+// displayDetailView(getObjectEntityDetail());
+// getObjectEntityDetail().setPropertyAdapter(objectEntityTreeItem.getPropertyAdapter());
+// getObjectEntityDetail().beginEditing();
+// }
- private void displayDatabaseEntity(final DatabaseEntityTreeItem databaseEntityTreeItem) throws IOException
- {
- displayDetailView(getDatabaseEntityDetail());
- getDatabaseEntityDetail().setPropertyAdapter(databaseEntityTreeItem.getPropertyAdapter());
- getDatabaseEntityDetail().beginEditing();
- }
+// private void displayDatabaseEntity(final DatabaseEntityTreeItem databaseEntityTreeItem) throws IOException
+// {
+// displayDetailView(getDatabaseEntityDetail());
+// getDatabaseEntityDetail().setPropertyAdapter(databaseEntityTreeItem.getPropertyAdapter());
+// getDatabaseEntityDetail().beginEditing();
+// }
private void displayDetailView(final Node detailView)
{