提交 13d5eb09 编写于 作者: S serge-rider

#3266 ERD entities FQN config

上级 eaf72879
......@@ -702,11 +702,12 @@ public abstract class ERDEditorPart extends GraphicalEditorWithFlyoutPalette
public void fillAttributeVisibilityMenu(IMenuManager menu)
{
MenuManager asMenu = new MenuManager("Attribute Styles");
asMenu.add(new ChangeAttributePresentationAction(ERDAttributeStyle.ICONS));
asMenu.add(new ChangeAttributePresentationAction(ERDAttributeStyle.TYPES));
asMenu.add(new ChangeAttributePresentationAction(ERDAttributeStyle.NULLABILITY));
asMenu.add(new ChangeAttributePresentationAction(ERDAttributeStyle.COMMENTS));
MenuManager asMenu = new MenuManager("View Styles");
asMenu.add(new ChangeAttributePresentationAction(ERDViewStyle.ICONS));
asMenu.add(new ChangeAttributePresentationAction(ERDViewStyle.TYPES));
asMenu.add(new ChangeAttributePresentationAction(ERDViewStyle.NULLABILITY));
asMenu.add(new ChangeAttributePresentationAction(ERDViewStyle.COMMENTS));
asMenu.add(new ChangeAttributePresentationAction(ERDViewStyle.ENTITY_FQN));
menu.add(asMenu);
MenuManager avMenu = new MenuManager("Show Attributes");
......@@ -787,8 +788,8 @@ public abstract class ERDEditorPart extends GraphicalEditorWithFlyoutPalette
protected abstract void loadDiagram(boolean refreshMetadata);
private class ChangeAttributePresentationAction extends Action {
private final ERDAttributeStyle style;
public ChangeAttributePresentationAction(ERDAttributeStyle style) {
private final ERDViewStyle style;
public ChangeAttributePresentationAction(ERDViewStyle style) {
super("Show " + style.getTitle(), AS_CHECK_BOX);
this.style = style;
}
......@@ -796,7 +797,7 @@ public abstract class ERDEditorPart extends GraphicalEditorWithFlyoutPalette
public boolean isChecked()
{
return ArrayUtils.contains(
ERDAttributeStyle.getDefaultStyles(ERDActivator.getDefault().getPreferenceStore()),
ERDViewStyle.getDefaultStyles(ERDActivator.getDefault().getPreferenceStore()),
style);
}
......
......@@ -104,10 +104,10 @@ public class ERDPreferencePage extends AbstractPrefPage implements IWorkbenchPre
private void createStyleGroup(IPreferenceStore store, Composite composite)
{
ERDAttributeStyle[] enabledStyles = ERDAttributeStyle.getDefaultStyles(store);
ERDViewStyle[] enabledStyles = ERDViewStyle.getDefaultStyles(store);
Group elemsGroup = UIUtils.createControlGroup(composite, "Attribute styles", 1, GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL, 0);
for (ERDAttributeStyle style : ERDAttributeStyle.values()) {
for (ERDViewStyle style : ERDViewStyle.values()) {
Button check = new Button(elemsGroup, SWT.CHECK);
check.setData(style);
check.setText(style.getTitle());
......@@ -192,13 +192,13 @@ public class ERDPreferencePage extends AbstractPrefPage implements IWorkbenchPre
ERDAttributeVisibility.setDefaultVisibility(store, (ERDAttributeVisibility) radio.getData());
}
}
List<ERDAttributeStyle> enabledStyles = new ArrayList<>();
List<ERDViewStyle> enabledStyles = new ArrayList<>();
for (Button check : styleButtons) {
if (check.getSelection()) {
enabledStyles.add((ERDAttributeStyle) check.getData());
enabledStyles.add((ERDViewStyle) check.getData());
}
}
ERDAttributeStyle.setDefaultStyles(store, enabledStyles.toArray(new ERDAttributeStyle[enabledStyles.size()]));
ERDViewStyle.setDefaultStyles(store, enabledStyles.toArray(new ERDViewStyle[enabledStyles.size()]));
PrefUtils.savePreferenceStore(store);
......
......@@ -25,12 +25,13 @@ import org.jkiss.utils.CommonUtils;
/**
* Entity attribute presentation
*/
public enum ERDAttributeStyle
public enum ERDViewStyle
{
ICONS(1, "Icons"),
TYPES(2, "Data Types"),
NULLABILITY(4, "Nullability"),
COMMENTS(8, "Comments")
COMMENTS(8, "Comments"),
ENTITY_FQN(16, "Fully qualified names")
;
private final int value;
......@@ -38,7 +39,7 @@ public enum ERDAttributeStyle
private static final Log log = Log.getLog(ERDAttributeVisibility.class);
ERDAttributeStyle(int value, String title) {
ERDViewStyle(int value, String title) {
this.value = value;
this.title = title;
}
......@@ -51,28 +52,28 @@ public enum ERDAttributeStyle
return title;
}
public static ERDAttributeStyle[] getDefaultStyles(IPreferenceStore store)
public static ERDViewStyle[] getDefaultStyles(IPreferenceStore store)
{
String attrString = store.getString(ERDConstants.PREF_ATTR_STYLES);
if (!CommonUtils.isEmpty(attrString)) {
String[] psList = attrString.split(",");
ERDAttributeStyle[] pList = new ERDAttributeStyle[psList.length];
ERDViewStyle[] pList = new ERDViewStyle[psList.length];
for (int i = 0; i < psList.length; i++) {
try {
pList[i] = ERDAttributeStyle.valueOf(psList[i]);
pList[i] = ERDViewStyle.valueOf(psList[i]);
} catch (IllegalArgumentException e) {
log.warn(e);
}
}
return pList;
}
return new ERDAttributeStyle[] { ICONS };
return new ERDViewStyle[] { ICONS };
}
public static void setDefaultStyles(DBPPreferenceStore store, ERDAttributeStyle[] styles)
public static void setDefaultStyles(DBPPreferenceStore store, ERDViewStyle[] styles)
{
String stylesString = "";
for (ERDAttributeStyle style : styles) {
for (ERDViewStyle style : styles) {
if (!stylesString.isEmpty()) stylesString += ",";
stylesString += style.name();
}
......
......@@ -42,7 +42,7 @@ public class EntityFigure extends Figure {
private AttributeListFigure attributeFigure;
private EditableLabel nameLabel;
public EntityFigure(ERDEntity entity)
public EntityFigure(ERDEntity entity, boolean useFQN)
{
this.entity = entity;
......@@ -50,7 +50,10 @@ public class EntityFigure extends Figure {
keyFigure = new AttributeListFigure(entity, true);
attributeFigure = new AttributeListFigure(entity, false);
nameLabel = new EditableLabel(entity.getObject().getName());
nameLabel = new EditableLabel(
useFQN ?
DBUtils.getObjectFullName(entity.getObject(), DBPEvaluationContext.DDL) :
entity.getObject().getName());
if (tableImage != null) {
nameLabel.setIcon(tableImage);
}
......
......@@ -20,7 +20,7 @@
package org.jkiss.dbeaver.ext.erd.model;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.ext.erd.editor.ERDAttributeStyle;
import org.jkiss.dbeaver.ext.erd.editor.ERDViewStyle;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.DBValueFormatting;
import org.jkiss.dbeaver.model.struct.DBSEntityAttribute;
......@@ -45,12 +45,12 @@ public class ERDEntityAttribute extends ERDObject<DBSEntityAttribute>
public String getLabelText()
{
String text;
if (diagram.hasAttributeStyle(ERDAttributeStyle.TYPES)) {
if (diagram.hasAttributeStyle(ERDViewStyle.TYPES)) {
text = object.getName() + ": " + object.getFullTypeName();
} else {
text = object.getName();
}
if (diagram.hasAttributeStyle(ERDAttributeStyle.COMMENTS)) {
if (diagram.hasAttributeStyle(ERDViewStyle.COMMENTS)) {
String comment = object.getDescription();
if (!CommonUtils.isEmpty(comment)) {
text += " - " + comment;
......@@ -61,7 +61,7 @@ public class ERDEntityAttribute extends ERDObject<DBSEntityAttribute>
public DBPImage getLabelImage()
{
if (!diagram.hasAttributeStyle(ERDAttributeStyle.ICONS)) {
if (!diagram.hasAttributeStyle(ERDViewStyle.ICONS)) {
return null;
}
return DBValueFormatting.getObjectImage(object);
......
......@@ -25,7 +25,7 @@ import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.graphics.Color;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.ext.erd.ERDActivator;
import org.jkiss.dbeaver.ext.erd.editor.ERDAttributeStyle;
import org.jkiss.dbeaver.ext.erd.editor.ERDViewStyle;
import org.jkiss.dbeaver.ext.erd.editor.ERDAttributeVisibility;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSEntity;
......@@ -57,7 +57,7 @@ public class EntityDiagram extends ERDObject<DBSObject>
private List<ERDNote> notes = new ArrayList<>();
private boolean needsAutoLayout;
private ERDAttributeVisibility attributeVisibility = ERDAttributeVisibility.PRIMARY;
private ERDAttributeStyle[] attributeStyles = new ERDAttributeStyle[] { ERDAttributeStyle.ICONS };
private ERDViewStyle[] attributeStyles = new ERDViewStyle[] { ERDViewStyle.ICONS };
private List<String> errorMessages = new ArrayList<>();
......@@ -69,21 +69,21 @@ public class EntityDiagram extends ERDObject<DBSObject>
this.name = name;
IPreferenceStore store = ERDActivator.getDefault().getPreferenceStore();
this.attributeVisibility = ERDAttributeVisibility.getDefaultVisibility(store);
this.attributeStyles = ERDAttributeStyle.getDefaultStyles(store);
this.attributeStyles = ERDViewStyle.getDefaultStyles(store);
}
public boolean hasAttributeStyle(ERDAttributeStyle style) {
public boolean hasAttributeStyle(ERDViewStyle style) {
return ArrayUtils.contains(attributeStyles, style);
}
public void setAttributeStyle(ERDAttributeStyle style, boolean enable)
public void setAttributeStyle(ERDViewStyle style, boolean enable)
{
if (enable) {
attributeStyles = ArrayUtils.add(ERDAttributeStyle.class, attributeStyles, style);
attributeStyles = ArrayUtils.add(ERDViewStyle.class, attributeStyles, style);
} else {
attributeStyles = ArrayUtils.remove(ERDAttributeStyle.class, attributeStyles, style);
attributeStyles = ArrayUtils.remove(ERDViewStyle.class, attributeStyles, style);
}
ERDAttributeStyle.setDefaultStyles(ERDActivator.getDefault().getPreferences(), attributeStyles);
ERDViewStyle.setDefaultStyles(ERDActivator.getDefault().getPreferences(), attributeStyles);
}
public ERDAttributeVisibility getAttributeVisibility()
......
......@@ -34,7 +34,7 @@ import org.jkiss.dbeaver.ext.erd.directedit.ColumnNameTypeCellEditorValidator;
import org.jkiss.dbeaver.ext.erd.directedit.ExtendedDirectEditManager;
import org.jkiss.dbeaver.ext.erd.directedit.LabelCellEditorLocator;
import org.jkiss.dbeaver.ext.erd.directedit.ValidationMessageHandler;
import org.jkiss.dbeaver.ext.erd.editor.ERDAttributeStyle;
import org.jkiss.dbeaver.ext.erd.editor.ERDViewStyle;
import org.jkiss.dbeaver.ext.erd.editor.ERDGraphicalViewer;
import org.jkiss.dbeaver.ext.erd.figures.AttributeItemFigure;
import org.jkiss.dbeaver.ext.erd.figures.EditableLabel;
......@@ -66,7 +66,7 @@ public class AttributePart extends PropertyAwarePart
AttributeItemFigure attributeFigure = new AttributeItemFigure(column);
DiagramPart diagramPart = (DiagramPart) getParent().getParent();
boolean showNullability = diagramPart.getDiagram().hasAttributeStyle(ERDAttributeStyle.NULLABILITY);
boolean showNullability = diagramPart.getDiagram().hasAttributeStyle(ERDViewStyle.NULLABILITY);
Font columnFont = diagramPart.getNormalFont();
Color columnColor = diagramPart.getContentPane().getForegroundColor();
if (column.isInPrimaryKey()) {
......
......@@ -30,6 +30,7 @@ import org.jkiss.dbeaver.ext.erd.directedit.ExtendedDirectEditManager;
import org.jkiss.dbeaver.ext.erd.directedit.LabelCellEditorLocator;
import org.jkiss.dbeaver.ext.erd.directedit.TableNameCellEditorValidator;
import org.jkiss.dbeaver.ext.erd.directedit.ValidationMessageHandler;
import org.jkiss.dbeaver.ext.erd.editor.ERDViewStyle;
import org.jkiss.dbeaver.ext.erd.editor.ERDGraphicalViewer;
import org.jkiss.dbeaver.ext.erd.figures.EditableLabel;
import org.jkiss.dbeaver.ext.erd.figures.EntityFigure;
......@@ -187,8 +188,11 @@ public class EntityPart extends NodePart {
*/
@Override
protected EntityFigure createFigure() {
final EntityFigure figure = new EntityFigure(getTable());
final EntityDiagram diagram = ((DiagramPart) getParent()).getDiagram();
boolean useFQN = diagram.hasAttributeStyle(ERDViewStyle.ENTITY_FQN);
final EntityFigure figure = new EntityFigure(getTable(), useFQN);
EntityDiagram.NodeVisualInfo visualInfo = diagram.getVisualInfo(getTable());
if (visualInfo != null) {
if (visualInfo.initBounds != null) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册