Package com.dci.intellij.dbn.editor

Source Code of com.dci.intellij.dbn.editor.DBEditorTabColorProvider

package com.dci.intellij.dbn.editor;

import com.dci.intellij.dbn.common.environment.EnvironmentType;
import com.dci.intellij.dbn.common.environment.options.EnvironmentSettings;
import com.dci.intellij.dbn.common.environment.options.EnvironmentVisibilitySettings;
import com.dci.intellij.dbn.connection.ConnectionHandler;
import com.dci.intellij.dbn.connection.mapping.FileConnectionMappingManager;
import com.dci.intellij.dbn.language.common.DBLanguageFileType;
import com.dci.intellij.dbn.options.general.GeneralProjectSettings;
import com.dci.intellij.dbn.vfs.DatabaseObjectFile;
import com.dci.intellij.dbn.vfs.SQLConsoleFile;
import com.intellij.openapi.fileEditor.impl.EditorTabColorProvider;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;

import java.awt.Color;

public class DBEditorTabColorProvider implements EditorTabColorProvider{

    public static final Color DEFAULT_COLOR = new Color(218, 234, 255);

    @Override
    public Color getEditorTabColor(Project project, VirtualFile file) {
        if (file.getFileType() instanceof DBLanguageFileType) {
            ConnectionHandler connectionHandler = getConnectionHandler(file, project);
            if (connectionHandler == null) {
                return null;
            } else {
                EnvironmentSettings environmentSettings = GeneralProjectSettings.getInstance(connectionHandler.getProject()).getEnvironmentSettings();
                EnvironmentVisibilitySettings visibilitySettings = environmentSettings.getVisibilitySettings();
                EnvironmentType environmentType = connectionHandler.getEnvironmentType();
                if (file instanceof SQLConsoleFile || file instanceof DatabaseObjectFile) {
                    if (visibilitySettings.getObjectEditorTabs().value()) {
                        return environmentType == null ? null : environmentType.getColor();
                    }
                } else {
                    if (visibilitySettings.getScriptEditorTabs().value()) {
                        return environmentType == null ? null : environmentType.getColor();
                    }
                }
                return null;
            }
        }
        return null;
    }
   
    public static ConnectionHandler getConnectionHandler(VirtualFile file, Project project) {
        if (file instanceof SQLConsoleFile) {
            SQLConsoleFile consoleFile = (SQLConsoleFile) file;
            return consoleFile.getConnectionHandler();

        }
       
        if (file instanceof DatabaseObjectFile) {
            DatabaseObjectFile objectFile = (DatabaseObjectFile) file;
            return objectFile.getConnectionHandler();
        }

        return FileConnectionMappingManager.getInstance(project).getActiveConnection(file);
    }

    private Color getColor(ConnectionHandler connectionHandler) {
        EnvironmentType environmentType = connectionHandler.getEnvironmentType();
        if (environmentType != null) {
            return environmentType.getColor();
        }
        return DEFAULT_COLOR;
    }
}
TOP

Related Classes of com.dci.intellij.dbn.editor.DBEditorTabColorProvider

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.