This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push:
new 6e0419060 Modeler cleanup
6e0419060 is described below
commit 6e04190608df2d1f6b1c0b503d901aaf9ac2ab63
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sat Apr 18 15:45:47 2026 -0400
Modeler cleanup
---
.../cayenne/modeler/ProjectFileChangeTracker.java | 38 ++--
.../apache/cayenne/modeler/ProjectTreeView.java | 138 ++++++------
.../apache/cayenne/modeler/action/CopyAction.java | 8 +-
.../modeler/action/CopyAttributeAction.java | 2 +-
.../action/CopyAttributeRelationshipAction.java | 6 +-
.../modeler/action/CopyCallbackMethodAction.java | 2 +-
.../action/CopyProcedureParameterAction.java | 2 +-
.../modeler/action/CopyRelationshipAction.java | 2 +-
.../modeler/action/CreateAttributeAction.java | 53 +++--
.../modeler/action/CreateDataMapAction.java | 4 +-
.../modeler/action/CreateDbEntityAction.java | 17 +-
.../modeler/action/CreateEmbeddableAction.java | 12 +-
.../cayenne/modeler/action/CreateNodeAction.java | 4 +-
.../modeler/action/CreateObjEntityAction.java | 21 +-
.../modeler/action/CreateProcedureAction.java | 14 +-
.../action/CreateProcedureParameterAction.java | 7 +-
.../cayenne/modeler/action/RemoveAction.java | 124 ++++++-----
.../modeler/editor/ObjEntityAttributePanel.java | 194 +++++++----------
.../editor/ObjEntityAttributeRelationshipTab.java | 68 +++---
.../modeler/editor/ObjEntityRelationshipPanel.java | 235 ++++++++-------------
.../modeler/event/ProjectOnSaveListener.java | 14 +-
.../cayenne/modeler/util/CayenneController.java | 1 -
22 files changed, 413 insertions(+), 553 deletions(-)
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectFileChangeTracker.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectFileChangeTracker.java
index 856f56109..6c0e9cfe8 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectFileChangeTracker.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectFileChangeTracker.java
@@ -18,16 +18,6 @@
****************************************************************/
package org.apache.cayenne.modeler;
-import java.io.File;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import javax.swing.JOptionPane;
-import javax.swing.SwingUtilities;
-
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.configuration.DataChannelDescriptor;
import org.apache.cayenne.map.DataMap;
@@ -38,6 +28,14 @@ import org.apache.cayenne.project.Project;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.swing.*;
+import java.io.File;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
/**
* ProjectWatchdog class is responsible for tracking changes in cayenne.xml and
* other Cayenne project files
@@ -56,15 +54,15 @@ public class ProjectFileChangeTracker extends Thread {
* The names of the files to observe for changes.
*/
protected final Map<URI, FileInfo> files;
- protected final ProjectController mediator;
+ protected final ProjectController projectController;
protected boolean paused;
protected boolean isShownChangeDialog;
protected boolean isShownRemoveDialog;
- public ProjectFileChangeTracker(ProjectController mediator) {
+ public ProjectFileChangeTracker(ProjectController projectController) {
this.files = new ConcurrentHashMap<>();
- this.mediator = mediator;
+ this.projectController = projectController;
setName("cayenne-modeler-file-change-tracker");
}
@@ -77,7 +75,7 @@ public class ProjectFileChangeTracker extends Thread {
removeAllFiles();
- Project project = mediator.getProject();
+ Project project = projectController.getProject();
// check if project exists and has been saved at least once.
if (project != null && project.getConfigurationResource() != null) {
@@ -106,27 +104,27 @@ public class ProjectFileChangeTracker extends Thread {
+ "Do you want to load the changes?")) {
// Currently we are reloading all project
- if (mediator.getProject() != null) {
+ if (projectController.getProject() != null) {
File fileDirectory;
try {
- fileDirectory = new
File(mediator.getProject().getConfigurationResource().getURL().toURI());
+ fileDirectory = new
File(projectController.getProject().getConfigurationResource().getURL().toURI());
} catch (URISyntaxException e) {
throw new CayenneRuntimeException("Unable to open
project %s",
- e,
mediator.getProject().getConfigurationResource().getURL());
+ e,
projectController.getProject().getConfigurationResource().getURL());
}
Application.getInstance().getActionManager()
.getAction(OpenProjectAction.class)
.openProject(fileDirectory);
}
} else {
- mediator.setDirty(true);
+ projectController.setDirty(true);
}
isShownChangeDialog = false;
});
}
protected void doOnRemove() {
- if (mediator.getProject() != null) {
+ if (projectController.getProject() != null) {
SwingUtilities.invokeLater(() -> {
isShownRemoveDialog = true;
@@ -138,7 +136,7 @@ public class ProjectFileChangeTracker extends Thread {
} else if (dialog.shouldClose()) {
Application.getInstance().getFrameController().projectClosedAction();
} else {
- mediator.setDirty(true);
+ projectController.setDirty(true);
}
isShownRemoveDialog = false;
});
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java
index ae39b89fc..681009340 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java
@@ -124,20 +124,20 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
private static final Color SELECTION_COLOR =
UIManager.getColor("Tree.selectionBackground");
- protected ProjectController mediator;
+ protected ProjectController projectController;
protected TreeSelectionListener treeSelectionListener;
protected TreeWillExpandListener treeWillExpandListener;
protected JPopupMenu popup;
- private TreeDragSource tds;
+ private final TreeDragSource treeDragSource;
- public ProjectTreeView(ProjectController mediator) {
+ public ProjectTreeView(ProjectController projectController) {
super();
- this.mediator = mediator;
+ this.projectController = projectController;
initView();
initController();
initFromModel(Application.getInstance().getProject());
- this.tds = new TreeDragSource(this, DnDConstants.ACTION_COPY,
mediator);
+ this.treeDragSource = new TreeDragSource(this,
DnDConstants.ACTION_COPY, projectController);
}
private void initView() {
@@ -179,7 +179,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
projectParentPath = createProjectPath(parentPath);
}
- mediator.fireMultipleObjectsDisplayEvent(new
MultipleObjectsDisplayEvent(
+ projectController.fireMultipleObjectsDisplayEvent(new
MultipleObjectsDisplayEvent(
this,
projectPaths, projectParentPath));
} else if (paths.length == 1) {
@@ -225,24 +225,24 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
}
private void setupMediator() {
- mediator.addDomainListener(this);
- mediator.addDomainDisplayListener(this);
- mediator.addDataNodeListener(this);
- mediator.addDataNodeDisplayListener(this);
- mediator.addDataMapListener(this);
- mediator.addDataMapDisplayListener(this);
- mediator.addObjEntityListener(this);
- mediator.addObjEntityDisplayListener(this);
- mediator.addDbEntityListener(this);
- mediator.addDbEntityDisplayListener(this);
- mediator.addEmbeddableDisplayListener(this);
- mediator.addEmbeddableListener(this);
- mediator.addProcedureListener(this);
- mediator.addProcedureDisplayListener(this);
- mediator.addQueryListener(this);
- mediator.addQueryDisplayListener(this);
- mediator.addMultipleObjectsDisplayListener(this);
- mediator.getApplication().getActionManager().setupCutCopyPaste(
+ projectController.addDomainListener(this);
+ projectController.addDomainDisplayListener(this);
+ projectController.addDataNodeListener(this);
+ projectController.addDataNodeDisplayListener(this);
+ projectController.addDataMapListener(this);
+ projectController.addDataMapDisplayListener(this);
+ projectController.addObjEntityListener(this);
+ projectController.addObjEntityDisplayListener(this);
+ projectController.addDbEntityListener(this);
+ projectController.addDbEntityDisplayListener(this);
+ projectController.addEmbeddableDisplayListener(this);
+ projectController.addEmbeddableListener(this);
+ projectController.addProcedureListener(this);
+ projectController.addProcedureDisplayListener(this);
+ projectController.addQueryListener(this);
+ projectController.addQueryDisplayListener(this);
+ projectController.addMultipleObjectsDisplayListener(this);
+
projectController.getApplication().getActionManager().setupCutCopyPaste(
this,
CutAction.class,
CopyAction.class);
@@ -411,7 +411,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
DefaultMutableTreeNode node = getProjectModel().getNodeForObjectPath(
new Object[] {
- mediator.getProject().getRootNode(),
+ projectController.getProject().getRootNode(),
e.getProcedure().getDataMap()
});
@@ -428,7 +428,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
public void procedureChanged(ProcedureEvent e) {
if (e.isNameChange()) {
Object[] path = new Object[] {
- mediator.getProject().getRootNode(),
+ projectController.getProject().getRootNode(),
e.getProcedure().getDataMap(), e.getProcedure()
};
@@ -441,7 +441,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
public void procedureRemoved(ProcedureEvent e) {
removeNode(new Object[] {
- mediator.getProject().getRootNode(),
+ projectController.getProject().getRootNode(),
e.getProcedure().getDataMap(), e.getProcedure()
});
}
@@ -452,7 +452,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
new Object[] {
e.getDomain() != null
? e.getDomain()
- : (DataChannelDescriptor) mediator
+ : (DataChannelDescriptor) projectController
.getProject()
.getRootNode(), e.getDataMap()
});
@@ -473,7 +473,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
Object[] path = new Object[] {
e.getDomain() != null
? e.getDomain()
- : (DataChannelDescriptor)
mediator.getProject().getRootNode(),
+ : (DataChannelDescriptor)
projectController.getProject().getRootNode(),
e.getQuery().getDataMap(), e.getQuery()
};
@@ -485,7 +485,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
public void queryRemoved(QueryEvent e) {
removeNode(new Object[] {
- e.getDomain() != null ? e.getDomain() :
(DataChannelDescriptor) mediator
+ e.getDomain() != null ? e.getDomain() :
(DataChannelDescriptor) projectController
.getProject()
.getRootNode(), e.getDataMap(), e.getQuery()
});
@@ -512,7 +512,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
new Object[] {
e.getDomain() != null
? e.getDomain()
- : (DataChannelDescriptor) mediator
+ : (DataChannelDescriptor) projectController
.getProject()
.getRootNode(), e.getDataNode()
});
@@ -527,7 +527,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
getProjectModel().nodeChanged(node);
- DataChannelDescriptor domain = (DataChannelDescriptor)
mediator.getProject().getRootNode();
+ DataChannelDescriptor domain = (DataChannelDescriptor)
projectController.getProject().getRootNode();
// check for DataMap additions/removals...
String[] mapsName =
e.getDataNode().getDataMapNames().toArray(new String[0]);
@@ -585,7 +585,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
new Object[] {
e.getDomain() != null
? e.getDomain()
- : (DataChannelDescriptor)
mediator.getProject().getRootNode()
+ : (DataChannelDescriptor)
projectController.getProject().getRootNode()
});
if (node == null) {
@@ -604,7 +604,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
}
removeNode(new Object[] {
- e.getDomain() != null ? e.getDomain() :
(DataChannelDescriptor) mediator
+ e.getDomain() != null ? e.getDomain() :
(DataChannelDescriptor) projectController
.getProject()
.getRootNode(), e.getDataNode()
});
@@ -613,7 +613,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
public void dataMapChanged(DataMapEvent e) {
Object[] path = new Object[] {
- e.getDomain() != null ? e.getDomain() :
(DataChannelDescriptor) mediator
+ e.getDomain() != null ? e.getDomain() :
(DataChannelDescriptor) projectController
.getProject()
.getRootNode(), e.getDataMap()
};
@@ -621,7 +621,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
updateNode(path);
if (e.isNameChange()) {
- mediator.updateEntityResolver();
+ projectController.updateEntityResolver();
positionNode(path, Comparators.getDataDomainChildrenComparator());
showNode(path);
}
@@ -629,7 +629,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
public void dataMapAdded(DataMapEvent e) {
DataChannelDescriptor dataChannelDescriptor = e.getDomain() != null ?
e.getDomain() :
- (DataChannelDescriptor) mediator.getProject().getRootNode();
+ (DataChannelDescriptor)
projectController.getProject().getRootNode();
DefaultMutableTreeNode domainNode =
getProjectModel().getNodeForObjectPath(
new Object[] {
dataChannelDescriptor
@@ -638,7 +638,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
DefaultMutableTreeNode newMapNode =
ProjectTreeFactory.wrapProjectNode(e
.getDataMap());
- mediator.getEntityResolver().addDataMap(e.getDataMap());
+ projectController.getEntityResolver().addDataMap(e.getDataMap());
positionNode(domainNode, newMapNode, Comparators
.getDataDomainChildrenComparator());
@@ -651,7 +651,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
for (DataNodeDescriptor dataNode : new
ArrayList<>(dataChannelDescriptor.getNodeDescriptors())) {
for(String dataMapName : dataNode.getDataMapNames()) {
if(e.getDataMap().getName().equals(dataMapName)) {
- mediator.fireDataNodeEvent(new DataNodeEvent(this,
dataNode));
+ projectController.fireDataNodeEvent(new
DataNodeEvent(this, dataNode));
}
}
}
@@ -667,7 +667,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
dataChannelDescriptor, map
});
- mediator.getEntityResolver().removeDataMap(e.getDataMap());
+ projectController.getEntityResolver().removeDataMap(e.getDataMap());
// Clean up map from the nodes
for (DataNodeDescriptor dataNode : new
ArrayList<>(dataChannelDescriptor.getNodeDescriptors())) {
@@ -714,7 +714,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
Object[] path = new Object[] {
e.getDomain() != null
? e.getDomain()
- : (DataChannelDescriptor)
mediator.getProject().getRootNode(),
+ : (DataChannelDescriptor)
projectController.getProject().getRootNode(),
e.getEntity().getDataMap(), e.getEntity()
};
@@ -736,7 +736,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
new Object[] {
e.getDomain() != null
? e.getDomain()
- : (DataChannelDescriptor) mediator
+ : (DataChannelDescriptor) projectController
.getProject()
.getRootNode(),
e.getEntity().getDataMap()
});
@@ -761,7 +761,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
// remove from DataMap tree
removeNode(new Object[] {
- e.getDomain() != null ? e.getDomain() :
(DataChannelDescriptor) mediator
+ e.getDomain() != null ? e.getDomain() :
(DataChannelDescriptor) projectController
.getProject()
.getRootNode(), e.getEntity().getDataMap(),
e.getEntity()
});
@@ -888,36 +888,36 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
if (data.length == 0) {
// this should clear the right-side panel
DomainDisplayEvent domEvent = new DomainDisplayEvent(this, null);
- domEvent.setDomain((DataChannelDescriptor) mediator
+ domEvent.setDomain((DataChannelDescriptor) projectController
.getProject()
.getRootNode());
- mediator.fireDomainDisplayEvent(domEvent);
+ projectController.fireDomainDisplayEvent(domEvent);
return;
}
Object obj = data[data.length - 1];
if (obj instanceof DataChannelDescriptor) {
- mediator.fireDomainDisplayEvent(new DomainDisplayEvent(
+ projectController.fireDomainDisplayEvent(new DomainDisplayEvent(
this,
(DataChannelDescriptor) obj));
} else if (obj instanceof DataMap) {
if (data.length == 2) {
- mediator.fireDataMapDisplayEvent(new DataMapDisplayEvent(
+ projectController.fireDataMapDisplayEvent(new
DataMapDisplayEvent(
this,
(DataMap) obj,
- (DataChannelDescriptor)
mediator.getProject().getRootNode(),
+ (DataChannelDescriptor)
projectController.getProject().getRootNode(),
(DataNodeDescriptor) data[data.length - 2]));
} else if (data.length == 1) {
- mediator.fireDataMapDisplayEvent(new DataMapDisplayEvent(
+ projectController.fireDataMapDisplayEvent(new
DataMapDisplayEvent(
this,
(DataMap) obj,
- (DataChannelDescriptor)
mediator.getProject().getRootNode()));
+ (DataChannelDescriptor)
projectController.getProject().getRootNode()));
}
} else if (obj instanceof DataNodeDescriptor) {
if (data.length == 1) {
- mediator.fireDataNodeDisplayEvent(new DataNodeDisplayEvent(
+ projectController.fireDataNodeDisplayEvent(new
DataNodeDisplayEvent(
this,
- (DataChannelDescriptor)
mediator.getProject().getRootNode(),
+ (DataChannelDescriptor)
projectController.getProject().getRootNode(),
(DataNodeDescriptor) obj));
}
} else if (obj instanceof Entity) {
@@ -925,39 +925,39 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
e.setUnselectAttributes(true);
if (data.length == 3) {
e.setDataMap((DataMap) data[data.length - 2]);
- e.setDomain((DataChannelDescriptor)
mediator.getProject().getRootNode());
+ e.setDomain((DataChannelDescriptor)
projectController.getProject().getRootNode());
e.setDataNode((DataNodeDescriptor) data[data.length - 3]);
} else if (data.length == 2) {
e.setDataMap((DataMap) data[data.length - 2]);
- e.setDomain((DataChannelDescriptor)
mediator.getProject().getRootNode());
+ e.setDomain((DataChannelDescriptor)
projectController.getProject().getRootNode());
}
if (obj instanceof ObjEntity) {
- mediator.fireObjEntityDisplayEvent(e);
+ projectController.fireObjEntityDisplayEvent(e);
} else if (obj instanceof DbEntity) {
- mediator.fireDbEntityDisplayEvent(e);
+ projectController.fireDbEntityDisplayEvent(e);
}
} else if (obj instanceof Embeddable) {
EmbeddableDisplayEvent e = new EmbeddableDisplayEvent(
this,
(Embeddable) obj,
(DataMap) data[data.length - 2],
- (DataChannelDescriptor)
mediator.getProject().getRootNode());
- mediator.fireEmbeddableDisplayEvent(e);
+ (DataChannelDescriptor)
projectController.getProject().getRootNode());
+ projectController.fireEmbeddableDisplayEvent(e);
} else if (obj instanceof Procedure) {
ProcedureDisplayEvent e = new ProcedureDisplayEvent(
this,
(Procedure) obj,
(DataMap) data[data.length - 2],
- (DataChannelDescriptor)
mediator.getProject().getRootNode());
- mediator.fireProcedureDisplayEvent(e);
+ (DataChannelDescriptor)
projectController.getProject().getRootNode());
+ projectController.fireProcedureDisplayEvent(e);
} else if (obj instanceof QueryDescriptor) {
QueryDisplayEvent e = new QueryDisplayEvent(
this,
(QueryDescriptor) obj,
(DataMap) data[data.length - 2],
- (DataChannelDescriptor)
mediator.getProject().getRootNode());
- mediator.fireQueryDisplayEvent(e);
+ (DataChannelDescriptor)
projectController.getProject().getRootNode());
+ projectController.fireQueryDisplayEvent(e);
}
this.scrollPathToVisible(path);
@@ -1039,7 +1039,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
* @param actionType action type
*/
private JMenuItem buildMenu(Class<? extends Action> actionType) {
- CayenneAction action = (CayenneAction) mediator
+ CayenneAction action = (CayenneAction) projectController
.getApplication()
.getActionManager()
.getAction(actionType);
@@ -1093,7 +1093,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
new Object[] {
e.getDomain() != null
? e.getDomain()
- : (DataChannelDescriptor) mediator
+ : (DataChannelDescriptor) projectController
.getProject()
.getRootNode(), map
});
@@ -1112,7 +1112,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
Object[] path = new Object[] {
e.getDomain() != null
? e.getDomain()
- : (DataChannelDescriptor)
mediator.getProject().getRootNode(),
+ : (DataChannelDescriptor)
projectController.getProject().getRootNode(),
map, e.getEmbeddable()
};
@@ -1129,7 +1129,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
// remove from DataMap tree
removeNode(new Object[] {
- e.getDomain() != null ? e.getDomain() :
(DataChannelDescriptor) mediator
+ e.getDomain() != null ? e.getDomain() :
(DataChannelDescriptor) projectController
.getProject()
.getRootNode(), map, e.getEmbeddable()
});
@@ -1150,7 +1150,7 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
// Filter all disabled actions in popupMenu, but skip Cut-Copy-Paste
block. It should always exist.
public void popupMenuFilter() {
- Action cutAction =
mediator.getApplication().getActionManager().getAction(CutAction.class);
+ Action cutAction =
projectController.getApplication().getActionManager().getAction(CutAction.class);
for (MenuElement element : popup.getSubElements()) {
JMenuItem item = (JMenuItem) element;
if (!item.getAction().equals(cutAction)) {
@@ -1161,8 +1161,8 @@ public class ProjectTreeView extends JTree implements
DomainDisplayListener,
}
}
- public TreeDragSource getTds() {
- return tds;
+ public TreeDragSource getTreeDragSource() {
+ return treeDragSource;
}
@Override
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java
index 906651c0e..3a600d995 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java
@@ -81,9 +81,9 @@ public class CopyAction extends CayenneAction {
*/
@Override
public void performAction(ActionEvent e) {
- ProjectController mediator = getProjectController();
+ ProjectController controller = getProjectController();
- Object content = copy(mediator);
+ Object content = copy(controller);
if (content != null) {
Clipboard sysClip =
Toolkit.getDefaultToolkit().getSystemClipboard();
@@ -97,8 +97,8 @@ public class CopyAction extends CayenneAction {
/**
* Detects selected objects and returns them
*/
- public Object copy(ProjectController mediator) {
- return mediator.getCurrentObject();
+ public Object copy(ProjectController controller) {
+ return controller.getCurrentObject();
}
/**
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeAction.java
index af22b6bfd..64feb1644 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeAction.java
@@ -68,7 +68,7 @@ public class CopyAttributeAction extends CopyAction
implements MultipleObjectsAc
}
@Override
- public Object copy(ProjectController mediator) {
+ public Object copy(ProjectController controller) {
Object[] attrs = getProjectController().getCurrentObjAttributes();
if (attrs == null || attrs.length == 0) {
attrs = getProjectController().getCurrentDbAttributes();
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeRelationshipAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeRelationshipAction.java
index 3dfbd40ab..3aa80edee 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeRelationshipAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeRelationshipAction.java
@@ -57,11 +57,11 @@ public class CopyAttributeRelationshipAction extends
CopyAction implements Multi
}
}
- public Object copy(ProjectController mediator) {
+ public Object copy(ProjectController controller) {
if (currentSelectedPanel instanceof ObjEntityAttributePanel ||
currentSelectedPanel instanceof DbEntityAttributePanel) {
- return copyAttributeAction.copy(mediator);
+ return copyAttributeAction.copy(controller);
} else {
- return copyRelationshipAction.copy(mediator);
+ return copyRelationshipAction.copy(controller);
}
}
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyCallbackMethodAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyCallbackMethodAction.java
index 286f2bad3..168936f61 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyCallbackMethodAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyCallbackMethodAction.java
@@ -60,7 +60,7 @@ public class CopyCallbackMethodAction extends CopyAction
implements MultipleObje
}
@Override
- public Object copy(ProjectController mediator) {
+ public Object copy(ProjectController controller) {
Object[] methods = getProjectController().getCurrentCallbackMethods();
if (methods != null && methods.length > 0) {
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyProcedureParameterAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyProcedureParameterAction.java
index d5c9f2ae7..e0f367459 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyProcedureParameterAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyProcedureParameterAction.java
@@ -62,7 +62,7 @@ public class CopyProcedureParameterAction extends CopyAction
implements Multiple
}
@Override
- public Object copy(ProjectController mediator) {
+ public Object copy(ProjectController controller) {
Object[] params =
getProjectController().getCurrentProcedureParameters();
if (params != null && params.length > 0) {
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyRelationshipAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyRelationshipAction.java
index e6733069c..a0b15e863 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyRelationshipAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyRelationshipAction.java
@@ -63,7 +63,7 @@ public class CopyRelationshipAction extends CopyAction
implements MultipleObject
}
@Override
- public Object copy(ProjectController mediator) {
+ public Object copy(ProjectController controller) {
Object[] rels = getProjectController().getCurrentObjRelationships();
if (rels == null || rels.length == 0) {
rels = getProjectController().getCurrentDbRelationships();
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateAttributeAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateAttributeAction.java
index a2a55c1e4..7271f11f7 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateAttributeAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateAttributeAction.java
@@ -48,43 +48,42 @@ import java.awt.event.ActionEvent;
public class CreateAttributeAction extends CayenneAction {
- static void fireEmbeddableAttributeEvent(Object src, ProjectController
mediator, Embeddable embeddable,
- EmbeddableAttribute attr) {
+ static void fireEmbeddableAttributeEvent(Object src, ProjectController
controller, Embeddable embeddable, EmbeddableAttribute attr) {
- mediator.fireEmbeddableAttributeEvent(new
EmbeddableAttributeEvent(src, attr, embeddable, MapEvent.ADD));
+ controller.fireEmbeddableAttributeEvent(new
EmbeddableAttributeEvent(src, attr, embeddable, MapEvent.ADD));
EmbeddableAttributeDisplayEvent e = new
EmbeddableAttributeDisplayEvent(src, embeddable, attr,
- mediator.getCurrentDataMap(), (DataChannelDescriptor)
mediator.getProject().getRootNode());
+ controller.getCurrentDataMap(), (DataChannelDescriptor)
controller.getProject().getRootNode());
- mediator.fireEmbeddableAttributeDisplayEvent(e);
+ controller.fireEmbeddableAttributeDisplayEvent(e);
}
/**
* Fires events when an obj attribute was added
*/
- static void fireObjAttributeEvent(Object src, ProjectController mediator,
DataMap map, ObjEntity objEntity,
+ static void fireObjAttributeEvent(Object src, ProjectController
controller, DataMap map, ObjEntity objEntity,
ObjAttribute attr) {
- mediator.fireObjAttributeEvent(new AttributeEvent(src, attr,
objEntity, MapEvent.ADD));
+ controller.fireObjAttributeEvent(new AttributeEvent(src, attr,
objEntity, MapEvent.ADD));
- DataChannelDescriptor domain = (DataChannelDescriptor)
mediator.getProject().getRootNode();
+ DataChannelDescriptor domain = (DataChannelDescriptor)
controller.getProject().getRootNode();
AttributeDisplayEvent ade = new AttributeDisplayEvent(src, attr,
objEntity, map, domain);
- mediator.fireObjAttributeDisplayEvent(ade);
+ controller.fireObjAttributeDisplayEvent(ade);
}
/**
* Fires events when a db attribute was added
*/
- static void fireDbAttributeEvent(Object src, ProjectController mediator,
DataMap map, DbEntity dbEntity,
+ static void fireDbAttributeEvent(Object src, ProjectController controller,
DataMap map, DbEntity dbEntity,
DbAttribute attr) {
- mediator.fireDbAttributeEvent(new AttributeEvent(src, attr, dbEntity,
MapEvent.ADD));
+ controller.fireDbAttributeEvent(new AttributeEvent(src, attr,
dbEntity, MapEvent.ADD));
AttributeDisplayEvent ade = new AttributeDisplayEvent(src, attr,
dbEntity, map,
- (DataChannelDescriptor) mediator.getProject().getRootNode());
+ (DataChannelDescriptor) controller.getProject().getRootNode());
- mediator.fireDbAttributeDisplayEvent(ade);
+ controller.fireDbAttributeDisplayEvent(ade);
}
public CreateAttributeAction(Application application) {
@@ -101,10 +100,10 @@ public class CreateAttributeAction extends CayenneAction {
*/
@Override
public void performAction(ActionEvent e) {
- ProjectController mediator = getProjectController();
+ ProjectController controller = getProjectController();
if (getProjectController().getCurrentEmbeddable() != null) {
- Embeddable embeddable = mediator.getCurrentEmbeddable();
+ Embeddable embeddable = controller.getCurrentEmbeddable();
EmbeddableAttribute attr = new EmbeddableAttribute();
attr.setName(NameBuilder
@@ -119,16 +118,16 @@ public class CreateAttributeAction extends CayenneAction {
if (getProjectController().getCurrentObjEntity() != null) {
- ObjEntity objEntity = mediator.getCurrentObjEntity();
+ ObjEntity objEntity = controller.getCurrentObjEntity();
ObjAttribute attr = new ObjAttribute();
attr.setName(NameBuilder.builder(attr, objEntity).name());
- createObjAttribute(mediator.getCurrentDataMap(), objEntity, attr);
+ createObjAttribute(controller.getCurrentDataMap(), objEntity,
attr);
application.getUndoManager().addEdit(
- new CreateAttributeUndoableEdit((DataChannelDescriptor)
mediator.getProject().getRootNode(),
- mediator.getCurrentDataMap(), objEntity, attr));
+ new CreateAttributeUndoableEdit((DataChannelDescriptor)
controller.getProject().getRootNode(),
+ controller.getCurrentDataMap(), objEntity, attr));
} else if (getProjectController().getCurrentDbEntity() != null) {
DbEntity dbEntity = getProjectController().getCurrentDbEntity();
@@ -137,31 +136,27 @@ public class CreateAttributeAction extends CayenneAction {
attr.setType(TypesMapping.NOT_DEFINED);
attr.setEntity(dbEntity);
- createDbAttribute(mediator.getCurrentDataMap(), dbEntity, attr);
+ createDbAttribute(controller.getCurrentDataMap(), dbEntity, attr);
application.getUndoManager().addEdit(
- new CreateAttributeUndoableEdit((DataChannelDescriptor)
mediator.getProject().getRootNode(),
- mediator.getCurrentDataMap(), dbEntity, attr));
+ new CreateAttributeUndoableEdit((DataChannelDescriptor)
controller.getProject().getRootNode(),
+ controller.getCurrentDataMap(), dbEntity, attr));
}
}
public void createEmbAttribute(Embeddable embeddable, EmbeddableAttribute
attr) {
- ProjectController mediator = getProjectController();
embeddable.addAttribute(attr);
- fireEmbeddableAttributeEvent(this, mediator, embeddable, attr);
+ fireEmbeddableAttributeEvent(this, getProjectController(), embeddable,
attr);
}
public void createObjAttribute(DataMap map, ObjEntity objEntity,
ObjAttribute attr) {
-
- ProjectController mediator = getProjectController();
objEntity.addAttribute(attr);
- fireObjAttributeEvent(this, mediator, map, objEntity, attr);
+ fireObjAttributeEvent(this, getProjectController(), map, objEntity,
attr);
}
public void createDbAttribute(DataMap map, DbEntity dbEntity, DbAttribute
attr) {
dbEntity.addAttribute(attr);
- ProjectController mediator = getProjectController();
- fireDbAttributeEvent(this, mediator, map, dbEntity, attr);
+ fireDbAttributeEvent(this, getProjectController(), map, dbEntity,
attr);
}
/**
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDataMapAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDataMapAction.java
index 0e464f18e..541cfa484 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDataMapAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDataMapAction.java
@@ -25,7 +25,6 @@ import org.apache.cayenne.configuration.DataNodeDescriptor;
import org.apache.cayenne.dbsync.naming.NameBuilder;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.modeler.undo.CreateDataMapUndoableEdit;
import org.apache.cayenne.modeler.util.CayenneAction;
@@ -50,9 +49,8 @@ public class CreateDataMapAction extends CayenneAction {
}
public void performAction(ActionEvent e) {
- ProjectController mediator = getProjectController();
- DataChannelDescriptor dataChannelDescriptor = (DataChannelDescriptor)
mediator
+ DataChannelDescriptor dataChannelDescriptor = (DataChannelDescriptor)
getProjectController()
.getProject()
.getRootNode();
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java
index 5d6090a80..80c4d437c 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java
@@ -40,12 +40,12 @@ public class CreateDbEntityAction extends CayenneAction {
/**
* Fires events when a db entity was added
*/
- static void fireDbEntityEvent(Object src, ProjectController mediator,
DbEntity entity) {
- mediator.fireDbEntityEvent(new EntityEvent(src, entity, MapEvent.ADD));
- EntityDisplayEvent displayEvent = new EntityDisplayEvent(src, entity,
mediator.getCurrentDataMap(),
- mediator.getCurrentDataNode(), (DataChannelDescriptor)
mediator.getProject().getRootNode());
+ static void fireDbEntityEvent(Object src, ProjectController controller,
DbEntity entity) {
+ controller.fireDbEntityEvent(new EntityEvent(src, entity,
MapEvent.ADD));
+ EntityDisplayEvent displayEvent = new EntityDisplayEvent(src, entity,
controller.getCurrentDataMap(),
+ controller.getCurrentDataNode(), (DataChannelDescriptor)
controller.getProject().getRootNode());
displayEvent.setMainTabFocus(true);
- mediator.fireDbEntityDisplayEvent(displayEvent);
+ controller.fireDbEntityDisplayEvent(displayEvent);
}
public CreateDbEntityAction(Application application) {
@@ -61,9 +61,7 @@ public class CreateDbEntityAction extends CayenneAction {
* Creates new DbEntity, adds it to the current DataMap, fires
DbEntityEvent and DbEntityDisplayEvent.
*/
public void performAction(ActionEvent e) {
- ProjectController mediator = getProjectController();
-
- DataMap map = mediator.getCurrentDataMap();
+ DataMap map = getProjectController().getCurrentDataMap();
DbEntity entity = new DbEntity();
entity.setName(NameBuilder.builder(entity, map).name());
createEntity(map, entity);
@@ -76,11 +74,10 @@ public class CreateDbEntityAction extends CayenneAction {
* DataMap.
*/
public void createEntity(DataMap map, DbEntity entity) {
- ProjectController mediator = getProjectController();
entity.setCatalog(map.getDefaultCatalog());
entity.setSchema(map.getDefaultSchema());
map.addDbEntity(entity);
- fireDbEntityEvent(this, mediator, entity);
+ fireDbEntityEvent(this, getProjectController(), entity);
}
/**
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateEmbeddableAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateEmbeddableAction.java
index 0a286d80a..e69c8f2a3 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateEmbeddableAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateEmbeddableAction.java
@@ -38,20 +38,20 @@ public class CreateEmbeddableAction extends CayenneAction {
static void fireEmbeddableEvent(
Object src,
- ProjectController mediator,
+ ProjectController controller,
DataMap dataMap,
Embeddable embeddable) {
- mediator.fireEmbeddableEvent(
+ controller.fireEmbeddableEvent(
new EmbeddableEvent(src, embeddable, MapEvent.ADD),
dataMap);
EmbeddableDisplayEvent displayEvent = new EmbeddableDisplayEvent(
src,
embeddable,
dataMap,
- (DataChannelDescriptor) mediator.getProject().getRootNode());
+ (DataChannelDescriptor) controller.getProject().getRootNode());
displayEvent.setMainTabFocus(true);
- mediator.fireEmbeddableDisplayEvent(displayEvent);
+ controller.fireEmbeddableDisplayEvent(displayEvent);
}
@@ -66,9 +66,7 @@ public class CreateEmbeddableAction extends CayenneAction {
@Override
public void performAction(ActionEvent e) {
- ProjectController mediator = getProjectController();
-
- DataMap dataMap = mediator.getCurrentDataMap();
+ DataMap dataMap = getProjectController().getCurrentDataMap();
Embeddable embeddable = new Embeddable();
String baseName = NameBuilder.builder(embeddable, dataMap).name();
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateNodeAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateNodeAction.java
index 9faa7877d..494ee01ec 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateNodeAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateNodeAction.java
@@ -29,7 +29,6 @@ import
org.apache.cayenne.configuration.runtime.XMLPoolingDataSourceFactory;
import org.apache.cayenne.dbsync.naming.NameBuilder;
import org.apache.cayenne.map.event.MapEvent;
import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.modeler.event.DataNodeDisplayEvent;
import org.apache.cayenne.modeler.undo.CreateNodeUndoableEdit;
import org.apache.cayenne.modeler.util.CayenneAction;
@@ -74,8 +73,7 @@ public class CreateNodeAction extends CayenneAction {
* any events.
*/
public DataNodeDescriptor buildDataNode() {
- ProjectController mediator = getProjectController();
- DataChannelDescriptor domain = (DataChannelDescriptor)
mediator.getProject().getRootNode();
+ DataChannelDescriptor domain = (DataChannelDescriptor)
getProjectController().getProject().getRootNode();
DataNodeDescriptor node = buildDataNode(domain);
node.setDataSourceDescriptor(new DataSourceDescriptor());
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
index 1955e30b1..08a057cff 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
@@ -47,18 +47,18 @@ public class CreateObjEntityAction extends CayenneAction {
static void fireObjEntityEvent(
Object src,
- ProjectController mediator,
+ ProjectController controller,
DataMap dataMap,
ObjEntity entity) {
- mediator.fireObjEntityEvent(new EntityEvent(src, entity,
MapEvent.ADD));
+ controller.fireObjEntityEvent(new EntityEvent(src, entity,
MapEvent.ADD));
EntityDisplayEvent displayEvent = new EntityDisplayEvent(
src,
entity,
dataMap,
- mediator.getCurrentDataNode(),
- (DataChannelDescriptor) mediator.getProject().getRootNode());
+ controller.getCurrentDataNode(),
+ (DataChannelDescriptor) controller.getProject().getRootNode());
displayEvent.setMainTabFocus(true);
- mediator.fireObjEntityDisplayEvent(displayEvent);
+ controller.fireObjEntityDisplayEvent(displayEvent);
}
@Override
@@ -72,9 +72,9 @@ public class CreateObjEntityAction extends CayenneAction {
}
protected void createObjEntity() {
- ProjectController mediator = getProjectController();
+ ProjectController controller = getProjectController();
- DataMap dataMap = mediator.getCurrentDataMap();
+ DataMap dataMap = controller.getCurrentDataMap();
ObjEntity entity = new ObjEntity();
entity.setName(NameBuilder.builder(entity, dataMap).name());
@@ -82,7 +82,7 @@ public class CreateObjEntityAction extends CayenneAction {
entity.setSuperClassName(dataMap.getDefaultSuperclass());
entity.setDeclaredLockType(dataMap.getDefaultLockType());
- DbEntity dbEntity = mediator.getCurrentDbEntity();
+ DbEntity dbEntity = controller.getCurrentDbEntity();
if (dbEntity != null) {
entity.setDbEntity(dbEntity);
@@ -105,15 +105,14 @@ public class CreateObjEntityAction extends CayenneAction {
merger.addEntityMergeListener(DeleteRuleUpdater.getEntityMergeListener());
merger.synchronizeWithDbEntity(entity);
- fireObjEntityEvent(this, mediator, dataMap, entity);
+ fireObjEntityEvent(this, controller, dataMap, entity);
application.getUndoManager().addEdit(new
CreateObjEntityUndoableEdit(dataMap, entity));
}
public void createObjEntity(DataMap dataMap, ObjEntity entity) {
- ProjectController mediator = getProjectController();
dataMap.addObjEntity(entity);
- fireObjEntityEvent(this, mediator, dataMap, entity);
+ fireObjEntityEvent(this, getProjectController(), dataMap, entity);
}
/**
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateProcedureAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateProcedureAction.java
index 08e4ceeaf..baed944b2 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateProcedureAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateProcedureAction.java
@@ -42,10 +42,10 @@ public class CreateProcedureAction extends CayenneAction {
/**
* Fires events when a procedure was added
*/
- static void fireProcedureEvent(Object src, ProjectController mediator,
DataMap dataMap, Procedure procedure) {
- mediator.fireProcedureEvent(new ProcedureEvent(src, procedure,
MapEvent.ADD));
- mediator.fireProcedureDisplayEvent(new ProcedureDisplayEvent(src,
procedure, mediator.getCurrentDataMap(),
- (DataChannelDescriptor) mediator.getProject().getRootNode()));
+ static void fireProcedureEvent(Object src, ProjectController controller,
DataMap dataMap, Procedure procedure) {
+ controller.fireProcedureEvent(new ProcedureEvent(src, procedure,
MapEvent.ADD));
+ controller.fireProcedureDisplayEvent(new ProcedureDisplayEvent(src,
procedure, controller.getCurrentDataMap(),
+ (DataChannelDescriptor)
controller.getProject().getRootNode()));
}
public CreateProcedureAction(Application application) {
@@ -54,8 +54,7 @@ public class CreateProcedureAction extends CayenneAction {
@Override
public void performAction(ActionEvent e) {
- ProjectController mediator = getProjectController();
- DataMap map = mediator.getCurrentDataMap();
+ DataMap map = getProjectController().getCurrentDataMap();
Procedure procedure = new Procedure();
procedure.setName(NameBuilder.builder(procedure, map).name());
@@ -65,11 +64,10 @@ public class CreateProcedureAction extends CayenneAction {
}
public void createProcedure(DataMap map, Procedure procedure) {
- ProjectController mediator = getProjectController();
procedure.setSchema(map.getDefaultSchema());
procedure.setCatalog(map.getDefaultCatalog());
map.addProcedure(procedure);
- fireProcedureEvent(this, mediator, map, procedure);
+ fireProcedureEvent(this, getProjectController(), map, procedure);
}
/**
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateProcedureParameterAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateProcedureParameterAction.java
index f0d1f7051..4797b6b3e 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateProcedureParameterAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateProcedureParameterAction.java
@@ -64,7 +64,7 @@ public class CreateProcedureParameterAction extends
CayenneAction {
*/
@Override
public void performAction(ActionEvent e) {
- ProjectController mediator = getProjectController();
+ ProjectController controller = getProjectController();
if (getProjectController().getCurrentProcedure() != null) {
Procedure procedure = getProjectController().getCurrentProcedure();
@@ -75,7 +75,7 @@ public class CreateProcedureParameterAction extends
CayenneAction {
application.getUndoManager().addEdit(
new CreateProcedureParameterUndoableEdit(
- (DataChannelDescriptor)
mediator.getProject().getRootNode(), mediator.getCurrentDataMap(),
+ (DataChannelDescriptor)
controller.getProject().getRootNode(), controller.getCurrentDataMap(),
procedure, parameter
)
);
@@ -84,8 +84,7 @@ public class CreateProcedureParameterAction extends
CayenneAction {
public void createProcedureParameter(Procedure procedure,
ProcedureParameter parameter) {
procedure.addCallParameter(parameter);
- ProjectController mediator = getProjectController();
- fireProcedureParameterEvent(this, mediator, procedure, parameter);
+ fireProcedureParameterEvent(this, getProjectController(), procedure,
parameter);
}
/**
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
index eb1e377a5..19bab3111 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
@@ -118,72 +118,72 @@ public class RemoveAction extends CayenneAction {
*/
public void performAction(ActionEvent e, boolean allowAsking) {
- ProjectController mediator = getProjectController();
+ ProjectController controller = getProjectController();
ConfirmRemoveDialog dialog = getConfirmDeleteDialog(allowAsking);
- if (mediator.getCurrentObjEntity() != null) {
- if (dialog.shouldDelete("ObjEntity",
mediator.getCurrentObjEntity().getName())) {
+ if (controller.getCurrentObjEntity() != null) {
+ if (dialog.shouldDelete("ObjEntity",
controller.getCurrentObjEntity().getName())) {
application.getUndoManager()
- .addEdit(new
RemoveUndoableEdit(mediator.getCurrentDataMap(),
mediator.getCurrentObjEntity()));
- removeObjEntity(mediator.getCurrentDataMap(),
mediator.getCurrentObjEntity());
+ .addEdit(new
RemoveUndoableEdit(controller.getCurrentDataMap(),
controller.getCurrentObjEntity()));
+ removeObjEntity(controller.getCurrentDataMap(),
controller.getCurrentObjEntity());
}
- } else if (mediator.getCurrentDbEntity() != null) {
- if (dialog.shouldDelete("DbEntity",
mediator.getCurrentDbEntity().getName())) {
+ } else if (controller.getCurrentDbEntity() != null) {
+ if (dialog.shouldDelete("DbEntity",
controller.getCurrentDbEntity().getName())) {
application.getUndoManager()
- .addEdit(new
RemoveUndoableEdit(mediator.getCurrentDataMap(),
mediator.getCurrentDbEntity()));
- removeDbEntity(mediator.getCurrentDataMap(),
mediator.getCurrentDbEntity());
+ .addEdit(new
RemoveUndoableEdit(controller.getCurrentDataMap(),
controller.getCurrentDbEntity()));
+ removeDbEntity(controller.getCurrentDataMap(),
controller.getCurrentDbEntity());
}
- } else if (mediator.getCurrentQuery() != null) {
- if (dialog.shouldDelete("query",
mediator.getCurrentQuery().getName())) {
+ } else if (controller.getCurrentQuery() != null) {
+ if (dialog.shouldDelete("query",
controller.getCurrentQuery().getName())) {
application.getUndoManager()
- .addEdit(new
RemoveUndoableEdit(mediator.getCurrentDataMap(), mediator.getCurrentQuery()));
- removeQuery(mediator.getCurrentDataMap(),
mediator.getCurrentQuery());
+ .addEdit(new
RemoveUndoableEdit(controller.getCurrentDataMap(),
controller.getCurrentQuery()));
+ removeQuery(controller.getCurrentDataMap(),
controller.getCurrentQuery());
}
- } else if (mediator.getCurrentProcedure() != null) {
- if (dialog.shouldDelete("procedure",
mediator.getCurrentProcedure().getName())) {
+ } else if (controller.getCurrentProcedure() != null) {
+ if (dialog.shouldDelete("procedure",
controller.getCurrentProcedure().getName())) {
application.getUndoManager()
- .addEdit(new
RemoveUndoableEdit(mediator.getCurrentDataMap(),
mediator.getCurrentProcedure()));
- removeProcedure(mediator.getCurrentDataMap(),
mediator.getCurrentProcedure());
+ .addEdit(new
RemoveUndoableEdit(controller.getCurrentDataMap(),
controller.getCurrentProcedure()));
+ removeProcedure(controller.getCurrentDataMap(),
controller.getCurrentProcedure());
}
- } else if (mediator.getCurrentEmbeddable() != null) {
- if (dialog.shouldDelete("embeddable",
mediator.getCurrentEmbeddable().getClassName())) {
+ } else if (controller.getCurrentEmbeddable() != null) {
+ if (dialog.shouldDelete("embeddable",
controller.getCurrentEmbeddable().getClassName())) {
application.getUndoManager()
- .addEdit(new
RemoveUndoableEdit(mediator.getCurrentDataMap(),
mediator.getCurrentEmbeddable()));
- removeEmbeddable(mediator.getCurrentDataMap(),
mediator.getCurrentEmbeddable());
+ .addEdit(new
RemoveUndoableEdit(controller.getCurrentDataMap(),
controller.getCurrentEmbeddable()));
+ removeEmbeddable(controller.getCurrentDataMap(),
controller.getCurrentEmbeddable());
}
- } else if (mediator.getCurrentDataMap() != null) {
- if (dialog.shouldDelete("data map",
mediator.getCurrentDataMap().getName())) {
+ } else if (controller.getCurrentDataMap() != null) {
+ if (dialog.shouldDelete("data map",
controller.getCurrentDataMap().getName())) {
// In context of Data node just remove from Data Node
- if (mediator.getCurrentDataNode() != null) {
+ if (controller.getCurrentDataNode() != null) {
application.getUndoManager()
- .addEdit(new RemoveUndoableEdit(application,
mediator.getCurrentDataNode(),
- mediator.getCurrentDataMap()));
- removeDataMapFromDataNode(mediator.getCurrentDataNode(),
mediator.getCurrentDataMap());
+ .addEdit(new RemoveUndoableEdit(application,
controller.getCurrentDataNode(),
+ controller.getCurrentDataMap()));
+ removeDataMapFromDataNode(controller.getCurrentDataNode(),
controller.getCurrentDataMap());
} else {
// Not under Data Node, remove completely
application.getUndoManager()
- .addEdit(new RemoveUndoableEdit(application,
mediator.getCurrentDataMap()));
- removeDataMap(mediator.getCurrentDataMap());
+ .addEdit(new RemoveUndoableEdit(application,
controller.getCurrentDataMap()));
+ removeDataMap(controller.getCurrentDataMap());
}
}
- } else if (mediator.getCurrentDataNode() != null) {
- if (dialog.shouldDelete("data node",
mediator.getCurrentDataNode().getName())) {
+ } else if (controller.getCurrentDataNode() != null) {
+ if (dialog.shouldDelete("data node",
controller.getCurrentDataNode().getName())) {
application.getUndoManager()
- .addEdit(new RemoveUndoableEdit(application,
mediator.getCurrentDataNode()));
- removeDataNode(mediator.getCurrentDataNode());
+ .addEdit(new RemoveUndoableEdit(application,
controller.getCurrentDataNode()));
+ removeDataNode(controller.getCurrentDataNode());
}
- } else if (mediator.getCurrentPaths() != null) { // multiple deletion
+ } else if (controller.getCurrentPaths() != null) { // multiple deletion
if (dialog.shouldDelete("selected objects")) {
- ConfigurationNode[] paths = mediator.getCurrentPaths();
- ConfigurationNode parentPath = mediator.getCurrentParentPath();
+ ConfigurationNode[] paths = controller.getCurrentPaths();
+ ConfigurationNode parentPath =
controller.getCurrentParentPath();
CompoundEdit compoundEdit = new RemoveCompoundUndoableEdit();
for (ConfigurationNode path : paths) {
@@ -193,20 +193,20 @@ public class RemoveAction extends CayenneAction {
application.getUndoManager().addEdit(compoundEdit);
}
- } else if(mediator.getCurrentCallbackMethods().length > 0) {
- removeMethods(mediator, dialog,
getProjectController().getCurrentCallbackMethods());
- } else if(mediator.getCurrentObjRelationships().length > 0) {
- removeObjRelationships(mediator, dialog,
getProjectController().getCurrentObjRelationships());
- } else if(mediator.getCurrentDbRelationships().length > 0) {
- removeDBRelationships(mediator, dialog,
getProjectController().getCurrentDbRelationships());
- } else if(mediator.getCurrentObjAttributes().length > 0) {
- removeObjAttributes(mediator, dialog,
getProjectController().getCurrentObjAttributes());
- } else if(mediator.getCurrentEmbAttributes().length > 0) {
- removeEmbAttributes(mediator, dialog,
getProjectController().getCurrentEmbAttributes());
- } else if(mediator.getCurrentDbAttributes().length > 0) {
- removeDbAttributes(mediator, dialog,
getProjectController().getCurrentDbAttributes());
- } else if(mediator.getCurrentProcedureParameters().length > 0) {
- removeProcedureParameters(mediator.getCurrentProcedure(),
mediator.getCurrentProcedureParameters());
+ } else if(controller.getCurrentCallbackMethods().length > 0) {
+ removeMethods(controller, dialog,
getProjectController().getCurrentCallbackMethods());
+ } else if(controller.getCurrentObjRelationships().length > 0) {
+ removeObjRelationships(controller, dialog,
getProjectController().getCurrentObjRelationships());
+ } else if(controller.getCurrentDbRelationships().length > 0) {
+ removeDBRelationships(controller, dialog,
getProjectController().getCurrentDbRelationships());
+ } else if(controller.getCurrentObjAttributes().length > 0) {
+ removeObjAttributes(controller, dialog,
getProjectController().getCurrentObjAttributes());
+ } else if(controller.getCurrentEmbAttributes().length > 0) {
+ removeEmbAttributes(controller, dialog,
getProjectController().getCurrentEmbAttributes());
+ } else if(controller.getCurrentDbAttributes().length > 0) {
+ removeDbAttributes(controller, dialog,
getProjectController().getCurrentDbAttributes());
+ } else if(controller.getCurrentProcedureParameters().length > 0) {
+ removeProcedureParameters(controller.getCurrentProcedure(),
controller.getCurrentProcedureParameters());
}
}
@@ -265,12 +265,12 @@ public class RemoveAction extends CayenneAction {
}
}
- private void removeDbAttributes(ProjectController mediator,
ConfirmRemoveDialog dialog, DbAttribute[] dbAttrs) {
+ private void removeDbAttributes(ProjectController controller,
ConfirmRemoveDialog dialog, DbAttribute[] dbAttrs) {
if (dbAttrs != null && dbAttrs.length > 0) {
if ((dbAttrs.length == 1 && dialog.shouldDelete("DbAttribute",
dbAttrs[0].getName()))
|| (dbAttrs.length > 1 && dialog.shouldDelete("selected
DbAttributes"))) {
- DbEntity entity = mediator.getCurrentDbEntity();
+ DbEntity entity = controller.getCurrentDbEntity();
application.getUndoManager()
.addEdit(new RemoveAttributeUndoableEdit(entity,
dbAttrs));
@@ -278,42 +278,40 @@ public class RemoveAction extends CayenneAction {
for (DbAttribute attrib : dbAttrs) {
entity.removeAttribute(attrib.getName());
AttributeEvent e = new
AttributeEvent(Application.getFrame(), attrib, entity, MapEvent.REMOVE);
- mediator.fireDbAttributeEvent(e);
+ controller.fireDbAttributeEvent(e);
}
- ProjectUtil.cleanObjMappings(mediator.getCurrentDataMap());
+ ProjectUtil.cleanObjMappings(controller.getCurrentDataMap());
}
}
}
- private void removeDBRelationships(ProjectController mediator,
ConfirmRemoveDialog dialog,
- DbRelationship[] dbRels) {
+ private void removeDBRelationships(ProjectController controller,
ConfirmRemoveDialog dialog, DbRelationship[] dbRels) {
if (dbRels != null && dbRels.length > 0) {
if ((dbRels.length == 1 &&
dialog.shouldDelete("DbRelationship", dbRels[0].getName()))
|| (dbRels.length > 1 &&
dialog.shouldDelete("selected DbRelationships"))) {
- DbEntity entity = mediator.getCurrentDbEntity();
+ DbEntity entity =
controller.getCurrentDbEntity();
for (DbRelationship rel : dbRels) {
entity.removeRelationship(rel.getName());
RelationshipEvent e = new
RelationshipEvent(Application.getFrame(), rel, entity, MapEvent.REMOVE);
- mediator.fireDbRelationshipEvent(e);
+ controller.fireDbRelationshipEvent(e);
}
-
ProjectUtil.cleanObjMappings(mediator.getCurrentDataMap());
+
ProjectUtil.cleanObjMappings(controller.getCurrentDataMap());
Application.getInstance().getUndoManager().addEdit(new
RemoveRelationshipUndoableEdit(entity, dbRels));
}
}
}
- private void removeObjRelationships(ProjectController mediator,
ConfirmRemoveDialog dialog,
- ObjRelationship[] rels) {
+ private void removeObjRelationships(ProjectController controller,
ConfirmRemoveDialog dialog, ObjRelationship[] rels) {
if ((rels.length == 1 && dialog.shouldDelete("ObjRelationship",
rels[0].getName()))
|| (rels.length > 1 &&
dialog.shouldDelete("selected ObjRelationships"))) {
- ObjEntity entity = mediator.getCurrentObjEntity();
+ ObjEntity entity = controller.getCurrentObjEntity();
for (ObjRelationship rel : rels) {
entity.removeRelationship(rel.getName());
RelationshipEvent e = new
RelationshipEvent(Application.getFrame(), rel, entity, MapEvent.REMOVE);
- mediator.fireObjRelationshipEvent(e);
+ controller.fireObjRelationshipEvent(e);
}
Application.getInstance().getUndoManager().addEdit(new
RemoveRelationshipUndoableEdit(entity, rels));
}
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
index 5951e5aa8..27e16eaf8 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributePanel.java
@@ -55,13 +55,12 @@ import org.apache.cayenne.modeler.util.combo.AutoCompletion;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import java.awt.*;
-import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
@@ -75,42 +74,21 @@ import java.util.Map;
/**
* Detail view of the ObjEntity attributes.
*/
-public class ObjEntityAttributePanel extends JPanel implements
ObjEntityDisplayListener,
- ObjEntityListener, ObjAttributeListener, ProjectOnSaveListener {
+public class ObjEntityAttributePanel extends JPanel implements
ObjEntityDisplayListener, ObjEntityListener, ObjAttributeListener,
ProjectOnSaveListener {
private static final ImageIcon INHERITANCE_ICON =
ModelerUtil.buildIcon("icon-inheritance.png");
- private ProjectController mediator;
- private CayenneTable table;
- private TableColumnPreferences tablePreferences;
- private ObjEntityAttributeRelationshipTab parentPanel;
- private boolean enabledResolve;//for JBottom "resolve" in
ObjEntityAttrRelationshipTab
+ private final ProjectController controller;
+ private final ObjEntityAttributeRelationshipTab parentPanel;
- private ActionListener resolver;
+ private final CayenneTable table;
+ private final TableColumnPreferences tablePreferences;
+ private final JMenuItem editMenu;
- /**
- * By now popup menu item is made similar to toolbar button. (i.e. all
functionality
- * is here) This should be probably refactored as Action.
- */
- private JMenuItem resolveMenu;
-
- public ObjEntityAttributePanel(ProjectController mediator,
ObjEntityAttributeRelationshipTab parentPanel) {
- this.mediator = mediator;
+ public ObjEntityAttributePanel(ProjectController controller,
ObjEntityAttributeRelationshipTab parentPanel) {
+ this.controller = controller;
this.parentPanel = parentPanel;
- initView();
- initController();
- }
-
- public CayenneTable getTable() {
- return table;
- }
-
- public void setTable(CayenneTable table) {
- this.table = table;
- }
-
- private void initView() {
this.setLayout(new BorderLayout());
ActionManager actionManager =
Application.getInstance().getActionManager();
@@ -127,10 +105,10 @@ public class ObjEntityAttributePanel extends JPanel
implements ObjEntityDisplayL
public void mouseReleased(MouseEvent e) {
int row = table.rowAtPoint(e.getPoint());
int col = table.columnAtPoint(e.getPoint());
- ObjAttribute objAttribute =
((ObjAttributeTableModel)table.getModel()).getAttribute(row).getValue();
+ ObjAttribute objAttribute = ((ObjAttributeTableModel)
table.getModel()).getAttribute(row).getValue();
int columnFromModel =
table.getColumnModel().getColumn(col).getModelIndex();
if (row >= 0 && columnFromModel ==
ObjAttributeTableModel.OBJ_ATTRIBUTE) {
- if(objAttribute.isInherited()) {
+ if (objAttribute.isInherited()) {
TableCellRenderer renderer =
table.getCellRenderer(row, col);
Rectangle rectangle = table.getCellRect(row, col,
false);
((CellRenderer) renderer).mouseClicked(e, rectangle.x);
@@ -141,10 +119,10 @@ public class ObjEntityAttributePanel extends JPanel
implements ObjEntityDisplayL
// Create and install a popup
Icon ico = ModelerUtil.buildIcon("icon-edit.png");
- this.resolveMenu = new JMenuItem("Edit Attribute", ico);
+ this.editMenu = new JMenuItem("Edit Attribute", ico);
JPopupMenu popup = new JPopupMenu();
- popup.add(resolveMenu);
+ popup.add(editMenu);
popup.add(actionManager.getAction(RemoveAttributeRelationshipAction.class).buildMenu());
popup.addSeparator();
@@ -154,48 +132,31 @@ public class ObjEntityAttributePanel extends JPanel
implements ObjEntityDisplayL
TablePopupHandler.install(table, popup);
add(PanelFactory.createTablePanel(table, null), BorderLayout.CENTER);
- }
- private void initController() {
- mediator.addObjEntityDisplayListener(this);
- mediator.addObjEntityListener(this);
- mediator.addObjAttributeListener(this);
+ controller.addObjEntityDisplayListener(this);
+ controller.addObjEntityListener(this);
+ controller.addObjAttributeListener(this);
- resolver = e -> {
- int row = table.getSelectedRow();
- if (row < 0) {
- return;
- }
-
- ObjAttributeTableModel model = (ObjAttributeTableModel)
table.getModel();
-
- // ... show dialog...
- new ObjAttributeInfoDialog(mediator, row, model).startupAction();
-
- // This is required for a table to be updated properly
- table.cancelEditing();
-
- // need to refresh selected row... do this by
unselecting/selecting the row
- table.getSelectionModel().clearSelection();
- table.select(row);
- enabledResolve = false;
- };
- resolveMenu.addActionListener(resolver);
+ editMenu.addActionListener(this::edit);
- table.getSelectionModel().addListSelectionListener(new
ObjAttributeListSelectionListener());
+ table.getSelectionModel().addListSelectionListener(this::valueChanged);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
- mediator.getApplication().getActionManager().setupCutCopyPaste(
+ controller.getApplication().getActionManager().setupCutCopyPaste(
table,
CutAttributeRelationshipAction.class,
CopyAttributeRelationshipAction.class);
}
+ public CayenneTable getTable() {
+ return table;
+ }
+
public void initComboBoxes() {
List<String> embeddableNames = new ArrayList<>();
List<String> typeNames = new ArrayList<>();
- for (DataMap dataMap : ((DataChannelDescriptor)
mediator.getProject().getRootNode()).getDataMaps()) {
+ for (DataMap dataMap : ((DataChannelDescriptor)
controller.getProject().getRootNode()).getDataMaps()) {
for (Embeddable emb : dataMap.getEmbeddables()) {
embeddableNames.add(emb.getClassName());
}
@@ -235,8 +196,7 @@ public class ObjEntityAttributePanel extends JPanel
implements ObjEntityDisplayL
table.select(newSel);
- parentPanel.getResolve().removeActionListener(getResolver());
- parentPanel.getResolve().addActionListener(getResolver());
+ parentPanel.rebindEditButton("Edit Attribute", this::edit);
}
public void objAttributeChanged(AttributeEvent e) {
@@ -309,7 +269,7 @@ public class ObjEntityAttributePanel extends JPanel
implements ObjEntityDisplayL
Collection<ObjEntity> objEntities =
ProjectUtil.getCollectionOfChildren((ObjEntity) e.getEntity());
- for (ObjEntity objEntity: objEntities) {
+ for (ObjEntity objEntity : objEntities) {
if (objEntity.getDeclaredAttribute(e.getAttribute().getName()) !=
null) {
JOptionPane pane = new JOptionPane(
@@ -358,14 +318,14 @@ public class ObjEntityAttributePanel extends JPanel
implements ObjEntityDisplayL
TableCellEditor cellEditor =
table.getCellEditor(table.getEditingRow(), table.getEditingColumn());
cellEditor.stopCellEditing();
}
- ObjAttributeTableModel model = new ObjAttributeTableModel(entity,
mediator, this);
+ ObjAttributeTableModel model = new ObjAttributeTableModel(entity,
controller, this);
table.setModel(model);
table.setRowHeight(25);
table.setRowMargin(3);
setUpTableStructure();
}
- protected void setUpTableStructure() {
+ private void setUpTableStructure() {
Map<Integer, Integer> minSizes = new HashMap<>();
minSizes.put(ObjAttributeTableModel.OBJ_ATTRIBUTE, 150);
@@ -415,7 +375,7 @@ public class ObjEntityAttributePanel extends JPanel
implements ObjEntityDisplayL
}
// custom renderer used for inherited attributes highlighting
- final class CellRenderer extends DefaultTableCellRenderer {
+ static final class CellRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(
@@ -444,20 +404,20 @@ public class ObjEntityAttributePanel extends JPanel
implements ObjEntityDisplayL
Font font = getFont();
Font newFont = font.deriveFont(Font.ITALIC);
setFont(newFont);
- if(column == ObjAttributeTableModel.OBJ_ATTRIBUTE) {
+ if (column == ObjAttributeTableModel.OBJ_ATTRIBUTE) {
setIcon(INHERITANCE_ICON);
}
}
setFont(UIManager.getFont("Label.font"));
- setBorder(BorderFactory.createEmptyBorder(0,5,0,0));
+ setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
return this;
}
public void mouseClicked(MouseEvent event, int x) {
Point point = event.getPoint();
- if(point.x - x <= INHERITANCE_ICON.getIconWidth()) {
+ if (point.x - x <= INHERITANCE_ICON.getIconWidth()) {
ActionManager actionManager =
Application.getInstance().getActionManager();
actionManager.getAction(ObjEntityToSuperEntityAction.class).performAction(null);
}
@@ -477,59 +437,61 @@ public class ObjEntityAttributePanel extends JPanel
implements ObjEntityDisplayL
resetTableModel();
}
- private class ObjAttributeListSelectionListener implements
ListSelectionListener {
+ private void edit(ActionEvent e) {
+ int row = table.getSelectedRow();
+ if (row < 0) {
+ return;
+ }
- public void valueChanged(ListSelectionEvent e) {
- ObjAttribute[] attrs = new ObjAttribute[0];
+ ObjAttributeTableModel model = (ObjAttributeTableModel)
table.getModel();
- if (!e.getValueIsAdjusting() && !((ListSelectionModel)
e.getSource()).isSelectionEmpty()) {
+ // ... show dialog...
+ new ObjAttributeInfoDialog(controller, row, model).startupAction();
-
parentPanel.getRelationshipPanel().getTable().getSelectionModel().clearSelection();
- if
(parentPanel.getRelationshipPanel().getTable().getCellEditor() != null) {
-
parentPanel.getRelationshipPanel().getTable().getCellEditor().stopCellEditing();
- }
-
Application.getInstance().getActionManager().getAction(RemoveAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getAttributePanel());
-
Application.getInstance().getActionManager().getAction(CutAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getAttributePanel());
-
Application.getInstance().getActionManager().getAction(CopyAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getAttributePanel());
-
parentPanel.getResolve().removeActionListener(parentPanel.getRelationshipPanel().getResolver());
- parentPanel.getResolve().removeActionListener(getResolver());
- parentPanel.getResolve().addActionListener(getResolver());
- parentPanel.getResolve().setToolTipText("Edit Attribute");
- parentPanel.getResolve().setEnabled(true);
-
- if (table.getSelectedRow() >= 0) {
- ObjAttributeTableModel model = (ObjAttributeTableModel)
table.getModel();
-
- int[] sel = table.getSelectedRows();
- attrs = new ObjAttribute[sel.length];
-
- for (int i = 0; i < sel.length; i++) {
- attrs[i] = model.getAttribute(sel[i]).getValue();
- }
+ // This is required for a table to be updated properly
+ table.cancelEditing();
- if (sel.length == 1) {
- UIUtil.scrollToSelectedRow(table);
- }
+ // need to refresh selected row... do this by unselecting/selecting
the row
+ table.getSelectionModel().clearSelection();
+ table.select(row);
+ }
- enabledResolve = true;
- } else {
- enabledResolve = false;
- }
- resolveMenu.setEnabled(enabledResolve);
+ private void valueChanged(ListSelectionEvent e) {
+ ObjAttribute[] attrs = new ObjAttribute[0];
+
+ if (!e.getValueIsAdjusting() && !((ListSelectionModel)
e.getSource()).isSelectionEmpty()) {
+
+
parentPanel.getRelationshipPanel().getTable().getSelectionModel().clearSelection();
+ if (parentPanel.getRelationshipPanel().getTable().getCellEditor()
!= null) {
+
parentPanel.getRelationshipPanel().getTable().getCellEditor().stopCellEditing();
}
- mediator.setCurrentObjAttributes(attrs);
- parentPanel.updateActions(attrs);
- }
- }
+ ActionManager actionManager =
Application.getInstance().getActionManager();
+
actionManager.getAction(RemoveAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getAttributePanel());
+
actionManager.getAction(CutAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getAttributePanel());
+
actionManager.getAction(CopyAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getAttributePanel());
- public boolean isEnabledResolve() {
- return enabledResolve;
- }
+ parentPanel.rebindEditButton("Edit Attribute", this::edit);
- public ActionListener getResolver() {
- return resolver;
- }
+ if (table.getSelectedRow() >= 0) {
+ ObjAttributeTableModel model = (ObjAttributeTableModel)
table.getModel();
+
+ int[] sel = table.getSelectedRows();
+ attrs = new ObjAttribute[sel.length];
+ for (int i = 0; i < sel.length; i++) {
+ attrs[i] = model.getAttribute(sel[i]).getValue();
+ }
+ if (sel.length == 1) {
+ UIUtil.scrollToSelectedRow(table);
+ }
+ }
+
+ editMenu.setEnabled(table.getSelectedRow() >= 0);
+ }
+
+ controller.setCurrentObjAttributes(attrs);
+ parentPanel.updateActions(attrs);
+ }
}
\ No newline at end of file
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeRelationshipTab.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeRelationshipTab.java
index bed3aa4f6..f45155d66 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeRelationshipTab.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeRelationshipTab.java
@@ -45,38 +45,26 @@ import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JToolBar;
import java.awt.BorderLayout;
+import java.awt.event.ActionListener;
/**
* Combines ObjEntityAttributeTab and ObjEntityRelationshipTab in JSplitPane.
*/
+public class ObjEntityAttributeRelationshipTab extends JPanel implements
ObjEntityDisplayListener, ObjEntityListener {
-public class ObjEntityAttributeRelationshipTab extends JPanel implements
ObjEntityDisplayListener,
- ObjEntityListener {
+ private final ObjEntityAttributePanel attributePanel;
+ private final ObjEntityRelationshipPanel relationshipPanel;
+ private final JSplitPane splitPane;
+ private final JToolBar toolBar;
+ private final JButton editButton;
- public ObjEntityAttributePanel attributePanel;
- public ObjEntityRelationshipPanel relationshipPanel;
- public JButton resolve = new CayenneAction.CayenneToolbarButton(null, 0);
- private JSplitPane splitPane;
+ public ObjEntityAttributeRelationshipTab(ProjectController controller) {
+ this.editButton = new CayenneAction.CayenneToolbarButton(null, 0);
- private ProjectController mediator;
-
- private CutAttributeRelationshipAction cut;
- private RemoveAttributeRelationshipAction remove;
- private CopyAttributeRelationshipAction copy;
- private JToolBar toolBar;
-
- public ObjEntityAttributeRelationshipTab(ProjectController mediator) {
- this.mediator = mediator;
-
- init();
- initToolBar();
- }
-
- private void init() {
this.setLayout(new BorderLayout());
- attributePanel = new ObjEntityAttributePanel(mediator, this);
- relationshipPanel = new ObjEntityRelationshipPanel(mediator, this);
+ attributePanel = new ObjEntityAttributePanel(controller, this);
+ relationshipPanel = new ObjEntityRelationshipPanel(controller, this);
splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, attributePanel,
relationshipPanel);
splitPane.setOneTouchExpandable(true);
@@ -88,15 +76,12 @@ public class ObjEntityAttributeRelationshipTab extends
JPanel implements ObjEnti
"objEntityAttrRelTab/splitPane/divider");
geometry.bindIntProperty(splitPane,
JSplitPane.DIVIDER_LOCATION_PROPERTY, -1);
- }
- catch (Exception ex) {
+ } catch (Exception ex) {
LoggerFactory.getLogger(getClass()).error("Cannot bind divider
property", ex);
}
add(splitPane);
- }
- private void initToolBar() {
toolBar = new JToolBar();
toolBar.setFloatable(false);
ActionManager actionManager =
Application.getInstance().getActionManager();
@@ -109,20 +94,16 @@ public class ObjEntityAttributeRelationshipTab extends
JPanel implements ObjEnti
toolBar.addSeparator();
Icon ico = ModelerUtil.buildIcon("icon-edit.png");
- resolve.setToolTipText("Edit");
- resolve.setIcon(ico);
- resolve.setDisabledIcon(FilteredIconFactory.createDisabledIcon(ico));
- toolBar.add(resolve).setEnabled(false);
-
- cut = actionManager.getAction(CutAttributeRelationshipAction.class);
- remove =
actionManager.getAction(RemoveAttributeRelationshipAction.class);
- copy = actionManager.getAction(CopyAttributeRelationshipAction.class);
+ editButton.setToolTipText("Edit");
+ editButton.setIcon(ico);
+
editButton.setDisabledIcon(FilteredIconFactory.createDisabledIcon(ico));
+ toolBar.add(editButton).setEnabled(false);
toolBar.addSeparator();
- toolBar.add(remove.buildButton());
+
toolBar.add(actionManager.getAction(RemoveAttributeRelationshipAction.class).buildButton());
toolBar.addSeparator();
- toolBar.add(cut.buildButton(1));
- toolBar.add(copy.buildButton(2));
+
toolBar.add(actionManager.getAction(CutAttributeRelationshipAction.class).buildButton(1));
+
toolBar.add(actionManager.getAction(CopyAttributeRelationshipAction.class).buildButton(2));
toolBar.add(actionManager.getAction(PasteAction.class).buildButton(3));
add(toolBar, BorderLayout.NORTH);
@@ -134,11 +115,16 @@ public class ObjEntityAttributeRelationshipTab extends
JPanel implements ObjEnti
RemoveAttributeRelationshipAction.class,
CutAttributeRelationshipAction.class,
CopyAttributeRelationshipAction.class);
- resolve.setEnabled(params.length > 0);
+ editButton.setEnabled(params.length > 0);
}
- public JButton getResolve() {
- return resolve;
+ public void rebindEditButton(String tooltipText, ActionListener action) {
+ for (ActionListener al : editButton.getActionListeners()) {
+ editButton.removeActionListener(al);
+ }
+ editButton.addActionListener(action);
+ editButton.setToolTipText(tooltipText);
+ editButton.setEnabled(true);
}
public JSplitPane getSplitPane() {
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
index 6f3bb3d53..27e56c783 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
@@ -18,7 +18,6 @@
****************************************************************/
package org.apache.cayenne.modeler.editor;
-import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DeleteRule;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
@@ -41,22 +40,18 @@ import org.apache.cayenne.modeler.event.TablePopupHandler;
import org.apache.cayenne.modeler.pref.TableColumnPreferences;
import org.apache.cayenne.modeler.util.CayenneTable;
import org.apache.cayenne.modeler.util.CellRenderers;
-import org.apache.cayenne.modeler.util.Comparators;
import org.apache.cayenne.modeler.util.DbRelationshipPathComboBoxEditor;
import org.apache.cayenne.modeler.util.ModelerUtil;
import org.apache.cayenne.modeler.util.PanelFactory;
import org.apache.cayenne.modeler.util.UIUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import java.awt.*;
-import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;
@@ -64,10 +59,7 @@ import java.util.List;
/**
* Displays ObjRelationships for the edited ObjEntity.
*/
-public class ObjEntityRelationshipPanel extends JPanel implements
ObjEntityDisplayListener,
- ObjEntityListener, ObjRelationshipListener {
-
- private static final Logger LOGGER =
LoggerFactory.getLogger(ObjEntityRelationshipPanel.class);
+public class ObjEntityRelationshipPanel extends JPanel implements
ObjEntityDisplayListener, ObjEntityListener, ObjRelationshipListener {
private static final ImageIcon INHERITANCE_ICON =
ModelerUtil.buildIcon("icon-inheritance.png");
@@ -78,36 +70,16 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
DeleteRule.deleteRuleName(DeleteRule.DENY),
};
- private ProjectController mediator;
- private CayenneTable table;
- private TableColumnPreferences tablePreferences;
- private ActionListener resolver;
- private ObjEntityAttributeRelationshipTab parentPanel;
- private boolean enabledResolve;//for JBottom "resolve" in
ObjEntityAttrRelationshipTab
-
- /**
- * By now popup menu item is made similar to toolbar button. (i.e. all
functionality
- * is here) This should be probably refactored as Action.
- */
- private JMenuItem resolveMenu;
+ private final ProjectController controller;
+ private final CayenneTable table;
+ private final TableColumnPreferences tablePreferences;
+ private final ObjEntityAttributeRelationshipTab parentPanel;
+ private final JMenuItem editMenu;
- public ObjEntityRelationshipPanel(ProjectController mediator,
ObjEntityAttributeRelationshipTab parentPanel) {
- this.mediator = mediator;
+ public ObjEntityRelationshipPanel(ProjectController controller,
ObjEntityAttributeRelationshipTab parentPanel) {
+ this.controller = controller;
this.parentPanel = parentPanel;
- init();
- initController();
- }
-
- public CayenneTable getTable() {
- return table;
- }
-
- public void setTable(CayenneTable table) {
- this.table = table;
- }
-
- private void init() {
this.setLayout(new BorderLayout());
ActionManager actionManager =
Application.getInstance().getActionManager();
@@ -128,7 +100,7 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
ObjRelationship relationship = tableModel.getRelationship(row);
int columnFromModel =
table.getColumnModel().getColumn(col).getModelIndex();
if (row >= 0 && columnFromModel ==
ObjRelationshipTableModel.REL_NAME) {
- if(relationship.getSourceEntity() !=
tableModel.getEntity()) {
+ if (relationship.getSourceEntity() !=
tableModel.getEntity()) {
TableCellRenderer renderer =
table.getCellRenderer(row, col);
Rectangle rectangle = table.getCellRect(row, col,
false);
((StringRenderer) renderer).mouseClicked(e,
rectangle.x);
@@ -139,10 +111,10 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
// Create and install a popup
Icon ico = ModelerUtil.buildIcon("icon-edit.png");
- resolveMenu = new JMenuItem("Database Mapping", ico);
+ editMenu = new JMenuItem("Edit Relationship", ico);
JPopupMenu popup = new JPopupMenu();
- popup.add(resolveMenu);
+ popup.add(editMenu);
popup.add(actionManager.getAction(RemoveAttributeRelationshipAction.class).buildMenu());
popup.addSeparator();
@@ -152,42 +124,29 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
TablePopupHandler.install(table, popup);
add(PanelFactory.createTablePanel(table, null), BorderLayout.CENTER);
+
+ initController();
}
private void initController() {
- mediator.addObjEntityDisplayListener(this);
- mediator.addObjEntityListener(this);
- mediator.addObjRelationshipListener(this);
-
- resolver = e -> {
- int row = table.getSelectedRow();
- if (row < 0) {
- return;
- }
-
- ObjRelationshipTableModel model = (ObjRelationshipTableModel)
table.getModel();
- new ObjRelationshipInfo(mediator)
- .modifyRelationship(model.getRelationship(row))
- .startupAction();
-
- // This is required for a table to be updated properly
- table.cancelEditing();
+ controller.addObjEntityDisplayListener(this);
+ controller.addObjEntityListener(this);
+ controller.addObjRelationshipListener(this);
- // need to refresh selected row... do this by
unselecting/selecting the row
- table.getSelectionModel().clearSelection();
- table.select(row);
- enabledResolve = false;
- };
- resolveMenu.addActionListener(resolver);
+ editMenu.addActionListener(this::edit);
- table.getSelectionModel().addListSelectionListener(new
ObjRelationshipListSelectionListener());
+ table.getSelectionModel().addListSelectionListener(this::valueChanged);
- mediator.getApplication().getActionManager().setupCutCopyPaste(
+ controller.getApplication().getActionManager().setupCutCopyPaste(
table,
CutAttributeRelationshipAction.class,
CopyAttributeRelationshipAction.class);
}
+ public CayenneTable getTable() {
+ return table;
+ }
+
/**
* Selects a specified relationship in the relationships table.
*/
@@ -204,8 +163,7 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
}
table.select(newSel);
- parentPanel.getResolve().removeActionListener(getResolver());
- parentPanel.getResolve().addActionListener(getResolver());
+ parentPanel.rebindEditButton("Edit Relationship", this::edit);
}
/**
@@ -231,33 +189,7 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
}
ObjEntity objEntity = (ObjEntity) e.getEntity();
- if (objEntity.getSuperEntity() != null) {
- parentPanel.getToolBar().getComponentAtIndex(2).setEnabled(false);
- } else {
- parentPanel.getToolBar().getComponentAtIndex(2).setEnabled(true);
- }
- }
-
- /**
- * Creates a list of ObjEntity names.
- */
- private Object[] createObjEntityComboModel() {
- DataMap map = mediator.getCurrentDataMap();
-
- // this actually happens per CAY-221... can't reproduce though
- if (map == null) {
- LOGGER.warn("createObjEntityComboModel:: Null DataMap.");
- return new Object[0];
- }
-
- if (map.getNamespace() == null) {
- LOGGER.warn("createObjEntityComboModel:: Null DataMap namespace -
" + map);
- return new Object[0];
- }
-
- return map.getNamespace().getObjEntities().stream()
- .sorted(Comparators.getDataMapChildrenComparator())
- .toArray();
+
parentPanel.getToolBar().getComponentAtIndex(2).setEnabled(objEntity.getSuperEntity()
== null);
}
public void objEntityChanged(EntityEvent e) {
@@ -297,7 +229,7 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
}
// If current model added/removed, do nothing.
- ObjEntity entity = mediator.getCurrentObjEntity();
+ ObjEntity entity = controller.getCurrentObjEntity();
if (entity == e.getEntity() || entity == null) {
return;
}
@@ -316,14 +248,12 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
protected void rebuildTable(ObjEntity entity) {
final ObjRelationshipTableModel model = new ObjRelationshipTableModel(
entity,
- mediator,
+ controller,
this);
model.addTableModelListener(e -> {
if (table.getSelectedRow() >= 0) {
- ObjRelationship rel =
model.getRelationship(table.getSelectedRow());
- enabledResolve = rel.getSourceEntity().getDbEntity() != null;
- resolveMenu.setEnabled(enabledResolve);
+
editMenu.setEnabled(model.getRelationship(table.getSelectedRow()).getSourceEntity().getDbEntity()
!= null);
}
});
@@ -333,11 +263,11 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
TableColumn col =
table.getColumnModel().getColumn(ObjRelationshipTableModel.REL_TARGET_PATH);
col.setCellEditor(new DbRelationshipPathComboBoxEditor());
- col.setCellRenderer(new DefaultTableCellRenderer(){
+ col.setCellRenderer(new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected,
hasFocus, row, column);
- setBorder(BorderFactory.createEmptyBorder(0,5,0,0));
+ setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
setToolTipText("To choose relationship press enter two
times.To choose next relationship press dot.");
return this;
}
@@ -350,7 +280,7 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
deleteRulesCombo.setFocusable(false);
deleteRulesCombo.setEditable(true);
((JComponent)
deleteRulesCombo.getEditor().getEditorComponent()).setBorder(null);
- deleteRulesCombo.setBorder(BorderFactory.createEmptyBorder(0,5,0,0));
+ deleteRulesCombo.setBorder(BorderFactory.createEmptyBorder(0, 5, 0,
0));
deleteRulesCombo.setSelectedIndex(0); // Default to the first value
col.setCellEditor(Application.getWidgetFactory().createCellEditor(
deleteRulesCombo));
@@ -364,7 +294,7 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
true);
}
- class EntityRenderer extends StringRenderer {
+ static class EntityRenderer extends StringRenderer {
@Override
public Component getTableCellRendererComponent(
@@ -387,7 +317,7 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
column);
Icon icon = CellRenderers.iconForObject(oldValue);
- if(isSelected) {
+ if (isSelected) {
setForeground(UIManager.getColor("Table.selectionForeground"));
}
setIcon(icon);
@@ -395,7 +325,7 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
}
}
- class StringRenderer extends DefaultTableCellRenderer {
+ static class StringRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(
@@ -430,7 +360,7 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
if (relationship != null
&& relationship.getSourceEntity() != model.getEntity()) {
setForeground(isSelected ? new Color(0xEEEEEE) : Color.GRAY);
- if(column == ObjRelationshipTableModel.REL_NAME) {
+ if (column == ObjRelationshipTableModel.REL_NAME) {
setIcon(INHERITANCE_ICON);
}
} else {
@@ -439,7 +369,7 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
: table.getForeground());
}
- setBorder(BorderFactory.createEmptyBorder(0,5,0,0));
+ setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
setFont(UIManager.getFont("Label.font"));
return this;
@@ -447,65 +377,68 @@ public class ObjEntityRelationshipPanel extends JPanel
implements ObjEntityDispl
public void mouseClicked(MouseEvent event, int x) {
Point point = event.getPoint();
- if(point.x - x <= INHERITANCE_ICON.getIconWidth()) {
+ if (point.x - x <= INHERITANCE_ICON.getIconWidth()) {
ActionManager actionManager =
Application.getInstance().getActionManager();
actionManager.getAction(ObjEntityToSuperEntityAction.class).performAction(null);
}
}
}
- private class ObjRelationshipListSelectionListener implements
ListSelectionListener {
+ private void edit(ActionEvent e) {
+ int row = table.getSelectedRow();
+ if (row < 0) {
+ return;
+ }
+
+ ObjRelationshipTableModel model = (ObjRelationshipTableModel)
table.getModel();
+ new ObjRelationshipInfo(controller)
+ .modifyRelationship(model.getRelationship(row))
+ .startupAction();
- public void valueChanged(ListSelectionEvent e) {
- ObjRelationship[] rels = new ObjRelationship[0];
+ // This is required for a table to be updated properly
+ table.cancelEditing();
- if (!e.getValueIsAdjusting() && !((ListSelectionModel)
e.getSource()).isSelectionEmpty()) {
+ // need to refresh selected row... do this by unselecting/selecting
the row
+ table.getSelectionModel().clearSelection();
+ table.select(row);
+ }
-
parentPanel.getAttributePanel().getTable().getSelectionModel().clearSelection();
- if (parentPanel.getAttributePanel().getTable().getCellEditor()
!= null) {
-
parentPanel.getAttributePanel().getTable().getCellEditor().stopCellEditing();
- }
-
Application.getInstance().getActionManager().getAction(RemoveAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getRelationshipPanel());
-
Application.getInstance().getActionManager().getAction(CutAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getRelationshipPanel());
-
Application.getInstance().getActionManager().getAction(CopyAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getRelationshipPanel());
-
parentPanel.getResolve().removeActionListener(parentPanel.getAttributePanel().getResolver());
- parentPanel.getResolve().removeActionListener(getResolver());
- parentPanel.getResolve().addActionListener(getResolver());
- parentPanel.getResolve().setToolTipText("Edit Relationship");
- parentPanel.getResolve().setEnabled(true);
-
- if (table.getSelectedRow() >= 0) {
- ObjRelationshipTableModel model =
(ObjRelationshipTableModel) table.getModel();
-
- int[] sel = table.getSelectedRows();
- rels = new ObjRelationship[sel.length];
-
- for (int i = 0; i < sel.length; i++) {
- rels[i] = model.getRelationship(sel[i]);
- }
+ private void valueChanged(ListSelectionEvent e) {
+ ObjRelationship[] rels = new ObjRelationship[0];
- if (sel.length == 1) {
- UIUtil.scrollToSelectedRow(table);
- }
+ if (!e.getValueIsAdjusting() && !((ListSelectionModel)
e.getSource()).isSelectionEmpty()) {
- enabledResolve = true;
- } else {
- enabledResolve = false;
+
parentPanel.getAttributePanel().getTable().getSelectionModel().clearSelection();
+ if (parentPanel.getAttributePanel().getTable().getCellEditor() !=
null) {
+
parentPanel.getAttributePanel().getTable().getCellEditor().stopCellEditing();
+ }
+
+ ActionManager actionManager =
Application.getInstance().getActionManager();
+
actionManager.getAction(RemoveAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getRelationshipPanel());
+
actionManager.getAction(CutAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getRelationshipPanel());
+
actionManager.getAction(CopyAttributeRelationshipAction.class).setCurrentSelectedPanel(parentPanel.getRelationshipPanel());
+
+ parentPanel.rebindEditButton("Edit Relationship", this::edit);
+
+ if (table.getSelectedRow() >= 0) {
+ ObjRelationshipTableModel model = (ObjRelationshipTableModel)
table.getModel();
+
+ int[] sel = table.getSelectedRows();
+ rels = new ObjRelationship[sel.length];
+
+ for (int i = 0; i < sel.length; i++) {
+ rels[i] = model.getRelationship(sel[i]);
+ }
+
+ if (sel.length == 1) {
+ UIUtil.scrollToSelectedRow(table);
}
- resolveMenu.setEnabled(enabledResolve);
}
- mediator.setCurrentObjRelationships(rels);
- parentPanel.updateActions(rels);
+ editMenu.setEnabled(table.getSelectedRow() >= 0);
}
- }
-
- public boolean isEnabledResolve() {
- return enabledResolve;
- }
- public ActionListener getResolver() {
- return resolver;
+ controller.setCurrentObjRelationships(rels);
+ parentPanel.updateActions(rels);
}
-
}
\ No newline at end of file
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/ProjectOnSaveListener.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/ProjectOnSaveListener.java
index 492d04268..6596f430d 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/ProjectOnSaveListener.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/ProjectOnSaveListener.java
@@ -20,11 +20,13 @@ package org.apache.cayenne.modeler.event;
import java.util.EventListener;
-/**
- * Interface for classes that are interested in ProjectOnSave events.
+/**
+ * Interface for classes that are interested in ProjectOnSave events.
*/
-public interface ProjectOnSaveListener extends EventListener{
-
- /** Changes made before saving project */
- public void beforeSaveChanges(ProjectOnSaveEvent e);
+public interface ProjectOnSaveListener extends EventListener {
+
+ /**
+ * Changes made before saving project
+ */
+ void beforeSaveChanges(ProjectOnSaveEvent e);
}
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java
index e2c4656c7..30472f14e 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java
@@ -117,7 +117,6 @@ public abstract class CayenneController {
protected void reportError(String title, Throwable th) {
th = Util.unwindException(th);
LOGGER.info("Error in " + getClass().getName(), th);
- th.printStackTrace();
JOptionPane.showMessageDialog(
getView(),