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

Source Code of com.dci.intellij.dbn.connection.config.action.CopyConnectionsAction

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

import com.dci.intellij.dbn.common.Icons;
import com.dci.intellij.dbn.common.LoggerFactory;
import com.dci.intellij.dbn.common.util.ClipboardUtil;
import com.dci.intellij.dbn.connection.ConnectionBundle;
import com.dci.intellij.dbn.connection.config.ConnectionSettings;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.DumbAwareAction;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

import javax.swing.JList;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;

public class CopyConnectionsAction extends DumbAwareAction {
    private static final Logger LOGGER = LoggerFactory.createLogger();
    protected ConnectionBundle connectionBundle;
    protected JList list;

    public CopyConnectionsAction(JList list, ConnectionBundle connectionBundle) {
        super("Copy configurations to clipboard", null, Icons.CONNECTION_COPY);
        this.list = list;
        this.connectionBundle = connectionBundle;
    }

    public void actionPerformed(AnActionEvent anActionEvent) {
        Object[] configurations = list.getSelectedValues();
        try {
            Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
            Element rootElement = new Element("connection-configurations");
            for (Object o : configurations) {
                ConnectionSettings configuration = (ConnectionSettings) o;
                Element configElement = new Element("config");
                configuration.writeConfiguration(configElement);
                rootElement.addContent(configElement);
            }

            Document document = new Document(rootElement);
            XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
            String xmlString = outputter.outputString(document);
            clipboard.setContents(ClipboardUtil.createXmlContent(xmlString), null);
        } catch (Exception e) {
            LOGGER.error("Could not copy database configuration to clipboard", e);
        }
    }

    public void update(AnActionEvent e) {
        int length = list.getSelectedValues().length;
        e.getPresentation().setEnabled(length > 0);
    }
}
TOP

Related Classes of com.dci.intellij.dbn.connection.config.action.CopyConnectionsAction

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.