Package com.dci.intellij.dbn.connection.action

Source Code of com.dci.intellij.dbn.connection.action.LoadAllObjectsAction

package com.dci.intellij.dbn.connection.action;

import com.dci.intellij.dbn.DatabaseNavigator;
import com.dci.intellij.dbn.common.Icons;
import com.dci.intellij.dbn.common.content.DatabaseLoadMonitor;
import com.dci.intellij.dbn.common.thread.BackgroundTask;
import com.dci.intellij.dbn.common.util.ActionUtil;
import com.dci.intellij.dbn.connection.ConnectionHandler;
import com.dci.intellij.dbn.object.common.DBObjectRecursiveLoaderVisitor;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;

public class LoadAllObjectsAction extends DumbAwareAction {
    private ConnectionHandler connectionHandler;

    public LoadAllObjectsAction(ConnectionHandler connectionHandler) {
        super("Load All Objects", null, Icons.DATA_EDITOR_RELOAD_DATA);
        this.connectionHandler = connectionHandler;
    }

    @Override
    public void actionPerformed(AnActionEvent e) {
        Project project = ActionUtil.getProject(e);
        new BackgroundTask(project, "Loading data dictionary", true) {
            @Override
            protected void execute(@NotNull ProgressIndicator progressIndicator) throws InterruptedException {
                try {
                    DatabaseLoadMonitor.startBackgroundLoad();
                    connectionHandler.getObjectBundle().getObjectListContainer().visitLists(DBObjectRecursiveLoaderVisitor.INSTANCE, false);
                } finally {
                    DatabaseLoadMonitor.endBackgroundLoad();
                }

            }
        }.start();
    }

    @Override
    public void update(AnActionEvent e) {
        e.getPresentation().setVisible(DatabaseNavigator.getInstance().isDeveloperModeEnabled());
        super.update(e);
    }
}
TOP

Related Classes of com.dci.intellij.dbn.connection.action.LoadAllObjectsAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.