提交 97ef9f1d 编写于 作者: S Serge Rider

Merge remote-tracking branch 'origin/devel' into devel

......@@ -66,7 +66,7 @@ public class ERDHandlerPaste extends AbstractHandler {
if (editor != null && !editor.isReadOnly()) {
final Collection<DBPNamedObject> objects = DatabaseObjectTransfer.getInstance().getObject();
if (!CommonUtils.isEmpty(objects)) {
final List<ERDEntity> erdEntities = DiagramObjectCollector.generateEntityList(editor.getDiagram(), objects);
final List<ERDEntity> erdEntities = DiagramObjectCollector.generateEntityList(editor.getDiagram(), objects, true);
if (!CommonUtils.isEmpty(erdEntities)) {
Command command = editor.getDiagramPart().createEntityAddCommand(erdEntities, new Point(10, 10));
editor.getCommandStack().execute(command);
......
......@@ -63,7 +63,8 @@ public class NodeDropTargetListener extends AbstractTransferDropTargetListener {
return DiagramObjectCollector.generateEntityList(
((DiagramPart) getViewer().getRootEditPart().getContents()).getDiagram(),
objects);
objects,
true);
}
@Override
......
......@@ -40,6 +40,7 @@ public class DiagramObjectCollector {
private final EntityDiagram diagram;
private final List<ERDEntity> erdEntities = new ArrayList<>();
private boolean showViews;
public DiagramObjectCollector(EntityDiagram diagram)
{
......@@ -56,6 +57,14 @@ public class DiagramObjectCollector {
return tables;
}
public boolean isShowViews() {
return showViews;
}
public void setShowViews(boolean showViews) {
this.showViews = showViews;
}
private static void collectTables(
DBRProgressMonitor monitor,
Collection<? extends DBSObject> roots,
......@@ -115,7 +124,6 @@ public class DiagramObjectCollector {
Collection<? extends DBSObject> roots)
throws DBException
{
boolean showViews = ERDActivator.getDefault().getPreferenceStore().getBoolean(ERDConstants.PREF_DIAGRAM_SHOW_VIEWS);
Collection<DBSEntity> tables = collectTables(monitor, roots);
for (DBSEntity table : tables) {
if (DBUtils.isHiddenObject(table)) {
......@@ -161,7 +169,7 @@ public class DiagramObjectCollector {
return erdEntities;
}
public static List<ERDEntity> generateEntityList(final EntityDiagram diagram, Collection<DBPNamedObject> objects)
public static List<ERDEntity> generateEntityList(final EntityDiagram diagram, Collection<DBPNamedObject> objects, boolean showViews)
{
final List<DBSObject> roots = new ArrayList<>();
for (DBPNamedObject object : objects) {
......@@ -175,6 +183,9 @@ public class DiagramObjectCollector {
try {
UIUtils.runInProgressService(monitor -> {
DiagramObjectCollector collector = new DiagramObjectCollector(diagram);
collector.setShowViews(showViews);
//boolean showViews = ERDActivator.getDefault().getPreferenceStore().getBoolean(ERDConstants.PREF_DIAGRAM_SHOW_VIEWS);
try {
collector.generateDiagramObjects(monitor, roots);
} catch (DBException e) {
......
......@@ -223,11 +223,11 @@ public final class DBValueFormatting {
public static String convertNumberToNativeString(Number value) {
if (value instanceof BigDecimal) {
return ((BigDecimal) value).toPlainString();
} else if (value instanceof Float) {
} /*else if (value instanceof Float) {
return NATIVE_FLOAT_FORMATTER.format(value);
} else if (value instanceof Double) {
return NATIVE_DOUBLE_FORMATTER.format(value);
} else {
}*/ else {
return value.toString();
}
......
......@@ -214,7 +214,7 @@ public abstract class DBDAttributeBinding implements DBSObject, DBSAttributeBase
StringBuilder query = new StringBuilder();
boolean hasPrevIdentifier = false;
for (DBDAttributeBinding attribute = this; attribute != null; attribute = attribute.getParentObject()) {
if (attribute.isPseudoAttribute() || attribute.getDataKind() == DBPDataKind.DOCUMENT) {
if (attribute.isPseudoAttribute() || (attribute.getParentObject() == null && attribute.getDataKind() == DBPDataKind.DOCUMENT)) {
// Skip pseudo attributes and document attributes (e.g. Mongo root document)
continue;
}
......
......@@ -16,10 +16,10 @@
*/
package org.jkiss.dbeaver.model.impl.jdbc.data;
import org.jkiss.dbeaver.Log;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.data.DBDValueHandler;
import org.jkiss.dbeaver.model.exec.DBCException;
......@@ -32,7 +32,8 @@ import org.jkiss.utils.CommonUtils;
import java.sql.SQLException;
import java.sql.Struct;
import java.util.*;
import java.util.Arrays;
import java.util.Collection;
/**
* Static struct holder.
......@@ -46,8 +47,7 @@ public class JDBCCompositeStatic extends JDBCComposite {
super(struct, monitor);
}
public JDBCCompositeStatic(DBCSession session, @NotNull DBSDataType type, @Nullable Struct contents) throws DBCException
{
public JDBCCompositeStatic(DBCSession session, @NotNull DBSDataType type, @Nullable Struct contents) throws DBCException {
super(contents);
this.type = type;
......@@ -55,7 +55,7 @@ public class JDBCCompositeStatic extends JDBCComposite {
try {
Object[] attrValues = contents == null ? null : contents.getAttributes();
if (type instanceof DBSEntity) {
DBSEntity entity = (DBSEntity)type;
DBSEntity entity = (DBSEntity) type;
Collection<? extends DBSEntityAttribute> entityAttributes = CommonUtils.safeCollection(entity.getAttributes(session.getProgressMonitor()));
int valueCount = attrValues == null ? 0 : attrValues.length;
if (attrValues != null && entityAttributes.size() != valueCount) {
......@@ -87,9 +87,12 @@ public class JDBCCompositeStatic extends JDBCComposite {
}
@Override
public JDBCCompositeStatic cloneValue(DBRProgressMonitor monitor) throws DBCException
{
public JDBCCompositeStatic cloneValue(DBRProgressMonitor monitor) throws DBCException {
return new JDBCCompositeStatic(this, monitor);
}
public String getStringRepresentation() {
return Arrays.toString(values);
}
}
......@@ -31,6 +31,7 @@ import org.jkiss.dbeaver.model.exec.DBCAttributeMetaData;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.struct.DBSAttributeBase;
import org.jkiss.dbeaver.model.struct.DBSTypedObject;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.data.IAttributeController;
import org.jkiss.dbeaver.ui.data.IDataController;
......@@ -137,7 +138,15 @@ public class ResultSetValueController implements IAttributeController, IRowContr
@Override
public void updateValue(@Nullable Object value, boolean updatePresentation)
{
boolean updated = controller.getModel().updateCellValue(binding, curRow, value);
boolean updated;
try {
updated = controller.getModel().updateCellValue(binding, curRow, value);
} catch (Exception e) {
UIUtils.asyncExec(() -> {
DBWorkbench.getPlatformUI().showError("Value update", "Error updating value: " + e.getMessage(), e);
});
return;
}
if (updated && updatePresentation) {
// Update controls
UIUtils.syncExec(new Runnable() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册