提交 2b4853d4 编写于 作者: S serge@jkiss.org

Virtual model binding fix

上级 2a692037
......@@ -42,6 +42,16 @@ public class DBVColorOverride {
this.colorBackground = colorBackground;
}
public DBVColorOverride(DBVColorOverride source) {
this.attributeName = source.attributeName;
this.operator = source.operator;
this.attributeValues = Arrays.copyOf(source.attributeValues, source.attributeValues.length);
this.colorForeground = source.colorForeground;
this.colorBackground = source.colorBackground;
this.colorForeground2 = source.colorForeground2;
this.colorBackground2 = source.colorBackground2;
}
public String getAttributeName() {
return attributeName;
}
......
......@@ -93,6 +93,12 @@ public class DBVEntity extends DBVObject implements DBSEntity, DBPQualifiedObjec
if (!CommonUtils.isEmpty(copy.properties)) {
this.properties = new LinkedHashMap<>(copy.properties);
}
if (!CommonUtils.isEmpty(copy.colorOverrides)) {
this.colorOverrides = new ArrayList<>(copy.colorOverrides.size());
for (DBVColorOverride co : copy.colorOverrides) {
this.colorOverrides.add(new DBVColorOverride(co));
}
}
}
DBVEntity(DBVContainer container, String name, Map<String, Object> map) {
......
......@@ -39,9 +39,10 @@ import java.util.Map;
public class DBVModel extends DBVContainer {
private DBPDataSourceContainer dataSourceContainer;
@NotNull
private String id;
public DBVModel(String id, Map<String, Object> map) {
public DBVModel(@NotNull String id, @NotNull Map<String, Object> map) {
super(null, id, map);
this.id = id;
}
......@@ -53,20 +54,29 @@ public class DBVModel extends DBVContainer {
}
// Copy constructor
public DBVModel(DBPDataSourceContainer dataSourceContainer, DBVModel source) {
public DBVModel(@NotNull DBPDataSourceContainer dataSourceContainer, @NotNull DBVModel source) {
super(null, source);
this.dataSourceContainer = dataSourceContainer;
this.id = dataSourceContainer.getId();
}
@NotNull
public String getId() {
return id;
}
public void setId(String id) {
public void setId(@NotNull String id) {
this.id = id;
}
public DBPDataSourceContainer getDataSourceContainer() {
return dataSourceContainer;
}
public void setDataSourceContainer(DBPDataSourceContainer dataSourceContainer) {
this.dataSourceContainer = dataSourceContainer;
}
@Override
public DBSObjectContainer getRealContainer(DBRProgressMonitor monitor) throws DBException {
DBPDataSource dataSource = dataSourceContainer.getDataSource();
......@@ -80,7 +90,7 @@ public class DBVModel extends DBVContainer {
@Nullable
@Override
public DBPDataSource getDataSource() {
return dataSourceContainer.getDataSource();
return dataSourceContainer == null ? null : dataSourceContainer.getDataSource();
}
/**
......
......@@ -543,7 +543,15 @@ public class DataSourceDescriptor
}
public void setVirtualModel(@NotNull DBVModel virtualModel) {
this.virtualModel = virtualModel;
if (virtualModel.getId().equals(getId())) {
// DS-specific model
this.virtualModel = virtualModel;
this.virtualModel.setDataSourceContainer(this);
} else {
// Shared model
this.virtualModel = new DBVModel(this, virtualModel);
this.virtualModel.setId(virtualModel.getId());
}
}
@Override
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册