Search in sources :

Example 21 with QueryEvent

use of org.apache.cayenne.configuration.event.QueryEvent in project cayenne by apache.

the class SelectQueryPrefetchTab method addPrefetch.

public void addPrefetch(String prefetch) {
    // check if such prefetch already exists
    if (!selectQuery.getPrefetchesMap().isEmpty() && selectQuery.getPrefetchesMap().containsKey(prefetch)) {
        return;
    }
    // default value id disjoint
    selectQuery.addPrefetch(prefetch, PrefetchModel.getPrefetchType(DISJOINT_PREFETCH_SEMANTICS));
    // reset the model, since it is immutable
    table.setModel(createTableModel());
    setUpPrefetchBox(table.getColumnModel().getColumn(2));
    mediator.fireQueryEvent(new QueryEvent(this, selectQuery));
}
Also used : QueryEvent(org.apache.cayenne.configuration.event.QueryEvent)

Example 22 with QueryEvent

use of org.apache.cayenne.configuration.event.QueryEvent in project cayenne by apache.

the class SelectQueryPrefetchTab method removePrefetch.

public void removePrefetch(String prefetch) {
    selectQuery.removePrefetch(prefetch);
    // reset the model, since it is immutable
    table.setModel(createTableModel());
    setUpPrefetchBox(table.getColumnModel().getColumn(2));
    mediator.fireQueryEvent(new QueryEvent(this, selectQuery));
}
Also used : QueryEvent(org.apache.cayenne.configuration.event.QueryEvent)

Example 23 with QueryEvent

use of org.apache.cayenne.configuration.event.QueryEvent in project cayenne by apache.

the class BaseQueryMainTab method setQueryName.

/**
 * Initializes Query name from string.
 */
void setQueryName(String newName) {
    if (newName != null && newName.trim().length() == 0) {
        newName = null;
    }
    QueryDescriptor query = getQuery();
    if (query == null) {
        return;
    }
    if (Util.nullSafeEquals(newName, query.getName())) {
        return;
    }
    if (newName == null) {
        throw new ValidationException("SelectQuery name is required.");
    }
    DataMap map = mediator.getCurrentDataMap();
    QueryDescriptor matchingQuery = map.getQueryDescriptor(newName);
    if (matchingQuery == null) {
        // completely new name, set new name for entity
        QueryEvent e = new QueryEvent(this, query, query.getName());
        ProjectUtil.setQueryName(map, query, newName);
        mediator.fireQueryEvent(e);
    } else if (matchingQuery != query) {
        // there is a query with the same name
        throw new ValidationException("There is another query named '" + newName + "'. Use a different name.");
    }
}
Also used : QueryDescriptor(org.apache.cayenne.map.QueryDescriptor) ValidationException(org.apache.cayenne.validation.ValidationException) QueryEvent(org.apache.cayenne.configuration.event.QueryEvent) DataMap(org.apache.cayenne.map.DataMap)

Example 24 with QueryEvent

use of org.apache.cayenne.configuration.event.QueryEvent in project cayenne by apache.

the class EjbqlQueryMainTab method setQueryComment.

private void setQueryComment(String text) {
    QueryDescriptor query = getQuery();
    if (query == null) {
        return;
    }
    ObjectInfo.putToMetaData(mediator.getApplication().getMetaData(), query, ObjectInfo.COMMENT, text);
    mediator.fireQueryEvent(new QueryEvent(this, query));
}
Also used : QueryDescriptor(org.apache.cayenne.map.QueryDescriptor) QueryEvent(org.apache.cayenne.configuration.event.QueryEvent)

Example 25 with QueryEvent

use of org.apache.cayenne.configuration.event.QueryEvent in project cayenne by apache.

the class ImportEOModelAction method addDataMap.

/**
 * Adds DataMap into the project.
 */
protected void addDataMap(DataMap map, DataMap currentMap) {
    ProjectController mediator = getProjectController();
    if (currentMap != null) {
        // merge with existing map... have to memorize map state before and after
        // to do the right events
        Collection<ObjEntity> originalOE = new ArrayList<>(currentMap.getObjEntities());
        Collection<DbEntity> originalDE = new ArrayList<>(currentMap.getDbEntities());
        Collection<QueryDescriptor> originalQueries = new ArrayList<>(currentMap.getQueryDescriptors());
        currentMap.mergeWithDataMap(map);
        map = currentMap;
        // postprocess changes
        Collection<ObjEntity> newOE = new ArrayList<>(currentMap.getObjEntities());
        Collection<DbEntity> newDE = new ArrayList<>(currentMap.getDbEntities());
        Collection<QueryDescriptor> newQueries = new ArrayList<>(currentMap.getQueryDescriptors());
        EntityEvent entityEvent = new EntityEvent(Application.getFrame(), null);
        QueryEvent queryEvent = new QueryEvent(Application.getFrame(), null);
        // 1. ObjEntities
        Collection<ObjEntity> addedOE = new ArrayList<>(newOE);
        addedOE.removeAll(originalOE);
        for (ObjEntity e : addedOE) {
            entityEvent.setEntity(e);
            entityEvent.setId(MapEvent.ADD);
            mediator.fireObjEntityEvent(entityEvent);
        }
        Collection<ObjEntity> removedOE = new ArrayList<>(originalOE);
        removedOE.removeAll(newOE);
        for (ObjEntity e : removedOE) {
            entityEvent.setEntity(e);
            entityEvent.setId(MapEvent.REMOVE);
            mediator.fireObjEntityEvent(entityEvent);
        }
        // 2. DbEntities
        Collection<DbEntity> addedDE = new ArrayList<>(newDE);
        addedDE.removeAll(originalDE);
        for (DbEntity e : addedDE) {
            entityEvent.setEntity(e);
            entityEvent.setId(MapEvent.ADD);
            mediator.fireDbEntityEvent(entityEvent);
        }
        Collection<DbEntity> removedDE = new ArrayList<>(originalDE);
        removedDE.removeAll(newDE);
        for (DbEntity e : removedDE) {
            entityEvent.setEntity(e);
            entityEvent.setId(MapEvent.REMOVE);
            mediator.fireDbEntityEvent(entityEvent);
        }
        // 3. queries
        Collection<QueryDescriptor> addedQueries = new ArrayList<>(newQueries);
        addedQueries.removeAll(originalQueries);
        for (QueryDescriptor q : addedQueries) {
            queryEvent.setQuery(q);
            queryEvent.setId(MapEvent.ADD);
            mediator.fireQueryEvent(queryEvent);
        }
        Collection<QueryDescriptor> removedQueries = new ArrayList<>(originalQueries);
        removedQueries.removeAll(newQueries);
        for (QueryDescriptor q : removedQueries) {
            queryEvent.setQuery(q);
            queryEvent.setId(MapEvent.REMOVE);
            mediator.fireQueryEvent(queryEvent);
        }
        mediator.fireDataMapDisplayEvent(new DataMapDisplayEvent(Application.getFrame(), map, (DataChannelDescriptor) mediator.getProject().getRootNode(), mediator.getCurrentDataNode()));
    } else {
        // fix DataMap name, as there maybe a map with the same name already
        ConfigurationNode root = mediator.getProject().getRootNode();
        map.setName(NameBuilder.builder(map, root).baseName(map.getName()).name());
        // side effect of this operation is that if a node was created, this DataMap
        // will be linked with it...
        mediator.addDataMap(Application.getFrame(), map);
    }
}
Also used : DataChannelDescriptor(org.apache.cayenne.configuration.DataChannelDescriptor) ArrayList(java.util.ArrayList) QueryEvent(org.apache.cayenne.configuration.event.QueryEvent) DataMapDisplayEvent(org.apache.cayenne.modeler.event.DataMapDisplayEvent) ProjectController(org.apache.cayenne.modeler.ProjectController) QueryDescriptor(org.apache.cayenne.map.QueryDescriptor) ObjEntity(org.apache.cayenne.map.ObjEntity) DbEntity(org.apache.cayenne.map.DbEntity) ConfigurationNode(org.apache.cayenne.configuration.ConfigurationNode) EntityEvent(org.apache.cayenne.map.event.EntityEvent)

Aggregations

QueryEvent (org.apache.cayenne.configuration.event.QueryEvent)25 QueryDescriptor (org.apache.cayenne.map.QueryDescriptor)12 ProcedureQueryDescriptor (org.apache.cayenne.map.ProcedureQueryDescriptor)4 ValidationException (org.apache.cayenne.validation.ValidationException)4 DataMap (org.apache.cayenne.map.DataMap)3 QueryDisplayEvent (org.apache.cayenne.modeler.event.QueryDisplayEvent)3 ArrayList (java.util.ArrayList)2 DataChannelDescriptor (org.apache.cayenne.configuration.DataChannelDescriptor)2 EntityEvent (org.apache.cayenne.map.event.EntityEvent)2 ProjectController (org.apache.cayenne.modeler.ProjectController)2 Ordering (org.apache.cayenne.query.Ordering)2 ActionEvent (java.awt.event.ActionEvent)1 ActionListener (java.awt.event.ActionListener)1 EventObject (java.util.EventObject)1 BadLocationException (javax.swing.text.BadLocationException)1 Document (javax.swing.text.Document)1 ConfigurationNode (org.apache.cayenne.configuration.ConfigurationNode)1 DataMapEvent (org.apache.cayenne.configuration.event.DataMapEvent)1 DataNodeEvent (org.apache.cayenne.configuration.event.DataNodeEvent)1 DomainEvent (org.apache.cayenne.configuration.event.DomainEvent)1