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

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

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