提交 efbdc64a 编写于 作者: S Serge Rider

ERD: edit embedded diagrams

上级 d1d999c3
......@@ -40,6 +40,7 @@ import org.jkiss.dbeaver.ui.IActiveWorkbenchPart;
import org.jkiss.dbeaver.ui.LoadingJob;
import org.jkiss.dbeaver.ui.editors.IDatabaseEditor;
import org.jkiss.dbeaver.ui.editors.IDatabaseEditorInput;
import org.jkiss.dbeaver.ui.editors.entity.IEntityStructureEditor;
import org.jkiss.dbeaver.utils.RuntimeUtils;
import java.lang.reflect.InvocationTargetException;
......@@ -48,7 +49,7 @@ import java.util.*;
/**
* Embedded ERD editor
*/
public class ERDEditorEmbedded extends ERDEditorPart implements IDatabaseEditor, IActiveWorkbenchPart {
public class ERDEditorEmbedded extends ERDEditorPart implements IDatabaseEditor, IEntityStructureEditor, IActiveWorkbenchPart {
private static final Log log = Log.getLog(ERDEditorEmbedded.class);
......@@ -331,6 +332,8 @@ public class ERDEditorEmbedded extends ERDEditorPart implements IDatabaseEditor,
String diagramState = DiagramLoader.serializeDiagram(RuntimeUtils.makeMonitor(monitor), getDiagramPart(), getDiagram(), false, true);
diagramStateMap.put(PROPS_DIAGRAM_SERIALIZED, diagramState);
vEntity.persistConfiguration();
getCommandStack().markSaveLocation();
} catch (Exception e) {
log.error("Error saving diagram", e);
......
......@@ -443,7 +443,7 @@ public class DiagramLoader
// Save as XML
StringWriter out = new StringWriter(1000);
XMLBuilder xml = new XMLBuilder(out, GeneralUtils.UTF8_ENCODING);
XMLBuilder xml = new XMLBuilder(out, GeneralUtils.UTF8_ENCODING, !compact);
xml.setButify(!compact);
if (verbose) {
xml.addContent(
......@@ -473,7 +473,9 @@ public class DiagramLoader
if (diagram != null) {
xml.addAttribute(ATTR_NAME, diagram.getName());
}
if (compact) {
xml.addAttribute(ATTR_TIME, RuntimeUtils.getCurrentTimeStamp());
}
if (diagram != null) {
xml.startElement(TAG_ENTITIES);
......@@ -527,6 +529,7 @@ public class DiagramLoader
}
xml.endElement();
if (!CommonUtils.isEmpty(diagram.getNotes())) {
// Notes
xml.startElement(TAG_NOTES);
for (ERDNote note : diagram.getNotes()) {
......@@ -552,6 +555,7 @@ public class DiagramLoader
xml.endElement();
}
xml.endElement();
}
// Relations
xml.startElement(TAG_RELATIONS);
......
......@@ -51,7 +51,7 @@ import org.jkiss.dbeaver.ui.data.registry.ValueManagerRegistry;
import org.jkiss.dbeaver.ui.dialogs.DialogUtils;
import org.jkiss.dbeaver.ui.editors.MultiPageAbstractEditor;
import org.jkiss.dbeaver.ui.editors.entity.EntityEditor;
import org.jkiss.dbeaver.ui.editors.entity.IEntityDataContainer;
import org.jkiss.dbeaver.ui.editors.entity.IEntityDataEditor;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
......@@ -265,7 +265,7 @@ public class ContentEditor extends MultiPageAbstractEditor implements IValueEdit
if (parentEditorSite instanceof MultiPageEditorSite) {
parentEditor = ((MultiPageEditorSite) parentEditorSite).getMultiPageEditor();
if (parentEditor instanceof EntityEditor) {
((EntityEditor) parentEditor).setActiveEditor(IEntityDataContainer.class);
((EntityEditor) parentEditor).setActiveEditor(IEntityDataEditor.class);
}
} else {
parentEditor = parentEditorSite.getPart();
......
......@@ -35,7 +35,7 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSDataContainer;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.editors.entity.IEntityDataContainer;
import org.jkiss.dbeaver.ui.editors.entity.IEntityDataEditor;
import org.jkiss.dbeaver.ui.navigator.actions.NavigatorHandlerObjectOpen;
import org.jkiss.dbeaver.ui.controls.resultset.*;
import org.jkiss.dbeaver.ui.editors.AbstractDatabaseObjectEditor;
......@@ -47,7 +47,7 @@ import java.util.Collections;
* AbstractDataEditor
*/
public abstract class AbstractDataEditor<OBJECT_TYPE extends DBSObject> extends AbstractDatabaseObjectEditor<OBJECT_TYPE>
implements IResultSetContainer,IResultSetListener,IEntityDataContainer
implements IResultSetContainer,IResultSetListener,IEntityDataEditor
{
private static final Log log = Log.getLog(AbstractDataEditor.class);
......
......@@ -238,7 +238,7 @@ public class EntityEditor extends MultiPageDatabaseEditor
// Flush all nested object editors and result containers
for (IEditorPart editor : editorMap.values()) {
if (editor instanceof ObjectPropertiesEditor || editor instanceof IEntityDataContainer) {
if (editor instanceof IEntityStructureEditor || editor instanceof IEntityDataEditor) {
if (editor.isDirty()) {
editor.doSave(monitor);
}
......
......@@ -21,6 +21,6 @@ package org.jkiss.dbeaver.ui.editors.entity;
* Entity data container.
* Implementors are EntityEditor sub-editors which contain soem data which must be saved before context save.
*/
public interface IEntityDataContainer {
public interface IEntityDataEditor {
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.entity;
/**
* Entity structure editor.
* Implementors are EntityEditor sub-editors which contain soem data which must be saved before context save.
*/
public interface IEntityStructureEditor {
}
......@@ -33,8 +33,7 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.navigator.*;
import org.jkiss.dbeaver.ui.editors.*;
import org.jkiss.dbeaver.ui.editors.entity.EntityEditorDescriptor;
import org.jkiss.dbeaver.ui.editors.entity.EntityEditorsRegistry;
import org.jkiss.dbeaver.ui.editors.entity.*;
import org.jkiss.dbeaver.ui.internal.UINavigatorMessages;
import org.jkiss.dbeaver.model.DBIcon;
import org.jkiss.dbeaver.model.navigator.meta.DBXTreeItem;
......@@ -55,8 +54,6 @@ import org.jkiss.dbeaver.ui.controls.ProgressPageControl;
import org.jkiss.dbeaver.ui.controls.folders.*;
import org.jkiss.dbeaver.ui.css.CSSUtils;
import org.jkiss.dbeaver.ui.css.DBStyles;
import org.jkiss.dbeaver.ui.editors.entity.GlobalContributorManager;
import org.jkiss.dbeaver.ui.editors.entity.IEntityEditorContext;
import org.jkiss.dbeaver.ui.navigator.INavigatorModelView;
import org.jkiss.dbeaver.ui.navigator.NavigatorPreferences;
import org.jkiss.utils.CommonUtils;
......@@ -70,8 +67,14 @@ import java.util.Map;
/**
* ObjectPropertiesEditor
*/
public class ObjectPropertiesEditor extends AbstractDatabaseObjectEditor<DBSObject>
implements IRefreshablePart, IProgressControlProvider, ITabbedFolderContainer, ISearchContextProvider, INavigatorModelView, IEntityEditorContext, IDatabasePostSaveProcessor
public class ObjectPropertiesEditor extends AbstractDatabaseObjectEditor<DBSObject> implements IEntityStructureEditor,
IRefreshablePart,
IProgressControlProvider,
ITabbedFolderContainer,
ISearchContextProvider,
INavigatorModelView,
IEntityEditorContext,
IDatabasePostSaveProcessor
{
private static final Log log = Log.getLog(ObjectPropertiesEditor.class);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册