提交 338a2c50 编写于 作者: S Serge Rider

Column-specific actions fix (use current column instead of selected column when possible)


Former-commit-id: 6139fd0f
上级 a588fe90
......@@ -246,7 +246,9 @@
</commandParameter>
</command>
<command id="org.jkiss.dbeaver.core.resultset.grid.toggleLayout" name="%command.org.jkiss.dbeaver.core.resultset.grid.toggleLayout.name" description="%command.org.jkiss.dbeaver.core.resultset.grid.toggleLayout.description" categoryId="org.jkiss.dbeaver.core.rs"/>
<command id="org.jkiss.dbeaver.core.resultset.grid.copyColumnNames" name="%command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.name" description="%command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.description" categoryId="org.jkiss.dbeaver.core.rs"/>
<command id="org.jkiss.dbeaver.core.resultset.grid.copyColumnNames" name="%command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.name" description="%command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.description" categoryId="org.jkiss.dbeaver.core.rs">
<commandParameter id="columns" name="Columns to copy" optional="true"/>
</command>
<command id="org.jkiss.dbeaver.core.resultset.grid.copyRowNames" name="%command.org.jkiss.dbeaver.core.resultset.grid.copyRowNames.name" description="%command.org.jkiss.dbeaver.core.resultset.grid.copyRowNames.description" categoryId="org.jkiss.dbeaver.core.rs"/>
<command id="org.jkiss.dbeaver.core.resultset.grid.columnsFitValue" name="%command.org.jkiss.dbeaver.core.resultset.grid.columnsFitValue.name" description="%command.org.jkiss.dbeaver.core.resultset.grid.columnsFitValue.description" categoryId="org.jkiss.dbeaver.core.rs"/>
<command id="org.jkiss.dbeaver.core.resultset.grid.columnsFitScreen" name="%command.org.jkiss.dbeaver.core.resultset.grid.columnsFitScreen.name" description="%command.org.jkiss.dbeaver.core.resultset.grid.columnsFitScreen.description" categoryId="org.jkiss.dbeaver.core.rs"/>
......
......@@ -306,8 +306,20 @@ public class ResultSetHandlerMain extends AbstractHandler {
}
case CMD_COPY_COLUMN_NAMES: {
StringBuilder buffer = new StringBuilder();
String columnNames = event.getParameter("columns");
IResultSetSelection selection = rsv.getSelection();
List<DBDAttributeBinding> attrs = selection.isEmpty() ? rsv.getModel().getVisibleAttributes() : selection.getSelectedAttributes();
if (!CommonUtils.isEmpty(columnNames) && attrs.size() == 1) {
attrs = new ArrayList<>();
for (String colName : columnNames.split(",")) {
for (DBDAttributeBinding attr : rsv.getModel().getVisibleAttributes()) {
if (colName.equals(attr.getName())) {
attrs.add(attr);
}
}
}
}
ResultSetCopySettings settings = new ResultSetCopySettings();
if (attrs.size() > 1) {
......
......@@ -2196,7 +2196,15 @@ public class ResultSetViewer extends Viewer
if (attr == null && row != null) {
manager.add(ActionUtils.makeCommandContribution(site, ResultSetHandlerMain.CMD_COPY_ROW_NAMES));
} else if (attr != null && row == null) {
manager.add(ActionUtils.makeCommandContribution(site, ResultSetHandlerMain.CMD_COPY_COLUMN_NAMES));
manager.add(ActionUtils.makeCommandContribution(
site,
ResultSetHandlerMain.CMD_COPY_COLUMN_NAMES,
SWT.PUSH,
null,
null,
null,
false,
Collections.singletonMap("columns", attr.getName())));
} else {
manager.add(ActionUtils.makeCommandContribution(site, IWorkbenchCommandConstants.EDIT_COPY));
}
......
......@@ -784,6 +784,10 @@ public class SpreadsheetPresentation extends AbstractPresentation implements IRe
if (attr != null && row == null) {
final List<Object> selectedColumns = spreadsheet.getColumnSelection();
if (selectedColumns.size() == 1 && attr != null) {
selectedColumns.clear();
selectedColumns.add(attr);
}
if (!controller.isRecordMode() && !selectedColumns.isEmpty()) {
{
manager.insertBefore(IResultSetController.MENU_GROUP_ADDITIONS, new Separator());
......
......@@ -118,17 +118,18 @@ public class ActionUtils
@Nullable DBPImage image,
@Nullable String toolTip,
boolean showText) {
return makeCommandContribution(serviceLocator, commandId, CommandContributionItem.STYLE_PUSH, name, image, toolTip, showText);
return makeCommandContribution(serviceLocator, commandId, CommandContributionItem.STYLE_PUSH, name, image, toolTip, showText, null);
}
public static CommandContributionItem makeCommandContribution(
@NotNull IServiceLocator serviceLocator,
@NotNull String commandId,
int style,
@Nullable String name,
@Nullable DBPImage image,
@Nullable String toolTip,
boolean showText)
@NotNull IServiceLocator serviceLocator,
@NotNull String commandId,
int style,
@Nullable String name,
@Nullable DBPImage image,
@Nullable String toolTip,
boolean showText,
@Nullable Map<String, Object> parameters)
{
final CommandContributionItemParameter contributionParameters = new CommandContributionItemParameter(
serviceLocator,
......@@ -144,6 +145,7 @@ public class ActionUtils
style,
null,
false);
contributionParameters.parameters = parameters;
if (showText) {
contributionParameters.mode = CommandContributionItem.MODE_FORCE_TEXT;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册