diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyDescriptor.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyDescriptor.java index e8986c2fa45741f02250e9c3ec89f5048c20337d..e5d19a668c088cfcdc6b90bcebc828f5688c3478 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyDescriptor.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyDescriptor.java @@ -306,6 +306,15 @@ public class ObjectPropertyDescriptor extends ObjectAttributeDescriptor implemen return object instanceof DBPPersistedObject && !((DBPPersistedObject) object).isPersisted(); } + public boolean isEditPossible(Object context) + { + String expr = propInfo.editableExpr(); + if (!CommonUtils.isEmpty(expr)) { + return Boolean.TRUE.equals(evaluateExpression(context, expr)); + } + return propInfo.editable(); + } + @Override public String getCategory() { diff --git a/plugins/org.jkiss.dbeaver.ui.editors.base/src/org/jkiss/dbeaver/ui/editors/object/struct/AttributeEditPage.java b/plugins/org.jkiss.dbeaver.ui.editors.base/src/org/jkiss/dbeaver/ui/editors/object/struct/AttributeEditPage.java index 012b8c7451dd5aa56a9bd7bba94359ffef164c3b..477602dc947f0f50f30bfb4abc67e009104c622f 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.base/src/org/jkiss/dbeaver/ui/editors/object/struct/AttributeEditPage.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.base/src/org/jkiss/dbeaver/ui/editors/object/struct/AttributeEditPage.java @@ -109,7 +109,7 @@ public class AttributeEditPage extends BaseObjectEditPage { pc.collectProperties(); for (DBPPropertyDescriptor prop : pc.getProperties()) { if (prop instanceof ObjectPropertyDescriptor) { - if (((ObjectPropertyDescriptor) prop).isEditPossible() && !((ObjectPropertyDescriptor) prop).isNameProperty()) { + if (((ObjectPropertyDescriptor) prop).isEditPossible(attribute) && !((ObjectPropertyDescriptor) prop).isNameProperty()) { continue; } }