use of org.jkiss.dbeaver.ext.erd.part.DiagramPart in project dbeaver by serge-rider.
the class DiagramContainerEditPolicy method getCreateCommand.
/**
* @see ContainerEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
*/
@Override
protected Command getCreateCommand(CreateRequest request) {
DiagramPart diagramPart = (DiagramPart) getHost();
Point location = request.getLocation();
diagramPart.getFigure().translateToRelative(location);
Object newObject = request.getNewObject();
if (newObject instanceof ERDNote) {
return new NoteCreateCommand(diagramPart, (ERDNote) newObject, location);
}
Collection<ERDEntity> entities = null;
if (newObject instanceof ERDEntity) {
entities = Collections.singletonList((ERDEntity) newObject);
} else if (newObject instanceof Collection) {
entities = (Collection<ERDEntity>) newObject;
}
if (CommonUtils.isEmpty(entities)) {
return null;
}
return new EntityAddCommand(diagramPart, entities, location);
}
use of org.jkiss.dbeaver.ext.erd.part.DiagramPart in project dbeaver by serge-rider.
the class ERDGraphicalViewer method setContents.
@Override
public void setContents(EditPart editpart) {
loadContents = true;
try {
super.setContents(editpart);
// Reset palette contents
if (editpart instanceof DiagramPart) {
List<DBSEntity> tables = new ArrayList<>();
for (Object child : editpart.getChildren()) {
if (child instanceof EntityPart) {
tables.add(((EntityPart) child).getTable().getObject());
}
}
Collections.sort(tables, DBUtils.<DBSEntity>nameComparator());
Map<PaletteDrawer, List<ToolEntryTable>> toolMap = new LinkedHashMap<>();
for (DBSEntity table : tables) {
DBPDataSourceContainer container = table.getDataSource().getContainer();
PaletteDrawer drawer = getContainerPaletteDrawer(container);
if (drawer != null) {
List<ToolEntryTable> tools = toolMap.get(drawer);
if (tools == null) {
tools = new ArrayList<>(tables.size());
toolMap.put(drawer, tools);
}
tools.add(new ToolEntryTable(table));
}
}
for (Map.Entry<PaletteDrawer, List<ToolEntryTable>> entry : toolMap.entrySet()) {
entry.getKey().setChildren(entry.getValue());
}
//editor.getPaletteContents().setChildren(tools);
}
} finally {
loadContents = false;
}
}
use of org.jkiss.dbeaver.ext.erd.part.DiagramPart in project dbeaver by serge-rider.
the class NodeDropTargetListener method createTargetRequest.
@Override
protected Request createTargetRequest() {
CreateRequest request = new CreateRequest();
request.setFactory(new CreationFactory() {
@Override
public Object getNewObject() {
Collection<DBPNamedObject> objects = DatabaseObjectTransfer.getInstance().getObject();
if (objects == null) {
return null;
}
return DiagramObjectCollector.generateEntityList(((DiagramPart) getViewer().getRootEditPart().getContents()).getDiagram(), objects);
}
@Override
public Object getObjectType() {
return RequestConstants.REQ_CREATE;
}
});
request.setLocation(getDropLocation());
return request;
}
use of org.jkiss.dbeaver.ext.erd.part.DiagramPart in project dbeaver by serge-rider.
the class ERDEditorStandalone method loadContentFromFile.
private EntityDiagram loadContentFromFile(DBRProgressMonitor progressMonitor) throws DBException {
final IFile file = getEditorFile();
final DiagramPart diagramPart = getDiagramPart();
EntityDiagram entityDiagram = new EntityDiagram(null, file.getName());
entityDiagram.clear();
entityDiagram.setLayoutManualAllowed(true);
entityDiagram.setLayoutManualDesired(true);
diagramPart.setModel(entityDiagram);
try (final InputStream fileContent = file.getContents()) {
DiagramLoader.load(progressMonitor, file.getProject(), diagramPart, fileContent);
} catch (Exception e) {
log.error("Error loading ER diagram from '" + file.getName() + "'", e);
}
return entityDiagram;
}
Aggregations