Skip to content

Commit

Permalink
Add DB Entity layout support into the project tree.
Browse files Browse the repository at this point in the history
  • Loading branch information
mrg committed Sep 12, 2016
1 parent 2a364b2 commit f26e1a3
Show file tree
Hide file tree
Showing 7 changed files with 230 additions and 33 deletions.
Expand Up @@ -23,6 +23,7 @@
import java.util.List;

import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.ObjEntity;

import javafx.beans.property.BooleanProperty;
Expand All @@ -37,7 +38,8 @@ public class DataMapAdapter extends CayennePropertyAdapter // implements Adapter
private final DataMap dataMap;
// private BeanPathAdapter<DataMap> dataMapAdapter;

private final List<ObjectEntityAdapter> objectEntityAdapters = new ArrayList<>();
private final List<ObjectEntityAdapter> objectEntityAdapters = new ArrayList<>();
private final List<DatabaseEntityAdapter> databaseEntityAdapters = new ArrayList<>();

private StringProperty nameProperty;

Expand All @@ -63,6 +65,9 @@ public DataMapAdapter(final DataMap dataMap)
for (ObjEntity objEntity : dataMap.getObjEntities())
objectEntityAdapters.add(new ObjectEntityAdapter(objEntity));

for (DbEntity dbEntity : dataMap.getDbEntities())
databaseEntityAdapters.add(new DatabaseEntityAdapter(dbEntity));

try
{
nameProperty = JavaBeanStringPropertyBuilder.create().bean(dataMap).name("name").build();
Expand Down Expand Up @@ -144,15 +149,13 @@ public StringProperty getDefaultClientSuperclassProperty()
return defaultClientSuperclassProperty;
}


public List<ObjectEntityAdapter> getObjectEntityAdapters()
{
return objectEntityAdapters;
}

// @Override
// public BeanPathAdapter<DataMap> getBeanPathAdapter()
// {
// return dataMapAdapter;
// }
public List<DatabaseEntityAdapter> getDatabaseEntityAdapters()
{
return databaseEntityAdapters;
}
}
@@ -0,0 +1,81 @@
/*****************************************************************
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
****************************************************************/

package org.apache.cayenne.modeler.adapters;

import java.util.ArrayList;
import java.util.List;

import org.apache.cayenne.map.DbEntity;

import javafx.beans.property.BooleanProperty;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.StringProperty;
import javafx.beans.property.adapter.JavaBeanStringPropertyBuilder;

public class DatabaseEntityAdapter extends CayennePropertyAdapter // implements AdapterSupport<DataMap>
{
private final DbEntity databaseEntity;
// private BeanPathAdapter<DataMap> dataMapAdapter;

private final List<ObjectEntityAdapter> objectEntityAdapters = new ArrayList<>();

private StringProperty nameProperty;

private StringProperty locationProperty;

private BooleanProperty quoteSQLIdentifiersProperty;

private StringProperty defaultCatalogProperty;
private StringProperty defaultSchemaProperty;
private StringProperty defaultPackageProperty;

private StringProperty defaultSuperclassProperty;
private IntegerProperty defaultLockTypeProperty;

private BooleanProperty clientSupportedProperty;
private StringProperty defaultClientPackageProperty;
private StringProperty defaultClientSuperclassProperty;

public DatabaseEntityAdapter(final DbEntity databaseEntity)
{
this.databaseEntity = databaseEntity;

try
{
nameProperty = JavaBeanStringPropertyBuilder.create().bean(databaseEntity).name("name").build();
}
catch (final NoSuchMethodException e)
{
throw new RuntimeException("Fix the builder.", e);
}

// this.dataMapAdapter = new BeanPathAdapter<DataMap>(dataMap);
}

public StringProperty getNameProperty()
{
return nameProperty;
}

public StringProperty getLocationProperty()
{
return locationProperty;
}
}
Expand Up @@ -23,6 +23,7 @@

import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.modeler.adapters.DatabaseEntityAdapter;
import org.apache.cayenne.modeler.utility.ObjectEntityUtilities;

import de.jensd.fx.glyphs.GlyphsDude;
Expand All @@ -33,7 +34,10 @@
import javafx.fxml.FXML;
import javafx.scene.control.TableColumn;

public class DatabaseEntityColumnsTabLayout extends AbstractViewLayout
public class DatabaseEntityColumnsTabLayout
extends AbstractViewLayout
implements DetailEditorSupport<DatabaseEntityAdapter>

{
// @FXML
// private TableView<ObjAttribute> attributesTableView;
Expand All @@ -55,6 +59,8 @@ public class DatabaseEntityColumnsTabLayout extends AbstractViewLayout

// private ObjectEntityClassTabLayout objectEntityClassTabViewController;

private DatabaseEntityAdapter databaseEntityAdapter;

public DatabaseEntityColumnsTabLayout(MainWindowSupport parent) throws IOException
{
super(parent.getMainWindow(), "/layouts/DatabaseEntityColumnsTabLayout.fxml");
Expand Down Expand Up @@ -150,6 +156,7 @@ protected void loadSubViews()
// destination.getChildren().add(source);
// }

@Deprecated // Unused?
public void display(DbEntity dbEntity)
{
System.out.println("trying to display: " + dbEntity);
Expand All @@ -165,9 +172,19 @@ public void tabChanged(Event event)
getMainWindow().getCayenneProject().getDataMaps();
}

// @Override
// public MainWindowLayout getMainWindow()
// {
// return parent.getMainWindow();
// }
@Override
public void setPropertyAdapter(DatabaseEntityAdapter databaseEntityAdapter)
{
this.databaseEntityAdapter = databaseEntityAdapter;
}

@Override
public void beginEditing()
{
}

@Override
public void endEditing()
{
}
}
Expand Up @@ -22,12 +22,15 @@
import java.io.IOException;

import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.modeler.adapters.DatabaseEntityAdapter;

import javafx.event.Event;
import javafx.fxml.FXML;
import javafx.scene.layout.AnchorPane;

public class DatabaseEntityLayout extends AbstractViewLayout
public class DatabaseEntityLayout
extends AbstractViewLayout
implements DetailEditorSupport<DatabaseEntityAdapter>
{
@FXML
private AnchorPane tableTabAnchorPane, columnsTabAnchorPane;
Expand All @@ -39,6 +42,8 @@ public class DatabaseEntityLayout extends AbstractViewLayout
// private ObjectEntityClassTabLayout objectEntityClassTabLayout;
// private ObjectEntityAttributesTabLayout objectEntityAttributesTabLayout;

private DatabaseEntityAdapter databaseEntityAdapter;

public DatabaseEntityLayout(MainWindowSupport parent) throws IOException
{
super(parent.getMainWindow(), "/layouts/DatabaseEntityLayout.fxml");
Expand Down Expand Up @@ -89,6 +94,7 @@ protected void loadSubViews()
// destination.getChildren().add(source);
// }

@Deprecated // Unused?
public void display(DbEntity dbEntity)
{
System.out.println("trying to display: " + dbEntity);
Expand All @@ -104,9 +110,26 @@ public void tabChanged(Event event)
getMainWindow().getCayenneProject().getDataMaps();
}

// @Override
// public MainWindowLayout getMainWindow()
// {
// return mainWindow;
// }
@Override
public void setPropertyAdapter(DatabaseEntityAdapter databaseEntityAdapter)
{
this.databaseEntityAdapter = databaseEntityAdapter;

databaseEntityTableTabLayout.setPropertyAdapter(databaseEntityAdapter);
databaseEntityColumnsTabLayout.setPropertyAdapter(databaseEntityAdapter);
}

@Override
public void beginEditing()
{
databaseEntityTableTabLayout.beginEditing();
databaseEntityColumnsTabLayout.beginEditing();
}

@Override
public void endEditing()
{
databaseEntityTableTabLayout.endEditing();
databaseEntityColumnsTabLayout.endEditing();
}
}
Expand Up @@ -22,8 +22,11 @@
import java.io.IOException;

import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.modeler.adapters.DatabaseEntityAdapter;

public class DatabaseEntityTableTabLayout extends AbstractViewLayout
public class DatabaseEntityTableTabLayout
extends AbstractViewLayout
implements DetailEditorSupport<DatabaseEntityAdapter>
{
// @FXML
// private Button dbEntitySyncButton;
Expand All @@ -33,6 +36,8 @@ public class DatabaseEntityTableTabLayout extends AbstractViewLayout

private MainWindowSupport parent;

private DatabaseEntityAdapter databaseEntityAdapter;

public DatabaseEntityTableTabLayout(MainWindowSupport parent) throws IOException
{
super(parent.getMainWindow(), "/layouts/DatabaseEntityTableTabLayout.fxml");
Expand All @@ -53,6 +58,7 @@ public DatabaseEntityTableTabLayout(MainWindowSupport parent) throws IOException
// }

// private ObjEntity objectEntity;
@Deprecated // Unused?
public void display(DbEntity databaseEntity)
{
// this.objectEntity = objectEntity;
Expand All @@ -61,6 +67,21 @@ public void display(DbEntity databaseEntity)
// abstractClassCheckbox.selectedProperty().bind(objectEntity.isAbstract());
}

@Override
public void setPropertyAdapter(DatabaseEntityAdapter databaseEntityAdapter)
{
this.databaseEntityAdapter = databaseEntityAdapter;
}

@Override
public void beginEditing()
{
}

@Override
public void endEditing()
{
}

// @Override
// protected void loadComponents()
Expand Down
Expand Up @@ -21,9 +21,9 @@

import java.io.IOException;

import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.modeler.CayenneModeler;
import org.apache.cayenne.modeler.adapters.DataMapAdapter;
import org.apache.cayenne.modeler.adapters.DatabaseEntityAdapter;
import org.apache.cayenne.modeler.adapters.ObjectEntityAdapter;
import org.apache.cayenne.modeler.notification.NotificationCenter;
import org.apache.cayenne.modeler.notification.event.DataDomainChangeEvent;
Expand All @@ -32,9 +32,8 @@
import org.apache.cayenne.modeler.project.CayenneProject;
import org.apache.cayenne.modeler.project.DataDomainTreeItem;
import org.apache.cayenne.modeler.project.DataMapTreeItem;
import org.apache.cayenne.modeler.project.DatabaseEntityTreeViewModel;
import org.apache.cayenne.modeler.project.DatabaseEntityTreeItem;
import org.apache.cayenne.modeler.project.ObjectEntityTreeItem;
import org.apache.cayenne.modeler.utility.TreeViewUtilities;

import de.jensd.fx.glyphs.GlyphsDude;
import de.jensd.fx.glyphs.fontawesome.FontAwesomeIcon;
Expand Down Expand Up @@ -115,6 +114,8 @@ else if (treeItem instanceof DataMapTreeItem)
return dataMapDetail;
else if (treeItem instanceof ObjectEntityTreeItem)
return objectEntityDetail;
else if (treeItem instanceof DatabaseEntityTreeItem)
return databaseEntityDetail;

return null;
}
Expand Down Expand Up @@ -156,6 +157,8 @@ else if (newValue instanceof DataMapTreeItem)
displayDataMap((DataMapTreeItem) newValue);
else if (newValue instanceof ObjectEntityTreeItem)
displayObjectEntity((ObjectEntityTreeItem) newValue);
else if (newValue instanceof DatabaseEntityTreeItem)
displayDatabaseEntity((DatabaseEntityTreeItem) newValue);
// if (newValue.getValue() instanceof DataDomainTreeViewModel)
// displayDataDomain((DataDomainTreeViewModel) newValue.getValue());
// else if (newValue.getValue() instanceof DataMapTreeViewModel)
Expand Down Expand Up @@ -252,7 +255,9 @@ private void addDataMap(final DataMapAdapter dataMapAdapter, final DataDomainTre
addObjEntity(objectEntityAdapter, dataMapBranch);
// for (final ObjEntity objEntity : dataMap.getObjEntities())
// addObjEntity(objEntity, dataMapBranch);
//

for (DatabaseEntityAdapter databaseEntityAdapter : dataMapAdapter.getDatabaseEntityAdapters())
addDbEntity(databaseEntityAdapter, dataMapBranch);
// for (final DbEntity dbEntity : dataMap.getDbEntities())
// addDbEntity(dbEntity, dataMapBranch);
}
Expand All @@ -268,12 +273,13 @@ private void addObjEntity(final ObjectEntityAdapter objectEntityAdapter, final D
// TreeItem<String> objEntityLeaf = TreeViewUtilities.addNode(objEntity.getName(), dataMapBranch, FontAwesomeIcon.FILE_TEXT);
}

private void addDbEntity(final DbEntity dbEntity, final TreeItem<Object> dataMapBranch)
private void addDbEntity(final DatabaseEntityAdapter databaseEntityAdapter, final DataMapTreeItem dataMapBranch)
{
final TreeItem<Object> dbEntityLeaf =
TreeViewUtilities.addNode(new TreeItem<>(new DatabaseEntityTreeViewModel(dbEntity)),
dataMapBranch,
FontAwesomeIcon.TABLE);
DatabaseEntityTreeItem databaseEntityLeaf = new DatabaseEntityTreeItem(databaseEntityAdapter, dataMapBranch);
// final TreeItem<Object> dbEntityLeaf =
// TreeViewUtilities.addNode(new TreeItem<>(new DatabaseEntityTreeViewModel(dbEntity)),
// dataMapBranch,
// FontAwesomeIcon.TABLE);
// TreeItem<String> dbEntityLeaf = TreeViewUtilities.addNode(dbEntity.getName(), dataMapBranch, FontAwesomeIcon.TABLE);
}

Expand Down Expand Up @@ -308,15 +314,14 @@ private void displayObjectEntity(final ObjectEntityTreeItem objectEntityTreeItem
displayDetailView(objectEntityDetail);
objectEntityDetail.setPropertyAdapter(objectEntityTreeItem.getPropertyAdapter());
objectEntityDetail.beginEditing();
// displayDetailView(objectEntityDetail);
// objectEntityDetail.display(objectEntity.getValue());
}

private void displayDatabaseEntity(final DatabaseEntityTreeViewModel databaseEntity)
private void displayDatabaseEntity(final DatabaseEntityTreeItem databaseEntityTreeItem)
{
System.out.println("database entity!!!");
displayDetailView(databaseEntityDetail);
databaseEntityDetail.display(databaseEntity.getValue());
databaseEntityDetail.setPropertyAdapter(databaseEntityTreeItem.getPropertyAdapter());
databaseEntityDetail.beginEditing();
}

public void onNewButtonClicked()
Expand Down

0 comments on commit f26e1a3

Please sign in to comment.