Exemplo n.º 1
0
 private void SetText(bool reloadReferences)
 {
     if (_currentDevice == null)
     {
         return;
     }
     UpdateEditorLanguage(_currentCodeType.CodeType, reloadReferences);
     if (!String.IsNullOrWhiteSpace(_currentCodeType.EditFilePath))
     {
         var filePathData           = Encoding.UTF8.GetBytes(_currentCodeType.EditFilePath);
         var fileContentsDataString = SimpleHttpServer.SendPostRequest(_currentDevice.DeviceAddress, filePathData, "GetFileContents");
         _currentWrapText = "";
         CodeEditor.Document.SetText(fileContentsDataString);
         CodeEditor.Document.SetHeaderAndFooterText("", "");
         CodeEditor.Document.FileName = Path.GetFileName(_currentCodeType.EditFilePath);
     }
     else
     {
         var isPixate = _currentDevice.PixateCssPaths != null;
         _currentWrapText = EditorHelpers.GetWrapText(_currentCodeType.CodeType, _currentDevice.DeviceType, isPixate ? new List <string> {
             "using PixateLib;"
         } : null);
         CodeEditor.Document.SetText(EditorHelpers.GetDefaultCode(_currentCodeType.CodeType, _currentDevice.DeviceType));
         CodeEditor.Document.SetHeaderAndFooterText(WrapHeader, WrapFooter);
         CodeEditor.Document.FileName = "ProtoPad.cs";
     }
 }
Exemplo n.º 2
0
        private void SendCssButton_Click(object sender, RoutedEventArgs e)
        {
            var cssText               = CodeEditor.Document.CurrentSnapshot.Text;
            var cssData               = Encoding.UTF8.GetBytes(cssText);
            var cssFilePathData       = Encoding.UTF8.GetBytes(_currentCodeType.EditFilePath);
            var requestLength         = 2 + cssFilePathData.Length + cssData.Length;
            var requestData           = new byte[requestLength];
            var cssFilePathDataLength = (ushort)(cssFilePathData.Length);

            requestData[0] = (byte)(cssFilePathDataLength >> 8);
            requestData[1] = (byte)cssFilePathDataLength;
            Array.Copy(cssFilePathData, 0, requestData, 2, cssFilePathDataLength);
            Array.Copy(cssData, 0, requestData, 2 + cssFilePathDataLength, cssData.Length);
            SimpleHttpServer.SendPostRequest(_currentDevice.DeviceAddress, requestData, "UpdatePixateCSS");
        }
Exemplo n.º 3
0
        private void LoadAssemblyButton_Click(object sender, RoutedEventArgs e)
        {
            if (_currentDevice == null)
            {
                MessageBox.Show("Please connect to an app first!");
                return;
            }
            var dlg = new Microsoft.Win32.OpenFileDialog {
                DefaultExt = ".dll"
            };

            var frameworkReferenceAssembliesDirectory = Path.GetDirectoryName(_referencedAssemblies.First());

            switch (_currentDevice.DeviceType)
            {
            case DeviceTypes.Android:
                dlg.Filter           = "Xamarin.Android-compatible assembly (.dll)|*.dll";
                dlg.InitialDirectory = Path.Combine(frameworkReferenceAssembliesDirectory, "MonoAndroid");
                break;

            case DeviceTypes.iOS:
                dlg.Filter           = "Xamarin.iOS-compatible assembly (.dll)|*.dll";
                dlg.InitialDirectory = Path.Combine(frameworkReferenceAssembliesDirectory, @"MonoTouch\v4.0");
                break;

            case DeviceTypes.Local:
                dlg.Filter           = ".Net assembly (.dll)|*.dll";
                dlg.InitialDirectory = Path.Combine(frameworkReferenceAssembliesDirectory, @".NETFramework");
                break;
            }

            var result = dlg.ShowDialog();

            if (!result.Value)
            {
                return;
            }
            var assemblyPath = dlg.FileName;

            _projectAssembly.AssemblyReferences.AddFrom(assemblyPath);
            _referencedAssemblies.Add(assemblyPath);
            SimpleHttpServer.SendPostRequest(_currentDevice.DeviceAddress, File.ReadAllBytes(assemblyPath), "ExecuteAssembly");
        }
Exemplo n.º 4
0
        private ExecuteResponse SendCode(string url, bool wrapWithDefaultCode = true, string specialNonEditorCode = null)
        {
            var assemblyPath = CompileSource(wrapWithDefaultCode, specialNonEditorCode);

            if (String.IsNullOrWhiteSpace(assemblyPath))
            {
                return(null);
            }
            if (_currentDevice.DeviceType == DeviceTypes.Local)
            {
                var executeResponse = EditorHelpers.ExecuteLoadedAssemblyString(File.ReadAllBytes(assemblyPath));
                var dumpValues      = executeResponse.GetDumpValues();
                if (dumpValues != null)
                {
                    executeResponse.Results = dumpValues.Select(v => new ResultPair(v.Description, Dumper.ObjectToDumpValue(v.Value, v.Level, executeResponse.GetMaxEnumerableItemCount()))).ToList();
                }
                return(executeResponse);
            }
            var responseString = SimpleHttpServer.SendPostRequest(url, File.ReadAllBytes(assemblyPath), "ExecuteAssembly").Trim();

            return(String.IsNullOrWhiteSpace(responseString) ? null : UtilityMethods.JsonDecode <ExecuteResponse>(responseString));
        }