Skip to content

Commit

Permalink
move view ssh key to options panel and eliminate tools -> vcs menu
Browse files Browse the repository at this point in the history
  • Loading branch information
jjallaire committed Nov 26, 2011
1 parent c7d89a6 commit 0a6c7e2
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 10 deletions.
3 changes: 3 additions & 0 deletions src/cpp/session/modules/SessionWorkbench.cpp
Expand Up @@ -289,6 +289,9 @@ Error getRPrefs(const json::JsonRpcRequest& request,
if (gitBinDir.empty())
gitBinDir = git::detectedGitBinDir();
sourceControlPrefs["git_bin_dir"] = gitBinDir.absolutePath();
sourceControlPrefs["have_rsa_public_key"] =
modules::source_control::defaultSshKeyDir().childPath(
"id_rsa.pub").exists();

// initialize and set result object
json::Object result;
Expand Down
Expand Up @@ -208,13 +208,7 @@ well as menu structures (for main menu and popup menus).
<cmd refid="installPackage"/>
<cmd refid="updatePackages"/>
<separator/>
<menu label="Version Control">
<cmd refid="versionControlProjectSetup"/>
<separator/>
<cmd refid="versionControlShowRsaKey"/>
<separator/>
<cmd refid="showShellDialog"/>
</menu>
<cmd refid="showShellDialog"/>
<separator/>
<cmd refid="showOptions"/>
</menu>
Expand Down
Expand Up @@ -18,6 +18,8 @@ public class SourceControlPrefs extends JavaScriptObject
{
protected SourceControlPrefs() {}

// create source control prefs -- don't pass the have_rsa_public_key
// parameter because that is a read-only rider for the prefs ui
public static final native SourceControlPrefs create(boolean vcsEnabled,
String gitBinDir)
/*-{
Expand All @@ -34,4 +36,8 @@ public native final boolean getVcsEnabled() /*-{
public native final String getGitBinDir() /*-{
return this.git_bin_dir;
}-*/;

public native final boolean haveRsaPublicKey() /*-{
return this.have_rsa_public_key;
}-*/;
}
Expand Up @@ -10,8 +10,9 @@
margin-top: 30px;
}

.usingVcsHelpNoSsh {
margin-top: 20px;
.viewSshKey {
padding-top: 20px;
margin-left: 2px;
}

.newSection {
Expand Down
Expand Up @@ -24,7 +24,7 @@ public interface Styles extends CssResource
String paneLayoutTable();
String themeChooser();
String usingVcsHelp();
String usingVcsHelpNoSsh();
String viewSshKey();
String newSection();
String encodingChooser();
}
Expand Down
Expand Up @@ -13,6 +13,8 @@

package org.rstudio.studio.client.workbench.prefs.views;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.resources.client.ImageResource;
Expand All @@ -27,9 +29,11 @@
import org.rstudio.core.client.widget.HyperlinkLabel;
import org.rstudio.core.client.widget.MessageDialog;
import org.rstudio.core.client.widget.TextBoxWithButton;
import org.rstudio.core.client.widget.ThemedButton;
import org.rstudio.studio.client.common.FileDialogs;
import org.rstudio.studio.client.common.GlobalDisplay;
import org.rstudio.studio.client.common.vcs.VCSHelpLink;
import org.rstudio.studio.client.workbench.commands.Commands;
import org.rstudio.studio.client.workbench.model.RemoteFileSystemContext;
import org.rstudio.studio.client.workbench.model.Session;
import org.rstudio.studio.client.workbench.prefs.model.RPrefs;
Expand All @@ -41,6 +45,7 @@ public class SourceControlPreferencesPane extends PreferencesPane
public SourceControlPreferencesPane(PreferencesDialogResources res,
Session session,
final GlobalDisplay globalDisplay,
final Commands commands,
RemoteFileSystemContext fsContext,
FileDialogs fileDialogs)
{
Expand Down Expand Up @@ -86,24 +91,40 @@ public void onValueChange(ValueChangeEvent<Boolean> event)
svnChooser.setText("");
addTextBoxChooser(new Label("Svn bin directory:"), null, null, svnChooser);
*/

// show ssh key button
showSshKeyButton_ = new ThemedButton(
"View Public Key...", new ClickHandler() {
@Override
public void onClick(ClickEvent event)
{
commands.versionControlShowRsaKey().execute();
}
});
showSshKeyButton_.addStyleName(res_.styles().viewSshKey());
add(showSshKeyButton_);


VCSHelpLink vcsHelpLink = new VCSHelpLink();
nudgeRight(vcsHelpLink);
vcsHelpLink.addStyleName(res_.styles().newSection());
add(vcsHelpLink);

chkVcsEnabled_.setEnabled(false);
gitBinDirChooser_.setEnabled(false);
showSshKeyButton_.setEnabled(false);
}

@Override
protected void initialize(RPrefs rPrefs)
{
// source control prefs
SourceControlPrefs prefs = rPrefs.getSourceControlPrefs();
originalPrefs_ = prefs;

chkVcsEnabled_.setEnabled(true);
gitBinDirChooser_.setEnabled(true);
showSshKeyButton_.setEnabled(true);

chkVcsEnabled_.setValue(prefs.getVcsEnabled());
gitBinDirChooser_.setText(prefs.getGitBinDir());
Expand Down Expand Up @@ -185,13 +206,18 @@ private void manageControlVisibility()
boolean vcsEnabled = chkVcsEnabled_.getValue();
gitBinDirLabel_.setVisible(vcsEnabled);
gitBinDirChooser_.setVisible(vcsEnabled);
showSshKeyButton_.setVisible(vcsEnabled &&
originalPrefs_.haveRsaPublicKey());
}


private final PreferencesDialogResources res_;

private final CheckBox chkVcsEnabled_;

private SourceControlPrefs originalPrefs_;

private Label gitBinDirLabel_;
private TextBoxWithButton gitBinDirChooser_;
private ThemedButton showSshKeyButton_;
}

0 comments on commit 0a6c7e2

Please sign in to comment.