diff --git a/dependencies/common/install-gwt b/dependencies/common/install-gwt
index fb6e63cabeb..70aaf07d601 100755
--- a/dependencies/common/install-gwt
+++ b/dependencies/common/install-gwt
@@ -41,7 +41,7 @@ LIB_DIR=$GWT_DIR/lib
mkdir -p $LIB_DIR
# gin
-GIN_VER=1.5
+GIN_VER=2.1.2
GIN=gin-$GIN_VER
GIN_ZIP=$GIN.zip
if [ -d "$LIB_DIR/gin/$GIN_VER" ]
diff --git a/dependencies/windows/install-dependencies.cmd b/dependencies/windows/install-dependencies.cmd
index 8dd21056d18..eb940ef3962 100644
--- a/dependencies/windows/install-dependencies.cmd
+++ b/dependencies/windows/install-dependencies.cmd
@@ -10,7 +10,7 @@ set UNZIP_ARGS=-q
set BASEURL=https://s3.amazonaws.com/rstudio-buildtools/
set BOOST_GCC493_FILE=boost-1.63-win-rtools33-gcc493.zip
set RTOOLS_FILE=Rtools33.exe
-set GIN_FILE=gin-1.5.zip
+set GIN_FILE=gin-2.1.2.zip
set GWT_FILE=gwt-2.8.1.zip
set SELENIUM_FILE=selenium-java-2.37.0.zip
set SELENIUM_SERVER_FILE=selenium-server-standalone-2.37.0.jar
@@ -112,11 +112,11 @@ if not exist ..\..\src\gwt\lib (
)
pushd ..\..\src\gwt\lib
-if not exist gin\1.5 (
+if not exist gin\2.1.2 (
wget %WGET_ARGS% "%BASEURL%%GIN_FILE%"
- mkdir gin\1.5
+ mkdir gin\2.1.2
echo Unzipping %GIN_FILE%
- unzip %UNZIP_ARGS% "%GIN_FILE%" -d gin\1.5
+ unzip %UNZIP_ARGS% "%GIN_FILE%" -d gin\2.1.2
del "%GIN_FILE%"
)
diff --git a/src/gwt/.classpath b/src/gwt/.classpath
index 42f6200f0dd..a2f9198bf8b 100644
--- a/src/gwt/.classpath
+++ b/src/gwt/.classpath
@@ -4,11 +4,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/gwt/build.xml b/src/gwt/build.xml
index 8a04f034ba9..67d3c93e0d7 100644
--- a/src/gwt/build.xml
+++ b/src/gwt/build.xml
@@ -28,7 +28,7 @@
-
+
diff --git a/src/gwt/src/org/rstudio/core/client/command/ApplicationCommandManager.java b/src/gwt/src/org/rstudio/core/client/command/ApplicationCommandManager.java
index 466ec4faffa..f6981fc546f 100644
--- a/src/gwt/src/org/rstudio/core/client/command/ApplicationCommandManager.java
+++ b/src/gwt/src/org/rstudio/core/client/command/ApplicationCommandManager.java
@@ -24,6 +24,7 @@
import org.rstudio.studio.client.RStudioGinjector;
import org.rstudio.studio.client.application.events.EventBus;
import org.rstudio.studio.client.workbench.commands.Commands;
+import org.rstudio.studio.client.workbench.views.files.model.FilesServerOperations;
import org.rstudio.studio.client.workbench.views.source.editors.text.events.EditorLoadedEvent;
import org.rstudio.studio.client.workbench.views.source.editors.text.events.EditorLoadedHandler;
@@ -41,6 +42,7 @@ public ApplicationCommandManager()
RStudioGinjector.INSTANCE.injectMembers(this);
bindings_ = new FileBacked(
+ server_,
KEYBINDINGS_PATH,
false,
EditorKeyBindings.create());
@@ -70,9 +72,10 @@ public void onRStudioKeybindingsChanged(RStudioKeybindingsChangedEvent event)
}
@Inject
- private void initialize(EventBus events, Commands commands)
+ private void initialize(EventBus events, FilesServerOperations server, Commands commands)
{
events_ = events;
+ server_ = server;
commands_ = commands;
}
@@ -169,5 +172,6 @@ public void execute()
// Injected ----
private EventBus events_;
+ private FilesServerOperations server_;
private Commands commands_;
}
diff --git a/src/gwt/src/org/rstudio/core/client/command/EditorCommandManager.java b/src/gwt/src/org/rstudio/core/client/command/EditorCommandManager.java
index c6df4addd90..7ccec6f07c6 100644
--- a/src/gwt/src/org/rstudio/core/client/command/EditorCommandManager.java
+++ b/src/gwt/src/org/rstudio/core/client/command/EditorCommandManager.java
@@ -108,6 +108,7 @@ public EditorCommandManager()
manager_ = AceCommandManager.create();
bindings_ = new FileBacked(
+ files_,
KEYBINDINGS_PATH,
false,
EditorKeyBindings.create());
diff --git a/src/gwt/src/org/rstudio/core/client/files/FileBacked.java b/src/gwt/src/org/rstudio/core/client/files/FileBacked.java
index a095d2d6a7f..f16453b05f5 100644
--- a/src/gwt/src/org/rstudio/core/client/files/FileBacked.java
+++ b/src/gwt/src/org/rstudio/core/client/files/FileBacked.java
@@ -17,22 +17,21 @@
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Timer;
-import com.google.inject.Inject;
import org.rstudio.core.client.CommandWithArg;
import org.rstudio.core.client.Debug;
-import org.rstudio.studio.client.RStudioGinjector;
import org.rstudio.studio.client.server.ServerError;
import org.rstudio.studio.client.server.ServerRequestCallback;
import org.rstudio.studio.client.workbench.views.files.model.FilesServerOperations;
public class FileBacked
{
- public FileBacked(String filePath,
+ public FileBacked(FilesServerOperations server,
+ String filePath,
boolean logErrorIfNotFound,
T defaultValue)
{
- RStudioGinjector.INSTANCE.injectMembers(this);
+ server_ = server;
filePath_ = filePath;
logErrorIfNotFound_ = logErrorIfNotFound;
object_ = defaultValue;
@@ -41,12 +40,6 @@ public FileBacked(String filePath,
loading_ = false;
}
- @Inject
- private void initialize(FilesServerOperations server)
- {
- server_ = server;
- }
-
public boolean isLoaded()
{
return loaded_;
diff --git a/src/gwt/src/org/rstudio/studio/RStudio.gwt.xml b/src/gwt/src/org/rstudio/studio/RStudio.gwt.xml
index f31a730b5c0..30468ab2295 100644
--- a/src/gwt/src/org/rstudio/studio/RStudio.gwt.xml
+++ b/src/gwt/src/org/rstudio/studio/RStudio.gwt.xml
@@ -116,4 +116,7 @@
+
+
+
diff --git a/src/gwt/src/org/rstudio/studio/client/RStudioGinjector.java b/src/gwt/src/org/rstudio/studio/client/RStudioGinjector.java
index 617d919c8dc..ae4e9fdfc03 100644
--- a/src/gwt/src/org/rstudio/studio/client/RStudioGinjector.java
+++ b/src/gwt/src/org/rstudio/studio/client/RStudioGinjector.java
@@ -25,7 +25,6 @@
import org.rstudio.core.client.command.ShortcutManager;
import org.rstudio.core.client.command.ShortcutViewer;
import org.rstudio.core.client.command.UserCommandManager;
-import org.rstudio.core.client.files.FileBacked;
import org.rstudio.core.client.files.filedialog.PathBreadcrumbWidget;
import org.rstudio.core.client.theme.WindowFrame;
import org.rstudio.core.client.widget.CaptionWithHelp;
@@ -195,7 +194,6 @@ public interface RStudioGinjector extends Ginjector
void injectMembers(UserCommandManager manager);
void injectMembers(EditorCommandManager manager);
void injectMembers(ApplicationCommandManager manager);
- void injectMembers(FileBacked> object);
void injectMembers(TextEditingTargetNotebook notebook);
void injectMembers(WindowFrame frame);
void injectMembers(ShinyGadgetDialog dialog);
diff --git a/src/gwt/src/org/rstudio/studio/client/workbench/addins/AddinsCommandManager.java b/src/gwt/src/org/rstudio/studio/client/workbench/addins/AddinsCommandManager.java
index 1ed0de53128..48cab997659 100644
--- a/src/gwt/src/org/rstudio/studio/client/workbench/addins/AddinsCommandManager.java
+++ b/src/gwt/src/org/rstudio/studio/client/workbench/addins/AddinsCommandManager.java
@@ -22,6 +22,7 @@
import org.rstudio.studio.client.workbench.events.SessionInitEvent;
import org.rstudio.studio.client.workbench.events.SessionInitHandler;
import org.rstudio.studio.client.workbench.model.Session;
+import org.rstudio.studio.client.workbench.views.files.model.FilesServerOperations;
import org.rstudio.studio.client.workbench.views.source.SourceWindowManager;
import java.util.ArrayList;
@@ -32,11 +33,13 @@ public class AddinsCommandManager
{
@Inject
public AddinsCommandManager(EventBus events,
+ FilesServerOperations server,
final Session session)
{
events_ = events;
bindings_ = new FileBacked(
+ server,
KEYBINDINGS_PATH,
false,
EditorKeyBindings.create());