提交 032f3664 编写于 作者: S serge-rider

#3863 Date/metadata search dialog pages refactoring

上级 619e4b52
......@@ -17,7 +17,6 @@
package org.jkiss.dbeaver.ui.search;
import org.eclipse.jface.dialogs.DialogPage;
import org.eclipse.jface.viewers.CheckboxTreeViewer;
import org.eclipse.search.ui.ISearchPage;
import org.eclipse.search.ui.ISearchPageContainer;
import org.eclipse.search.ui.ISearchQuery;
......@@ -27,13 +26,10 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.navigator.DBNDataSource;
import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSDataContainer;
import org.jkiss.dbeaver.runtime.ui.DBUserInterface;
import org.jkiss.dbeaver.ui.navigator.database.DatabaseNavigatorTree;
import org.jkiss.utils.CommonUtils;
import java.util.*;
......@@ -42,8 +38,6 @@ public abstract class AbstractSearchPage extends DialogPage implements ISearchPa
static final protected Log log = Log.getLog(AbstractSearchPage.class);
private static final Map<Class<? extends AbstractSearchPage>, String> searchStateCache = new IdentityHashMap<>();
protected ISearchPageContainer container;
protected AbstractSearchPage(String title) {
......@@ -88,28 +82,6 @@ public abstract class AbstractSearchPage extends DialogPage implements ISearchPa
return true;
}
protected void saveTreeState(DatabaseNavigatorTree tree)
{
// Object sources
StringBuilder sourcesString = new StringBuilder();
for (Object obj : ((CheckboxTreeViewer) tree.getViewer()).getCheckedElements()) {
DBNNode node = (DBNNode) obj;
if (node instanceof DBNDatabaseNode && ((DBNDatabaseNode) node).getObject() instanceof DBSDataContainer) {
if (sourcesString.length() > 0) {
sourcesString.append("|"); //$NON-NLS-1$
}
sourcesString.append(node.getNodeItemPath());
}
}
searchStateCache.put(getClass(), sourcesString.toString());
}
protected List<DBNNode> loadTreeState(DBRProgressMonitor monitor)
{
final String sources = searchStateCache.get(getClass());
return loadTreeState(monitor, sources);
}
protected List<DBNNode> loadTreeState(DBRProgressMonitor monitor, String sources) {
final List<DBNNode> result = new ArrayList<>();
if (!CommonUtils.isEmpty(sources)) {
......
......@@ -29,6 +29,7 @@ import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.navigator.*;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DefaultProgressMonitor;
import org.jkiss.dbeaver.model.struct.*;
import org.jkiss.dbeaver.runtime.RunnableContextDelegate;
......@@ -42,10 +43,8 @@ import org.jkiss.utils.ArrayUtils;
import org.jkiss.utils.CommonUtils;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.*;
import java.util.List;
import java.util.Set;
public class SearchDataPage extends AbstractSearchPage {
......@@ -65,6 +64,8 @@ public class SearchDataPage extends AbstractSearchPage {
private Set<String> searchHistory = new LinkedHashSet<>();
private DatabaseObjectsTreeManager checkboxTreeManager;
private static final Map<Class<? extends AbstractSearchPage>, String> searchStateCache = new IdentityHashMap<>();
public SearchDataPage() {
super("Database objects search");
}
......@@ -313,6 +314,28 @@ public class SearchDataPage extends AbstractSearchPage {
container.setPerformActionEnabled(enabled);
}
protected void saveTreeState(DatabaseNavigatorTree tree)
{
// Object sources
StringBuilder sourcesString = new StringBuilder();
for (Object obj : ((CheckboxTreeViewer) tree.getViewer()).getCheckedElements()) {
DBNNode node = (DBNNode) obj;
if (node instanceof DBNDatabaseNode && ((DBNDatabaseNode) node).getObject() instanceof DBSDataContainer) {
if (sourcesString.length() > 0) {
sourcesString.append("|"); //$NON-NLS-1$
}
sourcesString.append(node.getNodeItemPath());
}
}
searchStateCache.put(getClass(), sourcesString.toString());
}
protected List<DBNNode> loadTreeState(DBRProgressMonitor monitor)
{
final String sources = searchStateCache.get(getClass());
return loadTreeState(monitor, sources);
}
private void restoreCheckedNodes() {
final List<DBNNode> checkedNodes = new ArrayList<>();
try {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册