コード例 #1
0
        void test4()
        {
            Console.WriteLine("\n ===============Demo 4 browse================");
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = machineAddress;
            serverEndPoint.port           = machinePort;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "browse");
            msg.add("search condition", "package1");
        }
コード例 #2
0
        //--------< check out tab submit>------------------------------
        private void CheckOut_Click(object sender, RoutedEventArgs e)
        {
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = machineAddress;
            serverEndPoint.port           = machinePort;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "checkOut");
            translater.postMessage(msg);
            statusBarText.Text = "Check Out";
        }
コード例 #3
0
        void test1()
        {
            Console.WriteLine("\n ===============Demo 1 connect================");
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = machineAddress;
            serverEndPoint.port           = machinePort;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "echo");
            translater.postMessage(msg);
        }
コード例 #4
0
        //----<show files and dirs in the repository>----------------------
        private void ShowRepo()
        {
            PathTextBlock.Text = PathTextBlock.Text == "" ? "Repository" : PathTextBlock.Text;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "getDirs");
            msg.add("path", checkoutPathStack_.Peek());
            translater.postMessage(msg);
            msg.remove("command");
            msg.add("command", "getFiles");
            translater.postMessage(msg);
        }
コード例 #5
0
        private void LstFiles_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                // build path for selected dir
                string selectedDir = (string)lstFiles.SelectedItem;
                if (selectedDir == null)
                {
                    return;
                }
                string path;
                if (selectedDir == "..")
                {
                    if (pathStack_.Count > 1)  // don't pop off "Storage"
                    {
                        pathStack_.Pop();
                    }
                    else
                    {
                        return;
                    }
                }
                else
                {
                    path = pathStack_.Peek() + "/" + selectedDir;
                    pathStack_.Push(path);
                }
                // display path in Dir TextBlcok
                txtPath.Text = removeFirstDir(pathStack_.Peek());

                // build message to get dirs and post it
                CsEndPoint serverEndPoint = new CsEndPoint();
                serverEndPoint.machineAddress = "localhost";
                serverEndPoint.port           = serverPort;
                CsMessage msg = new CsMessage();
                msg.add("to", CsEndPoint.toString(serverEndPoint));
                msg.add("from", CsEndPoint.toString(endPoint_));
                msg.add("command", "getDirs");
                msg.add("path", pathStack_.Peek());
                translater.postMessage(msg);
                msg.remove("command");
                msg.add("command", "getFiles");
                translater.postMessage(msg);
                lstFiles.Items.Clear();
            }
            catch (Exception)
            {
                Console.WriteLine("Exception occured : you have clicked on the blank space");
            }
        }
コード例 #6
0
        //----< respond to mouse click on connect button >----------------
        private void connectButtonClick(object sender, RoutedEventArgs e)
        {
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;

            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "connectPort");
            translater.postMessage(msg);
        }
コード例 #7
0
        //function for doing the Connection functionality, called by test case and button-click
        private void func_connect_but()
        {
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "connect");

            translater.postMessage(msg);
        }
コード例 #8
0
        //----< logic when window shuts down >------
        void Window_Closing(object sender, CancelEventArgs e)
        {
            CsEndPoint TestHarnessProcessPool = new CsEndPoint
            {
                machineAddress = "localhost",
                port           = 8081
            };
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(TestHarnessProcessPool));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("ClientDone", "");
            translater.postMessage(msg);
        }
コード例 #9
0
        //----< Send message to check whether the server is connected to the client >------

        private void init()
        {
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = url;
            serverEndPoint.port           = serverPort;

            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "echo");
            translater.postMessage(msg);
        }
コード例 #10
0
        //----< start Comm, fill window display with dirs and files >------
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            //----< Receive the port and address information from the arguments and set it as the member variables >------
            string[] args           = Environment.GetCommandLineArgs();
            string[] clientURLArray = args[1].Split(':');
            string[] serverURLArray = args[2].Split(':');
            clientAddress = clientURLArray[0];
            clientPort    = int.Parse(clientURLArray[1]);
            serverAddress = serverURLArray[0];
            serverPort    = int.Parse(serverURLArray[1]);
            if (!System.IO.Directory.Exists(workingDir))
            {
                System.IO.Directory.CreateDirectory(workingDir);
            }
            Patterns         = "*.h *.cpp";
            Regex_           = "[A-Z](.*)";
            txtPatterns.Text = Patterns;
            txtRegex.Text    = Regex_;
            // start Comm
            endPoint_ = new CsEndPoint();
            endPoint_.machineAddress = clientAddress;
            endPoint_.port           = clientPort;
            translater = new Translater();
            translater.listen(endPoint_, workingDir, workingDir);
            processMessages(); // start processing messages
            loadDispatcher();  // load dispatcher
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = serverAddress;
            serverEndPoint.port           = serverPort;
            PathTextBlock.Text            = "Storage";
            pathStack_.Push("../Storage");
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "getDirs");
            msg.add("path", pathStack_.Peek());
            translater.postMessage(msg);
            msg.remove("command");
            msg.add("command", "getFiles");
            translater.postMessage(msg);
            foreach (string arg in args)
            {
                if (arg == "/demo")
                {
                    startDemonstration();
                }
            }
        }
コード例 #11
0
        private void confirm_descrip_Click(object sender, RoutedEventArgs e)
        {
            MainWindow win = (MainWindow)Window.GetWindow(this);

            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint_));
            msg.add("from", CsEndPoint.toString(navEndPoint_));
            msg.add("command", "descripFolder");
            descript_ = description.Text;
            msg.add("descripFolder", descript_);
            msg.show();
            win.translater.postMessage(msg);
        }
コード例 #12
0
        private void Connect(object sender, RoutedEventArgs e)
        {
            MainWindow win            = (MainWindow)Window.GetWindow(this);
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(navEndPoint_));
            msg.add("command", "Connect");
            win.translater.postMessage(msg);
        }
コード例 #13
0
        //----< navigation logic for repo >-------------------------------------

        private void navigateForRepoListBox()
        {
            CsEndPoint userEndPoint = new CsEndPoint();

            userEndPoint.machineAddress = "localhost";
            userEndPoint.port           = 9000;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(userEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "Show_Contents");
            if (currentPathForRepoListBox.Length == 0)
            {
                currentPathForRepoListBox = "../MockRepo";
            }
            else if (RepoListBox.SelectedItem.ToString().Substring(0, 5) == "<dir>")
            {
                currentPathForRepoListBox += "/" + RepoListBox.SelectedItem.ToString().Substring(6);
            }
            else if (RepoListBox.SelectedItem.ToString() == "<-- Back")
            {
                int lastIndex = currentPathForRepoListBox.LastIndexOf('/');
                currentPathForRepoListBox = currentPathForRepoListBox.Substring(0, lastIndex);
            }
            if (currentPathForRepoListBox == "..")
            {
                currentPathForRepoListBox = "../MockRepo";
                RepoListBox.Items.Clear();
                RepoListBox.Items.Add("MockRepo");
                return;
            }
            msg.add("dir_name", currentPathForRepoListBox);
            translater.postMessage(msg);
            CsMessage replyMsg = translater.getMessage();

            replyMsg.show();
            string contentsString = replyMsg.value("Contents_String");

            string[] contentsArray = contentsString.Split('$');
            RepoListBox.Items.Clear();
            RepoListBox.Items.Add("<-- Back");
            for (int i = 0; i < contentsArray.Length; i++)
            {
                if (contentsArray[i] != "." && contentsArray[i] != "..")
                {
                    RepoListBox.Items.Add(contentsArray[i]);
                }
            }
        }
コード例 #14
0
        // -----< getFileInfo: get file info from mainWindow >-----
        public void getFileInfo(CsMessage receiveMessage)
        {
            var enumer = receiveMessage.attributes.GetEnumerator();

            while (enumer.MoveNext())
            {
                if (enumer.Current.Key == "file")
                {
                    filePath = "../SaveFiles/" + enumer.Current.Value;
                }
                else if (enumer.Current.Key == "file-Namespace")
                {
                    theFile.NameSpace = enumer.Current.Value;
                }
                else if (enumer.Current.Key == "file-Name")
                {
                    theFile.Name = enumer.Current.Value;
                }
                else if (enumer.Current.Key == "file-Version")
                {
                    theFile.Version = enumer.Current.Value;
                }
                else if (enumer.Current.Key == "file-Description")
                {
                    theFile.Description = enumer.Current.Value;
                }
                else if (enumer.Current.Key == "file-DateTime")
                {
                    theFile.DateTime = enumer.Current.Value;
                }
                else if (enumer.Current.Key == "file-Dependencies")
                {
                    theFile.Dependencies = stringToArray(enumer.Current.Value);
                }
                else if (enumer.Current.Key == "file-Categories")
                {
                    theFile.Categories = stringToArray(enumer.Current.Value);
                }
                else if (enumer.Current.Key == "file-Status")
                {
                    theFile.Status = enumer.Current.Value;
                }
                else if (enumer.Current.Key == "file-Owner")
                {
                    theFile.Owner = enumer.Current.Value;
                }
            }
            theFile.Key = theFile.NameSpace + "::" + theFile.Name + "." + theFile.Version;
        }
コード例 #15
0
        //----< Requests server for check-in, check-out and viewing meta data  >------

        private void checkin_and_checkout_and_viewmetadata()
        {
            //checkout
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "checkout");
            msg.add("filename", "Comm.h");
            msg.add("receivePath", "../../../../ClientStorage");
            Console.Write("\n\n Requesting the server with Command :" + msg.value("command") + " for the file " + msg.value("filename"));
            translater.postMessage(msg);


            //checkin
            CsMessage msg1 = new CsMessage();

            msg1.add("to", CsEndPoint.toString(serverEndPoint));
            msg1.add("from", CsEndPoint.toString(endPoint_));
            msg1.add("command", "checkin");
            msg1.add("file", "IComm.h");
            msg1.add("name", "checkin");
            msg1.add("sendPath", "../../../../ClientStorage");
            Console.Write("\n\n Requesting the server with Command :" + msg1.value("command") + " for the file " + msg1.value("file"));
            translater.postMessage(msg1);

            //viewmetadata
            CsMessage msg2 = new CsMessage();

            msg2.add("to", CsEndPoint.toString(serverEndPoint));
            msg2.add("from", CsEndPoint.toString(endPoint_));
            msg2.add("command", "viewmetadata");
            msg2.add("name", "DbCore.h");
            msg2.add("description", "Implements NoSql database");
            msg2.add("dateTime", DateTime.Now.ToString());
            msg2.add("Children", "PayLoad.h , PayLoad.cpp");
            msg2.add("Categories", "NoSqlDb , DbCOre");
            Console.Write("\n\n Requesting the server with Command :" + msg2.value("command") + " for the file " + msg2.value("name"));
            translater.postMessage(msg2);
            String file = "../../../../ClientStorage/Comm.h";

            System.Threading.Thread.Sleep(1000);

            viewSelectedFile(file);
        }
コード例 #16
0
        //----< respond to mouse double-click on dir name >----------------
        private void DirList_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            // build path for selected dir
            string selectedDir = (string)lstFiles.SelectedItem;

            if (selectedDir == null)
            {
                return;
            }
            string path;

            if (selectedDir == "..")
            {
                if (pathStack_.Count > 1) // don't pop off "Storage"
                {
                    pathStack_.Pop();
                }
                else
                {
                    return;
                }
            }
            else
            {
                path = pathStack_.Peek() + "/" + selectedDir;
                pathStack_.Push(path);
            }
            // display path in Dir TextBlcok
            txtPath.Text = removeFirstDir(pathStack_.Peek());

            // build message to get dirs and post
            string[]   pcmd           = Environment.GetCommandLineArgs();
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = pcmd[1];
            serverEndPoint.port           = Int32.Parse(pcmd[2]);
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "getDirs");
            msg.add("path", pathStack_.Peek());
            translater.postMessage(msg);

            // build message to get files and post it
            msg.remove("command");
            msg.add("command", "getFiles");
            translater.postMessage(msg);
        }
コード例 #17
0
        void test6()
        {
            Console.WriteLine("\n\n  Test close check in Comm.h with a valid User name.  Please check the result on GUI->Remote tab->Operation->close checkin tab");
            Console.WriteLine("  =============================================");

            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint_));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "closeCheckin");
            msg.add("userName", "WeitianDing");
            msg.add("fileName", "Comm.h");
            translater.postMessage(msg);
            test7();
        }
コード例 #18
0
        private void Analyze_Click(object sender, RoutedEventArgs e)
        {
            MainWindow win = (MainWindow)Window.GetWindow(this);
            // build message to analyze code on current server path
            //CsEndPoint serverEndPoint = new CsEndPoint();
            //serverEndPoint.machineAddress = "localhost";
            //serverEndPoint.port = 8080;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint_));
            msg.add("from", CsEndPoint.toString(navEndPoint_));
            msg.add("command", "codeAnalyze");
            msg.add("path", pathStack_.Peek());
            win.translater.postMessage(msg);
        }
コード例 #19
0
        // -----------< Assemble message for posting >------------
        private CsMessage AssembleMsg()
        {
            CsMessage msg = new CsMessage();

            if (cbRecursion.IsChecked.HasValue)
            {
                msg.add("SubDir", "/s");
            }
            msg.add("Directory", WDirectory);
            msg.add("path", WDirectory);
            msg.add("BrowserPath", BrowserPath);
            msg.add("Pattern", Patterns);
            msg.add("Regex", Regexes);
            return(msg);
        }
コード例 #20
0
        //----< helper function to get package description >------
        private void packageDescriptionHelper(string filename)
        {
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;
            fileShowed = true;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "browseDescription");
            msg.add("fileName", filename);
            translater.postMessage(msg);
        }
コード例 #21
0
        void test3()
        {
            Console.WriteLine("\n\n  Test show categories of Comm.h.Please check the result on GUI->Remote tab->Operation->display categories");
            Console.WriteLine("  =============================================");

            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint_));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "displayCate");
            msg.add("fileName", "Comm.h");
            translater.postMessage(msg);

            test4();
        }
コード例 #22
0
        //-----------------<Stop receiver thread and gracefully close the window>----------
        private void Window_Closed(object sender, EventArgs e)
        {
            CsMessage msg = new CsMessage();

            msg.add("command", "Close client");
            msg.add("to", CsEndPoint.toString(server_));
            msg.add("from", CsEndPoint.toString(client_));
            if (serverRunning)
            {
                translater_.postMessage(msg);
            }
            Thread.Sleep(10);
            msg.attributes["to"] = CsEndPoint.toString(client_);
            translater_.postMessage(msg);
        }
コード例 #23
0
        //----< sending message on to the comm to retrieve all the files and directories >---------------
        private void Refresh_Click(object sender, RoutedEventArgs e)
        {
            MainWindow win            = (MainWindow)Window.GetWindow(this);
            CsEndPoint serverEndPoint = new CsEndPoint();
            CsMessage  msg            = new CsMessage();

            msg.add("to", CsEndPoint.toString(win.serverEndPoint_));
            msg.add("from", CsEndPoint.toString(win.clientEndPoint_));
            msg.add("command", "getDirs");
            msg.add("path", win.pathStack_.Peek());
            win.translater.postMessage(msg);
            msg.remove("command");
            msg.add("command", "getFiles");
            win.translater.postMessage(msg);
        }
コード例 #24
0
        //function for doing the view Meta data functionality, called by test case and button-click
        private void func_viewmetadata_but()
        {
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "view_meta");
            msg.add("path", vm_path.Text);

            translater.postMessage(msg);
        }
コード例 #25
0
        private void filewithnoparent_Click(object sender, RoutedEventArgs e)
        {
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            // msg.add("path", "../Storage");
            msg.add("command", "getQLists");
            msg.add("wanted", "withnodependency");
            translater.postMessage(msg);
        }
コード例 #26
0
        //----< show file metadata in the view metadata tab>-------
        private List <String> GetMembers(CsMessage rcvMsg, String keyword)
        {
            List <String> children = new List <string>();
            var           enumer   = rcvMsg.attributes.GetEnumerator();

            while (enumer.MoveNext())
            {
                string key = enumer.Current.Key;
                if (key.Contains(keyword))
                {
                    children.Add(enumer.Current.Value);
                }
            }
            return(children);
        }
コード例 #27
0
        /*<-----------------MouseDoubleClick event to response and download all files from server-------------->*/

        private void DownLoadSingleFile(object sender, MouseButtonEventArgs e)
        {
            webunselect = true;
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(this.endPoint_));
            msg.add("file", RemoteFilesListBox.SelectedItem.ToString());
            msg.add("command", "singleDownload");
            this.translater.postMessage(msg);
        }
コード例 #28
0
        // Refresh button double click
        private void Refresh2Button_Click(object sender, RoutedEventArgs e)
        {
            FileList.UnselectAll();
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "getDirs");
            msg.add("path", pathStack_.Peek());
            msg.add("type", "CheckOut");
            translater.postMessage(msg);
            msg.remove("command");
            msg.add("command", "getFiles");
            translater.postMessage(msg);
        }
コード例 #29
0
        // This function opens the selected file
        private void Display_Click(object sender, RoutedEventArgs e)
        {
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.remove("command");
            msg.add("command", "convertFiles");
            msg.add("file", lstConverted.Items[0].ToString());
            translater.postMessage(msg);
        }
コード例 #30
0
        private void remote_show(object sender, SelectionChangedEventArgs e)
        {
            if (e.AddedItems.Count == 0)
            {
                return;
            }
            string    file = e.AddedItems[0].ToString();
            CsMessage msg  = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint_));
            msg.add("from", CsEndPoint.toString(clientEndPoint));
            msg.add("command", "showFile");
            msg.add("file", file);
            translater.postMessage(msg);
        }