http://git-wip-us.apache.org/repos/asf/cayenne/blob/51289d1c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportModel.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportModel.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportModel.java
deleted file mode 100644
index 749ffb0..0000000
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportModel.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*****************************************************************
- *   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.editor;
-
-import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
-import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
-
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.TreeNode;
-
-/**
- * @since 4.1
- */
-public class DbImportModel extends DefaultTreeModel {
-
-    private DbImportTree dbSchemaTree;
-    private boolean canBeCleaned;
-
-    DbImportModel(TreeNode root) {
-        super(root);
-    }
-
-    private void clearReverseEngineering(ReverseEngineering 
reverseEngineering) {
-        reverseEngineering.getSchemas().clear();
-        reverseEngineering.getCatalogs().clear();
-        reverseEngineering.getIncludeTables().clear();
-        reverseEngineering.getExcludeTables().clear();
-        reverseEngineering.getIncludeColumns().clear();
-        reverseEngineering.getExcludeColumns().clear();
-        reverseEngineering.getIncludeProcedures().clear();
-        reverseEngineering.getExcludeProcedures().clear();
-    }
-
-    private void preprocessTree() {
-        DbImportTreeNode rootNode = (DbImportTreeNode) getRoot();
-        if (rootNode.getChildCount() == 0) {
-            ReverseEngineering reverseEngineering = ((ReverseEngineering) 
rootNode.getUserObject());
-            if (canBeCleaned) {
-                clearReverseEngineering(reverseEngineering);
-            }
-            rootNode.add(new DbImportTreeNode(("Configuration is empty.")));
-        }
-    }
-
-    public void reload(TreeNode node) {
-        preprocessTree();
-        super.reload(node);
-        dbSchemaTree.repaint();
-    }
-
-    public void setDbSchemaTree(DbImportTree dbSchemaTree) {
-        this.dbSchemaTree = dbSchemaTree;
-    }
-
-    public void setCanBeCleaned(boolean canBeCleaned) {
-        this.canBeCleaned = canBeCleaned;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/51289d1c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportNodeHandler.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportNodeHandler.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportNodeHandler.java
deleted file mode 100644
index 3b33ad7..0000000
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportNodeHandler.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/*****************************************************************
- *   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.editor;
-
-import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeProcedure;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
-import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
-import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
-
-import javax.swing.tree.TreePath;
-import java.awt.Color;
-
-/**
- * @since 4.1
- */
-class DbImportNodeHandler {
-
-    private static final Color ACCEPT_COLOR = new Color(60,179,113);
-    private static final Color EXCLUDE_COLOR = new Color(178, 0, 0);
-    static final Color NON_INCLUDE_COLOR = Color.LIGHT_GRAY;
-    static final Color LABEL_COLOR = Color.BLACK;
-    private static final int EXCLUDE_TABLE_RATE = -10000;
-
-    private boolean existFirstLevelIncludeTable;
-    private boolean existCatalogsOrSchemas;
-    private boolean hasEntitiesInEmptyContainer;
-    private DbImportTreeNode dbSchemaNode;
-    private DbImportTree reverseEngineeringTree;
-
-    private boolean namesIsEqual(DbImportTreeNode reverseEngineeringNode) {
-        if (isContainer(reverseEngineeringNode)) {
-            return 
dbSchemaNode.getSimpleNodeName().equals(reverseEngineeringNode.getSimpleNodeName());
-        } else {
-            return 
(dbSchemaNode.getSimpleNodeName().toLowerCase().matches(reverseEngineeringNode.getSimpleNodeName().toLowerCase()));
-        }
-    }
-
-    boolean isContainer(DbImportTreeNode node) {
-        return (node.getUserObject().getClass() == Schema.class) || 
(node.getUserObject().getClass() == Catalog.class);
-    }
-
-    private boolean isEmptyContainer(DbImportTreeNode rootNode) {
-        return ((getChildIncludeTableCount(rootNode) == 0) && 
(!existFirstLevelIncludeTable));
-    }
-
-    boolean isParentIncluded() {
-        return ((dbSchemaNode.getParent() != null) && (((DbImportTreeNode) 
dbSchemaNode.getParent()).isColorized()));
-    }
-
-    // Compare node with current rendered node
-    public boolean nodesIsEqual(DbImportTreeNode reverseEngineeringNode) {
-        TreePath[] paths = reverseEngineeringTree.getSelectionPaths();
-        for (TreePath path : paths != null ? paths : new TreePath[0]) {
-            DbImportTreeNode node = (DbImportTreeNode) 
path.getLastPathComponent();
-            if ((nodesClassesComparation(node.getUserObject().getClass(), 
dbSchemaNode.getUserObject().getClass()))
-                    && namesIsEqual(node)
-                    && (dbSchemaNode.getLevel() >= node.getLevel())
-                    && (dbSchemaNode.parentsIsEqual(node))) {
-                return true;
-            }
-        }
-        if 
((nodesClassesComparation(reverseEngineeringNode.getUserObject().getClass(), 
dbSchemaNode.getUserObject().getClass()))
-                && namesIsEqual(reverseEngineeringNode)
-                && (dbSchemaNode.getLevel() >= 
reverseEngineeringNode.getLevel())
-                && (dbSchemaNode.parentsIsEqual(reverseEngineeringNode))) {
-            return true;
-        }
-        return false;
-    }
-
-    public boolean checkTreesLevels(DbImportTree dbTree) {
-        if (dbTree.getRootNode().getChildCount() == 0) {
-            return false;
-        }
-        DbImportTreeNode dbNode = (DbImportTreeNode) 
dbTree.getRootNode().getChildAt(0);
-        int childCount = reverseEngineeringTree.getRootNode().getChildCount();
-        for (int i = 0; i < childCount; i++) {
-            if (((DbImportTreeNode) 
reverseEngineeringTree.getRootNode().getChildAt(i)).
-                    getUserObject().getClass() == Catalog.class) {
-                if (dbNode.getUserObject().getClass() == Catalog.class) {
-                    return true;
-                } else {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
-    // Compare reverseEngineeringNode with node.getParent()
-    private boolean compareWithParent(DbImportTreeNode reverseEngineeringNode) 
{
-        if ((reverseEngineeringNode == null) || (dbSchemaNode.getParent() == 
null)) {
-            return false;
-        }
-        if 
((((DbImportTreeNode)dbSchemaNode.getParent()).getUserObject().getClass() == 
reverseEngineeringNode.getUserObject().getClass())
-                && 
(((DbImportTreeNode)dbSchemaNode.getParent()).getSimpleNodeName().equals(reverseEngineeringNode.getSimpleNodeName()))
-                && (((DbImportTreeNode)dbSchemaNode.getParent()).getLevel() >= 
reverseEngineeringNode.getLevel())
-                && 
(((DbImportTreeNode)dbSchemaNode.getParent())).parentsIsEqual(reverseEngineeringNode))
 {
-            return true;
-        }
-        return false;
-    }
-
-    // Get child IncludeTable's count in node, if exists
-    private int getChildIncludeTableCount(DbImportTreeNode parentNode) {
-        if (parentNode.isIncludeTable()) {
-            return 1;
-        }
-        int childCount = parentNode.getChildCount();
-        int result = 0;
-        for (int i = 0; i < childCount; i++) {
-            DbImportTreeNode tmpNode = (DbImportTreeNode) 
parentNode.getChildAt(i);
-            if (tmpNode.isIncludeTable()) {
-                result++;
-            }
-        }
-        return result;
-    }
-
-    // Find Exclude-node in configuration
-    private boolean foundExclude(DbImportTreeNode rootNode) {
-        int childCount = rootNode.getChildCount();
-        for (int i = 0; i < childCount; i++) {
-            DbImportTreeNode tmpNode = (DbImportTreeNode) 
rootNode.getChildAt(i);
-            if (tmpNode.getChildCount() > 0) {
-                if (tmpNode.isExcludeTable() || tmpNode.isExcludeProcedure()) {
-                    return true;
-                }
-            }
-            if (dbSchemaNode.getParent() != null) {
-                if (nodesIsEqual(tmpNode)) {
-                    if (tmpNode.isExcludeTable() || 
tmpNode.isExcludeProcedure()) {
-                        return true;
-                    }
-                }
-            }
-        }
-
-        return false;
-    }
-
-    /*
-    *  Recursively bypasses DbImportTree,
-    *  Increment result if rendered node exists in configuration tree,
-    *  Subtract EXCLUDE_TABLE_RATE from result, if found Exclude-node for 
rendered node,
-    *  Return 0, if rendered node not found.
-    */
-    int bypassTree(DbImportTreeNode rootNode) {
-        int bypassResult = 0;
-        int childCount = rootNode.getChildCount();
-        boolean hasProcedures = false;
-
-        // Case for empty reverse engineering, which has a include/exclude 
tables/procedures
-        if ((childCount == 0) && (nodesIsEqual(rootNode))) {
-            bypassResult++;
-        }
-
-        if (nodesIsEqual(rootNode)) {
-            bypassResult++;
-        }
-
-        ReverseEngineering reverseEngineering = 
reverseEngineeringTree.getReverseEngineering();
-        if ((reverseEngineering.getCatalogs().isEmpty()) && 
(reverseEngineering.getSchemas().isEmpty())
-                && (reverseEngineering.getIncludeTables().isEmpty())
-                && (!dbSchemaNode.isIncludeProcedure())) {
-            bypassResult++;
-        }
-
-        if (nodesIsEqual(rootNode) && isEmptyContainer(rootNode)) {
-            hasEntitiesInEmptyContainer = true;
-            if (foundExclude(rootNode)) {
-                return EXCLUDE_TABLE_RATE;
-            }
-            return 1;
-        }
-
-        if (compareWithParent(rootNode) && (!rootNode.isReverseEngineering()) 
&&
-                isEmptyContainer(rootNode) && (dbSchemaNode.isIncludeTable())) 
{
-            hasEntitiesInEmptyContainer = true;
-            if (foundExclude(rootNode)) {
-                return EXCLUDE_TABLE_RATE;
-            }
-            return 1;
-        }
-
-        if (hasEntitiesInEmptyContainer) {
-            for (int i = 0; i < childCount; i++) {
-                DbImportTreeNode tmpNode = (DbImportTreeNode) 
rootNode.getChildAt(i);
-                if (dbSchemaNode.isIncludeProcedure() && 
(nodesIsEqual(tmpNode))) {
-                    int tmpNodeChildCount = tmpNode.getChildCount();
-                    if (tmpNodeChildCount > 0) {
-                        bypassResult += bypassTree((DbImportTreeNode) 
rootNode.getChildAt(i));
-                    }
-                    bypassResult++;
-                    hasProcedures = true;
-                }
-            }
-            if ((!rootNode.isExcludeTable()) && (!nodesIsEqual(rootNode))
-                    && (!dbSchemaNode.isIncludeProcedure())) {
-                bypassResult++;
-            } else {
-                if ((!hasProcedures) && (!dbSchemaNode.isIncludeProcedure())) {
-                    bypassResult += EXCLUDE_TABLE_RATE;
-                }
-            }
-        }
-
-        for (int i = 0; i < childCount; i++) {
-            DbImportTreeNode tmpNode = (DbImportTreeNode) 
rootNode.getChildAt(i);
-            if (tmpNode.getChildCount() > 0) {
-                bypassResult += bypassTree(tmpNode);
-                if (tmpNode.isExcludeTable() || tmpNode.isExcludeProcedure()) {
-                    bypassResult += EXCLUDE_TABLE_RATE;
-                }
-            } else if (compareWithParent(tmpNode) && 
!(existFirstLevelIncludeTable)) {
-                if (!dbSchemaNode.isIncludeProcedure()) {
-                    bypassResult++;
-                }
-            }
-            if (dbSchemaNode.getParent() != null) {
-                if (nodesIsEqual(tmpNode)) {
-                    if (tmpNode.isExcludeTable() || 
tmpNode.isExcludeProcedure()) {
-                        bypassResult += EXCLUDE_TABLE_RATE;
-                    }
-                    bypassResult++;
-                }
-            }
-        }
-        return bypassResult;
-    }
-
-    Color getColorByNodeType(DbImportTreeNode node) {
-        if ((reverseEngineeringTree.getSelectionPaths() != null) 
&&(reverseEngineeringTree.getSelectionPaths().length > 1)) {
-            for (TreePath path : reverseEngineeringTree.getSelectionPaths()) {
-                DbImportTreeNode pathNode = (DbImportTreeNode) 
path.getLastPathComponent();
-                if 
(pathNode.getSimpleNodeName().equals(dbSchemaNode.getSimpleNodeName())) {
-                    if (pathNode.isExcludeTable() || 
pathNode.isExcludeProcedure()) {
-                        return EXCLUDE_COLOR;
-                    } else {
-                        return ACCEPT_COLOR;
-                    }
-                }
-            }
-        }
-        if (node.isExcludeTable() || node.isExcludeProcedure()) {
-            return EXCLUDE_COLOR;
-        } else {
-            return ACCEPT_COLOR;
-        }
-    }
-
-    void findFirstLevelIncludeTable() {
-        DbImportTreeNode root = reverseEngineeringTree.getRootNode();
-        int childCount = root.getChildCount();
-        existFirstLevelIncludeTable = false;
-        existCatalogsOrSchemas = false;
-        for (int i = 0; i < childCount; i++) {
-            DbImportTreeNode tmpNode = (DbImportTreeNode) root.getChildAt(i);
-            if (tmpNode.isIncludeTable()) {
-                existFirstLevelIncludeTable = true;
-            }
-            if (isContainer(tmpNode)) {
-                existCatalogsOrSchemas = true;
-            }
-        }
-    }
-
-    // Check, is DatabaseTree started with IncludeTable or IncludeProcedure
-    boolean isFirstNodeIsPrimitive(DbImportTree tree) {
-        final int firstChildIndex = 0;
-        DbImportTreeNode root = tree.getRootNode();
-        if (root.getChildCount() == 0) {
-            return false;
-        }
-        DbImportTreeNode firstElement = (DbImportTreeNode) 
root.getChildAt(firstChildIndex);
-        if (firstElement.isIncludeTable() || 
firstElement.isIncludeProcedure()) {
-            return true;
-        }
-        return false;
-    }
-
-    public boolean nodesClassesComparation(Class firstClass, Class 
secondClass) {
-        if (firstClass.equals(secondClass)) {
-            return true;
-        }
-        if ((firstClass.equals(IncludeTable.class)) && 
(secondClass.equals(ExcludeTable.class))) {
-            return true;
-        }
-        if ((firstClass.equals(ExcludeTable.class)) && 
(secondClass.equals(IncludeTable.class))) {
-            return true;
-        }
-        if ((firstClass.equals(IncludeProcedure.class)) && 
(secondClass.equals(ExcludeProcedure.class))) {
-            return true;
-        }
-        if ((firstClass.equals(ExcludeProcedure.class)) && 
(secondClass.equals(IncludeProcedure.class))) {
-            return true;
-        }
-        return false;
-    }
-
-    public boolean isExistCatalogsOrSchemas() {
-        return existCatalogsOrSchemas;
-    }
-
-    public boolean getHasEntitiesInEmptyContainer() {
-        return hasEntitiesInEmptyContainer;
-    }
-
-    public void setHasEntitiesInEmptyContainer(boolean newFlag) {
-        hasEntitiesInEmptyContainer = newFlag;
-    }
-
-    public void setDbSchemaNode(DbImportTreeNode dbSchemaNode) {
-        this.dbSchemaNode = dbSchemaNode;
-    }
-
-    public void setReverseEngineeringTree(DbImportTree reverseEngineeringTree) 
{
-        this.reverseEngineeringTree = reverseEngineeringTree;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/51289d1c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTree.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTree.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTree.java
deleted file mode 100644
index 6862c82..0000000
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTree.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*****************************************************************
- *   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.editor;
-
-import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
-import org.apache.cayenne.dbsync.reverse.dbimport.FilterContainer;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.PatternParam;
-import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
-import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
-import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
-import org.apache.cayenne.modeler.dialog.db.load.TransferableNode;
-
-import javax.swing.JTree;
-import javax.swing.tree.TreeNode;
-import javax.swing.tree.TreePath;
-import java.util.ArrayList;
-import java.util.Collection;
-
-/**
- * @since 4.1
- */
-public class DbImportTree extends JTree {
-
-    private boolean isTransferable;
-    private ReverseEngineering reverseEngineering;
-
-    public DbImportTree(TreeNode node) {
-        super(node);
-    }
-
-    public void translateReverseEngineeringToTree(ReverseEngineering 
reverseEngineering, boolean isTransferable) {
-        this.isTransferable = isTransferable;
-        this.reverseEngineering = reverseEngineering;
-        DbImportModel model = (DbImportModel) this.getModel();
-        DbImportTreeNode root = (DbImportTreeNode) model.getRoot();
-        root.removeAllChildren();
-        root.setUserObject(reverseEngineering);
-        printCatalogs(reverseEngineering.getCatalogs(), root);
-        printSchemas(reverseEngineering.getSchemas(), root);
-        printIncludeTables(reverseEngineering.getIncludeTables(), root);
-        printParams(reverseEngineering.getExcludeTables(), root);
-        printParams(reverseEngineering.getIncludeColumns(), root);
-        printParams(reverseEngineering.getExcludeColumns(), root);
-        printParams(reverseEngineering.getIncludeProcedures(), root);
-        printParams(reverseEngineering.getExcludeProcedures(), root);
-        model.reload();
-    }
-
-    public DbImportTreeNode findNodeByParentsChain(DbImportTreeNode rootNode, 
DbImportTreeNode movedNode, int depth) {
-        String parentName = ((DbImportTreeNode) 
movedNode.getParent()).getSimpleNodeName();
-        if ((rootNode.parentsIsEqual(((DbImportTreeNode) 
movedNode.getParent())))
-                && (rootNode.getSimpleNodeName().equals(parentName))
-                && ((rootNode.isCatalog()) || (rootNode.isSchema()))) {
-            return rootNode;
-        }
-        for (int i = 0; i < rootNode.getChildCount(); i++) {
-            DbImportTreeNode childNode = (DbImportTreeNode) 
rootNode.getChildAt(i);
-            DbImportTreeNode node = findNodeByParentsChain(childNode, 
movedNode, depth++);
-            if (node != null) {
-                return node;
-            }
-        }
-        return null;
-    }
-
-    public DbImportTreeNode findNode(DbImportTreeNode rootNode, 
DbImportTreeNode movedNode, int depth) {
-        String parentName = movedNode.getSimpleNodeName();
-        if ((rootNode.parentsIsEqual(movedNode))
-                && (rootNode.getSimpleNodeName().equals(parentName))) {
-            return rootNode;
-        }
-        for (int i = 0; i < rootNode.getChildCount(); i++) {
-            DbImportTreeNode childNode = (DbImportTreeNode) 
rootNode.getChildAt(i);
-            DbImportTreeNode node = findNode(childNode, movedNode, depth++);
-            if (node != null) {
-                return node;
-            }
-        }
-        return null;
-    }
-
-    // Create list of expanded elements
-    private ArrayList<DbImportTreeNode> createTreeExpandList(DbImportTreeNode 
rootNode, ArrayList<DbImportTreeNode> resultList) {
-        for (int i = 0; i < rootNode.getChildCount(); i++) {
-            DbImportTreeNode childNode = (DbImportTreeNode) 
rootNode.getChildAt(i);
-            TreePath childPath = new TreePath(childNode.getPath());
-            if (isExpanded(childPath)) {
-                resultList.add(childNode);
-            }
-            if (childNode.getChildCount() > 0) {
-                createTreeExpandList(childNode, resultList);
-            }
-        }
-        return resultList;
-    }
-
-    public ArrayList<DbImportTreeNode> getTreeExpandList() {
-        ArrayList<DbImportTreeNode> resultList = new ArrayList<>();
-        return createTreeExpandList(getRootNode(), resultList);
-    }
-
-    private void expandBeginningWithNode(DbImportTreeNode rootNode, 
ArrayList<DbImportTreeNode> list) {
-        for (int i = 0; i < rootNode.getChildCount(); i++) {
-            DbImportTreeNode childNode = (DbImportTreeNode) 
rootNode.getChildAt(i);
-            list.forEach((element) -> {
-                if (element.equals(childNode)) {
-                    this.expandPath(new TreePath(childNode.getPath()));
-                }
-            });
-            if (childNode.getChildCount() > 0) {
-                expandBeginningWithNode(childNode, list);
-            }
-        }
-    }
-
-    public void expandTree(ArrayList<DbImportTreeNode> expandIndexesList) {
-        expandBeginningWithNode(getRootNode(), expandIndexesList);
-    }
-
-    private <T extends PatternParam> void printParams(Collection<T> 
collection, DbImportTreeNode parent) {
-        for (T element : collection) {
-            DbImportTreeNode node = !isTransferable ? new 
DbImportTreeNode(element) : new TransferableNode(element);
-            if (!node.getSimpleNodeName().equals("")) {
-                parent.add(node);
-            }
-        }
-    }
-
-    private void printIncludeTables(Collection<IncludeTable> collection, 
DbImportTreeNode parent) {
-        for (IncludeTable includeTable : collection) {
-            DbImportTreeNode node = !isTransferable ? new 
DbImportTreeNode(includeTable) : new TransferableNode(includeTable);
-            if (!node.getSimpleNodeName().equals("")) {
-                printParams(includeTable.getIncludeColumns(), node);
-                printParams(includeTable.getExcludeColumns(), node);
-                parent.add(node);
-            }
-        }
-    }
-
-    private void printChildren(FilterContainer container, DbImportTreeNode 
parent) {
-        printIncludeTables(container.getIncludeTables(), parent);
-        printParams(container.getExcludeTables(), parent);
-        printParams(container.getIncludeColumns(), parent);
-        printParams(container.getExcludeColumns(), parent);
-        printParams(container.getIncludeProcedures(), parent);
-        printParams(container.getExcludeProcedures(), parent);
-    }
-
-    private void printSchemas(Collection<Schema> schemas, DbImportTreeNode 
parent) {
-        for (Schema schema : schemas) {
-            DbImportTreeNode node = !isTransferable ? new 
DbImportTreeNode(schema) : new TransferableNode(schema);
-            if (!node.getSimpleNodeName().equals("")) {
-                printChildren(schema, node);
-                parent.add(node);
-            }
-        }
-    }
-
-    private void printCatalogs(Collection<Catalog> catalogs, DbImportTreeNode 
parent) {
-        for (Catalog catalog : catalogs) {
-            DbImportTreeNode node = !isTransferable ? new 
DbImportTreeNode(catalog) : new TransferableNode(catalog);
-            if (!node.getSimpleNodeName().equals("")) {
-                printSchemas(catalog.getSchemas(), node);
-                printChildren(catalog, node);
-                parent.add(node);
-            }
-        }
-    }
-
-    public DbImportTreeNode getSelectedNode() {
-        return (DbImportTreeNode) 
this.getSelectionPath().getLastPathComponent();
-    }
-
-    public DbImportTreeNode getRootNode() {
-        return (DbImportTreeNode) this.getModel().getRoot();
-    }
-
-    public ReverseEngineering getReverseEngineering() {
-        return reverseEngineering;
-    }
-
-    public void setReverseEngineering(ReverseEngineering reverseEngineering) {
-        this.reverseEngineering = reverseEngineering;
-    }
-
-    public boolean isTransferable() {
-        return isTransferable;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/51289d1c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTreeCellEditor.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTreeCellEditor.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTreeCellEditor.java
deleted file mode 100644
index 6c96e31..0000000
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTreeCellEditor.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*****************************************************************
- *   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.editor;
-
-import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.action.DeleteNodeAction;
-import org.apache.cayenne.modeler.action.EditNodeAction;
-import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
-import org.apache.cayenne.util.Util;
-
-import javax.swing.JTree;
-import javax.swing.event.CellEditorListener;
-import javax.swing.event.ChangeEvent;
-import javax.swing.tree.DefaultTreeCellEditor;
-import javax.swing.tree.DefaultTreeCellRenderer;
-import javax.swing.tree.TreePath;
-import java.awt.Component;
-import java.util.EventObject;
-import java.util.regex.Pattern;
-
-/**
- * @since 4.1
- */
-public class DbImportTreeCellEditor extends DefaultTreeCellEditor {
-
-    private ProjectController projectController;
-
-    public DbImportTreeCellEditor(JTree tree, DefaultTreeCellRenderer 
renderer) {
-        super(tree, renderer);
-        this.addCellEditorListener(new CellEditorListener() {
-            @Override
-            public void editingStopped(ChangeEvent e) {
-                DbImportTreeCellEditor.this.cancelCellEditing();
-            }
-
-            @Override
-            public void editingCanceled(ChangeEvent e) {
-                editingStopped(e);
-            }
-        });
-
-    }
-
-    @Override
-    public Object getCellEditorValue() {
-        if (tree.getSelectionPath() == null) {
-            return "";
-        }
-        DbImportTreeNode node = (DbImportTreeNode) 
tree.getSelectionPath().getLastPathComponent();
-        return node.getUserObject();
-    }
-
-    @Override
-    public Component getTreeCellEditorComponent(JTree tree, Object value,
-                                                boolean isSelected, boolean 
expanded, boolean leaf, int row) {
-        if (value instanceof DbImportTreeNode) {
-            value = ((DbImportTreeNode) value).getSimpleNodeName();
-        }
-        return super.getTreeCellEditorComponent(tree, value, isSelected, 
expanded,
-                leaf, row);
-    }
-
-    @Override
-    public boolean isCellEditable(EventObject e) {
-        if (tree.getSelectionPath() != null) {
-            // Disable label nodes editing
-            if (((DbImportTreeNode) 
tree.getSelectionPath().getLastPathComponent()).getUserObject().getClass() == 
String.class) {
-                return false;
-            }
-            if (tree.getSelectionPath().getLastPathComponent() == 
tree.getModel().getRoot()) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    private boolean isValidReverseEngineering() {
-        try {
-            Pattern.compile(super.getCellEditorValue().toString());
-        } catch (Exception exception) {
-            return false;
-        }
-        return true;
-    }
-
-    @Override
-    public void cancelCellEditing() {
-        if (tree.getSelectionPath() == null) {
-            return;
-        }
-        if (!Util.isEmptyString(super.getCellEditorValue().toString()) && 
!insertableNodeExist() && (isValidReverseEngineering())) {
-            EditNodeAction action = 
projectController.getApplication().getActionManager().getAction(EditNodeAction.class);
-            action.setActionName(super.getCellEditorValue().toString());
-            action.actionPerformed(null);
-        } else {
-            DbImportTreeNode selectedNode = (DbImportTreeNode) 
tree.getSelectionPath().getLastPathComponent();
-            if (Util.isEmptyString(selectedNode.getSimpleNodeName()) || 
(insertableNodeExist())) {
-                DeleteNodeAction action = 
projectController.getApplication().getActionManager().getAction(DeleteNodeAction.class);
-                TreePath parentPath = tree.getSelectionPath().getParentPath();
-                action.actionPerformed(null);
-                tree.setSelectionPath(parentPath);
-            } else {
-                tree.startEditingAtPath(tree.getSelectionPath());
-            }
-        }
-        DbImportTreeNode selectedNode = (DbImportTreeNode) 
tree.getSelectionPath().getLastPathComponent();
-        ((DbImportModel) tree.getModel()).reload(selectedNode);
-    }
-
-    private boolean equalNodes(int i, DbImportTreeNode parent, 
DbImportTreeNode selectedElement) {
-        return 
super.getCellEditorValue().toString().equals(((DbImportTreeNode) 
parent.getChildAt(i)).getSimpleNodeName()) &&
-                
selectedElement.getUserObject().getClass().equals(((DbImportTreeNode) 
parent.getChildAt(i)).getUserObject().getClass());
-    }
-
-    private boolean insertableNodeExist() {
-        DbImportTreeNode selectedElement;
-        if (tree.getSelectionPath() == null) {
-            selectedElement = (DbImportTreeNode) tree.getModel().getRoot();
-        } else {
-            selectedElement = (DbImportTreeNode) 
tree.getSelectionPath().getLastPathComponent();
-        }
-        int childCount = selectedElement.getParent().getChildCount();
-        for (int i = 0; i < childCount; i++) {
-            if (equalNodes(i, (DbImportTreeNode) selectedElement.getParent(), 
selectedElement)) {
-                if (selectedElement.getParent().getChildAt(i) != 
selectedElement) {
-                    return true;
-                }
-            }
-
-        }
-        return false;
-    }
-
-    public void setProjectController(ProjectController projectController) {
-        this.projectController = projectController;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/51289d1c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTreeCellRenderer.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTreeCellRenderer.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTreeCellRenderer.java
deleted file mode 100644
index 82a1cd5..0000000
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportTreeCellRenderer.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*****************************************************************
- *   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.editor;
-
-import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeColumn;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeProcedure;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeColumn;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
-import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
-import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
-import org.apache.cayenne.modeler.util.ModelerUtil;
-
-import javax.swing.ImageIcon;
-import javax.swing.JTree;
-import javax.swing.tree.DefaultTreeCellRenderer;
-import java.awt.Component;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @since 4.1
- */
-public class DbImportTreeCellRenderer extends DefaultTreeCellRenderer {
-
-    protected DbImportTreeNode node;
-    private Map<Class, String> icons;
-    private Map<Class, String> transferableTreeIcons;
-
-    public DbImportTreeCellRenderer() {
-        super();
-        initIcons();
-        initTrasferableTreeIcons();
-    }
-
-    private void initTrasferableTreeIcons() {
-        transferableTreeIcons = new HashMap<>();
-        transferableTreeIcons.put(Catalog.class, "icon-dbi-catalog.png");
-        transferableTreeIcons.put(Schema.class, "icon-dbi-schema.png");
-        transferableTreeIcons.put(IncludeTable.class, "icon-dbentity.png");
-        transferableTreeIcons.put(IncludeProcedure.class, 
"icon-stored-procedure.png");
-    }
-
-    private void initIcons() {
-        icons = new HashMap<>();
-        icons.put(Catalog.class, "icon-dbi-catalog.png");
-        icons.put(Schema.class, "icon-dbi-schema.png");
-        icons.put(IncludeTable.class, "icon-dbi-includeTable.png");
-        icons.put(ExcludeTable.class, "icon-dbi-excludeTable.png");
-        icons.put(IncludeColumn.class, "icon-dbi-includeColumn.png");
-        icons.put(ExcludeColumn.class, "icon-dbi-excludeColumn.png");
-        icons.put(IncludeProcedure.class, "icon-dbi-includeProcedure.png");
-        icons.put(ExcludeProcedure.class, "icon-dbi-excludeProcedure.png");
-    }
-
-    private ImageIcon getIconByNodeType(Class nodeClass, boolean 
isTransferable) {
-        String iconName = !isTransferable ? icons.get(nodeClass) : 
transferableTreeIcons.get(nodeClass);
-        if (iconName == null) {
-            return null;
-        }
-        return ModelerUtil.buildIcon(iconName);
-    }
-
-    @Override
-    public Component getTreeCellRendererComponent(JTree tree, Object value,
-                                                  boolean sel,
-                                                  boolean expanded,
-                                                  boolean leaf, int row,
-                                                  boolean hasFocus) {
-
-        super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, 
row, hasFocus);
-        node = (DbImportTreeNode) value;
-        setIcon(getIconByNodeType(node.getUserObject().getClass(), 
((DbImportTree) tree).isTransferable()));
-        return this;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/51289d1c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportView.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportView.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportView.java
deleted file mode 100644
index 453ce00..0000000
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DbImportView.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*****************************************************************
- *   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.editor;
-
-import com.jgoodies.forms.builder.DefaultFormBuilder;
-import com.jgoodies.forms.layout.FormLayout;
-import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.action.LoadDbSchemaAction;
-import org.apache.cayenne.modeler.action.ReverseEngineeringAction;
-import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
-import org.apache.cayenne.modeler.dialog.db.load.TransferableNode;
-import org.apache.cayenne.modeler.util.CayenneAction;
-
-import javax.swing.JButton;
-import javax.swing.JPanel;
-import javax.swing.JProgressBar;
-import java.awt.BorderLayout;
-
-/**
- * @since 4.1
- */
-public class DbImportView extends JPanel {
-
-    private static final String MAIN_LAYOUT = "fill:160dlu, 5dlu, fill:50dlu, 
5dlu, fill:160dlu";
-    private static final String HEADER_LAYOUT = "fill:70dlu, 15dlu, 
fill:75dlu";
-    private static final String BUTTON_PANEL_LAYOUT = "fill:50dlu";
-    private static final String PROGRESS_PANEL_LAYOUT = "fill:160dlu, 60dlu, 
fill:160dlu";
-    private static final int ALL_LINE_SPAN = 5;
-
-    private TreeToolbarPanel treeToolbar;
-    private ReverseEngineeringTreePanel treePanel;
-    private ReverseEngineeringConfigPanel configPanel;
-    private DraggableTreePanel draggableTreePanel;
-    private JProgressBar loadDbSchemaProgress;
-    private JProgressBar reverseEngineeringProgress;
-    private CayenneAction.CayenneToolbarButton loadDbSchemaButton;
-
-    private ProjectController projectController;
-
-    DbImportView(ProjectController projectController) {
-        this.projectController = projectController;
-        initFormElements();
-        initListeners();
-        buildForm();
-        draggableTreePanel.getSourceTree().repaint();
-    }
-
-    private void initListeners() {
-        projectController.addDataMapDisplayListener(e -> {
-            DataMap map = e.getDataMap();
-            treePanel.getReverseEngineeringTree().stopEditing();
-            if (map != null) {
-                treeToolbar.unlockButtons();
-                ReverseEngineering reverseEngineering = 
DbImportView.this.projectController.getApplication().
-                        getMetaData().get(map, ReverseEngineering.class);
-                if (reverseEngineering == null) {
-                    reverseEngineering = new ReverseEngineering();
-                    
DbImportView.this.projectController.getApplication().getMetaData().add(map, 
reverseEngineering);
-                }
-                configPanel.fillCheckboxes(reverseEngineering);
-                configPanel.initializeTextFields(reverseEngineering);
-                treePanel.updateTree();
-                DbImportTreeNode root = 
draggableTreePanel.getSourceTree().getRootNode();
-                root.removeAllChildren();
-                
draggableTreePanel.updateTree(projectController.getCurrentDataMap());
-                draggableTreePanel.getMoveButton().setEnabled(false);
-                draggableTreePanel.getMoveInvertButton().setEnabled(false);
-            }
-        });
-    }
-
-    private void buildForm() {
-        FormLayout buttonPanelLayout = new FormLayout(BUTTON_PANEL_LAYOUT);
-        DefaultFormBuilder buttonBuilder = new 
DefaultFormBuilder(buttonPanelLayout);
-        buttonBuilder.append(draggableTreePanel.getMoveButton());
-        buttonBuilder.append(draggableTreePanel.getMoveInvertButton());
-
-        FormLayout layout = new FormLayout(MAIN_LAYOUT);
-        DefaultFormBuilder builder = new DefaultFormBuilder(layout);
-        builder.setDefaultDialogBorder();
-        builder.appendSeparator("Database Import Configuration");
-        builder.append(treeToolbar, ALL_LINE_SPAN);
-
-        FormLayout headerLayout = new FormLayout(HEADER_LAYOUT);
-
-        DefaultFormBuilder reverseEngineeringHeaderBuilder = new 
DefaultFormBuilder(headerLayout);
-        reverseEngineeringHeaderBuilder.append("Import Configuration");
-        ReverseEngineeringAction reverseEngineeringAction = 
projectController.getApplication().getActionManager().
-                getAction(ReverseEngineeringAction.class);
-        reverseEngineeringAction.setView(this);
-        CayenneAction.CayenneToolbarButton reverseEngineeringButton = 
(CayenneAction.CayenneToolbarButton)
-                reverseEngineeringAction.buildButton(0);
-        reverseEngineeringButton.setShowingText(true);
-        reverseEngineeringButton.setText("Run Import");
-        reverseEngineeringHeaderBuilder.append(reverseEngineeringButton);
-        builder.append(reverseEngineeringHeaderBuilder.getPanel());
-
-        DefaultFormBuilder databaseHeaderBuilder = new 
DefaultFormBuilder(headerLayout);
-        databaseHeaderBuilder.append("Database Schema");
-        LoadDbSchemaAction loadDbSchemaAction = 
projectController.getApplication().getActionManager().
-                getAction(LoadDbSchemaAction.class);
-        loadDbSchemaAction.setDraggableTreePanel(draggableTreePanel);
-        loadDbSchemaButton = (CayenneAction.CayenneToolbarButton) 
loadDbSchemaAction.buildButton(0);
-        loadDbSchemaButton.setShowingText(true);
-        loadDbSchemaButton.setText("Refresh DB Schema");
-        databaseHeaderBuilder.append(loadDbSchemaButton);
-
-        builder.append("");
-        builder.append(databaseHeaderBuilder.getPanel());
-        builder.append(treePanel);
-        builder.append(buttonBuilder.getPanel());
-        builder.append(draggableTreePanel);
-
-        loadDbSchemaProgress = new JProgressBar();
-        reverseEngineeringProgress = new JProgressBar();
-        loadDbSchemaProgress.setIndeterminate(true);
-        loadDbSchemaProgress.setVisible(false);
-        reverseEngineeringProgress.setIndeterminate(true);
-        reverseEngineeringProgress.setVisible(false);
-        FormLayout progressLayout = new FormLayout(PROGRESS_PANEL_LAYOUT, 
"fill:10dlu");
-        DefaultFormBuilder progressBarBuilder = new 
DefaultFormBuilder(progressLayout);
-        progressBarBuilder.append(reverseEngineeringProgress);
-        progressBarBuilder.append(loadDbSchemaProgress);
-        builder.append(progressBarBuilder.getPanel(), ALL_LINE_SPAN);
-
-        builder.append(configPanel, ALL_LINE_SPAN);
-        this.setLayout(new BorderLayout());
-        add(builder.getPanel(), BorderLayout.CENTER);
-    }
-
-    private void initFormElements() {
-        DbImportTreeNode root = new DbImportTreeNode(new ReverseEngineering());
-        DbImportTreeNode draggableTreeRoot = new DbImportTreeNode(new 
ReverseEngineering());
-        DbImportTree reverseEngineeringTree = new DbImportTree(root);
-        DbImportTree draggableTree = new DbImportTree(new 
TransferableNode(draggableTreeRoot));
-        DbImportModel model = new DbImportModel(root);
-        model.setCanBeCleaned(true);
-        DbImportModel draggableTreeModel = new 
DbImportModel(draggableTreeRoot);
-        draggableTreeModel.setCanBeCleaned(false);
-
-        draggableTree.setRootVisible(false);
-        draggableTree.setShowsRootHandles(true);
-        draggableTree.setModel(draggableTreeModel);
-        reverseEngineeringTree.setRootVisible(false);
-        reverseEngineeringTree.setModel(model);
-        reverseEngineeringTree.setShowsRootHandles(true);
-
-        draggableTreePanel = new DraggableTreePanel(projectController, 
draggableTree, reverseEngineeringTree);
-        treeToolbar = new TreeToolbarPanel(projectController, 
reverseEngineeringTree, draggableTreePanel);
-        treePanel = new ReverseEngineeringTreePanel(projectController, 
reverseEngineeringTree, draggableTree);
-        treePanel.setTreeToolbar(treeToolbar);
-
-        model.setDbSchemaTree(draggableTree);
-        draggableTreeModel.setDbSchemaTree(draggableTree);
-        ((ColorTreeRenderer) 
draggableTreePanel.getSourceTree().getCellRenderer()).
-                setReverseEngineeringTree(reverseEngineeringTree);
-
-        configPanel = new ReverseEngineeringConfigPanel(projectController);
-    }
-
-    public boolean isSkipRelationshipsLoading() {
-        return configPanel.getSkipRelationshipsLoading().isSelected();
-    }
-
-    public boolean isSkipPrimaryKeyLoading() {
-        return configPanel.getSkipPrimaryKeyLoading().isSelected();
-    }
-
-    public boolean isForceDataMapCatalog() {
-        return configPanel.getForceDataMapCatalog().isSelected();
-    }
-
-    public boolean isForceDataMapSchema() {
-        return configPanel.getForceDataMapSchema().isSelected();
-    }
-
-    public boolean isUsePrimitives() {
-        return configPanel.getUsePrimitives().isSelected();
-    }
-
-    public boolean isUseJava7Typed() {
-        return configPanel.getUseJava7Types().isSelected();
-    }
-
-    public String getMeaningfulPk() {
-        return 
"".equals(configPanel.getMeaningfulPk().getComponent().getText())
-                ? null : 
configPanel.getMeaningfulPk().getComponent().getText();
-    }
-
-    public String getNamingStrategy() {
-        return (String) configPanel.getStrategyCombo().getSelectedItem();
-    }
-
-    public String getStripFromTableNames() {
-        return configPanel.getStripFromTableNames().getComponent().getText();
-    }
-
-    public JProgressBar getLoadDbSchemaProgress() {
-        return loadDbSchemaProgress;
-    }
-
-    public void lockToolbarButtons() {
-        treeToolbar.changeToolbarButtonsState(false);
-    }
-
-    public void unlockToolbarButtons() {
-        treeToolbar.unlockButtons();
-    }
-
-    public JProgressBar getReverseEngineeringProgress() {
-        return reverseEngineeringProgress;
-    }
-
-    public JButton getLoadDbSchemaButton() {
-        return loadDbSchemaButton;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/51289d1c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DraggableTreePanel.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DraggableTreePanel.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DraggableTreePanel.java
deleted file mode 100644
index 5418f0f..0000000
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DraggableTreePanel.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/*****************************************************************
- *   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.editor;
-
-import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeColumn;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeProcedure;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeColumn;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
-import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.action.AddCatalogAction;
-import org.apache.cayenne.modeler.action.AddExcludeColumnAction;
-import org.apache.cayenne.modeler.action.AddExcludeProcedureAction;
-import org.apache.cayenne.modeler.action.AddExcludeTableAction;
-import org.apache.cayenne.modeler.action.AddIncludeColumnAction;
-import org.apache.cayenne.modeler.action.AddIncludeProcedureAction;
-import org.apache.cayenne.modeler.action.AddIncludeTableAction;
-import org.apache.cayenne.modeler.action.AddSchemaAction;
-import org.apache.cayenne.modeler.action.MoveImportNodeAction;
-import org.apache.cayenne.modeler.action.MoveInvertNodeAction;
-import org.apache.cayenne.modeler.action.TreeManipulationAction;
-import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
-import org.apache.cayenne.modeler.dialog.db.load.TransferableNode;
-import org.apache.cayenne.modeler.util.CayenneAction;
-
-import javax.swing.DropMode;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JScrollPane;
-import javax.swing.JTree;
-import javax.swing.TransferHandler;
-import javax.swing.tree.DefaultTreeCellRenderer;
-import javax.swing.tree.TreePath;
-import java.awt.datatransfer.DataFlavor;
-import java.awt.datatransfer.Transferable;
-import java.awt.datatransfer.UnsupportedFlavorException;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @since 4.1
- */
-public class DraggableTreePanel extends JScrollPane {
-
-    private static final int ROOT_LEVEL = 14;
-    private static final int FIRST_LEVEL = 11;
-    private static final int SECOND_LEVEL = 8;
-    private static final int THIRD_LEVEL = 5;
-    private static final int FOURTH_LEVEL = 2;
-    private static final int FIFTH_LEVEL = 3;
-    private static final String MOVE_BUTTON_LABEL = "Include";
-    private static final String MOVE_INV_BUTTON_LABEL = "Exclude";
-
-    private DbImportTree sourceTree;
-    private DbImportTree targetTree;
-    private CayenneAction.CayenneToolbarButton moveButton;
-    private CayenneAction.CayenneToolbarButton moveInvertButton;
-    private Map<DataMap, ReverseEngineering> databaseStructures;
-
-    private ProjectController projectController;
-    private Map<Class, Integer> levels;
-    private Map<Class, List<Class>> insertableLevels;
-    private Map<Class, Class> actions;
-
-    public DraggableTreePanel(ProjectController projectController, 
DbImportTree sourceTree, DbImportTree targetTree) {
-        super(sourceTree);
-        this.targetTree = targetTree;
-        this.sourceTree = sourceTree;
-        this.projectController = projectController;
-        this.databaseStructures = new HashMap<>();
-        initLevels();
-        initElement();
-        initActions();
-        initListeners();
-    }
-
-    private void initActions() {
-        actions = new HashMap<>();
-        actions.put(Catalog.class, AddCatalogAction.class);
-        actions.put(Schema.class, AddSchemaAction.class);
-        actions.put(IncludeTable.class, AddIncludeTableAction.class);
-        actions.put(ExcludeTable.class, AddExcludeTableAction.class);
-        actions.put(IncludeColumn.class, AddIncludeColumnAction.class);
-        actions.put(ExcludeColumn.class, AddExcludeColumnAction.class);
-        actions.put(IncludeProcedure.class, AddIncludeProcedureAction.class);
-        actions.put(ExcludeProcedure.class, AddExcludeProcedureAction.class);
-    }
-
-    public void updateTree(DataMap dataMap) {
-        DbImportModel model = (DbImportModel) sourceTree.getModel();
-        model.reload();
-        if (databaseStructures.get(dataMap) != null) {
-            sourceTree.setReverseEngineering(databaseStructures.get(dataMap));
-            
sourceTree.translateReverseEngineeringToTree(databaseStructures.get(dataMap), 
true);
-            sourceTree.setEnabled(true);
-        } else {
-            sourceTree.setEnabled(false);
-        }
-    }
-
-    private void initListeners() {
-        sourceTree.addKeyListener(new KeyListener() {
-            @Override
-            public void keyTyped(KeyEvent e) {}
-
-            @Override
-            public void keyPressed(KeyEvent e) {
-                if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
-                    sourceTree.setSelectionRow(-1);
-                    moveButton.setEnabled(false);
-                    moveInvertButton.setEnabled(false);
-                }
-            }
-
-            @Override
-            public void keyReleased(KeyEvent e) {}
-        });
-        targetTree.addKeyListener(new KeyListener() {
-            @Override
-            public void keyTyped(KeyEvent e) {}
-
-            @Override
-            public void keyPressed(KeyEvent e) {
-                if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
-                    targetTree.setSelectionRow(-1);
-                }
-            }
-
-            @Override
-            public void keyReleased(KeyEvent e) {}
-        });
-        targetTree.addTreeSelectionListener(e -> {
-            DbImportModel model = (DbImportModel) sourceTree.getModel();
-            DbImportTreeNode root = (DbImportTreeNode) model.getRoot();
-            sourceTree.repaint();
-            if (root.getChildCount() > 0) {
-                model.nodesChanged(root, new int[]{root.getChildCount() - 1});
-            }
-            if (canBeMoved()) {
-                moveButton.setEnabled(true);
-                if (canBeInverted()) {
-                    moveInvertButton.setEnabled(true);
-                } else {
-                    moveInvertButton.setEnabled(false);
-                }
-            } else {
-                moveButton.setEnabled(false);
-                moveInvertButton.setEnabled(false);
-            }
-        });
-        targetTree.setDragEnabled(true);
-        targetTree.setTransferHandler(new TransferHandler() {
-
-            @Override
-            public int getSourceActions(JComponent c) {
-                return COPY_OR_MOVE;
-            }
-
-            @Override
-            public boolean canImport(TransferSupport support) {
-                if (!support.isDrop()) {
-                    return false;
-                }
-                return true;
-            }
-
-            @Override
-            public boolean importData(TransferSupport support) {
-                if (!canImport(support)) {
-                    return false;
-                }
-                if (!canBeMoved()) {
-                    return false;
-                }
-                Transferable transferable = support.getTransferable();
-                DbImportTreeNode[] transferData = null;
-                try {
-                    for (DataFlavor dataFlavor : 
transferable.getTransferDataFlavors()) {
-                        transferData = (DbImportTreeNode[]) 
transferable.getTransferData(dataFlavor);
-                    }
-                } catch (IOException | UnsupportedFlavorException e) {
-                    return false;
-                }
-                if (transferData != null) {
-                    MoveImportNodeAction action = 
projectController.getApplication().
-                            
getActionManager().getAction(MoveImportNodeAction.class);
-                    action.setSourceTree(sourceTree);
-                    action.setTargetTree(targetTree);
-                    action.setPanel(DraggableTreePanel.this);
-                    action.performAction(null);
-                    return true;
-                }
-                return false;
-            }
-        });
-    }
-
-    private boolean canBeInverted() {
-        if (sourceTree.getSelectionPath() != null) {
-            DbImportTreeNode selectedElement = sourceTree.getSelectedNode();
-            if (selectedElement == null) {
-                return false;
-            }
-            if (levels.get(selectedElement.getUserObject().getClass()) < 
SECOND_LEVEL) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private void initElement() {
-        sourceTree.setDragEnabled(true);
-        sourceTree.setCellRenderer(new ColorTreeRenderer());
-        sourceTree.setDropMode(DropMode.INSERT);
-        sourceTree.setTransferHandler(new TransferHandler() {
-
-            @Override
-            public int getSourceActions(JComponent c) {
-                return COPY;
-            }
-
-            @Override
-            public Transferable createTransferable(JComponent c) {
-                JTree tree = (JTree) c;
-                TreePath[] paths = tree.getSelectionPaths();
-                DbImportTreeNode[] nodes = new DbImportTreeNode[paths.length];
-                for (int i = 0; i < paths.length; i++) {
-                    nodes[i] = (DbImportTreeNode) 
paths[i].getLastPathComponent();
-                }
-                return new Transferable() {
-                    @Override
-                    public DataFlavor[] getTransferDataFlavors() {
-                        return TransferableNode.flavors;
-                    }
-
-                    @Override
-                    public boolean isDataFlavorSupported(DataFlavor flavor) {
-                        return true;
-                    }
-
-                    @Override
-                    public Object getTransferData(DataFlavor flavor) throws 
UnsupportedFlavorException, IOException {
-                        return nodes;
-                    }
-                };
-            }
-        });
-        sourceTree.addTreeSelectionListener(e -> {
-            if (sourceTree.getLastSelectedPathComponent() != null) {
-                if (canBeMoved()) {
-                    moveButton.setEnabled(true);
-                    if (canBeInverted()) {
-                        moveInvertButton.setEnabled(true);
-                    } else {
-                        moveInvertButton.setEnabled(false);
-                    }
-                } else {
-                    moveInvertButton.setEnabled(false);
-                    moveButton.setEnabled(false);
-                }
-            }
-        });
-
-        sourceTree.addMouseListener(new MouseAdapter() {
-            @Override
-            public void mouseClicked(MouseEvent e) {
-                if (sourceTree.getRowForLocation(e.getX(),e.getY()) == -1) {
-                    sourceTree.setSelectionRow(-1);
-                    moveInvertButton.setEnabled(false);
-                    moveButton.setEnabled(false);
-                }
-            }
-        });
-
-        MoveImportNodeAction action = projectController.getApplication().
-                getActionManager().getAction(MoveImportNodeAction.class);
-        action.setPanel(this);
-        action.setSourceTree(sourceTree);
-        action.setTargetTree(targetTree);
-        moveButton = (CayenneAction.CayenneToolbarButton) action.buildButton();
-        moveButton.setShowingText(true);
-        moveButton.setText(MOVE_BUTTON_LABEL);
-        MoveInvertNodeAction actionInv = projectController.getApplication().
-                getActionManager().getAction(MoveInvertNodeAction.class);
-        actionInv.setPanel(this);
-        actionInv.setSourceTree(sourceTree);
-        actionInv.setTargetTree(targetTree);
-        moveInvertButton = (CayenneAction.CayenneToolbarButton) 
actionInv.buildButton();
-        moveInvertButton.setShowingText(true);
-        moveInvertButton.setText(MOVE_INV_BUTTON_LABEL);
-
-
-        DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) 
sourceTree.getCellRenderer();
-        renderer.setLeafIcon(null);
-        renderer.setClosedIcon(null);
-        renderer.setOpenIcon(null);
-    }
-
-    private void initLevels() {
-        levels = new HashMap<>();
-        levels.put(ReverseEngineering.class, ROOT_LEVEL);
-        levels.put(Catalog.class, FIRST_LEVEL);
-        levels.put(Schema.class, SECOND_LEVEL);
-        levels.put(IncludeTable.class, THIRD_LEVEL);
-        levels.put(IncludeColumn.class, FOURTH_LEVEL);
-        levels.put(ExcludeColumn.class, FOURTH_LEVEL);
-        levels.put(ExcludeTable.class, FIFTH_LEVEL);
-        levels.put(IncludeProcedure.class, FIFTH_LEVEL);
-        levels.put(ExcludeProcedure.class, FIFTH_LEVEL);
-
-        insertableLevels = new HashMap<>();
-        List<Class> rootLevelClasses = new ArrayList<>();
-        rootLevelClasses.add(Catalog.class);
-        rootLevelClasses.add(Schema.class);
-        rootLevelClasses.add(IncludeTable.class);
-        rootLevelClasses.add(ExcludeTable.class);
-        rootLevelClasses.add(IncludeColumn.class);
-        rootLevelClasses.add(ExcludeColumn.class);
-        rootLevelClasses.add(IncludeProcedure.class);
-        rootLevelClasses.add(ExcludeProcedure.class);
-
-        List<Class> catalogLevelClasses = new ArrayList<>();
-        catalogLevelClasses.add(Schema.class);
-        catalogLevelClasses.add(IncludeTable.class);
-        catalogLevelClasses.add(ExcludeTable.class);
-        catalogLevelClasses.add(IncludeColumn.class);
-        catalogLevelClasses.add(ExcludeColumn.class);
-        catalogLevelClasses.add(IncludeProcedure.class);
-        catalogLevelClasses.add(ExcludeProcedure.class);
-
-        List<Class> schemaLevelClasses = new ArrayList<>();
-        schemaLevelClasses.add(IncludeTable.class);
-        schemaLevelClasses.add(ExcludeTable.class);
-        schemaLevelClasses.add(IncludeColumn.class);
-        schemaLevelClasses.add(ExcludeColumn.class);
-        schemaLevelClasses.add(IncludeProcedure.class);
-        schemaLevelClasses.add(ExcludeProcedure.class);
-
-        List<Class> includeTableLevelClasses = new ArrayList<>();
-        includeTableLevelClasses.add(IncludeColumn.class);
-        includeTableLevelClasses.add(ExcludeColumn.class);
-
-        insertableLevels.put(ReverseEngineering.class, rootLevelClasses);
-        insertableLevels.put(Catalog.class, catalogLevelClasses);
-        insertableLevels.put(Schema.class, schemaLevelClasses);
-        insertableLevels.put(IncludeTable.class, includeTableLevelClasses);
-    }
-
-    private boolean canBeMoved() {
-        if (sourceTree.getSelectionPath() != null) {
-            DbImportTreeNode selectedElement = sourceTree.getSelectedNode();
-            if (selectedElement == null) {
-                return false;
-            }
-            Class draggableElementClass = 
selectedElement.getUserObject().getClass();
-            Class reverseEngineeringElementClass;
-            if (targetTree.getSelectionPath() != null) {
-                selectedElement = targetTree.getSelectedNode();
-                DbImportTreeNode parent = (DbImportTreeNode) 
selectedElement.getParent();
-                if (parent != null) {
-                    reverseEngineeringElementClass = 
parent.getUserObject().getClass();
-                } else {
-                    reverseEngineeringElementClass = 
selectedElement.getUserObject().getClass();
-                }
-            } else {
-                reverseEngineeringElementClass = ReverseEngineering.class;
-            }
-            List<Class> containsList = 
insertableLevels.get(reverseEngineeringElementClass);
-            return containsList.contains(draggableElementClass);
-        }
-        return false;
-    }
-
-    public JButton getMoveButton() {
-        return moveButton;
-    }
-
-    public JButton getMoveInvertButton() {
-        return moveInvertButton;
-    }
-
-    public TreeManipulationAction getActionByNodeType(Class nodeType) {
-        Class actionClass = actions.get(nodeType);
-        if (actionClass != null) {
-            TreeManipulationAction action = (TreeManipulationAction) 
projectController.getApplication().
-                    getActionManager().getAction(actionClass);
-            return action;
-        }
-        return null;
-    }
-
-    public void bindReverseEngineeringToDatamap(DataMap dataMap, 
ReverseEngineering reverseEngineering) {
-        databaseStructures.put(dataMap, reverseEngineering);
-    }
-
-    public DbImportTree getSourceTree() {
-        return sourceTree;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/51289d1c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ReverseEngineeringConfigPanel.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ReverseEngineeringConfigPanel.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ReverseEngineeringConfigPanel.java
deleted file mode 100644
index 65c9282..0000000
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ReverseEngineeringConfigPanel.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*****************************************************************
- *   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.editor;
-
-import com.jgoodies.forms.builder.DefaultFormBuilder;
-import com.jgoodies.forms.layout.FormLayout;
-import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.util.NameGeneratorPreferences;
-import org.apache.cayenne.modeler.util.TextAdapter;
-
-import javax.swing.DefaultComboBoxModel;
-import javax.swing.JCheckBox;
-import javax.swing.JComboBox;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.Vector;
-
-/**
- * @since 4.1
- */
-public class ReverseEngineeringConfigPanel extends JPanel {
-
-    private static final String DATA_FIELDS_LAYOUT = "right:pref, 3dlu, 
fill:235dlu";
-
-    private JComboBox<String> strategyCombo;
-    private TextAdapter meaningfulPk;
-    private TextAdapter stripFromTableNames;
-    private JCheckBox skipRelationshipsLoading;
-    private JCheckBox skipPrimaryKeyLoading;
-    private JCheckBox forceDataMapCatalog;
-    private JCheckBox forceDataMapSchema;
-    private JCheckBox usePrimitives;
-    private JCheckBox useJava7Types;
-
-    private ProjectController projectController;
-
-    ReverseEngineeringConfigPanel(ProjectController projectController) {
-        this.projectController = projectController;
-        initFormElements();
-        initListeners();
-        buildView();
-    }
-
-    private void buildView() {
-        FormLayout panelLayout = new FormLayout(DATA_FIELDS_LAYOUT);
-        DefaultFormBuilder panelBuilder = new DefaultFormBuilder(panelLayout);
-        panelBuilder.setDefaultDialogBorder();
-
-        panelBuilder.append("Tables with Meaningful PK Pattern:", 
meaningfulPk.getComponent());
-        panelBuilder.append("Strip from table names:", 
stripFromTableNames.getComponent());
-        panelBuilder.append("Skip relationships loading:", 
skipRelationshipsLoading);
-        panelBuilder.append("Skip primary key loading:", 
skipPrimaryKeyLoading);
-        panelBuilder.append("Force datamap catalog:", forceDataMapCatalog);
-        panelBuilder.append("Force datamap schema:", forceDataMapSchema);
-        panelBuilder.append("Use Java primitive types:", usePrimitives);
-        panelBuilder.append("Use java.util.Date type:", useJava7Types);
-        panelBuilder.append(strategyCombo);
-
-        add(panelBuilder.getPanel());
-    }
-
-    void fillCheckboxes(ReverseEngineering reverseEngineering) {
-        
skipRelationshipsLoading.setSelected(reverseEngineering.getSkipRelationshipsLoading());
-        
skipPrimaryKeyLoading.setSelected(reverseEngineering.getSkipPrimaryKeyLoading());
-        
forceDataMapCatalog.setSelected(reverseEngineering.isForceDataMapCatalog());
-        
forceDataMapSchema.setSelected(reverseEngineering.isForceDataMapSchema());
-        usePrimitives.setSelected(reverseEngineering.isUsePrimitives());
-        useJava7Types.setSelected(reverseEngineering.isUseJava7Types());
-    }
-
-    void initializeTextFields(ReverseEngineering reverseEngineering) {
-        meaningfulPk.setText(reverseEngineering.getMeaningfulPkTables());
-        
stripFromTableNames.setText(reverseEngineering.getStripFromTableNames());
-    }
-
-    private ReverseEngineering getReverseEngineeringBySelectedMap() {
-        DataMap dataMap = projectController.getCurrentDataMap();
-        return projectController.getApplication().getMetaData().get(dataMap, 
ReverseEngineering.class);
-    }
-
-    private void initStrategy() {
-        Vector<String> arr = NameGeneratorPreferences
-                .getInstance()
-                .getLastUsedStrategies();
-        strategyCombo.setModel(new DefaultComboBoxModel<>(arr));
-    }
-
-    private void initFormElements() {
-        strategyCombo = new JComboBox<>();
-        strategyCombo.addActionListener(e -> {
-            getReverseEngineeringBySelectedMap().setNamingStrategy(
-                    (String) 
ReverseEngineeringConfigPanel.this.getStrategyCombo().getSelectedItem()
-            );
-            projectController.setDirty(true);
-        });
-        strategyCombo.setVisible(false);
-
-        JTextField meaningfulPkField = new JTextField();
-        meaningfulPkField.setToolTipText("<html>Regular expression to filter 
tables with meaningful primary keys.<br>" +
-                "Multiple expressions divided by comma can be used.<br>" +
-                "Example: <b>^table1|^table2|^prefix.*|table_name</b></html>");
-        meaningfulPk = new TextAdapter(meaningfulPkField) {
-            protected void updateModel(String text) {
-                
getReverseEngineeringBySelectedMap().setMeaningfulPkTables(text);
-                projectController.setDirty(true);
-            }
-        };
-
-        JTextField stripFromTableNamesField = new JTextField();
-        stripFromTableNamesField.setToolTipText("<html>Regex that matches the 
part of the table name that needs to be stripped off " +
-                "when generating ObjEntity name</html>");
-        stripFromTableNames = new TextAdapter(stripFromTableNamesField) {
-            protected void updateModel(String text) {
-                
getReverseEngineeringBySelectedMap().setStripFromTableNames(text);
-                projectController.setDirty(true);
-            }
-        };
-
-        skipRelationshipsLoading = new JCheckBox();
-        skipRelationshipsLoading.setToolTipText("<html>Whether to load 
relationships.</html>");
-        skipPrimaryKeyLoading = new JCheckBox();
-        skipPrimaryKeyLoading.setToolTipText("<html>Whether to load primary 
keys.</html>");
-        forceDataMapCatalog = new JCheckBox();
-        forceDataMapCatalog.setToolTipText("<html>Automatically tagging each 
DbEntity with the actual DB catalog/schema" +
-                "(default behavior) may sometimes be undesirable.<br>  If this 
is the case then setting <b>forceDataMapCatalog</b> " +
-                "to <b>true</b> will set DbEntity catalog to one in the 
DataMap.</html>");
-        forceDataMapSchema = new JCheckBox();
-        forceDataMapSchema.setToolTipText("<html>Automatically tagging each 
DbEntity with the actual DB catalog/schema " +
-                "(default behavior) may sometimes be undesirable.<br> If this 
is the case then setting <b>forceDataMapSchema</b> " +
-                "to <b>true</b> will set DbEntity schema to one in the 
DataMap.</html>");
-        useJava7Types = new JCheckBox();
-        useJava7Types.setToolTipText("<html>Use <b>java.util.Date</b> for all 
columns with <i>DATE/TIME/TIMESTAMP</i> types.<br>" +
-                "By default <b>java.time.*</b> types will be used.</html>");
-        usePrimitives = new JCheckBox();
-        usePrimitives.setToolTipText("<html>Use primitive types (e.g. int) or 
Object types (e.g. java.lang.Integer)</html>");
-        initStrategy();
-    }
-
-    private void initListeners() {
-        skipRelationshipsLoading.addActionListener(e -> {
-            
getReverseEngineeringBySelectedMap().setSkipRelationshipsLoading(skipRelationshipsLoading.isSelected());
-            projectController.setDirty(true);
-        });
-        skipPrimaryKeyLoading.addActionListener(e -> {
-            
getReverseEngineeringBySelectedMap().setSkipPrimaryKeyLoading(skipPrimaryKeyLoading.isSelected());
-            projectController.setDirty(true);
-        });
-        forceDataMapCatalog.addActionListener(e -> {
-            
getReverseEngineeringBySelectedMap().setForceDataMapCatalog(forceDataMapCatalog.isSelected());
-            projectController.setDirty(true);
-        });
-        forceDataMapSchema.addActionListener(e -> {
-            
getReverseEngineeringBySelectedMap().setForceDataMapSchema(forceDataMapSchema.isSelected());
-            projectController.setDirty(true);
-        });
-        usePrimitives.addActionListener(e -> {
-            
getReverseEngineeringBySelectedMap().setUsePrimitives(usePrimitives.isSelected());
-            projectController.setDirty(true);
-        });
-        useJava7Types.addActionListener(e -> {
-            
getReverseEngineeringBySelectedMap().setUseJava7Types(useJava7Types.isSelected());
-            projectController.setDirty(true);
-        });
-    }
-
-    JComboBox<String> getStrategyCombo() {
-        return strategyCombo;
-    }
-
-    TextAdapter getMeaningfulPk() {
-        return meaningfulPk;
-    }
-
-    TextAdapter getStripFromTableNames() {
-        return stripFromTableNames;
-    }
-
-    JCheckBox getSkipRelationshipsLoading() {
-        return skipRelationshipsLoading;
-    }
-
-    JCheckBox getSkipPrimaryKeyLoading() {
-        return skipPrimaryKeyLoading;
-    }
-
-    JCheckBox getForceDataMapCatalog() {
-        return forceDataMapCatalog;
-    }
-
-    JCheckBox getForceDataMapSchema() {
-        return forceDataMapSchema;
-    }
-
-    JCheckBox getUsePrimitives() {
-        return usePrimitives;
-    }
-
-    JCheckBox getUseJava7Types() {
-        return useJava7Types;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/51289d1c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ReverseEngineeringTreePanel.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ReverseEngineeringTreePanel.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ReverseEngineeringTreePanel.java
deleted file mode 100644
index 8c50c1e..0000000
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ReverseEngineeringTreePanel.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*****************************************************************
- *   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.editor;
-
-import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeColumn;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeProcedure;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeColumn;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
-import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.dialog.db.load.CatalogPopUpMenu;
-import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
-import org.apache.cayenne.modeler.dialog.db.load.DefaultPopUpMenu;
-import org.apache.cayenne.modeler.dialog.db.load.IncludeTablePopUpMenu;
-import org.apache.cayenne.modeler.dialog.db.load.RootPopUpMenu;
-import org.apache.cayenne.modeler.dialog.db.load.SchemaPopUpMenu;
-
-import javax.swing.JScrollPane;
-import javax.swing.JTree;
-import javax.swing.SwingUtilities;
-import javax.swing.tree.DefaultTreeCellRenderer;
-import javax.swing.tree.TreePath;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @since 4.1
- */
-class ReverseEngineeringTreePanel extends JScrollPane {
-
-    private DbImportTree reverseEngineeringTree;
-    private DbImportTree dbSchemaTree;
-
-    private ProjectController projectController;
-    private TreeToolbarPanel treeToolbar;
-    private Map<Class, DefaultPopUpMenu> popups;
-
-    ReverseEngineeringTreePanel(ProjectController projectController, 
DbImportTree reverseEngineeringTree,
-                                DbImportTree dbSchemaTree) {
-        super(reverseEngineeringTree);
-        this.projectController = projectController;
-        this.reverseEngineeringTree = reverseEngineeringTree;
-        this.dbSchemaTree = dbSchemaTree;
-        reverseEngineeringTree.setEditable(true);
-        reverseEngineeringTree.setCellRenderer(new DbImportTreeCellRenderer());
-        DbImportTreeCellEditor editor = new 
DbImportTreeCellEditor(reverseEngineeringTree,
-                (DefaultTreeCellRenderer) 
reverseEngineeringTree.getCellRenderer());
-        editor.setProjectController(projectController);
-        reverseEngineeringTree.setCellEditor(editor);
-        initListeners();
-        initPopupMenus();
-        changeIcons();
-    }
-
-    void updateTree() {
-        
reverseEngineeringTree.translateReverseEngineeringToTree(getReverseEngineeringBySelectedMap(),
 false);
-    }
-
-    private void initPopupMenus() {
-        popups = new HashMap<>();
-        popups.put(Catalog.class, new CatalogPopUpMenu());
-        popups.put(Schema.class, new SchemaPopUpMenu());
-        popups.put(ReverseEngineering.class, new RootPopUpMenu());
-        popups.put(String.class, new RootPopUpMenu());
-        popups.put(IncludeTable.class, new IncludeTablePopUpMenu());
-        popups.put(ExcludeTable.class, new DefaultPopUpMenu());
-        popups.put(IncludeColumn.class, new DefaultPopUpMenu());
-        popups.put(ExcludeColumn.class, new DefaultPopUpMenu());
-        popups.put(IncludeProcedure.class, new DefaultPopUpMenu());
-        popups.put(ExcludeProcedure.class, new DefaultPopUpMenu());
-    }
-
-    private void initListeners() {
-        reverseEngineeringTree.addTreeSelectionListener(e -> 
treeToolbar.lockButtons());
-        reverseEngineeringTree.addMouseListener(new MouseAdapter() {
-            @Override
-            public void mouseClicked(MouseEvent e) {
-                if (reverseEngineeringTree.getRowForLocation(e.getX(), 
e.getY()) == -1) {
-                    reverseEngineeringTree.setSelectionRow(-1);
-                }
-
-                if (SwingUtilities.isRightMouseButton(e)) {
-                    if (reverseEngineeringTree.isEditing()) {
-                        return;
-                    }
-                    int row = 
reverseEngineeringTree.getClosestRowForLocation(e.getX(), e.getY());
-                    reverseEngineeringTree.setSelectionRow(row);
-                    DefaultPopUpMenu popupMenu;
-                    DbImportTreeNode selectedElement;
-                    if (reverseEngineeringTree.getSelectionPath() != null) {
-                        selectedElement = 
reverseEngineeringTree.getSelectedNode();
-                        popupMenu = 
popups.get(selectedElement.getUserObject().getClass());
-                    } else {
-                        selectedElement = reverseEngineeringTree.getRootNode();
-                        popupMenu = popups.get(ReverseEngineering.class);
-                    }
-                    if (popupMenu != null) {
-                        popupMenu.setProjectController(projectController);
-                        popupMenu.setSelectedElement(selectedElement);
-                        popupMenu.setParentElement((DbImportTreeNode) 
selectedElement.getParent());
-                        popupMenu.setTree(reverseEngineeringTree);
-                        popupMenu.show(e.getComponent(), e.getX(), e.getY());
-                    }
-                } else if (reverseEngineeringTree.getSelectionPath() != null) {
-                    DbImportTreeNode findedNode = dbSchemaTree.findNode(
-                            dbSchemaTree.getRootNode(), 
reverseEngineeringTree.getSelectedNode(), 0
-                    );
-                    if (findedNode != null) {
-                        dbSchemaTree.expandPath(new 
TreePath(((DbImportTreeNode) findedNode.getParent()).getPath()));
-                        scrollToNode(dbSchemaTree, findedNode);
-                    }
-                }
-            }
-        });
-    }
-
-    private void scrollToNode(JTree tree, DbImportTreeNode node) {
-        TreePath path = new TreePath(node.getPath());
-        tree.scrollPathToVisible(path);
-        DraggableTreePanel parentPanel = ((DraggableTreePanel) 
dbSchemaTree.getParent().getParent());
-        parentPanel.getHorizontalScrollBar().setValue(0);
-    }
-
-    private ReverseEngineering getReverseEngineeringBySelectedMap() {
-        DataMap dataMap = projectController.getCurrentDataMap();
-        return projectController.getApplication().getMetaData().get(dataMap, 
ReverseEngineering.class);
-    }
-
-    private void changeIcons() {
-        // Deleting standard tree icons
-        DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) 
reverseEngineeringTree.getCellRenderer();
-        renderer.setLeafIcon(null);
-        renderer.setClosedIcon(null);
-        renderer.setOpenIcon(null);
-    }
-
-    public DbImportTree getReverseEngineeringTree() {
-        return reverseEngineeringTree;
-    }
-
-    void setTreeToolbar(TreeToolbarPanel treeToolbar) {
-        this.treeToolbar = treeToolbar;
-    }
-}

Reply via email to