Skip to content

Commit

Permalink
ResultSetView: Ctrl+C multiple lines; view icon
Browse files Browse the repository at this point in the history
added view initial positions into perspective definition
  • Loading branch information
Endeavourl committed Mar 11, 2019
1 parent 69a5813 commit bcdcd0c
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public String call() throws Exception {
return JDBC_CONSTS.JDBC_SUCCESS;
}

private void writeResult(String query) throws Exception {
private void writeResult(String query) throws SQLException {
List<List<Object>> results = new ArrayList<>();
try (ResultSet res = st.getResultSet()) {

Expand Down
Binary file added ru.taximaxim.codekeeper.ui/icons/data_table_row.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 15 additions & 7 deletions ru.taximaxim.codekeeper.ui/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -878,7 +878,7 @@
id="ru.taximaxim.codekeeper.ui.resultsetview"
name="%view.name.ResultSetView"
class="ru.taximaxim.codekeeper.ui.views.ResultSetView"
icon="icons/app_icon16.png"
icon="icons/data_table_row.png"
category="ru.taximaxim.codekeeper.ui.viewsCategory" />
</extension>
<extension point="org.eclipse.ui.perspectives">
Expand Down Expand Up @@ -943,12 +943,6 @@
relationship="stack"
relative="org.eclipse.ui.views.ProgressView">
</view>
<view
id="org.eclipse.ui.views.ContentOutline"
minimized="false"
relationship="stack"
relative="org.eclipse.ui.views.ProgressView">
</view>
<view
id="org.eclipse.ui.views.ContentOutline"
minimized="false"
Expand All @@ -964,6 +958,20 @@
visible="false"
relative="org.eclipse.ui.editorss">
</view>
<view
id="ru.taximaxim.codekeeper.ui.resultsetview"
minimized="false"
relationship="stack"
visible="false"
relative="ru.taximaxim.codekeeper.ui.pgoverrideview">
</view>
<view
id="org.eclipse.ui.console.ConsoleView"
minimized="false"
relationship="stack"
visible="false"
relative="ru.taximaxim.codekeeper.ui.pgoverrideview">
</view>
<showInPart id="org.eclipse.ui.navigator.ProjectExplorer">
</showInPart>
</perspectiveExtension>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ColumnLabelProvider;
Expand All @@ -28,6 +27,7 @@

import cz.startnet.utils.pgdiff.PgDiffUtils;
import ru.taximaxim.codekeeper.apgdiff.fileutils.FileUtils;
import ru.taximaxim.codekeeper.ui.UIConsts;

public class ResultSetView extends ViewPart {

Expand All @@ -37,7 +37,7 @@ public class ResultSetView extends ViewPart {
public void createPartControl(Composite parent) {
tabFolder = new CTabFolder(parent, SWT.BOTTOM);
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
gd.minimumWidth = 700;
gd.widthHint = 700;
tabFolder.setLayoutData(gd);
}

Expand Down Expand Up @@ -71,29 +71,25 @@ public void addData(String query, List<List<Object>> results) {

@Override
public void keyPressed(KeyEvent e) {
if ((e.stateMask & SWT.CTRL) == SWT.CTRL && e.keyCode == 'c') {
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
if (selection.isEmpty()) {
return;
}
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
if (selection.isEmpty() || (e.stateMask & SWT.CTRL) != SWT.CTRL || e.keyCode != 'c') {
return;
}

List<?> obj = (List<?>) selection.getFirstElement();
String data = obj.stream().map(o -> {
if (o == null) {
return ""; //$NON-NLS-1$
} else {
String s = o.toString();
if (s.isEmpty() || s.contains(",") || s.contains(";") //$NON-NLS-1$ //$NON-NLS-2$
|| s.contains("\n") || s.contains("\"")) { //$NON-NLS-1$ //$NON-NLS-2$
s = PgDiffUtils.quoteName(s);
}
return s;
}
}).collect(Collectors.joining(",")); //$NON-NLS-1$

final Clipboard cb = new Clipboard(viewer.getControl().getDisplay());
cb.setContents(new Object[] {data}, new Transfer[] {TextTransfer.getInstance()});
StringBuilder sb = new StringBuilder();
for (Object r : selection.toList()) {
List<?> row = (List<?>) r;
for (Object val : row) {
sb.append(valueForCsv(val));
sb.append(',');
}
// remove trailing comma
sb.setLength(sb.length() - 1);
sb.append(UIConsts._NL);
}

final Clipboard cb = new Clipboard(viewer.getControl().getDisplay());
cb.setContents(new Object[] {sb.toString()}, new Transfer[] {TextTransfer.getInstance()});
}
});

Expand Down Expand Up @@ -123,7 +119,20 @@ public void setFocus() {
tabFolder.setFocus();
}

private final class IndexedColumnLabelProvider extends ColumnLabelProvider {
private String valueForCsv(Object val) {
if (val == null) {
return ""; //$NON-NLS-1$
}
String s = val.toString();
if (s.isEmpty() || s.indexOf(',') != -1 || s.indexOf(';') != -1
|| s.indexOf('\n') != -1 || s.indexOf('"') != -1) {
return PgDiffUtils.quoteName(s);
} else {
return s;
}
}

private static class IndexedColumnLabelProvider extends ColumnLabelProvider {
private final int i;

private IndexedColumnLabelProvider(int i) {
Expand All @@ -138,7 +147,7 @@ public String getText(Object element) {
}
}

private final class RowNumberLabelProvider extends ColumnLabelProvider {
private static class RowNumberLabelProvider extends ColumnLabelProvider {

private TableViewer viewer;

Expand Down

0 comments on commit bcdcd0c

Please sign in to comment.