提交 991e0bfa 编写于 作者: J jurgen

ERD attrs visibility config in preference page

Former-commit-id: 68948752
上级 0f876112
......@@ -18,11 +18,18 @@
*/
package org.jkiss.dbeaver.ext.erd.editor;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.jface.preference.IPreferenceStore;
import org.jkiss.dbeaver.ext.erd.ERDConstants;
import org.jkiss.utils.CommonUtils;
/**
* Entity attribute visibility
*/
public enum ERDAttributeVisibility
{
ALL("All"),
KEYS("Any keys"),
PRIMARY("Primary key"),
......@@ -30,6 +37,8 @@ public enum ERDAttributeVisibility
private final String title;
static final Log log = LogFactory.getLog(ERDAttributeVisibility.class);
ERDAttributeVisibility(String title)
{
this.title = title;
......@@ -39,4 +48,25 @@ public enum ERDAttributeVisibility
{
return title;
}
public static ERDAttributeVisibility getDefaultVisibility(IPreferenceStore store)
{
String attrVisibilityString = store.getString(ERDConstants.PREF_ATTR_VISIBILITY);
if (!CommonUtils.isEmpty(attrVisibilityString)) {
try {
return ERDAttributeVisibility.valueOf(attrVisibilityString);
} catch (IllegalArgumentException e) {
log.warn(e);
}
}
return PRIMARY;
}
public static void setDefaultVisibility(IPreferenceStore store, ERDAttributeVisibility visibility)
{
store.setValue(
ERDConstants.PREF_ATTR_VISIBILITY,
visibility.name());
}
}
......@@ -34,6 +34,8 @@ import org.jkiss.dbeaver.ext.erd.ERDMessages;
import org.jkiss.dbeaver.runtime.RuntimeUtils;
import org.jkiss.dbeaver.ui.UIUtils;
import java.util.ArrayList;
/**
* ERDPreferencePage
*/
......@@ -50,6 +52,7 @@ public class ERDPreferencePage extends PreferencePage implements IWorkbenchPrefe
private Button snapCheck;
private Spinner spinnerGridWidth;
private Spinner spinnerGridHeight;
private java.util.List<Button> visibilityButtons = new ArrayList<Button>();
@Override
protected Control createContents(Composite parent)
......@@ -60,6 +63,7 @@ public class ERDPreferencePage extends PreferencePage implements IWorkbenchPrefe
createGridGroup(store, composite);
createPrintGroup(store, composite);
createElementsGroup(store, composite);
return composite;
}
......@@ -96,6 +100,23 @@ public class ERDPreferencePage extends PreferencePage implements IWorkbenchPrefe
spinnerMarginRight = UIUtils.createLabelSpinner(printGroup, ERDMessages.pref_page_erd_spinner_margin_right, store.getInt(ERDConstants.PREF_PRINT_MARGIN_RIGHT), 0, Short.MAX_VALUE);
}
private void createElementsGroup(IPreferenceStore store, Composite composite)
{
ERDAttributeVisibility defaultVisibility = ERDAttributeVisibility.getDefaultVisibility(store);
Group elemsGroup = UIUtils.createControlGroup(composite, "Attributes visibility", 1, GridData.VERTICAL_ALIGN_BEGINNING, 0);
elemsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
for (ERDAttributeVisibility visibility : ERDAttributeVisibility.values()) {
Button radio = new Button(elemsGroup, SWT.RADIO);
radio.setData(visibility);
radio.setText(visibility.getTitle());
if (visibility == defaultVisibility) {
radio.setSelection(true);
}
visibilityButtons.add(radio);
}
}
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
......@@ -136,6 +157,12 @@ public class ERDPreferencePage extends PreferencePage implements IWorkbenchPrefe
store.setValue(ERDConstants.PREF_PRINT_MARGIN_LEFT, spinnerMarginLeft.getSelection());
store.setValue(ERDConstants.PREF_PRINT_MARGIN_RIGHT, spinnerMarginRight.getSelection());
for (Button radio : visibilityButtons) {
if (radio.getSelection()) {
ERDAttributeVisibility.setDefaultVisibility(store, (ERDAttributeVisibility) radio.getData());
}
}
RuntimeUtils.savePreferenceStore(store);
return true;
......@@ -152,4 +179,5 @@ public class ERDPreferencePage extends PreferencePage implements IWorkbenchPrefe
{
this.element = element;
}
}
\ No newline at end of file
......@@ -24,12 +24,10 @@ package org.jkiss.dbeaver.ext.erd.model;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
import org.jkiss.dbeaver.ext.erd.Activator;
import org.jkiss.dbeaver.ext.erd.ERDConstants;
import org.jkiss.dbeaver.ext.erd.editor.ERDAttributeVisibility;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSEntity;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.utils.CommonUtils;
import java.util.*;
......@@ -59,15 +57,7 @@ public class EntityDiagram extends ERDObject<DBSObject>
if (name == null)
throw new NullPointerException("Name cannot be null");
this.name = name;
String attrVisibilityString = Activator.getDefault().getPreferenceStore().getString(ERDConstants.PREF_ATTR_VISIBILITY);
if (!CommonUtils.isEmpty(attrVisibilityString)) {
try {
attributeVisibility = ERDAttributeVisibility.valueOf(attrVisibilityString);
} catch (IllegalArgumentException e) {
log.warn(e);
}
}
this.attributeVisibility = ERDAttributeVisibility.getDefaultVisibility(Activator.getDefault().getPreferenceStore());
}
......@@ -79,9 +69,7 @@ public class EntityDiagram extends ERDObject<DBSObject>
public void setAttributeVisibility(ERDAttributeVisibility attributeVisibility)
{
this.attributeVisibility = attributeVisibility;
Activator.getDefault().getPreferenceStore().setValue(
ERDConstants.PREF_ATTR_VISIBILITY,
attributeVisibility.name());
ERDAttributeVisibility.setDefaultVisibility(Activator.getDefault().getPreferenceStore(), attributeVisibility);
}
public synchronized void addTable(ERDEntity entity, boolean reflect)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册