org.rstudio.studio.client.workbench.views.connections.ui.NewConnectionPreInstallOdbcHost.java Source code

Java tutorial

Introduction

Here is the source code for org.rstudio.studio.client.workbench.views.connections.ui.NewConnectionPreInstallOdbcHost.java

Source

/*
 * NewConnectionPreInstallOdbcHost.java
 *
 * Copyright (C) 2009-18 by RStudio, Inc.
 *
 * Unless you have received this program directly from RStudio pursuant
 * to the terms of a commercial license agreement with RStudio, then
 * this program is licensed to you under the terms of version 3 of the
 * GNU Affero General Public License. This program is distributed WITHOUT
 * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
 * AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
 *
 */

package org.rstudio.studio.client.workbench.views.connections.ui;

import org.rstudio.core.client.StringUtil;
import org.rstudio.core.client.widget.DirectoryChooserTextBox;
import org.rstudio.core.client.widget.Operation;
import org.rstudio.core.client.widget.OperationWithInput;
import org.rstudio.studio.client.RStudioGinjector;
import org.rstudio.studio.client.common.rstudioapi.DialogHtmlSanitizer;
import org.rstudio.studio.client.workbench.views.connections.model.ConnectionOptions;
import org.rstudio.studio.client.workbench.views.connections.model.ConnectionsServerOperations;
import org.rstudio.studio.client.workbench.views.connections.model.NewConnectionInfo;

import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;

public class NewConnectionPreInstallOdbcHost extends Composite {
    interface Binder extends UiBinder<Widget, NewConnectionPreInstallOdbcHost> {
    }

    @Inject
    private void initialize(ConnectionsServerOperations server) {
        server_ = server;
    }

    public void onDeactivate(Operation operation) {
        operation.execute();
    }

    public NewConnectionPreInstallOdbcHost() {
        RStudioGinjector.INSTANCE.injectMembers(this);

        mainWidget_ = GWT.<Binder>create(Binder.class).createAndBindUi(this);

        initWidget(createWidget());
    }

    private Widget createWidget() {
        return mainWidget_;
    }

    public void initializeInfo(NewConnectionInfo info) {
        dirChooser_.setText(info.getOdbcInstallPath());
        license_.setText(info.getOdbcLicense());
        driverLabel_.setText("The " + info.getName() + " driver is currently not installed. ");

        if (!StringUtil.isNullOrEmpty(info.getOdbcWarning())) {
            SafeHtml safeMsg = DialogHtmlSanitizer.sanitizeHtml(info.getOdbcWarning());
            HTMLPanel formattedPanel = new HTMLPanel(safeMsg);
            warningLabel_.add(formattedPanel);
        } else {
            warningPanel_.setVisible(false);
        }
    }

    public ConnectionOptions collectInput() {
        options_.setIntermediateInstallPath(dirChooser_.getText());
        return options_;
    }

    public void setIntermediateResult(ConnectionOptions result) {
        options_ = result;
    }

    public interface Styles extends CssResource {
    }

    @SuppressWarnings("unused")
    private ConnectionsServerOperations server_;

    private Widget mainWidget_;

    @UiField
    TextArea license_;

    @UiField
    Label driverLabel_;

    @UiField
    DirectoryChooserTextBox dirChooser_;

    @UiField
    HTMLPanel warningLabel_;

    @UiField
    HTMLPanel warningPanel_;

    @SuppressWarnings("unused")
    private OperationWithInput<Boolean> nextPageEnabledOperation_;

    private ConnectionOptions options_;
}