提交 078eb939 编写于 作者: J jurgen

Properties model refactoring

Former-commit-id: 3dfa8ff3
上级 2463495b
......@@ -25,13 +25,13 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchPartSite;
import org.eclipse.ui.IWorkbenchSite;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPObject;
import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.IDataSourceContainerProvider;
import org.jkiss.dbeaver.model.edit.DBECommandContext;
import org.jkiss.dbeaver.model.edit.DBEObjectEditor;
......@@ -369,10 +369,10 @@ public abstract class NodeListControl extends ObjectListControl<DBNNode> impleme
}
@Override
public IPropertyDescriptor[] getPropertyDescriptors()
public DBPPropertyDescriptor[] getPropertyDescriptors2()
{
Set<IPropertyDescriptor> props = getAllProperties();
return props.toArray(new IPropertyDescriptor[props.size()]);
Set<DBPPropertyDescriptor> props = getAllProperties();
return props.toArray(new DBPPropertyDescriptor[props.size()]);
}
}
......
......@@ -18,7 +18,6 @@
*/
package org.jkiss.dbeaver.ui.controls.itemlist;
import org.jkiss.dbeaver.core.Log;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
......@@ -30,9 +29,10 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.*;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.Log;
import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.IDataSourceContainerProvider;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.runtime.AbstractJob;
......@@ -673,9 +673,9 @@ public abstract class ObjectListControl<OBJECT_TYPE> extends ProgressPageControl
return false;
}
protected Set<IPropertyDescriptor> getAllProperties()
protected Set<DBPPropertyDescriptor> getAllProperties()
{
Set<IPropertyDescriptor> props = new LinkedHashSet<IPropertyDescriptor>();
Set<DBPPropertyDescriptor> props = new LinkedHashSet<DBPPropertyDescriptor>();
for (ObjectColumn column : columns) {
props.addAll(column.propMap.values());
}
......@@ -818,10 +818,10 @@ public abstract class ObjectListControl<OBJECT_TYPE> extends ProgressPageControl
}
@Override
public IPropertyDescriptor[] getPropertyDescriptors()
public DBPPropertyDescriptor[] getPropertyDescriptors2()
{
Set<IPropertyDescriptor> props = getAllProperties();
return props.toArray(new IPropertyDescriptor[props.size()]);
Set<DBPPropertyDescriptor> props = getAllProperties();
return props.toArray(new DBPPropertyDescriptor[props.size()]);
}
}
......
......@@ -19,14 +19,13 @@ package org.jkiss.dbeaver.ui.controls.resultset;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.jface.dialogs.IPageChangeProvider;
import org.eclipse.ui.views.properties.IPropertySource;
/**
* ResultSetAdapterFactory
*/
public class ResultSetAdapterFactory implements IAdapterFactory
{
private static final Class<?>[] ADAPTER_LIST = { IPropertySource.class, ResultSetViewer.class };
private static final Class<?>[] ADAPTER_LIST = { ResultSetViewer.class };
@Override
public Object getAdapter(Object adaptableObject, Class adapterType)
......@@ -40,7 +39,6 @@ public class ResultSetAdapterFactory implements IAdapterFactory
if (adaptableObject instanceof IPageChangeProvider) {
return getAdapter(((IPageChangeProvider) adaptableObject).getSelectedPage(), ResultSetViewer.class);
}
} else if (adapterType == IPropertySource.class) {
}
return null;
}
......
......@@ -22,7 +22,6 @@ import org.eclipse.core.runtime.jobs.JobChangeAdapter;
import org.eclipse.jface.viewers.IFilter;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.Log;
import org.jkiss.dbeaver.model.DBPContextProvider;
......@@ -52,7 +51,7 @@ public abstract class PropertySourceAbstract implements DBPPropertySource, IProp
private Object sourceObject;
private Object object;
private boolean loadLazyProps;
private final List<IPropertyDescriptor> props = new ArrayList<IPropertyDescriptor>();
private final List<DBPPropertyDescriptor> props = new ArrayList<DBPPropertyDescriptor>();
private final Map<Object, Object> propValues = new HashMap<Object, Object>();
private final Map<Object, Object> lazyValues = new HashMap<Object, Object>();
private final List<ObjectPropertyDescriptor> lazyProps = new ArrayList<ObjectPropertyDescriptor>();
......@@ -69,7 +68,7 @@ public abstract class PropertySourceAbstract implements DBPPropertySource, IProp
this.loadLazyProps = loadLazyProps;
}
public PropertySourceAbstract addProperty(IPropertyDescriptor prop)
public PropertySourceAbstract addProperty(DBPPropertyDescriptor prop)
{
if (prop instanceof ObjectPropertyDescriptor && ((ObjectPropertyDescriptor) prop).isHidden()) {
// Do not add it to property list
......@@ -311,11 +310,11 @@ public abstract class PropertySourceAbstract implements DBPPropertySource, IProp
for (final ObjectPropertyDescriptor desc : annoProps) {
addProperty(desc);
}
if (editableValue instanceof IPropertySource) {
IPropertySource ownPropSource = (IPropertySource) editableValue;
IPropertyDescriptor[] ownProperties = ownPropSource.getPropertyDescriptors();
if (editableValue instanceof DBPPropertySource) {
DBPPropertySource ownPropSource = (DBPPropertySource) editableValue;
DBPPropertyDescriptor[] ownProperties = ownPropSource.getPropertyDescriptors2();
if (!ArrayUtils.isEmpty(ownProperties)) {
for (IPropertyDescriptor prop : ownProperties) {
for (DBPPropertyDescriptor prop : ownProperties) {
props.add(prop);
propValues.put(prop.getId(), ownPropSource.getPropertyValue(prop.getId()));
}
......
......@@ -17,8 +17,8 @@
*/
package org.jkiss.dbeaver.ext.postgresql.model.plan;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.DBPPropertySource;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
import org.jkiss.dbeaver.model.meta.Property;
import org.jkiss.dbeaver.ui.properties.PropertyDescriptorEx;
......@@ -27,12 +27,15 @@ import org.jkiss.utils.xml.XMLUtils;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import java.util.*;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* MySQL execution plan node
*/
public class PostgrePlanNode implements DBCPlanNode, IPropertySource {
public class PostgrePlanNode implements DBCPlanNode, DBPPropertySource {
public static final String ATTR_NODE_TYPE = "Node-Type";
public static final String ATTR_RELATION_NAME = "Relation-Name";
......@@ -115,8 +118,8 @@ public class PostgrePlanNode implements DBCPlanNode, IPropertySource {
}
@Override
public IPropertyDescriptor[] getPropertyDescriptors() {
IPropertyDescriptor[] props = new IPropertyDescriptor[attributes.size()];
public DBPPropertyDescriptor[] getPropertyDescriptors2() {
DBPPropertyDescriptor[] props = new DBPPropertyDescriptor[attributes.size()];
int index = 0;
for (Map.Entry<String, String> attr : attributes.entrySet()) {
props[index++] = new PropertyDescriptorEx("Source", attr.getKey(), attr.getKey(), null, String.class, false, null, null, false);
......@@ -134,16 +137,36 @@ public class PostgrePlanNode implements DBCPlanNode, IPropertySource {
return false;//attributes.containsKey(id.toString());
}
@Override
public boolean isPropertyResettable(Object id) {
return false;
}
@Override
public void resetPropertyValue(Object id) {
}
@Override
public void resetPropertyValueToDefault(Object id) {
}
@Override
public void setPropertyValue(Object id, Object value) {
}
@Override
public boolean isDirty(Object id) {
return false;
}
@Override
public boolean hasDefaultValue(Object id) {
return false;
}
@Override
public String toString() {
StringBuilder title = new StringBuilder();
......
......@@ -17,12 +17,11 @@
*/
package org.jkiss.dbeaver.ext.wmi.model;
import org.jkiss.dbeaver.core.Log;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.PropertyDescriptor;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.ui.properties.DefaultPropertyLabelProvider;
import org.jkiss.dbeaver.core.Log;
import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.DBPPropertySource;
import org.jkiss.dbeaver.ui.properties.PropertyDescriptorEx;
import org.jkiss.wmi.service.WMIException;
import org.jkiss.wmi.service.WMIQualifiedObject;
import org.jkiss.wmi.service.WMIQualifier;
......@@ -32,10 +31,10 @@ import java.util.Collection;
/**
* Property source based on WMI qualifiers
*/
public abstract class WMIPropertySource implements IPropertySource
public abstract class WMIPropertySource implements DBPPropertySource
{
static final Log log = Log.getLog(WMIPropertySource.class);
private static final IPropertyDescriptor[] EMPTY_PROPERTIES = new IPropertyDescriptor[0];
private static final DBPPropertyDescriptor[] EMPTY_PROPERTIES = new DBPPropertyDescriptor[0];
protected abstract WMIQualifiedObject getQualifiedObject();
......@@ -57,7 +56,7 @@ public abstract class WMIPropertySource implements IPropertySource
}
@Override
public IPropertyDescriptor[] getPropertyDescriptors()
public DBPPropertyDescriptor[] getPropertyDescriptors2()
{
try {
WMIQualifiedObject qualifiedObject = getQualifiedObject();
......@@ -65,13 +64,11 @@ public abstract class WMIPropertySource implements IPropertySource
return EMPTY_PROPERTIES;
}
Collection<WMIQualifier> qualifiers = qualifiedObject.getQualifiers();
IPropertyDescriptor[] result = new IPropertyDescriptor[qualifiers.size()];
DBPPropertyDescriptor[] result = new DBPPropertyDescriptor[qualifiers.size()];
int index = 0;
for (WMIQualifier qualifier : qualifiers) {
String name = qualifier.getName();
PropertyDescriptor prop = new PropertyDescriptor(name, name);
prop.setLabelProvider(DefaultPropertyLabelProvider.INSTANCE);
prop.setCategory("WMI");
PropertyDescriptorEx prop = new PropertyDescriptorEx("WMI", name, name, null, null, false, null, null, false);
result[index++] = prop;
}
return result;
......@@ -115,4 +112,24 @@ public abstract class WMIPropertySource implements IPropertySource
}
@Override
public boolean isPropertyResettable(Object id) {
return false;
}
@Override
public void resetPropertyValueToDefault(Object id) {
}
@Override
public boolean isDirty(Object id) {
return false;
}
@Override
public boolean hasDefaultValue(Object id) {
return false;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册