Search in sources :

Example 1 with NotePart

use of org.jkiss.dbeaver.erd.ui.part.NotePart in project dbeaver by serge-rider.

the class NoteCreateCommand method execute.

@Override
public void execute() {
    diagramPart.getDiagram().addNote(note, true);
    if (location != null) {
        // Set new note location
        for (Object diagramChild : diagramPart.getChildren()) {
            if (diagramChild instanceof NotePart) {
                NotePart notePart = (NotePart) diagramChild;
                if (notePart.getNote() == note) {
                    Dimension size = this.size;
                    if (size == null || size.width <= 0 || size.height <= 0) {
                        size = notePart.getFigure().getPreferredSize();
                    }
                    final Rectangle newBounds = new Rectangle(location.x, location.y, size.width, size.height);
                    notePart.modifyBounds(newBounds);
                    break;
                }
            }
        }
    }
}
Also used : NotePart(org.jkiss.dbeaver.erd.ui.part.NotePart) Rectangle(org.eclipse.draw2d.geometry.Rectangle) Dimension(org.eclipse.draw2d.geometry.Dimension)

Example 2 with NotePart

use of org.jkiss.dbeaver.erd.ui.part.NotePart in project dbeaver by dbeaver.

the class SetPartSettingsAction method createColorCommand.

private Command createColorCommand(final Object[] objects) {
    return new Command() {

        private ViewSettings newSettings;

        private final Map<ICustomizablePart, ViewSettings> oldSettings = new HashMap<>();

        @Override
        public void execute() {
            final Shell shell = UIUtils.createCenteredShell(getWorkbenchPart().getSite().getShell());
            try {
                NodePart nodePart = null;
                boolean hasNotes = false, hasEntities = false;
                for (Object item : objects) {
                    if (item instanceof NodePart) {
                        if (nodePart == null) {
                            nodePart = (NodePart) item;
                        }
                        if (item instanceof NotePart) {
                            hasNotes = true;
                        } else if (item instanceof EntityPart) {
                            hasEntities = true;
                        }
                    }
                }
                PartSettingsDialog settingsDialog = new PartSettingsDialog(shell, nodePart, hasNotes, hasEntities);
                if (settingsDialog.open() != IDialogConstants.OK_ID) {
                    return;
                }
                newSettings = settingsDialog.newSettings;
                for (Object item : objects) {
                    if (item instanceof ICustomizablePart) {
                        ICustomizablePart part = (ICustomizablePart) item;
                        ViewSettings oldSettings = new ViewSettings();
                        oldSettings.transparency = part.getCustomTransparency();
                        oldSettings.background = part.getCustomBackgroundColor();
                        oldSettings.foreground = part.getCustomForegroundColor();
                        oldSettings.borderWidth = part.getCustomBorderWidth();
                        oldSettings.fontInfo = SharedFonts.toString(part.getCustomFont());
                        this.oldSettings.put(part, oldSettings);
                        setNodeSettings(part, newSettings);
                    }
                }
            } finally {
                UIUtils.disposeCenteredShell(shell);
            }
        }

        @Override
        public void undo() {
            for (Object item : objects) {
                if (item instanceof ICustomizablePart) {
                    ICustomizablePart colorizedPart = (ICustomizablePart) item;
                    ViewSettings viewSettings = oldSettings.get(colorizedPart);
                    if (viewSettings != null) {
                        setNodeSettings(colorizedPart, viewSettings);
                    }
                }
            }
        }

        @Override
        public void redo() {
            for (Object item : objects) {
                if (item instanceof ICustomizablePart) {
                    setNodeSettings((ICustomizablePart) item, newSettings);
                }
            }
        }

        private void setNodeSettings(ICustomizablePart part, ViewSettings settings) {
            if (part instanceof NotePart) {
                part.setCustomTransparency(settings.transparency);
            }
            part.setCustomBackgroundColor(settings.background);
            if (part instanceof NotePart) {
                part.setCustomForegroundColor(settings.foreground);
                part.setCustomBorderWidth(settings.borderWidth);
                part.setCustomFont(UIUtils.getSharedFonts().getFont(Display.getCurrent(), settings.fontInfo));
            }
        }
    };
}
Also used : NotePart(org.jkiss.dbeaver.erd.ui.part.NotePart) Command(org.eclipse.gef.commands.Command) ICustomizablePart(org.jkiss.dbeaver.erd.ui.part.ICustomizablePart) NodePart(org.jkiss.dbeaver.erd.ui.part.NodePart) EntityPart(org.jkiss.dbeaver.erd.ui.part.EntityPart) HashMap(java.util.HashMap) Map(java.util.Map)

Example 3 with NotePart

use of org.jkiss.dbeaver.erd.ui.part.NotePart in project dbeaver by dbeaver.

the class ERDEditorPart method restoreVisualSettings.

private boolean restoreVisualSettings(DiagramPart oldDiagram, EntityDiagram newDiagram) {
    boolean hasChanges = false;
    // Collect visual settings from old diagram and apply them to the new one
    for (ERDEntity newEntity : newDiagram.getEntities()) {
        NodePart oldEntity = oldDiagram.getChildByObject(newEntity.getObject());
        if (oldEntity instanceof EntityPart) {
            EntityDiagram.NodeVisualInfo vi = new EntityDiagram.NodeVisualInfo(oldEntity);
            newDiagram.addVisualInfo(newEntity.getObject(), vi);
            hasChanges = true;
        }
    }
    for (ERDNote newNote : newDiagram.getNotes()) {
        NodePart oldNotePart = oldDiagram.getChildByObject(newNote.getObject());
        if (oldNotePart instanceof NotePart) {
            EntityDiagram.NodeVisualInfo vi = new EntityDiagram.NodeVisualInfo(oldNotePart);
            vi.initBounds = oldNotePart.getBounds();
            newDiagram.addVisualInfo(newNote, vi);
            hasChanges = true;
        }
    }
    return hasChanges;
}
Also used : EntityDiagram(org.jkiss.dbeaver.erd.ui.model.EntityDiagram) NotePart(org.jkiss.dbeaver.erd.ui.part.NotePart) NodePart(org.jkiss.dbeaver.erd.ui.part.NodePart) EntityPart(org.jkiss.dbeaver.erd.ui.part.EntityPart)

Example 4 with NotePart

use of org.jkiss.dbeaver.erd.ui.part.NotePart in project dbeaver by dbeaver.

the class NoteCreateCommand method execute.

@Override
public void execute() {
    diagramPart.getDiagram().addNote(note, true);
    if (location != null) {
        // Set new note location
        for (Object diagramChild : diagramPart.getChildren()) {
            if (diagramChild instanceof NotePart) {
                NotePart notePart = (NotePart) diagramChild;
                if (notePart.getNote() == note) {
                    Dimension size = this.size;
                    if (size == null || size.width <= 0 || size.height <= 0) {
                        size = notePart.getFigure().getPreferredSize();
                    }
                    final Rectangle newBounds = new Rectangle(location.x, location.y, size.width, size.height);
                    notePart.modifyBounds(newBounds);
                    break;
                }
            }
        }
    }
}
Also used : NotePart(org.jkiss.dbeaver.erd.ui.part.NotePart) Rectangle(org.eclipse.draw2d.geometry.Rectangle) Dimension(org.eclipse.draw2d.geometry.Dimension)

Example 5 with NotePart

use of org.jkiss.dbeaver.erd.ui.part.NotePart in project dbeaver by dbeaver.

the class NoteEditPolicy method createDeleteCommand.

@Override
protected Command createDeleteCommand(GroupRequest request) {
    NotePart notePart = (NotePart) getHost();
    Rectangle bounds = notePart.getFigure().getBounds().getCopy();
    EntityDiagram parent = (EntityDiagram) (notePart.getParent().getModel());
    return new NoteDeleteCommand(parent, notePart, bounds);
}
Also used : NoteDeleteCommand(org.jkiss.dbeaver.erd.ui.command.NoteDeleteCommand) EntityDiagram(org.jkiss.dbeaver.erd.ui.model.EntityDiagram) NotePart(org.jkiss.dbeaver.erd.ui.part.NotePart) Rectangle(org.eclipse.draw2d.geometry.Rectangle)

Aggregations

NotePart (org.jkiss.dbeaver.erd.ui.part.NotePart)12 Rectangle (org.eclipse.draw2d.geometry.Rectangle)4 EntityDiagram (org.jkiss.dbeaver.erd.ui.model.EntityDiagram)4 EntityPart (org.jkiss.dbeaver.erd.ui.part.EntityPart)4 NodePart (org.jkiss.dbeaver.erd.ui.part.NodePart)4 HashMap (java.util.HashMap)2 Map (java.util.Map)2 Dimension (org.eclipse.draw2d.geometry.Dimension)2 Command (org.eclipse.gef.commands.Command)2 CellEditor (org.eclipse.jface.viewers.CellEditor)2 NoteDeleteCommand (org.jkiss.dbeaver.erd.ui.command.NoteDeleteCommand)2 ICustomizablePart (org.jkiss.dbeaver.erd.ui.part.ICustomizablePart)2