use of org.apache.cayenne.map.Entity in project cayenne by apache.
the class DbEntityTabbedView method currentDbEntityChanged.
/**
* If entity is null hides it's contents, otherwise makes it visible.
*/
public void currentDbEntityChanged(EntityDisplayEvent e) {
Entity entity = e.getEntity();
if (e.isMainTabFocus() && entity instanceof DbEntity) {
if (getSelectedComponent() != entityPanel) {
setSelectedComponent(entityPanel);
entityPanel.setVisible(true);
}
}
resetRemoveButtons();
setVisible(e.getEntity() != null);
if (projectController.getEntityTabSelection() < getTabCount()) {
setSelectedIndex(projectController.getEntityTabSelection());
}
}
use of org.apache.cayenne.map.Entity in project cayenne by apache.
the class BaseGraphBuilder method buildGraph.
@Override
public void buildGraph(ProjectController mediator, DataChannelDescriptor domain, boolean doLayout) {
if (graph != null) {
// graph already built, exiting silently
return;
}
graph = new JGraph();
GraphModel model = new DefaultGraphModel();
graph.setModel(model);
setProjectController(mediator);
setDataDomain(domain);
GraphLayoutCache view = new GraphLayoutCache(model, new DefaultCellViewFactory());
graph.setGraphLayoutCache(view);
addMouseListeners();
entityCells = new HashMap<>();
createdObjects = new ArrayList<>();
relCells = new HashMap<>();
/*
* an array for entities that are not connected to anyone. We add them
* separately so that layout doesn't touch them
*/
List<DefaultGraphCell> isolatedObjects = new ArrayList<>();
/*
* 1. Add all entities
*/
for (DataMap map : domain.getDataMaps()) {
DefaultGraphCell mapCell = new DefaultGraphCell();
createdObjects.add(mapCell);
for (Entity entity : getEntities(map)) {
DefaultGraphCell cell = createEntityCell(entity);
// mapCell.add(cell);
// cell.setParent(mapCell);
List<DefaultGraphCell> array = !isIsolated(domain, entity) ? createdObjects : isolatedObjects;
array.add(cell);
// port
array.add((DefaultGraphCell) cell.getChildAt(0));
}
}
/*
* 2. Add all relationships
*/
for (DataMap map : domain.getDataMaps()) {
for (Entity entity : getEntities(map)) {
DefaultGraphCell sourceCell = entityCells.get(entity.getName());
postProcessEntity(entity, sourceCell);
}
}
view.insert(createdObjects.toArray());
setLayout(doLayout);
/*
* Adding isolated objects
*
* We're placing them so that they will take maximum space in left top
* corner. The sample order is below:
*
* 1 2 6 7... 3 5 8 ... 4 9... 10 ...
*/
addIsolatedObjects(isolatedObjects);
view.insert(isolatedObjects.toArray());
graph.getModel().addUndoableEditListener(this);
}
use of org.apache.cayenne.map.Entity in project cayenne by apache.
the class DataDomainGraphTab method currentDomainChanged.
public void currentDomainChanged(DomainDisplayEvent e) {
if (e instanceof EntityDisplayEvent) {
// selecting an event
// choose type of diagram
Entity entity = ((EntityDisplayEvent) e).getEntity();
diagramCombo.setSelectedIndex(entity instanceof ObjEntity ? 1 : 0);
refresh();
GraphBuilder builder = getGraphRegistry().getGraphMap(domain).get(getSelectedType());
Object cell = builder.getEntityCell(entity.getName());
if (cell != null) {
graph.setSelectionCell(cell);
graph.scrollCellToVisible(cell);
}
} else if (domain != e.getDomain()) {
needRebuild = true;
domain = e.getDomain();
if (isVisible()) {
refresh();
}
}
}
use of org.apache.cayenne.map.Entity in project cayenne by apache.
the class EntityCellMetadata method createLabel.
/**
* Creates label for this cell
*/
String createLabel() {
Entity entity = fetchEntity();
StringBuilder label = new StringBuilder("<html><center><u><b>").append(entity.getName()).append("</b></u></center>");
for (Attribute attr : entity.getAttributes()) {
if (isPrimary(attr)) {
label.append("<br><i>").append(attr.getName()).append("</i>");
}
}
for (Attribute attr : entity.getAttributes()) {
if (!isPrimary(attr)) {
label.append("<br>").append(attr.getName());
}
}
return label.toString();
}
use of org.apache.cayenne.map.Entity in project cayenne by apache.
the class EntityDisplayAction method display.
private boolean display() {
Entity entity = builder.getSelectedEntity();
if (entity == null) {
return false;
}
// reusing logic from FindAction
FindAction.jumpToResult(new FindAction.SearchResultEntry(entity, entity.getName()));
return true;
}
Aggregations