use of org.jkiss.dbeaver.erd.ui.part.DiagramPart in project dbeaver by serge-rider.
the class ERDEditorStandalone method loadContentFromFile.
private EntityDiagram loadContentFromFile(DBRProgressMonitor progressMonitor) throws DBException {
IFile resFile = getEditorFile();
IProject project = resFile == null ? DBWorkbench.getPlatform().getWorkspace().getActiveProject().getEclipseProject() : resFile.getProject();
final File localFile = EditorUtils.getLocalFileFromInput(getEditorInput());
final DiagramPart diagramPart = getDiagramPart();
EntityDiagram entityDiagram = new EntityDiagram(null, localFile.getName(), getContentProvider(), getDecorator());
entityDiagram.clear();
entityDiagram.setLayoutManualAllowed(true);
entityDiagram.setLayoutManualDesired(true);
diagramPart.setModel(entityDiagram);
try (final InputStream fileContent = new FileInputStream(localFile)) {
DiagramLoader.load(progressMonitor, project, diagramPart, fileContent);
} catch (Exception e) {
log.error("Error loading ER diagram from '" + localFile.getName() + "'", e);
}
return entityDiagram;
}
use of org.jkiss.dbeaver.erd.ui.part.DiagramPart in project dbeaver by dbeaver.
the class ERDEditorStandalone method loadContentFromFile.
private EntityDiagram loadContentFromFile(DBRProgressMonitor progressMonitor) throws DBException {
IFile resFile = getEditorFile();
IProject project = resFile == null ? DBWorkbench.getPlatform().getWorkspace().getActiveProject().getEclipseProject() : resFile.getProject();
final File localFile = EditorUtils.getLocalFileFromInput(getEditorInput());
final DiagramPart diagramPart = getDiagramPart();
EntityDiagram entityDiagram = new EntityDiagram(null, localFile.getName(), getContentProvider(), getDecorator());
entityDiagram.clear();
entityDiagram.setLayoutManualAllowed(true);
entityDiagram.setLayoutManualDesired(true);
diagramPart.setModel(entityDiagram);
try (final InputStream fileContent = new FileInputStream(localFile)) {
DiagramLoader.load(progressMonitor, project, diagramPart, fileContent);
} catch (Exception e) {
log.error("Error loading ER diagram from '" + localFile.getName() + "'", e);
}
return entityDiagram;
}
use of org.jkiss.dbeaver.erd.ui.part.DiagramPart in project dbeaver by dbeaver.
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, request.getSize());
}
List<ERDEntity> entities = null;
if (newObject instanceof ERDEntity) {
entities = Collections.singletonList((ERDEntity) newObject);
} else if (newObject instanceof Collection) {
entities = new ArrayList<>((Collection<ERDEntity>) newObject);
}
if (CommonUtils.isEmpty(entities)) {
return null;
}
// EditPart host = getTargetEditPart(request);
Command entityAddCommand = diagramPart.createEntityAddCommand(entities, location);
if (!entityAddCommand.canExecute()) {
return null;
}
return entityAddCommand;
}
use of org.jkiss.dbeaver.erd.ui.part.DiagramPart in project dbeaver by dbeaver.
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).getEntity().getObject());
}
}
tables.sort(DBUtils.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.erd.ui.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).getEntity().getObject());
}
}
tables.sort(DBUtils.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;
}
}
Aggregations