提交 7234735a 编写于 作者: S serge-rider

#464 RSV: add row after current with Shift

上级 7ccb43b2
......@@ -27,6 +27,8 @@ import org.eclipse.jface.dialogs.IInputValidator;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.jface.text.IFindReplaceTarget;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchCommandConstants;
import org.eclipse.ui.IWorkbenchPart;
......@@ -100,6 +102,7 @@ public class ResultSetCommandHandler extends AbstractHandler {
if (rsv == null) {
return null;
}
boolean shiftPressed = event.getTrigger() instanceof Event && ((((Event)event.getTrigger()).stateMask & SWT.SHIFT) == SWT.SHIFT);
String actionId = event.getCommand().getId();
IResultSetPresentation presentation = rsv.getActivePresentation();
switch (actionId) {
......@@ -145,10 +148,10 @@ public class ResultSetCommandHandler extends AbstractHandler {
}
break;
case CMD_ROW_ADD:
rsv.addNewRow(false);
rsv.addNewRow(false, shiftPressed);
break;
case CMD_ROW_COPY:
rsv.addNewRow(true);
rsv.addNewRow(true, shiftPressed);
break;
case CMD_ROW_DELETE:
case IWorkbenchCommandConstants.EDIT_DELETE:
......
......@@ -1871,7 +1871,7 @@ public class ResultSetViewer extends Viewer
return new ResultSetPersister(this);
}
void addNewRow(final boolean copyCurrent)
void addNewRow(final boolean copyCurrent, boolean afterCurrent)
{
int rowNum = curRow == null ? 0 : curRow.getVisualNumber();
if (rowNum >= model.getRowCount()) {
......@@ -1946,7 +1946,7 @@ public class ResultSetViewer extends Viewer
}
}
}
curRow = model.addNewRow(rowNum, cells);
curRow = model.addNewRow(afterCurrent ? rowNum + 1 : rowNum, cells);
redrawData(true);
updateEditControls();
fireResultSetChange();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册