Skip to content

Commit bb61527

Browse files
committed
Modeler cleanup: fix undo Db/Obj handling
1 parent 2b3e265 commit bb61527

22 files changed

Lines changed: 661 additions & 477 deletions

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/CreateAttributeAction.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141
import org.apache.cayenne.modeler.event.display.EmbeddableAttributeDisplayEvent;
4242
import org.apache.cayenne.modeler.event.display.ObjAttributeDisplayEvent;
4343
import org.apache.cayenne.modeler.toolkit.AppAction;
44-
import org.apache.cayenne.modeler.undo.CreateAttributeUndoableEdit;
44+
import org.apache.cayenne.modeler.undo.CreateDbAttributeUndoableEdit;
45+
import org.apache.cayenne.modeler.undo.CreateObjAttributeUndoableEdit;
4546
import org.apache.cayenne.modeler.undo.CreateEmbAttributeUndoableEdit;
4647

4748
import java.awt.event.ActionEvent;
@@ -128,7 +129,7 @@ public void performAction(ActionEvent e) {
128129
createObjAttribute(session.getSelectedDataMap(), objEntity, attr);
129130

130131
app.getUndoManager().addEdit(
131-
new CreateAttributeUndoableEdit(session, (DataChannelDescriptor) session.project().getRootNode(),
132+
new CreateObjAttributeUndoableEdit(session, (DataChannelDescriptor) session.project().getRootNode(),
132133
session.getSelectedDataMap(), objEntity, attr));
133134
} else if (getProjectSession().getSelectedDbEntity() != null) {
134135
DbEntity dbEntity = getProjectSession().getSelectedDbEntity();
@@ -141,7 +142,7 @@ public void performAction(ActionEvent e) {
141142
createDbAttribute(session.getSelectedDataMap(), dbEntity, attr);
142143

143144
app.getUndoManager().addEdit(
144-
new CreateAttributeUndoableEdit(session, (DataChannelDescriptor) session.project().getRootNode(),
145+
new CreateDbAttributeUndoableEdit(session, (DataChannelDescriptor) session.project().getRootNode(),
145146
session.getSelectedDataMap(), dbEntity, attr));
146147
}
147148
}

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/RemoveAction.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,13 @@
5959
import org.apache.cayenne.modeler.project.ProjectSession;
6060
import org.apache.cayenne.modeler.ui.project.editor.objentity.callbacks.CallbackType;
6161
import org.apache.cayenne.modeler.ui.project.editor.objentity.callbacks.ObjCallbackMethod;
62-
import org.apache.cayenne.modeler.undo.RemoveAttributeUndoableEdit;
62+
import org.apache.cayenne.modeler.undo.RemoveDbAttributeUndoableEdit;
63+
import org.apache.cayenne.modeler.undo.RemoveDbRelationshipUndoableEdit;
64+
import org.apache.cayenne.modeler.undo.RemoveEmbeddableAttributeUndoableEdit;
65+
import org.apache.cayenne.modeler.undo.RemoveObjAttributeUndoableEdit;
66+
import org.apache.cayenne.modeler.undo.RemoveObjRelationshipUndoableEdit;
6367
import org.apache.cayenne.modeler.undo.RemoveCallbackMethodUndoableEdit;
6468
import org.apache.cayenne.modeler.undo.RemoveCompoundUndoableEdit;
65-
import org.apache.cayenne.modeler.undo.RemoveRelationshipUndoableEdit;
6669
import org.apache.cayenne.modeler.undo.RemoveUndoableEdit;
6770

6871
import javax.swing.*;
@@ -230,7 +233,7 @@ private void removeEmbAttributes(ProjectSession session, ConfirmRemoveDialog dia
230233
Embeddable embeddable = session.getSelectedEmbeddable();
231234

232235
app.getUndoManager()
233-
.addEdit(new RemoveAttributeUndoableEdit(session,embeddable, embAttrs));
236+
.addEdit(new RemoveEmbeddableAttributeUndoableEdit(session, embeddable, embAttrs));
234237

235238
for (EmbeddableAttribute attrib : embAttrs) {
236239
embeddable.removeAttribute(attrib.getName());
@@ -251,7 +254,7 @@ private void removeObjAttributes(ProjectSession session, ConfirmRemoveDialog dia
251254

252255
ObjEntity entity = session.getSelectedObjEntity();
253256

254-
app.getUndoManager().addEdit(new RemoveAttributeUndoableEdit(session,entity, objAttrs));
257+
app.getUndoManager().addEdit(new RemoveObjAttributeUndoableEdit(session, entity, objAttrs));
255258

256259
for (ObjAttribute attrib : objAttrs) {
257260
entity.removeAttribute(attrib.getName());
@@ -272,7 +275,7 @@ private void removeDbAttributes(ProjectSession session, ConfirmRemoveDialog dial
272275
DbEntity entity = session.getSelectedDbEntity();
273276

274277
app.getUndoManager()
275-
.addEdit(new RemoveAttributeUndoableEdit(session,entity, dbAttrs));
278+
.addEdit(new RemoveDbAttributeUndoableEdit(session, entity, dbAttrs));
276279

277280
for (DbAttribute attrib : dbAttrs) {
278281
entity.removeAttribute(attrib.getName());
@@ -298,7 +301,7 @@ private void removeDBRelationships(ProjectSession session, ConfirmRemoveDialog d
298301
}
299302

300303
DataMapOps.removeBrokenObjToDbMappings(session.getSelectedDataMap());
301-
app.getUndoManager().addEdit(new RemoveRelationshipUndoableEdit(session,entity, dbRels));
304+
app.getUndoManager().addEdit(new RemoveDbRelationshipUndoableEdit(session, entity, dbRels));
302305
}
303306
}
304307
}
@@ -312,7 +315,7 @@ private void removeObjRelationships(ProjectSession session, ConfirmRemoveDialog
312315
ObjRelationshipEvent e = ObjRelationshipEvent.ofRemove(app.getFrame(), rel, entity);
313316
session.fireObjRelationshipEvent(e);
314317
}
315-
app.getUndoManager().addEdit(new RemoveRelationshipUndoableEdit(session,entity, rels));
318+
app.getUndoManager().addEdit(new RemoveObjRelationshipUndoableEdit(session, entity, rels));
316319
}
317320
}
318321

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/RemoveAttributeAction.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@
3636
import org.apache.cayenne.modeler.project.ObjEntityOps;
3737
import org.apache.cayenne.modeler.ui.confirmremove.ConfirmRemoveDialog;
3838
import org.apache.cayenne.modeler.project.ProjectSession;
39-
import org.apache.cayenne.modeler.undo.RemoveAttributeUndoableEdit;
39+
import org.apache.cayenne.modeler.undo.RemoveDbAttributeUndoableEdit;
40+
import org.apache.cayenne.modeler.undo.RemoveEmbeddableAttributeUndoableEdit;
41+
import org.apache.cayenne.modeler.undo.RemoveObjAttributeUndoableEdit;
4042

4143
import java.awt.event.ActionEvent;
4244
import java.util.Collection;
@@ -87,7 +89,7 @@ public void performAction(ActionEvent e, boolean allowAsking) {
8789
Embeddable embeddable = session.getSelectedEmbeddable();
8890

8991
app.getUndoManager().addEdit(
90-
new RemoveAttributeUndoableEdit(session,embeddable, embAttrs));
92+
new RemoveEmbeddableAttributeUndoableEdit(session, embeddable, embAttrs));
9193

9294
removeEmbeddableAttributes(embeddable, embAttrs);
9395

@@ -99,7 +101,7 @@ public void performAction(ActionEvent e, boolean allowAsking) {
99101

100102
ObjEntity entity = session.getSelectedObjEntity();
101103

102-
app.getUndoManager().addEdit(new RemoveAttributeUndoableEdit(session,entity, objAttrs));
104+
app.getUndoManager().addEdit(new RemoveObjAttributeUndoableEdit(session, entity, objAttrs));
103105

104106
removeObjAttributes(entity, objAttrs);
105107
}
@@ -110,7 +112,7 @@ public void performAction(ActionEvent e, boolean allowAsking) {
110112

111113
DbEntity entity = session.getSelectedDbEntity();
112114

113-
app.getUndoManager().addEdit(new RemoveAttributeUndoableEdit(session,entity, dbAttrs));
115+
app.getUndoManager().addEdit(new RemoveDbAttributeUndoableEdit(session, entity, dbAttrs));
114116

115117
removeDbAttributes(session.getSelectedDataMap(), entity, dbAttrs);
116118
}

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/RemoveRelationshipAction.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
import org.apache.cayenne.modeler.project.DataMapOps;
3232
import org.apache.cayenne.modeler.ui.confirmremove.ConfirmRemoveDialog;
3333
import org.apache.cayenne.modeler.project.ProjectSession;
34-
import org.apache.cayenne.modeler.undo.RemoveRelationshipUndoableEdit;
34+
import org.apache.cayenne.modeler.undo.RemoveDbRelationshipUndoableEdit;
35+
import org.apache.cayenne.modeler.undo.RemoveObjRelationshipUndoableEdit;
3536

3637
import java.awt.event.ActionEvent;
3738

@@ -78,7 +79,7 @@ public void performAction(ActionEvent e, boolean allowAsking) {
7879
.shouldDelete("selected ObjRelationships"))) {
7980
ObjEntity entity = session.getSelectedObjEntity();
8081
removeObjRelationships(entity, rels);
81-
app.getUndoManager().addEdit(new RemoveRelationshipUndoableEdit(session,entity, rels));
82+
app.getUndoManager().addEdit(new RemoveObjRelationshipUndoableEdit(session, entity, rels));
8283
}
8384
} else {
8485
DbRelationship[] dbRels = getProjectSession()
@@ -90,7 +91,7 @@ public void performAction(ActionEvent e, boolean allowAsking) {
9091
.shouldDelete("selected DbRelationships"))) {
9192
DbEntity entity = session.getSelectedDbEntity();
9293
removeDbRelationships(entity, dbRels);
93-
app.getUndoManager().addEdit(new RemoveRelationshipUndoableEdit(session,entity, dbRels));
94+
app.getUndoManager().addEdit(new RemoveDbRelationshipUndoableEdit(session, entity, dbRels));
9495
}
9596
}
9697
}

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/autorelationship/InferRelationshipsDialog.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import org.apache.cayenne.modeler.service.classloader.ModelerClassLoader;
2929
import org.apache.cayenne.modeler.toolkit.ProjectDialog;
3030
import org.apache.cayenne.modeler.project.ProjectSession;
31-
import org.apache.cayenne.modeler.undo.CreateRelationshipUndoableEdit;
31+
import org.apache.cayenne.modeler.undo.CreateDbRelationshipUndoableEdit;
3232
import org.apache.cayenne.modeler.undo.InferRelationshipsUndoableEdit;
3333
import org.apache.cayenne.modeler.NameGeneratorPreferences;
3434
import org.slf4j.Logger;
@@ -382,7 +382,7 @@ private void generateAction() {
382382
rel.setToMany(temp.isToMany());
383383
temp.getSource().addRelationship(rel);
384384

385-
undoableEdit.addEdit(new CreateRelationshipUndoableEdit(
385+
undoableEdit.addEdit(new CreateDbRelationshipUndoableEdit(
386386
session, temp.getSource(), new DbRelationship[]{rel}));
387387
}
388388
JOptionPane.showMessageDialog(this, getSelectedEntitiesSize() + " relationships generated");

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbrelationship/DbRelationshipDialog.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141
import org.apache.cayenne.modeler.toolkit.combobox.CMAutoCompleteComboBoxCellEditor;
4242
import org.apache.cayenne.modeler.toolkit.combobox.CMComboBox;
4343
import org.apache.cayenne.modeler.toolkit.table.CMTable;
44-
import org.apache.cayenne.modeler.undo.CreateRelationshipUndoableEdit;
45-
import org.apache.cayenne.modeler.undo.RelationshipUndoableEdit;
44+
import org.apache.cayenne.modeler.undo.CreateDbRelationshipUndoableEdit;
45+
import org.apache.cayenne.modeler.undo.DbRelationshipUndoableEdit;
4646
import org.apache.cayenne.project.extension.info.ObjectInfo;
4747

4848
import javax.swing.*;
@@ -85,7 +85,7 @@ public class DbRelationshipDialog extends ProjectDialog {
8585
private final DbRelationship reverseRelationship;
8686
private final boolean create;
8787
private boolean saved;
88-
private final RelationshipUndoableEdit undo;
88+
private final DbRelationshipUndoableEdit undo;
8989

9090
// dialog-local editing state, applied to the relationship only on save
9191
private DbEntity currentTarget;
@@ -117,7 +117,7 @@ private DbRelationshipDialog(ProjectSession session, Window owner, DbRelationshi
117117

118118
this.relationship = relationship;
119119
this.create = create;
120-
this.undo = new RelationshipUndoableEdit(session, relationship);
120+
this.undo = new DbRelationshipUndoableEdit(session, relationship);
121121
this.reverseRelationship = relationship.getReverseRelationship();
122122
this.currentTarget = relationship.getTargetEntity();
123123

@@ -389,7 +389,7 @@ private void save() {
389389

390390
session.displayDbRelationship(rde);
391391
app.getUndoManager().addEdit(
392-
new CreateRelationshipUndoableEdit(session, relationship.getSourceEntity(),
392+
new CreateDbRelationshipUndoableEdit(session, relationship.getSourceEntity(),
393393
new DbRelationship[]{relationship}));
394394

395395
} else {

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipInfoDialog.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141
import org.apache.cayenne.modeler.toolkit.tree.EntityTreeModel;
4242
import org.apache.cayenne.modeler.toolkit.tree.EntityTreeRelationshipFilter;
4343
import org.apache.cayenne.modeler.ui.dbrelationship.DbRelationshipDialog;
44-
import org.apache.cayenne.modeler.undo.CreateRelationshipUndoableEdit;
45-
import org.apache.cayenne.modeler.undo.RelationshipUndoableEdit;
44+
import org.apache.cayenne.modeler.undo.CreateObjRelationshipUndoableEdit;
45+
import org.apache.cayenne.modeler.undo.ObjRelationshipUndoableEdit;
4646
import org.apache.cayenne.project.extension.info.ObjectInfo;
4747
import org.apache.cayenne.util.DeleteRuleUpdater;
4848

@@ -102,7 +102,7 @@ public class ObjRelationshipInfoDialog extends ProjectDialog implements TreeSele
102102
private String targetCollection;
103103
private String mapKey;
104104

105-
private RelationshipUndoableEdit undo;
105+
private ObjRelationshipUndoableEdit undo;
106106
private boolean isCreate;
107107

108108
public ObjRelationshipInfoDialog(ProjectSession session, Window owner) {
@@ -149,7 +149,7 @@ public ObjRelationshipInfoDialog createRelationship(ObjEntity objEntity) {
149149

150150
public ObjRelationshipInfoDialog modifyRelationship(ObjRelationship rel) {
151151
this.relationship = rel;
152-
this.undo = new RelationshipUndoableEdit(session, rel);
152+
this.undo = new ObjRelationshipUndoableEdit(session, rel);
153153

154154
// current limitation is that an ObjRelationship must have source
155155
// and target entities present, with DbEntities chosen.
@@ -320,7 +320,7 @@ private void saveMapping() {
320320
if (isCreate) {
321321
relationship.getSourceEntity().addRelationship(relationship);
322322
fireObjRelationshipEvent(this);
323-
app.getUndoManager().addEdit(new CreateRelationshipUndoableEdit(
323+
app.getUndoManager().addEdit(new CreateObjRelationshipUndoableEdit(
324324
session, relationship.getSourceEntity(), new ObjRelationship[]{relationship}));
325325
} else {
326326
session.fireObjRelationshipEvent(ObjRelationshipEvent.ofChange(this, relationship,

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateAttributeUndoableEdit.java

Lines changed: 0 additions & 118 deletions
This file was deleted.

0 commit comments

Comments
 (0)