Search in sources :

Example 1 with InferRelationshipsUndoableEdit

use of org.apache.cayenne.modeler.undo.InferRelationshipsUndoableEdit in project cayenne by apache.

the class InferRelationshipsController method generateAction.

public void generateAction() {
    ProjectController mediator = application.getFrameController().getProjectController();
    InferRelationshipsUndoableEdit undoableEdit = new InferRelationshipsUndoableEdit();
    for (InferredRelationship temp : selectedEntities) {
        DbRelationship rel = new DbRelationship(uniqueRelName(temp.getSource(), temp.getName()));
        RelationshipEvent e = new RelationshipEvent(Application.getFrame(), rel, temp.getSource(), MapEvent.ADD);
        mediator.fireDbRelationshipEvent(e);
        rel.setSourceEntity(temp.getSource());
        rel.setTargetEntityName(temp.getTarget());
        DbJoin join = new DbJoin(rel, temp.getJoinSource().getName(), temp.getJoinTarget().getName());
        rel.addJoin(join);
        rel.setToMany(temp.isToMany());
        temp.getSource().addRelationship(rel);
        undoableEdit.addEdit(new CreateRelationshipUndoableEdit(temp.getSource(), new DbRelationship[] { rel }));
    }
    JOptionPane.showMessageDialog(this.getView(), getSelectedEntitiesSize() + " relationships generated");
    view.dispose();
}
Also used : DbRelationship(org.apache.cayenne.map.DbRelationship) CreateRelationshipUndoableEdit(org.apache.cayenne.modeler.undo.CreateRelationshipUndoableEdit) DbJoin(org.apache.cayenne.map.DbJoin) ProjectController(org.apache.cayenne.modeler.ProjectController) InferRelationshipsUndoableEdit(org.apache.cayenne.modeler.undo.InferRelationshipsUndoableEdit) RelationshipEvent(org.apache.cayenne.map.event.RelationshipEvent)

Aggregations

DbJoin (org.apache.cayenne.map.DbJoin)1 DbRelationship (org.apache.cayenne.map.DbRelationship)1 RelationshipEvent (org.apache.cayenne.map.event.RelationshipEvent)1 ProjectController (org.apache.cayenne.modeler.ProjectController)1 CreateRelationshipUndoableEdit (org.apache.cayenne.modeler.undo.CreateRelationshipUndoableEdit)1 InferRelationshipsUndoableEdit (org.apache.cayenne.modeler.undo.InferRelationshipsUndoableEdit)1