提交 e28e93df 编写于 作者: J jurgen

Value controller refactoring

Former-commit-id: 3cb23fac
上级 09ca80d6
......@@ -463,11 +463,6 @@ public class SQLQueryParameterBindDialog extends StatusDialog {
{
}
@Override
public void unregisterEditor(IValueEditorStandalone editor)
{
}
@Override
public void showMessage(String message, boolean error)
{
......
......@@ -23,13 +23,14 @@ import org.eclipse.ui.IWorkbenchPartSite;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.data.*;
import org.jkiss.dbeaver.model.data.DBDAttributeBinding;
import org.jkiss.dbeaver.model.data.DBDRowIdentifier;
import org.jkiss.dbeaver.model.data.DBDValueHandler;
import org.jkiss.dbeaver.model.exec.DBCAttributeMetaData;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.struct.DBSTypedObject;
import org.jkiss.dbeaver.ui.data.IAttributeController;
import org.jkiss.dbeaver.ui.data.IRowController;
import org.jkiss.dbeaver.ui.data.IValueEditorStandalone;
import org.jkiss.dbeaver.ui.data.IValueManager;
import org.jkiss.dbeaver.ui.data.registry.DataManagerRegistry;
......@@ -197,10 +198,6 @@ public class ResultSetValueController implements IAttributeController, IRowContr
public void nextInlineEditor(boolean next) {
}
@Override
public void unregisterEditor(IValueEditorStandalone editor) {
}
@Override
public void showMessage(String message, boolean error)
{
......
......@@ -666,10 +666,9 @@ public class SpreadsheetPresentation extends AbstractPresentation implements IRe
private void closeEditors() {
List<IValueEditorStandalone> editors = new ArrayList<IValueEditorStandalone>(openEditors.values());
for (IValueEditorStandalone editor : editors) {
editor.closeValueEditor();
}
if (!openEditors.isEmpty()) {
log.warn("Some value editors are still registered at result set: " + openEditors.size());
if (editor.getControl() != null && !editor.getControl().isDisposed()) {
editor.closeValueEditor();
}
}
openEditors.clear();
}
......@@ -686,10 +685,17 @@ public class SpreadsheetPresentation extends AbstractPresentation implements IRe
}
if (!inline) {
for (SpreadsheetValueController valueController : openEditors.keySet()) {
for (Iterator<SpreadsheetValueController> iterator = openEditors.keySet().iterator(); iterator.hasNext(); ) {
SpreadsheetValueController valueController = iterator.next();
if (attr == valueController.getBinding() && row == valueController.getCurRow()) {
openEditors.get(valueController).showValueEditor();
return null;
IValueEditorStandalone editor = openEditors.get(valueController);
if (editor.getControl() != null && !editor.getControl().isDisposed()) {
editor.showValueEditor();
return null;
} else {
// Remove disposed editor from the list
iterator.remove();
}
}
}
}
......@@ -1483,7 +1489,6 @@ public class SpreadsheetPresentation extends AbstractPresentation implements IRe
openEditors.put(this, editor);
}
@Override
public void unregisterEditor(IValueEditorStandalone editor) {
openEditors.remove(this);
}
......
......@@ -127,8 +127,6 @@ public interface IValueController
*/
void nextInlineEditor(boolean next);
void unregisterEditor(IValueEditorStandalone editor);
/**
* Show error/warning message in grid control.
* @param message error message
......
......@@ -75,15 +75,15 @@ public abstract class BaseValueEditor<T extends Control> implements IValueEditor
// Let's focus on it in async mode
inlineControl.getDisplay().asyncExec(new Runnable() {
@Override
public void run()
{
public void run() {
if (!inlineControl.isDisposed()) {
inlineControl.setFocus();
}
}
});
if (!UIUtils.isInDialog(inlineControl)) {
// if (!UIUtils.isInDialog(inlineControl)) { // In dialog it also should handle all standard stuff because we have params dialog
{
inlineControl.addTraverseListener(new TraverseListener() {
@Override
public void keyTraversed(TraverseEvent e) {
......
......@@ -360,12 +360,6 @@ public class ComplexObjectEditor extends TreeViewer {
}
@Override
public void unregisterEditor(IValueEditorStandalone editor)
{
}
@Override
public void showMessage(String message, boolean error)
{
......
......@@ -205,11 +205,6 @@ public abstract class ValueViewDialog extends Dialog implements IValueEditorStan
{
}
@Override
public void unregisterEditor(IValueEditorStandalone editor)
{
}
@Override
public void showMessage(String message, boolean error)
{
......@@ -236,10 +231,7 @@ public abstract class ValueViewDialog extends Dialog implements IValueEditorStan
@Override
public void closeValueEditor() {
if (this.valueController != null) {
this.valueController.unregisterEditor(this);
this.valueController = null;
}
this.valueController = null;
this.setReturnCode(CANCEL);
this.close();
}
......@@ -354,10 +346,7 @@ public abstract class ValueViewDialog extends Dialog implements IValueEditorStan
return result;
} finally {
dialogCount--;
if (this.valueController != null) {
this.valueController.unregisterEditor(this);
this.valueController = null;
}
this.valueController = null;
}
}
......
......@@ -134,8 +134,6 @@ public class ContentEditor extends MultiPageAbstractEditor implements IValueEdit
}
private boolean valueEditorRegistered = false;
private List<ContentPartInfo> contentParts = new ArrayList<ContentPartInfo>();
private ColumnInfoPanel infoPanel;
private boolean dirty;
......@@ -232,8 +230,6 @@ public class ContentEditor extends MultiPageAbstractEditor implements IValueEdit
super.init(site, input);
setPartName(input.getName());
valueEditorRegistered = true;
DBDContent content = getContent();
if (content == null) {
return;
......@@ -257,13 +253,6 @@ public class ContentEditor extends MultiPageAbstractEditor implements IValueEdit
this.partsLoaded = true;
ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
if (valueEditorRegistered) {
IValueController valueController = getValueController();
if (valueController != null) {
valueController.unregisterEditor(this);
}
valueEditorRegistered = false;
}
if (getEditorInput() != null) {
// Release CONTENT input resources
try {
......@@ -453,7 +442,8 @@ public class ContentEditor extends MultiPageAbstractEditor implements IValueEdit
@Override
public Control getControl()
{
return getControl(getActivePage());
int activePage = getActivePage();
return activePage < 0 ? null : getControl(activePage);
}
@Override
......@@ -501,16 +491,6 @@ public class ContentEditor extends MultiPageAbstractEditor implements IValueEdit
IWorkbenchPage workbenchPage = this.getEditorSite().getWorkbenchWindow().getActivePage();
if (workbenchPage != null) {
workbenchPage.closeEditor(this, false);
} else {
// Special case - occurred when entire workbench is closed
// We need to unregister editor and release all resource here
if (valueEditorRegistered) {
IValueController valueController = getValueController();
if (valueController != null) {
valueController.unregisterEditor(this);
}
valueEditorRegistered = false;
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册