org.eclipse.cdt.dstore.hosts.actions.QuickConnectAction.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.cdt.dstore.hosts.actions.QuickConnectAction.java

Source

package org.eclipse.cdt.dstore.hosts.actions;

/*
 * Copyright (c) 2001, 2002 International Business Machines Corporation. All rights reserved.
 * This program and the accompanying materials are made available under the terms of
 * the Common Public License which accompanies this distribution.
 */

import org.eclipse.cdt.dstore.ui.*;
import org.eclipse.cdt.dstore.ui.actions.*;
import org.eclipse.cdt.dstore.ui.connections.*;

import org.eclipse.cdt.dstore.hosts.actions.*;

import org.eclipse.cdt.dstore.extra.internal.extra.*;
import org.eclipse.cdt.dstore.hosts.dialogs.*;
import org.eclipse.cdt.dstore.hosts.*;

import org.eclipse.cdt.dstore.core.*;
import org.eclipse.cdt.dstore.core.miners.miner.*;
import org.eclipse.cdt.dstore.core.model.*;
import org.eclipse.cdt.dstore.core.util.*;
import org.eclipse.cdt.dstore.core.client.*;
import org.eclipse.cdt.dstore.core.server.*;

import org.eclipse.ui.plugin.*;
import org.eclipse.core.runtime.*;
import org.eclipse.core.resources.*;
import org.eclipse.jface.resource.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.ui.*;

import java.io.*;
import java.util.*;
import java.net.*;
import java.lang.reflect.*;

import org.eclipse.swt.widgets.*;

import org.eclipse.jface.action.*;
import org.eclipse.jface.window.*;
import org.eclipse.jface.dialogs.*;

public class QuickConnectAction implements Runnable {
    private String _host;
    private String _port;
    private String _selected;
    private String _directory;
    private String _mountedDirectory;
    private boolean _useDaemon = true;
    private HostsPlugin _plugin;

    public QuickConnectAction(String host, String port, String directory) {
        _host = host;
        _port = port;
        _directory = directory;
        _selected = null;
        _plugin = HostsPlugin.getInstance();
    }

    public QuickConnectAction(String host, String port, String directory, boolean useDaemon) {
        _host = host;
        _port = port;
        _directory = directory;
        _selected = null;
        _useDaemon = useDaemon;
        _plugin = HostsPlugin.getInstance();
    }

    public void run() {
        HostsPlugin plugin = HostsPlugin.getInstance();
        DataStore dataStore = plugin.getDataStore();

        DataElement temp = dataStore.getTempRoot();
        Connection tempConnection = new Connection("temp", _host, _port, "root", _directory, false, _useDaemon,
                temp);

        ConnectionStatus status = tempConnection.connect(dataStore.getDomainNotifier(),
                "org.eclipse.cdt.dstore.miners/fs.dat");
        if (status == null) {
            // command cancelled
        } else if (status.isConnected()) {
            DataStore rmtDataStore = tempConnection.getDataStore();

            DataElement host = rmtDataStore.getHostRoot();

            DataElement input = host.get(0).dereference();
            input.expandChildren();
            DataElementFileDialog dialog = new DataElementFileDialog(
                    _plugin.getLocalizedString("actions.Select_Directory"), input);
            dialog.open();
            if (dialog.getReturnCode() == dialog.OK) {
                DataElement selected = dialog.getSelected();
                if (selected != null) {
                    _selected = selected.getSource();
                }

            }
            tempConnection.disconnect();
        } else {
            String msg = status.getMessage();
            if (!status.isConnected()) {
                MessageDialog failD = new MessageDialog(null,
                        _plugin.getLocalizedString("actions.Connection_Failure"), null, msg,
                        MessageDialog.INFORMATION, new String[] { "OK" }, 0);

                failD.openInformation(new Shell(), _plugin.getLocalizedString("actions.Connection_Failure"), msg);
            }
        }
    }

    public String getSelected() {
        return _selected;
    }
}