From e0a679b1c42d561cddd513b685003e11fad51eea Mon Sep 17 00:00:00 2001 From: serge-rider Date: Sun, 6 May 2018 22:32:50 +0300 Subject: [PATCH] Code cleanup (java 8) --- .../ui/controls/lightgrid/LightGrid.java | 88 +++---------------- .../ui/controls/querylog/QueryLogViewer.java | 19 +--- .../resultset/ResultSetCommandHandler.java | 33 +++---- .../resultset/ResultSetDataContainer.java | 21 ++--- .../resultset/ResultSetDataReceiver.java | 27 +++--- .../ui/controls/resultset/ResultSetModel.java | 81 ++++++++--------- .../panel/AggregateColumnsPanel.java | 45 +++------- .../resultset/panel/MetaDataPanel.java | 55 +++++------- .../resultset/panel/ViewValuePanel.java | 56 ++++-------- .../plaintext/PlainTextPresentation.java | 13 +-- .../resultset/spreadsheet/Spreadsheet.java | 59 +++---------- .../spreadsheet/SpreadsheetCellEditor.java | 10 +-- .../spreadsheet/SpreadsheetPresentation.java | 16 +--- .../jkiss/dbeaver/model/qm/QMObjectType.java | 2 +- .../org/jkiss/dbeaver/model/qm/QMUtils.java | 2 - 15 files changed, 153 insertions(+), 374 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java index f6c0da662c..f3983d4f97 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java @@ -32,7 +32,6 @@ import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.model.DBPImage; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.dnd.LocalObjectTransfer; -import org.jkiss.dbeaver.ui.dnd.TreeNodeTransfer; import org.jkiss.utils.ArrayUtils; import org.jkiss.utils.CommonUtils; import org.jkiss.utils.IntKeyMap; @@ -2578,12 +2577,7 @@ public abstract class LightGrid extends Canvas { for (Integer columnIndex : columnIndices.keySet()) { selectedColumns.add(columns.get(columnIndex)); } - Collections.sort(selectedColumns, new Comparator() { - @Override - public int compare(GridColumn o1, GridColumn o2) { - return o1.getIndex() - o2.getIndex(); - } - }); + selectedColumns.sort(Comparator.comparingInt(GridColumn::getIndex)); } /** @@ -2591,66 +2585,23 @@ public abstract class LightGrid extends Canvas { */ private void initListeners() { - disposeListener = new Listener() { - @Override - public void handleEvent(Event e) - { - onDispose(e); - } - }; + disposeListener = this::onDispose; addListener(SWT.Dispose, disposeListener); - addPaintListener(new PaintListener() { - @Override - public void paintControl(PaintEvent e) - { - onPaint(e); - } - }); - - addListener(SWT.Resize, new Listener() { - @Override - public void handleEvent(Event e) - { - onResize(); - } - }); + addPaintListener(this::onPaint); + addListener(SWT.Resize, e -> onResize()); if (getVerticalBar() != null) { - getVerticalBar().addListener(SWT.Selection, new Listener() { - @Override - public void handleEvent(Event e) - { - onScrollSelection(); - } - }); + getVerticalBar().addListener(SWT.Selection, e -> onScrollSelection()); } if (getHorizontalBar() != null) { - getHorizontalBar().addListener(SWT.Selection, new Listener() { - @Override - public void handleEvent(Event e) - { - onScrollSelection(); - } - }); + getHorizontalBar().addListener(SWT.Selection, e -> onScrollSelection()); } - addListener(SWT.KeyDown, new Listener() { - @Override - public void handleEvent(Event e) - { - onKeyDown(e); - } - }); + addListener(SWT.KeyDown, this::onKeyDown); - addTraverseListener(new TraverseListener() { - @Override - public void keyTraversed(TraverseEvent e) - { - e.doit = true; - } - }); + addTraverseListener(e -> e.doit = true); addMouseListener(new MouseListener() { @Override @@ -2672,13 +2623,7 @@ public abstract class LightGrid extends Canvas { } }); - addMouseMoveListener(new MouseMoveListener() { - @Override - public void mouseMove(MouseEvent e) - { - onMouseMove(e); - } - }); + addMouseMoveListener(this::onMouseMove); addMouseTrackListener(new MouseTrackListener() { @Override @@ -2715,13 +2660,7 @@ public abstract class LightGrid extends Canvas { // Special code to reflect mouse wheel events if using an external // scroller - addListener(SWT.MouseWheel, new Listener() { - @Override - public void handleEvent(Event e) - { - onMouseWheel(e); - } - }); + addListener(SWT.MouseWheel, this::onMouseWheel); } private void onFocusIn() @@ -2979,12 +2918,7 @@ public abstract class LightGrid extends Canvas { if (focusItem > row) { focusItem = row; } - for (Iterator iter = selectedCells.iterator(); iter.hasNext(); ) { - GridPos pos = iter.next(); - if (pos.row > row) { - iter.remove(); - } - } + selectedCells.removeIf(pos -> pos.row > row); updateSelectionCache(); computeHeaderSizes(); this.scrollValuesObsolete = true; diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java index 9bc984644d..3d83d08247 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java @@ -19,9 +19,6 @@ package org.jkiss.dbeaver.ui.controls.querylog; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.IJobChangeEvent; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.core.runtime.jobs.JobChangeAdapter; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.MenuManager; @@ -33,7 +30,6 @@ import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jgit.annotations.Nullable; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.*; @@ -47,6 +43,7 @@ import org.eclipse.swt.widgets.*; import org.eclipse.ui.IWorkbenchCommandConstants; import org.eclipse.ui.IWorkbenchPartSite; import org.jkiss.code.NotNull; +import org.jkiss.code.Nullable; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.core.CoreCommands; @@ -60,7 +57,6 @@ import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener; import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore; import org.jkiss.dbeaver.model.qm.*; import org.jkiss.dbeaver.model.qm.meta.*; -import org.jkiss.dbeaver.model.runtime.AbstractJob; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.sql.SQLConstants; import org.jkiss.dbeaver.model.sql.SQLDialect; @@ -333,20 +329,11 @@ public class QueryLogViewer extends Viewer implements QMMetaListener, DBPPrefere private int entriesPerPage = MIN_ENTRIES_PER_PAGE; - private Job filterJob; - public QueryLogViewer(Composite parent, IWorkbenchPartSite site, QMEventFilter filter, boolean showConnection) { super(); this.site = site; - this.filterJob = new AbstractJob("Filter query history") { - @Override - protected IStatus run(DBRProgressMonitor monitor) { - refresh(); - return Status.OK_STATUS; - } - }; // Prepare colors @@ -372,9 +359,7 @@ public class QueryLogViewer extends Viewer implements QMMetaListener, DBPPrefere e.gc.setFont(null); } }); - this.searchText.addModifyListener(e -> { - scheduleLogRefresh(); - }); + this.searchText.addModifyListener(e -> scheduleLogRefresh()); // Create log table logTable = new Table( diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetCommandHandler.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetCommandHandler.java index fa211f9050..d58082d1b1 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetCommandHandler.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetCommandHandler.java @@ -51,7 +51,6 @@ import org.jkiss.dbeaver.model.data.DBDDisplayFormat; import org.jkiss.dbeaver.model.edit.DBEPersistAction; import org.jkiss.dbeaver.model.runtime.AbstractJob; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; -import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress; import org.jkiss.dbeaver.model.sql.SQLUtils; import org.jkiss.dbeaver.runtime.ui.DBUserInterface; import org.jkiss.dbeaver.tools.transfer.IDataTransferProducer; @@ -231,13 +230,10 @@ public class ResultSetCommandHandler extends AbstractHandler { try { final List sqlScript = new ArrayList<>(); try { - DBeaverUI.runInProgressService(new DBRRunnableWithProgress() { - @Override - public void run(DBRProgressMonitor monitor) throws InvocationTargetException, InterruptedException { - List script = rsv.generateChangesScript(monitor); - if (script != null) { - sqlScript.addAll(script); - } + DBeaverUI.runInProgressService(monitor -> { + List script = rsv.generateChangesScript(monitor); + if (script != null) { + sqlScript.addAll(script); } }); } catch (InterruptedException e) { @@ -384,20 +380,17 @@ public class ResultSetCommandHandler extends AbstractHandler { "Go to Row", "Enter row number (1.." + rowCount + ")", String.valueOf(currentRow == null ? 1 : currentRow.getVisualNumber() + 1), - new IInputValidator() { - @Override - public String isValid(String input) { - try { - int i = Integer.parseInt(input); - if (i <= 0 || rowCount < i) { - return "Row number is out of range"; - } - } catch (NumberFormatException x) { - return "Not a number"; + input -> { + try { + int i = Integer.parseInt(input); + if (i <= 0 || rowCount < i) { + return "Row number is out of range"; } - - return null; + } catch (NumberFormatException x) { + return "Not a number"; } + + return null; }); if (d.open() == Window.OK) { int line = Integer.parseInt(d.getValue()); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataContainer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataContainer.java index a027374346..2db8944fe9 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataContainer.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataContainer.java @@ -217,20 +217,17 @@ public class ResultSetDataContainer implements DBSDataContainer, IAdaptable { @Override public DBCResultSetMetaData getMeta() throws DBCException { - return new DBCResultSetMetaData() { - @Override - public List getAttributes() { - List attributes = model.getVisibleAttributes(); - List meta = new ArrayList<>(attributes.size()); - boolean selectedColumnsOnly = proceedSelectedColumnsOnly(); - for (DBDAttributeBinding attribute : attributes) { - DBCAttributeMetaData metaAttribute = attribute.getMetaAttribute(); - if (!selectedColumnsOnly || options.getSelectedColumns().contains(metaAttribute.getName())) { - meta.add(metaAttribute); - } + return () -> { + List attributes = model.getVisibleAttributes(); + List meta = new ArrayList<>(attributes.size()); + boolean selectedColumnsOnly = proceedSelectedColumnsOnly(); + for (DBDAttributeBinding attribute : attributes) { + DBCAttributeMetaData metaAttribute = attribute.getMetaAttribute(); + if (!selectedColumnsOnly || options.getSelectedColumns().contains(metaAttribute.getName())) { + meta.add(metaAttribute); } - return meta; } + return meta; }; } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataReceiver.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataReceiver.java index 95a4294923..cea8070824 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataReceiver.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataReceiver.java @@ -156,22 +156,19 @@ class ResultSetDataReceiver implements DBDDataReceiver { final List tmpRows = rows; final boolean nextSegmentRead = this.nextSegmentRead; - DBeaverUI.syncExec(new Runnable() { - @Override - public void run() { - // Push data into viewer - if (!nextSegmentRead) { - resultSetViewer.updatePresentation(resultSet); - resultSetViewer.setData(tmpRows, focusRow); - resultSetViewer.getActivePresentation().refreshData(true, false, !resultSetViewer.getModel().isMetadataChanged()); - } else { - resultSetViewer.appendData(tmpRows); - resultSetViewer.getActivePresentation().refreshData(false, true, true); - } - resultSetViewer.updateStatusMessage(); - // Check for more data - hasMoreData = maxRows > 0 && tmpRows.size() >= maxRows; + DBeaverUI.syncExec(() -> { + // Push data into viewer + if (!nextSegmentRead) { + resultSetViewer.updatePresentation(resultSet); + resultSetViewer.setData(tmpRows, focusRow); + resultSetViewer.getActivePresentation().refreshData(true, false, !resultSetViewer.getModel().isMetadataChanged()); + } else { + resultSetViewer.appendData(tmpRows); + resultSetViewer.getActivePresentation().refreshData(false, true, true); } + resultSetViewer.updateStatusMessage(); + // Check for more data + hasMoreData = maxRows > 0 && tmpRows.size() >= maxRows; }); } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetModel.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetModel.java index 5922f8d7bc..ae176250d2 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetModel.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetModel.java @@ -544,7 +544,7 @@ public class ResultSetModel { this.dataFilter = createDataFilter(); updateDataFilter(prevFilter); } - Collections.sort(this.visibleAttributes, POSITION_SORTER); + this.visibleAttributes.sort(POSITION_SORTER); { // Check single source flag @@ -597,11 +597,8 @@ public class ResultSetModel { for (DBVColorOverride co : coList) { DBDAttributeBinding binding = getAttributeBinding(entity, co.getAttributeName()); if (binding != null) { - List cmList = colorMapping.get(binding); - if (cmList == null) { - cmList = new ArrayList<>(); - colorMapping.put(binding, cmList); - } + List cmList = + colorMapping.computeIfAbsent(binding, k -> new ArrayList<>()); cmList.add(new AttributeColorSettings(co)); } } @@ -724,12 +721,7 @@ public class ResultSetModel { if (rows != null && !rows.isEmpty()) { // Remove rows (in descending order to prevent concurrent modification errors) List rowsToRemove = new ArrayList<>(rows); - Collections.sort(rowsToRemove, new Comparator() { - @Override - public int compare(ResultSetRow o1, ResultSetRow o2) { - return o1.getVisualNumber() - o2.getVisualNumber(); - } - }); + rowsToRemove.sort(Comparator.comparingInt(ResultSetRow::getVisualNumber)); for (ResultSetRow row : rowsToRemove) { cleanupRow(row); } @@ -858,7 +850,7 @@ public class ResultSetModel { } } - Collections.sort(this.visibleAttributes, POSITION_SORTER); + this.visibleAttributes.sort(POSITION_SORTER); this.dataFilter.setWhere(filter.getWhere()); this.dataFilter.setOrder(filter.getOrder()); @@ -869,42 +861,39 @@ public class ResultSetModel { final boolean hasOrdering = dataFilter.hasOrdering(); // Sort locally final List orderConstraints = dataFilter.getOrderConstraints(); - Collections.sort(curRows, new Comparator() { - @Override - public int compare(ResultSetRow row1, ResultSetRow row2) { - if (!hasOrdering) { - return row1.getRowNumber() - row2.getRowNumber(); + curRows.sort((row1, row2) -> { + if (!hasOrdering) { + return row1.getRowNumber() - row2.getRowNumber(); + } + int result = 0; + for (DBDAttributeConstraint co : orderConstraints) { + final DBDAttributeBinding binding = getAttributeBinding(co.getAttribute()); + if (binding == null) { + continue; } - int result = 0; - for (DBDAttributeConstraint co : orderConstraints) { - final DBDAttributeBinding binding = getAttributeBinding(co.getAttribute()); - if (binding == null) { - continue; - } - Object cell1 = getCellValue(binding, row1); - Object cell2 = getCellValue(binding, row2); - if (cell1 == cell2) { - result = 0; - } else if (DBUtils.isNullValue(cell1)) { - result = 1; - } else if (DBUtils.isNullValue(cell2)) { - result = -1; - } else if (cell1 instanceof Comparable) { - result = ((Comparable) cell1).compareTo(cell2); - } else { - String str1 = String.valueOf(cell1); - String str2 = String.valueOf(cell2); - result = str1.compareTo(str2); - } - if (co.isOrderDescending()) { - result = -result; - } - if (result != 0) { - break; - } + Object cell1 = getCellValue(binding, row1); + Object cell2 = getCellValue(binding, row2); + if (cell1 == cell2) { + result = 0; + } else if (DBUtils.isNullValue(cell1)) { + result = 1; + } else if (DBUtils.isNullValue(cell2)) { + result = -1; + } else if (cell1 instanceof Comparable) { + result = ((Comparable) cell1).compareTo(cell2); + } else { + String str1 = String.valueOf(cell1); + String str2 = String.valueOf(cell2); + result = str1.compareTo(str2); + } + if (co.isOrderDescending()) { + result = -result; + } + if (result != 0) { + break; } - return result; } + return result; }); for (int i = 0; i < curRows.size(); i++) { curRows.get(i).setVisualNumber(i); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/AggregateColumnsPanel.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/AggregateColumnsPanel.java index cb57596ad1..b760554929 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/AggregateColumnsPanel.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/AggregateColumnsPanel.java @@ -19,9 +19,7 @@ package org.jkiss.dbeaver.ui.controls.resultset.panel; import org.eclipse.jface.action.*; import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; -import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.TextTransfer; import org.eclipse.swt.events.SelectionAdapter; @@ -103,26 +101,19 @@ public class AggregateColumnsPanel implements IResultSetPanel { new TreeColumn(this.aggregateTable, SWT.RIGHT).setText("Value"); if (this.presentation instanceof ISelectionProvider) { - ((ISelectionProvider) this.presentation).addSelectionChangedListener(new ISelectionChangedListener() { - @Override - public void selectionChanged(SelectionChangedEvent event) { - if (presentation.getController().getVisiblePanel() == AggregateColumnsPanel.this) { - refresh(false); - } + ((ISelectionProvider) this.presentation).addSelectionChangedListener(event -> { + if (presentation.getController().getVisiblePanel() == AggregateColumnsPanel.this) { + refresh(false); } }); } MenuManager menuMgr = new MenuManager(); - menuMgr.addMenuListener(new IMenuListener() { - @Override - public void menuAboutToShow(IMenuManager manager) - { - manager.add(new CopyAction()); - manager.add(new CopyAllAction()); - manager.add(new Separator()); - fillToolBar(manager); - } + menuMgr.addMenuListener(manager -> { + manager.add(new CopyAction()); + manager.add(new CopyAllAction()); + manager.add(new Separator()); + fillToolBar(manager); }); menuMgr.setRemoveAllWhenShown(true); @@ -157,12 +148,7 @@ public class AggregateColumnsPanel implements IResultSetPanel { enabledFunctions.add(func); } } - Collections.sort(enabledFunctions, new Comparator() { - @Override - public int compare(AggregateFunctionDescriptor o1, AggregateFunctionDescriptor o2) { - return funcIndexes.get(o1) - funcIndexes.get(o2); - } - }); + enabledFunctions.sort(Comparator.comparingInt(funcIndexes::get)); } if (enabledFunctions.isEmpty()) { @@ -176,12 +162,7 @@ public class AggregateColumnsPanel implements IResultSetPanel { enabledFunctions.add(func); } } - Collections.sort(enabledFunctions, new Comparator() { - @Override - public int compare(AggregateFunctionDescriptor o1, AggregateFunctionDescriptor o2) { - return o1.getLabel().compareTo(o2.getLabel()); - } - }); + enabledFunctions.sort(Comparator.comparing(AggregateFunctionDescriptor::getLabel)); } private void saveSettings() { @@ -241,11 +222,7 @@ public class AggregateColumnsPanel implements IResultSetPanel { DBDAttributeBinding attr = selection.getElementAttribute(element); ResultSetRow row = selection.getElementRow(element); Object cellValue = model.getCellValue(attr, row); - List values = attrValues.get(attr); - if (values == null) { - values = new ArrayList<>(); - attrValues.put(attr, values); - } + List values = attrValues.computeIfAbsent(attr, k -> new ArrayList<>()); values.add(cellValue); } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/MetaDataPanel.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/MetaDataPanel.java index 5e6b291eb0..b896cbb800 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/MetaDataPanel.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/MetaDataPanel.java @@ -22,14 +22,11 @@ import org.eclipse.jface.action.ToolBarManager; import org.eclipse.jface.viewers.*; import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.TextTransfer; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.jkiss.code.NotNull; import org.jkiss.code.Nullable; -import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.model.DBPImage; import org.jkiss.dbeaver.model.DBValueFormatting; import org.jkiss.dbeaver.model.data.DBDAttributeBinding; @@ -56,8 +53,6 @@ import java.util.List; */ public class MetaDataPanel implements IResultSetPanel { - private static final Log log = Log.getLog(MetaDataPanel.class); - public static final String PANEL_ID = "results-metadata"; private IResultSetPresentation presentation; @@ -91,46 +86,36 @@ public class MetaDataPanel implements IResultSetPanel { this.attributeList = new MetaDataTable(parent); this.attributeList.setFitWidth(false); - this.attributeList.getItemsViewer().addSelectionChangedListener(new ISelectionChangedListener() { - @Override - public void selectionChanged(SelectionChangedEvent event) { - DBDAttributeBinding attr = getSelectedAttribute(); - if (attr != null && !updateSelection) { - if (isAttributeVisible(attr)) { - updateSelection = true; - try { - presentation.setCurrentAttribute(attr); - } finally { - updateSelection = false; - } + this.attributeList.getItemsViewer().addSelectionChangedListener(event -> { + DBDAttributeBinding attr = getSelectedAttribute(); + if (attr != null && !updateSelection) { + if (isAttributeVisible(attr)) { + updateSelection = true; + try { + presentation.setCurrentAttribute(attr); + } finally { + updateSelection = false; } } } }); if (this.presentation instanceof ISelectionProvider) { - final ISelectionChangedListener listener = new ISelectionChangedListener() { - @Override - public void selectionChanged(SelectionChangedEvent event) { - if (!updateSelection && MetaDataPanel.this.presentation.getController().getVisiblePanel() == MetaDataPanel.this) { - DBDAttributeBinding attr = presentation.getCurrentAttribute(); - if (attr != null && attr != getSelectedAttribute()) { - updateSelection = true; - try { - attributeList.getItemsViewer().setSelection(new StructuredSelection(attr)); - } finally { - updateSelection = false; - } + final ISelectionChangedListener listener = event -> { + if (!updateSelection && MetaDataPanel.this.presentation.getController().getVisiblePanel() == MetaDataPanel.this) { + DBDAttributeBinding attr = presentation.getCurrentAttribute(); + if (attr != null && attr != getSelectedAttribute()) { + updateSelection = true; + try { + attributeList.getItemsViewer().setSelection(new StructuredSelection(attr)); + } finally { + updateSelection = false; } } } }; ((ISelectionProvider) this.presentation).addSelectionChangedListener(listener); - attributeList.getControl().addDisposeListener(new DisposeListener() { - @Override - public void widgetDisposed(DisposeEvent e) { - ((ISelectionProvider) presentation).removeSelectionChangedListener(listener); - } - }); + attributeList.getControl().addDisposeListener(e -> + ((ISelectionProvider) presentation).removeSelectionChangedListener(listener)); } return this.attributeList; diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/ViewValuePanel.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/ViewValuePanel.java index 01f06383a9..df15401fe3 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/ViewValuePanel.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/ViewValuePanel.java @@ -24,12 +24,7 @@ import org.eclipse.jface.action.ToolBarManager; import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; -import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.swt.SWT; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.PaintEvent; -import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FillLayout; @@ -108,18 +103,15 @@ public class ViewValuePanel implements IResultSetPanel, IAdaptable { viewPlaceholder = new Composite(parent, SWT.NONE); viewPlaceholder.setLayout(new FillLayout()); - viewPlaceholder.addPaintListener(new PaintListener() { - @Override - public void paintControl(PaintEvent e) { - if (viewPlaceholder.getChildren().length == 0) { - String hidePanelCmd = ActionUtils.findCommandDescription( - ResultSetCommandHandler.CMD_TOGGLE_PANELS, - ViewValuePanel.this.presentation.getController().getSite(), - true); - - UIUtils.drawMessageOverControl(viewPlaceholder, e, "Select a cell to view/edit value", 0); - UIUtils.drawMessageOverControl(viewPlaceholder, e, "Press " + hidePanelCmd + " to hide this panel", 20); - } + viewPlaceholder.addPaintListener(e -> { + if (viewPlaceholder.getChildren().length == 0) { + String hidePanelCmd = ActionUtils.findCommandDescription( + ResultSetCommandHandler.CMD_TOGGLE_PANELS, + ViewValuePanel.this.presentation.getController().getSite(), + true); + + UIUtils.drawMessageOverControl(viewPlaceholder, e, "Select a cell to view/edit value", 0); + UIUtils.drawMessageOverControl(viewPlaceholder, e, "Press " + hidePanelCmd + " to hide this panel", 20); } }); @@ -137,21 +129,13 @@ public class ViewValuePanel implements IResultSetPanel, IAdaptable { if (this.presentation instanceof ISelectionProvider) { final ISelectionProvider selectionProvider = (ISelectionProvider) this.presentation; - final ISelectionChangedListener selectionListener = new ISelectionChangedListener() { - @Override - public void selectionChanged(SelectionChangedEvent event) { - if (ViewValuePanel.this.presentation.getController().getVisiblePanel() == ViewValuePanel.this) { - refreshValue(false); - } + final ISelectionChangedListener selectionListener = event -> { + if (ViewValuePanel.this.presentation.getController().getVisiblePanel() == ViewValuePanel.this) { + refreshValue(false); } }; selectionProvider.addSelectionChangedListener(selectionListener); - viewPlaceholder.addDisposeListener(new DisposeListener() { - @Override - public void widgetDisposed(DisposeEvent e) { - selectionProvider.removeSelectionChangedListener(selectionListener); - } - }); + viewPlaceholder.addDisposeListener(e -> selectionProvider.removeSelectionChangedListener(selectionListener)); } return viewPlaceholder; @@ -264,15 +248,11 @@ public class ViewValuePanel implements IResultSetPanel, IAdaptable { } else { final Composite placeholder = UIUtils.createPlaceholder(viewPlaceholder, 1); placeholder.setBackground(placeholder.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); - placeholder.addPaintListener(new PaintListener() { - @Override - public void paintControl(PaintEvent e) - { - Rectangle bounds = placeholder.getBounds(); - String message = "No editor for [" + previewController.getValueType().getTypeName() + "]"; - Point ext = e.gc.textExtent(message); - e.gc.drawText(message, (bounds.width - ext.x) / 2, bounds.height / 3 + 20); - } + placeholder.addPaintListener(e -> { + Rectangle bounds = placeholder.getBounds(); + String message = "No editor for [" + previewController.getValueType().getTypeName() + "]"; + Point ext = e.gc.textExtent(message); + e.gc.drawText(message, (bounds.width - ext.x) / 2, bounds.height / 3 + 20); }); referenceValueEditor = null; } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/plaintext/PlainTextPresentation.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/plaintext/PlainTextPresentation.java index 86f562454a..1ad0acefdd 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/plaintext/PlainTextPresentation.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/plaintext/PlainTextPresentation.java @@ -100,9 +100,7 @@ public class PlainTextPresentation extends AbstractPresentation implements IAdap fireSelectionChanged(new PlainTextSelectionImpl()); } }); - text.addDisposeListener(e -> { - dispose(); - }); + text.addDisposeListener(e -> dispose()); final ScrollBar verticalBar = text.getVerticalBar(); verticalBar.addSelectionListener(new SelectionAdapter() { @@ -206,12 +204,7 @@ public class PlainTextPresentation extends AbstractPresentation implements IAdap horOffsetEnd - horOffsetBegin - 1, null, curLineColor); - DBeaverUI.asyncExec(new Runnable() { - @Override - public void run() { - text.setStyleRanges(new StyleRange[]{curLineRange}); - } - }); + DBeaverUI.asyncExec(() -> text.setStyleRanges(new StyleRange[]{curLineRange})); } } @@ -582,7 +575,7 @@ public class PlainTextPresentation extends AbstractPresentation implements IAdap public List toList() { return curSelection == null ? - Collections.emptyList() : + Collections.emptyList() : Collections.singletonList(curSelection); } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/Spreadsheet.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/Spreadsheet.java index 3cf75df9e8..a59ed91524 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/Spreadsheet.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/Spreadsheet.java @@ -16,8 +16,6 @@ */ package org.jkiss.dbeaver.ui.controls.resultset.spreadsheet; -import org.eclipse.jface.action.IMenuListener; -import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.swt.SWT; import org.eclipse.swt.accessibility.Accessible; @@ -25,29 +23,17 @@ import org.eclipse.swt.accessibility.AccessibleEvent; import org.eclipse.swt.accessibility.AccessibleListener; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.dnd.Clipboard; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Listener; -import org.eclipse.swt.widgets.Menu; -import org.eclipse.swt.widgets.Text; +import org.eclipse.swt.widgets.*; import org.eclipse.ui.IWorkbenchPartSite; import org.jkiss.code.NotNull; import org.jkiss.code.Nullable; import org.jkiss.dbeaver.DBeaverPreferences; import org.jkiss.dbeaver.core.DBeaverUI; import org.jkiss.dbeaver.model.data.DBDAttributeBinding; -import org.jkiss.dbeaver.ui.controls.lightgrid.GridCell; -import org.jkiss.dbeaver.ui.controls.lightgrid.GridPos; -import org.jkiss.dbeaver.ui.controls.lightgrid.IGridContentProvider; -import org.jkiss.dbeaver.ui.controls.lightgrid.IGridController; -import org.jkiss.dbeaver.ui.controls.lightgrid.IGridLabelProvider; -import org.jkiss.dbeaver.ui.controls.lightgrid.LightGrid; +import org.jkiss.dbeaver.ui.controls.lightgrid.*; import org.jkiss.dbeaver.ui.controls.resultset.AbstractPresentation; /** @@ -130,12 +116,9 @@ public class Spreadsheet extends LightGrid implements Listener { hookAccessibility(); { - super.addDisposeListener(new DisposeListener() { - @Override - public void widgetDisposed(DisposeEvent e) { - if (clipboard != null && !clipboard.isDisposed()) { - clipboard.dispose(); - } + super.addDisposeListener(e -> { + if (clipboard != null && !clipboard.isDisposed()) { + clipboard.dispose(); } }); } @@ -328,12 +311,7 @@ public class Spreadsheet extends LightGrid implements Listener { case LightGrid.Event_NavigateLink: // Perform navigation async because it may change grid content and // we don't want to mess current grid state - DBeaverUI.asyncExec(new Runnable() { - @Override - public void run() { - presentation.navigateLink((GridCell) event.data, event.stateMask); - } - }); + DBeaverUI.asyncExec(() -> presentation.navigateLink((GridCell) event.data, event.stateMask)); break; } } @@ -349,17 +327,13 @@ public class Spreadsheet extends LightGrid implements Listener { { MenuManager menuMgr = new MenuManager(null, AbstractPresentation.RESULT_SET_PRESENTATION_CONTEXT_MENU); Menu menu = menuMgr.createContextMenu(this); - menuMgr.addMenuListener(new IMenuListener() { - @Override - public void menuAboutToShow(IMenuManager manager) - { - // Let controller to provide it's own menu items - GridPos focusPos = getFocusPos(); - presentation.fillContextMenu( - manager, focusPos.col >= 0 && focusPos.col < columnElements.length ? columnElements[focusPos.col] : null, - focusPos.row >= 0 && focusPos.row < rowElements.length ? rowElements[focusPos.row] : null - ); - } + menuMgr.addMenuListener(manager -> { + // Let controller to provide it's own menu items + GridPos focusPos = getFocusPos(); + presentation.fillContextMenu( + manager, focusPos.col >= 0 && focusPos.col < columnElements.length ? columnElements[focusPos.col] : null, + focusPos.row >= 0 && focusPos.row < rowElements.length ? rowElements[focusPos.row] : null + ); }); menuMgr.setRemoveAllWhenShown(true); super.setMenu(menu); @@ -435,12 +409,7 @@ public class Spreadsheet extends LightGrid implements Listener { final Accessible accessible = getAccessible(); accessible.addAccessibleListener(new GridAccessibleListener()); - addCursorChangeListener(new Listener() { - @Override - public void handleEvent(Event event) { - accessible.selectionChanged(); - } - }); + addCursorChangeListener(event -> accessible.selectionChanged()); } private static class GridAccessibleListener implements AccessibleListener { diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetCellEditor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetCellEditor.java index a3abfd2246..43d184fb27 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetCellEditor.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetCellEditor.java @@ -24,7 +24,6 @@ import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.jkiss.dbeaver.ui.controls.lightgrid.LightGrid; @@ -69,14 +68,7 @@ public class SpreadsheetCellEditor extends ControlEditor } }; - resizeListener = new Listener() - { - @Override - public void handleEvent(Event event) - { - layout(); - } - }; + resizeListener = event -> layout(); scrollListener = new SelectionListener() { diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetPresentation.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetPresentation.java index 08f3b1dc1a..01d505bb1a 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetPresentation.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetPresentation.java @@ -131,7 +131,7 @@ public class SpreadsheetPresentation extends AbstractPresentation implements IRe private Color foregroundSelected, backgroundSelected; private Color backgroundMatched; private Color cellHeaderForeground, cellHeaderBackground, cellHeaderSelectionBackground; - private Font boldFont, italicFont, bolItalicFont; + private Font boldFont, italicFont; private boolean showOddRows = true; private boolean showCelIcons = true; @@ -1289,12 +1289,7 @@ public class SpreadsheetPresentation extends AbstractPresentation implements IRe for (Integer row : spreadsheet.getRowSelection()) { rows.add(controller.getModel().getRow(row)); } - Collections.sort(rows, new Comparator() { - @Override - public int compare(ResultSetRow o1, ResultSetRow o2) { - return o1.getVisualNumber() - o2.getVisualNumber(); - } - }); + rows.sort(Comparator.comparingInt(ResultSetRow::getVisualNumber)); return rows; } } @@ -1337,12 +1332,7 @@ public class SpreadsheetPresentation extends AbstractPresentation implements IRe } else { DBDAttributeBinding[] columns = model.getVisibleAttributes().toArray(new DBDAttributeBinding[model.getVisibleAttributeCount()]); if (columnOrder != SWT.NONE && columnOrder != SWT.DEFAULT) { - Arrays.sort(columns, new Comparator() { - @Override - public int compare(DBDAttributeBinding o1, DBDAttributeBinding o2) { - return o1.getName().compareTo(o2.getName()) * (columnOrder == SWT.UP ? 1 : -1); - } - }); + Arrays.sort(columns, (o1, o2) -> o1.getName().compareTo(o2.getName()) * (columnOrder == SWT.UP ? 1 : -1)); } return columns; } diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMObjectType.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMObjectType.java index 60c7592abc..475706ea43 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMObjectType.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMObjectType.java @@ -37,7 +37,7 @@ public enum QMObjectType { private final Class type; - private QMObjectType(Class type) + QMObjectType(Class type) { this.type = type; } diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMUtils.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMUtils.java index aaa1a15d32..ac2bca30ab 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMUtils.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMUtils.java @@ -29,7 +29,6 @@ import org.jkiss.dbeaver.model.qm.meta.QMMTransactionInfo; import org.jkiss.dbeaver.model.qm.meta.QMMTransactionSavepointInfo; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; -import java.util.Collections; import java.util.List; /** @@ -37,7 +36,6 @@ import java.util.List; */ public class QMUtils { - public static final EmptyCursorImpl EMPTY_CURSOR = new EmptyCursorImpl(); private static DBPPlatform application; private static QMExecutionHandler defaultHandler; -- GitLab