/** * ObjEntity property changed. May be name, attribute or relationship added * or removed, etc. Attribute and relationship property changes are handled * in respective listeners. * * @since 1.2 */ public void objEntityChanged(EntityEvent e) { if ((e == null) || (e.getEntity() != this)) { // not our concern return; } // handle entity name changes if (e.getId() == EntityEvent.CHANGE && e.isNameChange()) { String oldName = e.getOldName(); String newName = e.getNewName(); DataMap map = getDataMap(); if (map != null) { ObjEntity oe = (ObjEntity) e.getEntity(); for (ObjRelationship relationship : oe.getRelationships()) { relationship = relationship.getReverseRelationship(); if (null != relationship && relationship.targetEntityName.equals(oldName)) { relationship.targetEntityName = newName; } } } } }
/** Creates a Entity change event. */ public EntityEvent(Object src, Entity entity) { super(src); setEntity(entity); }
/** Creates a Entity event of a specified type. */ public EntityEvent(Object src, Entity entity, int id) { this(src, entity); setId(id); }
/** * Checks if entity name has changed, then changes map key */ protected void remapEntity(EntityEvent e) { if (e.isNameChange()) { entityCells.put(e.getNewName(), entityCells.remove(e.getOldName())); } }
/** * Event handler for ObjEntity and DbEntity removals. Removes a tree node for the * entity and selects its sibling. */ protected void entityRemoved(EntityEvent e) { if (e.getSource() == this) { return; } // remove from DataMap tree removeNode(new Object[] { e.getDomain() != null ? e.getDomain() : (DataChannelDescriptor) mediator .getProject() .getRootNode(), e.getEntity().getDataMap(), e.getEntity() }); }
/** * Informs all listeners of the EntityEvent. Does not send the event to its * originator. */ public void fireObjEntityEvent(EntityEvent e) { setDirty(true); if (e.getEntity().getDataMap() != null && e.getId() == MapEvent.CHANGE) { e.getEntity().getDataMap().objEntityChanged(e); } if (e.getId() == MapEvent.REMOVE) { removeFromHistory(e); } for (EventListener listener : listenerList.getListeners(ObjEntityListener.class)) { ObjEntityListener temp = (ObjEntityListener) listener; switch (e.getId()) { case MapEvent.ADD: temp.objEntityAdded(e); break; case MapEvent.CHANGE: temp.objEntityChanged(e); break; case MapEvent.REMOVE: temp.objEntityRemoved(e); break; default: throw new IllegalArgumentException("Invalid EntityEvent type: " + e.getId()); } } }
/** * Makes Entity visible and selected. * <ul> * <li>If entity is from the current node, refreshes the node making sure changes in * the entity name are reflected.</li> * <li>If entity is in a different node, makes that node visible and selected.</li> * </ul> */ protected void entityChanged(EntityEvent e) { if (e.isNameChange()) { Object[] path = new Object[] { e.getDomain() != null ? e.getDomain() : (DataChannelDescriptor) mediator.getProject().getRootNode(), e.getEntity().getDataMap(), e.getEntity() }; updateNode(path); positionNode(path, Comparators.getDataMapChildrenComparator()); showNode(path); } }
Collection newQueries = new ArrayList(currentMap.getQueryDescriptors()); EntityEvent entityEvent = new EntityEvent(Application.getFrame(), null); QueryEvent queryEvent = new QueryEvent(Application.getFrame(), null); while (it.hasNext()) { Entity e = (Entity) it.next(); entityEvent.setEntity(e); entityEvent.setId(MapEvent.ADD); mediator.fireObjEntityEvent(entityEvent); while (it.hasNext()) { Entity e = (Entity) it.next(); entityEvent.setEntity(e); entityEvent.setId(MapEvent.REMOVE); mediator.fireObjEntityEvent(entityEvent); while (it.hasNext()) { Entity e = (Entity) it.next(); entityEvent.setEntity(e); entityEvent.setId(MapEvent.ADD); mediator.fireDbEntityEvent(entityEvent); while (it.hasNext()) { Entity e = (Entity) it.next(); entityEvent.setEntity(e); entityEvent.setId(MapEvent.REMOVE); mediator.fireDbEntityEvent(entityEvent);
public void actionPerformed(ActionEvent e) { ObjEntity entity = mediator.getCurrentObjEntity(); if (entity != null) { entity.setExcludingDefaultListeners(excludeDefaultListeners .isSelected()); mediator.fireObjEntityEvent(new EntityEvent(this, entity)); } } });
/** * Event handler for ObjEntity and DbEntity additions. Adds a tree node for the entity * and make it selected. */ protected void entityAdded(EntityEvent e) { Entity entity = e.getEntity(); DefaultMutableTreeNode mapNode = getProjectModel().getNodeForObjectPath( new Object[] { e.getDomain() != null ? e.getDomain() : (DataChannelDescriptor) mediator .getProject() .getRootNode(), e.getEntity().getDataMap() }); if (mapNode == null) { return; } DefaultMutableTreeNode currentNode = new DefaultMutableTreeNode(entity, false); positionNode(mapNode, currentNode, Comparators.getDataMapChildrenComparator()); showNode(currentNode); }
/** Creates a Entity name change event.*/ public EntityEvent(Object src, Entity entity, String oldName) { this(src, entity); setOldName(oldName); }
/** * Removes current DbEntity from its DataMap and fires "remove" EntityEvent. */ public void removeDbEntity(DataMap map, DbEntity ent) { ProjectController mediator = getProjectController(); EntityEvent e = new EntityEvent(Application.getFrame(), ent, MapEvent.REMOVE); e.setDomain((DataChannelDescriptor) mediator.getProject().getRootNode()); map.removeDbEntity(ent.getName(), true); mediator.fireDbEntityEvent(e); }
/** * Informs all listeners of the EntityEvent. Does not send the event to its * originator. */ public void fireDbEntityEvent(EntityEvent e) { setDirty(true); if (e.getEntity().getDataMap() != null && e.getId() == MapEvent.CHANGE) { e.getEntity().getDataMap().dbEntityChanged(e); } if (e.getId() == MapEvent.REMOVE) { removeFromHistory(e); } for (EventListener listener : listenerList.getListeners(DbEntityListener.class)) { DbEntityListener temp = (DbEntityListener) listener; switch (e.getId()) { case MapEvent.ADD: temp.dbEntityAdded(e); break; case MapEvent.CHANGE: temp.dbEntityChanged(e); break; case MapEvent.REMOVE: temp.dbEntityRemoved(e); break; default: throw new IllegalArgumentException("Invalid EntityEvent type: " + e.getId()); } } }
/** * Refresh the list of db entities (targets). Also refresh the table in case some db * relationships were deleted. */ private void reloadEntityList(EntityEvent e) { if (e.getSource() == this) return; // If current model added/removed, do nothing. if (mediator.getCurrentDbEntity() == e.getEntity()) return; // If this is just loading new currentDbEntity, do nothing if (mediator.getCurrentDbEntity() == null) return; targetCombo.setModel(createComboModel(e.getEntity())); DbRelationshipTableModel model = (DbRelationshipTableModel) table.getModel(); model.fireTableDataChanged(); }
public void dbEntityRemoved(EntityEvent e) { removeEntityCell(e.getEntity()); }
public void actionPerformed(ActionEvent e) { ObjEntity entity = mediator.getCurrentObjEntity(); if (entity != null) { entity.setAbstract(isAbstract.isSelected()); mediator.fireObjEntityEvent(new EntityEvent(this, entity)); } } });
/** Creates a Entity name change event.*/ public EntityEvent(Object src, Entity entity, String oldName) { this(src, entity); setOldName(oldName); }
/** * Removes current object entity from its DataMap. */ public void removeObjEntity(DataMap map, ObjEntity entity) { ProjectController mediator = getProjectController(); EntityEvent e = new EntityEvent(Application.getFrame(), entity, MapEvent.REMOVE); e.setDomain((DataChannelDescriptor) mediator.getProject().getRootNode()); map.removeObjEntity(entity.getName(), true); mediator.fireObjEntityEvent(e); // remove queries that depend on entity // TODO: (Andrus, 09/09/2005) show warning dialog? // clone to be able to remove within iterator... for (QueryDescriptor query : new ArrayList<>(map.getQueryDescriptors())) { if (!QueryDescriptor.EJBQL_QUERY.equals(query.getType())) { Object root = query.getRoot(); if (root == entity || (root instanceof String && root.toString().equals(entity.getName()))) { removeQuery(map, query); } } } }