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

ERD: edit embedded diagrams

上级 d1d999c3
...@@ -40,6 +40,7 @@ import org.jkiss.dbeaver.ui.IActiveWorkbenchPart; ...@@ -40,6 +40,7 @@ import org.jkiss.dbeaver.ui.IActiveWorkbenchPart;
import org.jkiss.dbeaver.ui.LoadingJob; import org.jkiss.dbeaver.ui.LoadingJob;
import org.jkiss.dbeaver.ui.editors.IDatabaseEditor; import org.jkiss.dbeaver.ui.editors.IDatabaseEditor;
import org.jkiss.dbeaver.ui.editors.IDatabaseEditorInput; import org.jkiss.dbeaver.ui.editors.IDatabaseEditorInput;
import org.jkiss.dbeaver.ui.editors.entity.IEntityStructureEditor;
import org.jkiss.dbeaver.utils.RuntimeUtils; import org.jkiss.dbeaver.utils.RuntimeUtils;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
...@@ -48,7 +49,7 @@ import java.util.*; ...@@ -48,7 +49,7 @@ import java.util.*;
/** /**
* Embedded ERD editor * 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); private static final Log log = Log.getLog(ERDEditorEmbedded.class);
...@@ -331,6 +332,8 @@ public class ERDEditorEmbedded extends ERDEditorPart implements IDatabaseEditor, ...@@ -331,6 +332,8 @@ public class ERDEditorEmbedded extends ERDEditorPart implements IDatabaseEditor,
String diagramState = DiagramLoader.serializeDiagram(RuntimeUtils.makeMonitor(monitor), getDiagramPart(), getDiagram(), false, true); String diagramState = DiagramLoader.serializeDiagram(RuntimeUtils.makeMonitor(monitor), getDiagramPart(), getDiagram(), false, true);
diagramStateMap.put(PROPS_DIAGRAM_SERIALIZED, diagramState); diagramStateMap.put(PROPS_DIAGRAM_SERIALIZED, diagramState);
vEntity.persistConfiguration();
getCommandStack().markSaveLocation(); getCommandStack().markSaveLocation();
} catch (Exception e) { } catch (Exception e) {
log.error("Error saving diagram", e); log.error("Error saving diagram", e);
......
...@@ -443,7 +443,7 @@ public class DiagramLoader ...@@ -443,7 +443,7 @@ public class DiagramLoader
// Save as XML // Save as XML
StringWriter out = new StringWriter(1000); 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); xml.setButify(!compact);
if (verbose) { if (verbose) {
xml.addContent( xml.addContent(
...@@ -473,7 +473,9 @@ public class DiagramLoader ...@@ -473,7 +473,9 @@ public class DiagramLoader
if (diagram != null) { if (diagram != null) {
xml.addAttribute(ATTR_NAME, diagram.getName()); xml.addAttribute(ATTR_NAME, diagram.getName());
} }
if (compact) {
xml.addAttribute(ATTR_TIME, RuntimeUtils.getCurrentTimeStamp()); xml.addAttribute(ATTR_TIME, RuntimeUtils.getCurrentTimeStamp());
}
if (diagram != null) { if (diagram != null) {
xml.startElement(TAG_ENTITIES); xml.startElement(TAG_ENTITIES);
...@@ -527,6 +529,7 @@ public class DiagramLoader ...@@ -527,6 +529,7 @@ public class DiagramLoader
} }
xml.endElement(); xml.endElement();
if (!CommonUtils.isEmpty(diagram.getNotes())) {
// Notes // Notes
xml.startElement(TAG_NOTES); xml.startElement(TAG_NOTES);
for (ERDNote note : diagram.getNotes()) { for (ERDNote note : diagram.getNotes()) {
...@@ -552,6 +555,7 @@ public class DiagramLoader ...@@ -552,6 +555,7 @@ public class DiagramLoader
xml.endElement(); xml.endElement();
} }
xml.endElement(); xml.endElement();
}
// Relations // Relations
xml.startElement(TAG_RELATIONS); xml.startElement(TAG_RELATIONS);
......
...@@ -51,7 +51,7 @@ import org.jkiss.dbeaver.ui.data.registry.ValueManagerRegistry; ...@@ -51,7 +51,7 @@ import org.jkiss.dbeaver.ui.data.registry.ValueManagerRegistry;
import org.jkiss.dbeaver.ui.dialogs.DialogUtils; import org.jkiss.dbeaver.ui.dialogs.DialogUtils;
import org.jkiss.dbeaver.ui.editors.MultiPageAbstractEditor; import org.jkiss.dbeaver.ui.editors.MultiPageAbstractEditor;
import org.jkiss.dbeaver.ui.editors.entity.EntityEditor; 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.io.File;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
...@@ -265,7 +265,7 @@ public class ContentEditor extends MultiPageAbstractEditor implements IValueEdit ...@@ -265,7 +265,7 @@ public class ContentEditor extends MultiPageAbstractEditor implements IValueEdit
if (parentEditorSite instanceof MultiPageEditorSite) { if (parentEditorSite instanceof MultiPageEditorSite) {
parentEditor = ((MultiPageEditorSite) parentEditorSite).getMultiPageEditor(); parentEditor = ((MultiPageEditorSite) parentEditorSite).getMultiPageEditor();
if (parentEditor instanceof EntityEditor) { if (parentEditor instanceof EntityEditor) {
((EntityEditor) parentEditor).setActiveEditor(IEntityDataContainer.class); ((EntityEditor) parentEditor).setActiveEditor(IEntityDataEditor.class);
} }
} else { } else {
parentEditor = parentEditorSite.getPart(); parentEditor = parentEditorSite.getPart();
......
...@@ -35,7 +35,7 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; ...@@ -35,7 +35,7 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSDataContainer; import org.jkiss.dbeaver.model.struct.DBSDataContainer;
import org.jkiss.dbeaver.model.struct.DBSObject; import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.ui.UIUtils; 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.navigator.actions.NavigatorHandlerObjectOpen;
import org.jkiss.dbeaver.ui.controls.resultset.*; import org.jkiss.dbeaver.ui.controls.resultset.*;
import org.jkiss.dbeaver.ui.editors.AbstractDatabaseObjectEditor; import org.jkiss.dbeaver.ui.editors.AbstractDatabaseObjectEditor;
...@@ -47,7 +47,7 @@ import java.util.Collections; ...@@ -47,7 +47,7 @@ import java.util.Collections;
* AbstractDataEditor * AbstractDataEditor
*/ */
public abstract class AbstractDataEditor<OBJECT_TYPE extends DBSObject> extends AbstractDatabaseObjectEditor<OBJECT_TYPE> 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); private static final Log log = Log.getLog(AbstractDataEditor.class);
......
...@@ -238,7 +238,7 @@ public class EntityEditor extends MultiPageDatabaseEditor ...@@ -238,7 +238,7 @@ public class EntityEditor extends MultiPageDatabaseEditor
// Flush all nested object editors and result containers // Flush all nested object editors and result containers
for (IEditorPart editor : editorMap.values()) { for (IEditorPart editor : editorMap.values()) {
if (editor instanceof ObjectPropertiesEditor || editor instanceof IEntityDataContainer) { if (editor instanceof IEntityStructureEditor || editor instanceof IEntityDataEditor) {
if (editor.isDirty()) { if (editor.isDirty()) {
editor.doSave(monitor); editor.doSave(monitor);
} }
......
...@@ -21,6 +21,6 @@ package org.jkiss.dbeaver.ui.editors.entity; ...@@ -21,6 +21,6 @@ package org.jkiss.dbeaver.ui.editors.entity;
* Entity data container. * Entity data container.
* Implementors are EntityEditor sub-editors which contain soem data which must be saved before context save. * 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; ...@@ -33,8 +33,7 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.navigator.*; import org.jkiss.dbeaver.model.navigator.*;
import org.jkiss.dbeaver.ui.editors.*; import org.jkiss.dbeaver.ui.editors.*;
import org.jkiss.dbeaver.ui.editors.entity.EntityEditorDescriptor; import org.jkiss.dbeaver.ui.editors.entity.*;
import org.jkiss.dbeaver.ui.editors.entity.EntityEditorsRegistry;
import org.jkiss.dbeaver.ui.internal.UINavigatorMessages; import org.jkiss.dbeaver.ui.internal.UINavigatorMessages;
import org.jkiss.dbeaver.model.DBIcon; import org.jkiss.dbeaver.model.DBIcon;
import org.jkiss.dbeaver.model.navigator.meta.DBXTreeItem; import org.jkiss.dbeaver.model.navigator.meta.DBXTreeItem;
...@@ -55,8 +54,6 @@ import org.jkiss.dbeaver.ui.controls.ProgressPageControl; ...@@ -55,8 +54,6 @@ import org.jkiss.dbeaver.ui.controls.ProgressPageControl;
import org.jkiss.dbeaver.ui.controls.folders.*; import org.jkiss.dbeaver.ui.controls.folders.*;
import org.jkiss.dbeaver.ui.css.CSSUtils; import org.jkiss.dbeaver.ui.css.CSSUtils;
import org.jkiss.dbeaver.ui.css.DBStyles; 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.INavigatorModelView;
import org.jkiss.dbeaver.ui.navigator.NavigatorPreferences; import org.jkiss.dbeaver.ui.navigator.NavigatorPreferences;
import org.jkiss.utils.CommonUtils; import org.jkiss.utils.CommonUtils;
...@@ -70,8 +67,14 @@ import java.util.Map; ...@@ -70,8 +67,14 @@ import java.util.Map;
/** /**
* ObjectPropertiesEditor * ObjectPropertiesEditor
*/ */
public class ObjectPropertiesEditor extends AbstractDatabaseObjectEditor<DBSObject> public class ObjectPropertiesEditor extends AbstractDatabaseObjectEditor<DBSObject> implements IEntityStructureEditor,
implements IRefreshablePart, IProgressControlProvider, ITabbedFolderContainer, ISearchContextProvider, INavigatorModelView, IEntityEditorContext, IDatabasePostSaveProcessor IRefreshablePart,
IProgressControlProvider,
ITabbedFolderContainer,
ISearchContextProvider,
INavigatorModelView,
IEntityEditorContext,
IDatabasePostSaveProcessor
{ {
private static final Log log = Log.getLog(ObjectPropertiesEditor.class); 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.
先完成此消息的编辑!
想要评论请 注册