Merge PR #338
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/dd5c8fcc Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/dd5c8fcc Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/dd5c8fcc Branch: refs/heads/master Commit: dd5c8fcc37eb4ed25e2a143a37f09c6365686529 Parents: 50d04b3 ff95457 Author: Nikita Timofeev <stari...@gmail.com> Authored: Mon Nov 5 17:26:25 2018 +0300 Committer: Nikita Timofeev <stari...@gmail.com> Committed: Mon Nov 5 17:26:25 2018 +0300 ---------------------------------------------------------------------- .../reverse/dbimport/DefaultDbImportAction.java | 100 ++++++++++++++----- .../dialog/db/load/DbLoadResultDialog.java | 12 ++- .../dialog/db/load/ModelerDbImportAction.java | 29 +++++- .../modeler/editor/DataMapTabbedView.java | 23 ++++- .../modeler/editor/dbimport/DbImportView.java | 48 ++++----- 5 files changed, 155 insertions(+), 57 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/dd5c8fcc/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java ---------------------------------------------------------------------- diff --cc modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java index b89b1c2,2cf6931..e137df5 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java @@@ -52,10 -55,23 +54,23 @@@ public class DataMapTabbedView extends // add panels to tabs // note that those panels that have no internal scrollable tables // must be wrapped in a scroll pane - JScrollPane dataMapView = new JScrollPane(new DataMapView(mediator)); - JScrollPane dbImportView = new JScrollPane(new DbImportView(mediator)); - addTab("DataMap", dataMapView); - addTab("DB Import", dbImportView); + JScrollPane dataMapScrollPane = new JScrollPane(new DataMapView(mediator)); + dbImportView1 = new DbImportView(mediator); + JScrollPane dbImportScrollPane = new JScrollPane(dbImportView1); + addTab("DataMap", dataMapScrollPane); - addTab("DbImport", dbImportScrollPane); ++ addTab("DB Import", dbImportScrollPane); + addChangeListener(e -> { + lastSelectionIndex = getSelectedIndex(); + updateTabs(); + }); + } + + private void updateTabs() { + switch (lastSelectionIndex) { + case 1: + dbImportView1.initFromModel(); + break; + } } } http://git-wip-us.apache.org/repos/asf/cayenne/blob/dd5c8fcc/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java ---------------------------------------------------------------------- diff --cc modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java index aacb1a4,65641fc..d74cb34 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java @@@ -207,10 -149,30 +181,32 @@@ public class DbImportView extends JPane setReverseEngineeringTree(reverseEngineeringTree); configPanel = new ReverseEngineeringConfigPanel(projectController); + configPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); + configPanel.setVisible(false); } + public void initFromModel() { + DataMap map = projectController.getCurrentDataMap(); + 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); + } + } + public boolean isSkipRelationshipsLoading() { return configPanel.getSkipRelationshipsLoading().isSelected(); }