Esempio n. 1
0
        //----< function for auto test to send requests to server >----------------------------------------------
        private string sendCommandForAutoTest()
        {
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = serverAddress;
            serverEndPoint.port           = serverPort;
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "publishDirs");
            msg.add("path", SelectedPath);
            msg.add("pattern", UserPattern);
            translater.postMessage(msg);
            msg.remove("command");
            msg.add("command", "getConvertedFile");
            translater.postMessage(msg);
            ConvertTab.IsSelected = true;
            log("Sent Publish request to Server with path: " + SelectedPath + " and pattern: " + UserPattern + "\n");
            Thread.Sleep(1000);

            msg.remove("command");
            msg.remove("path");
            msg.remove("pattern");
            string fileName = "Show.cpp.html";

            msg.add("command", "downloadFile");
            msg.add("fileName", fileName);
            translater.postMessage(msg);
            log("Sent file download request to server, downloaded file: " + fileName + "\n");
            Thread.Sleep(100);

            return(fileName);
        }
        //----< start Comm, fill window display with dirs and files >------

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            //string[] args = Environment.GetCommandLineArgs();
            // System.Console.WriteLine(args);
            try{
                selfPort   = 8082; //int.Parse(args[1]);
                serverPort = 8080; //int.Parse(args[2]);
            }
            catch (Exception er) { Console.WriteLine("{0} Exception caught.", er); }
            endPoint_ = new CsEndPoint();
            endPoint_.machineAddress = "localhost";
            endPoint_.port           = selfPort;
            translater = new Translater();
            translater.listen(endPoint_);

            // start processing messages
            processMessages();

            // load dispatcher
            loadDispatcher();

            CsEndPoint serverEndPoint = new CsEndPoint();

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


            txtPath.Text = "default";
            pathStack_.Push("../");
            txtPatterns.Text = "*.h *.cpp";
            txtRegex.Text    = "[X](.*)";
            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);
            msg.remove("command");
            msg.add("command", "processArgs");
            msg.add("cmd", "/0 .. /s *.h *.cpp [X](.*)");
            translater.postMessage(msg);
            msg.remove("command");
            msg.remove("cmd");
            msg.remove("path");

            msg.add("command", "fileselected");
            msg.add("fileselected", "XICodePublisher.h.html");
            translater.postMessage(msg);
        }
        //----< start Comm, and demonstrates all requirements >------

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Console.Write("\n This is client");
            Console.Write("\n----------------");
            string[] args = System.Environment.GetCommandLineArgs();
            Console.Write("\n The port of this client is " + args[1]);
            endPoint_ = new CsEndPoint();
            endPoint_.machineAddress = "localhost";
            endPoint_.port           = int.Parse(args[1]);
            translater = new Translater();
            translater.listen(endPoint_);
            processMessages();
            loadDispatcher();

            CsEndPoint serverEndPoint = new CsEndPoint();

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

            PathTextBlock.Text = "Storage";
            pathTextBlock.Text = "Storage";
            pathStack_.Push("../ServerStorage");
            PathStack_.Push("../ServerStorage");
            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());
            Console.Write("\n\n Requesting the server with Command :" + msg.value("command"));
            translater.postMessage(msg);
            msg.remove("command");

            msg.add("command", "getDirsForCheckin");
            Console.Write("\n\n Requesting the server with Command :" + msg.value("command"));
            translater.postMessage(msg);
            msg.remove("command");
            msg.add("command", "getFiles");
            Console.Write("\n\n Requesting the server with Command :" + msg.value("command"));
            translater.postMessage(msg);
            msg.remove("command");
            msg.add("command", "getDirsforBrowse");
            msg.remove("path");
            msg.add("path", PathStack_.Peek());
            Console.Write("\n\n Requesting the server with Command :" + msg.value("command"));
            translater.postMessage(msg);
            msg.remove("command");
            msg.add("command", "getFilesforBrowse");
            Console.Write("\n\n Requesting the server with Command :" + msg.value("command"));
            translater.postMessage(msg);
            //  checkin_and_checkout_and_viewmetadata();
        }
Esempio n. 4
0
        void test8()
        {
            Console.WriteLine("\n\n  Test check in Comm.cpp AGAIN, depends on Comm.h.Folder name in Repo is the same as package description");
            Console.WriteLine("  ===================================");
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint_));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "descripFolder");
            msg.add("descripFolder", "Comm Package");
            translater.postMessage(msg);
            string fileName = "Comm.cpp";
            string srcFile  = NavLocal.localStorageRoot_ + "/" + fileName;

            srcFile = System.IO.Path.GetFullPath(srcFile);
            string dstFile = sendFilesPath + "/" + fileName;

            System.IO.File.Copy(srcFile, dstFile, true);
            msg.remove("descripFolder");
            msg.remove("command");
            msg.add("command", "preCheckingin");
            msg.add("sendingFile", fileName);
            translater.postMessage(msg);
            NavLocal.localNotification.Items.Add("confirm select " + fileName + " as check in file");
            fileName = "Comm.h";
            srcFile  = NavLocal.localStorageRoot_ + "/" + fileName;
            dstFile  = sendFilesPath + "/" + fileName;
            System.IO.File.Copy(srcFile, dstFile, true);
            msg.remove("sendingFile");
            msg.add("sendingFile", fileName);
            translater.postMessage(msg);
            NavLocal.localNotification.Items.Add("add " + fileName + " to dependency files");
            fileName = "Comm.cpp";
            srcFile  = NavLocal.localStorageRoot_ + "/" + fileName;
            dstFile  = sendFilesPath + "/" + fileName;
            System.IO.File.Copy(srcFile, dstFile, true);
            CsMessage msg_commH = new CsMessage();

            msg_commH.add("to", CsEndPoint.toString(serverEndPoint_));
            msg_commH.add("from", CsEndPoint.toString(endPoint_));
            msg_commH.add("command", "checkin");
            msg_commH.add("checkinFile", "Comm.cpp");
            msg_commH.add("userName", "WeitianDing");
            msg_commH.add("descrip", "Comm Package");
            msg_commH.add("category", "MsgPassingCommunication/TestNameSpace/");
            msg_commH.add("dependencyFiles", "Comm.h/");
            msg_commH.show();
            translater.postMessage(msg_commH);
            //test9();
        }
Esempio n. 5
0
        //----< initialize client GUI, send message to server to fetch all directories and files in project root, and also set pattern and selected current path on GUI  >----------------------------------------------
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            PatternValue.Text = UserPattern;
            CurrPath.Text     = Path;

            // start Comm
            endPoint_ = new CsEndPoint();
            endPoint_.machineAddress = hostAddress;
            endPoint_.port           = hostPort;
            translater = new Translater();
            translater.listen(endPoint_);

            processMessages();

            DispatcherLoadGetDirs();
            DispatcherLoadGetFiles();
            DispatcherLoadConvertedFile();
            DispatcherPublishResult();

            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = serverAddress;
            serverEndPoint.port           = serverPort;

            pathStack_.Push(Path);
            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);
            msg.remove("command");
            msg.add("command", "getConvertedFile");
            translater.postMessage(msg);

            if (AutoTest == "1")
            {
                runAutoTest();
            }
            else
            {
                log("Automated Test turns off, you can play around the GUI.\n");
            }
        }
        //--------------------<Browse button click event>------------------------------
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (isConnected == false)
            {
                MessageBox.Show("Please connect to the server first!");
                return;
            }
            if (ConditionComboBox == null)
            {
                MessageBox.Show("Please select a query condition!");
                return;
            }
            String queryCondition = ConditionComboBox.Text;
            String content        = tbQueryContent.Text;

            if (content == "")
            {
                MessageBox.Show("Please input browsing arguments.");
                return;
            }
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "browse");
            msg.add("queryCondition", queryCondition);
            msg.add("queryContent", content);
            translater.postMessage(msg);
            msg.show();
            msg.remove("command");
        }
        //----<trigger connection to start comm and load dispatcher>------------------------
        private void Connect_Click(object sender, RoutedEventArgs e)
        {
            // start Comm
            serverEndPoint = new CsEndPoint();
            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;

            endPoint_ = new CsEndPoint();
            endPoint_.machineAddress = "localhost";
            endPoint_.port           = int.Parse(Environment.GetCommandLineArgs()[1]);

            translater = new Translater();
            translater.listen(endPoint_);
            loadDispatcher();
            processMessages();

            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "connect");
            translater.postMessage(msg);
            msg.show();
            msg.remove("command");
            checkoutPathStack_.Push("../Repository");
            ShowRepo();
            Console.WriteLine("\n  Connected to the repo server.");
        }
        //----< respond to check_out click >-------
        private void Checkout_Click(object sender, RoutedEventArgs e)
        {
            if (isConnected == false)
            {
                MessageBox.Show("Please connect to the server first!");
                return;
            }
            if (checkoutFile == "")
            {
                MessageBox.Show("Please select a parent file.");
                return;
            }

            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("destination", "../../../Staging");
            msg.add("source", checkoutPathStack_.Peek());
            msg.add("command", "checkout");
            msg.add("requestfile", checkoutFile);
            translater.postMessage(msg);
            msg.show();

            // build message to get files and post it
            msg.remove("command");
            CheckoutList.Items.Clear();
            checkoutFile = "";
        }
        //----< Changes the Pattern, Regex, directory and Publishes for Demo >-------------
        public void ATU_selectDirectory()
        {
            Patterns         = "*.h *.cpp";
            Regex_           = "[A-D](.*)";
            txtPatterns.Text = Patterns;
            txtRegex.Text    = Regex_;
            string path;

            path = pathStack_.Peek() + "/" + "Test2";
            pathStack_.Push(path);
            PathTextBlock.Text = removeFirstDir(pathStack_.Peek());
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = serverAddress;
            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);
        }
        //----< respond to mouse click on Connect >----------------

        private void Connect_Click(object sender, RoutedEventArgs e)
        {
            CsEndPoint serverEndPoint = new CsEndPoint();

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

            PathTextBlock2.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());
            Console.WriteLine("\n  posting message in Translater");
            msg.show();
            translater.postMessage(msg);
            msg.remove("command");
            msg.add("command", "getFiles");
            Console.WriteLine("\n  posting message in Translater");
            msg.show();
            translater.postMessage(msg);

            isConnect = true;
        }
        //----< respond to pop up file content >-------
        private void FileMouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            string fileName;

            if (isTest)
            {
                fileName = "MPC_IComm.h.1";
            }
            else
            {
                fileName = RepoFileList.SelectedValue as string;
            }
            try
            {
                string path = System.IO.Path.Combine(checkoutPathStack_.Peek(), fileName);

                CsMessage msg = new CsMessage();
                msg.add("to", CsEndPoint.toString(serverEndPoint));
                msg.add("from", CsEndPoint.toString(endPoint_));
                msg.add("command", "viewFile");
                msg.add("viewFile", checkoutPathStack_.Peek());
                msg.add("fileName", fileName);
                translater.postMessage(msg);
                msg.show();
                // build message to get files and post it
                msg.remove("command");
                msgCount = 1;
            }
            catch (Exception ex)
            {
                string msg = ex.Message;
            }
        }
Esempio n. 12
0
        //----< respond to mouse double-click on dir name >----------------
        private void checkoutdirs_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            string selectedDir = (string)checkoutdirs.SelectedItem;
            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
            statusBarText.Text = removeFirstDir(pathStack_.Peek());
            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());
            client.postMessage(msg);
            // build message to get files and post it
            msg.remove("command");
            msg.add("command", "getFiles");
            client.postMessage(msg);
        }
Esempio n. 13
0
        //----< start Comm, fill window display with dirs and files >------

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            // start Comm
            endPoint_ = new CsEndPoint();
            endPoint_.machineAddress = "localhost";
            endPoint_.port           = 8082;
            translater = new Translater();
            translater.listen(endPoint_);

            // start processing messages
            processMessages();

            // load dispatcher
            loadDispatcher();

            CsEndPoint serverEndPoint = new CsEndPoint();

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

            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);
            //test1();
        }
        //----< window load function >------------------------------------

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            endPoint_ = new CsEndPoint();             // start Comm
            endPoint_.machineAddress = "localhost";
            endPoint_.port           = new Random().Next(10000);
            translater = new Translater();
            translater.listen(endPoint_);
            processMessages();                        // start processing messages
            loadDispatcher();

            popPathStack_.Push("../Checked-in");
            CsEndPoint serverEndPoint = new CsEndPoint();

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

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "getPopDirs");
            msg.add("path", popPathStack_.Peek());
            translater.postMessage(msg);
            msg.remove("command");
            msg.add("command", "getPopFiles");
            translater.postMessage(msg);

            if (index_ != -1)
            {
                autoclick();
            }
        }
Esempio n. 15
0
        //----< open window showing contents of project directory >------
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            cmd = Environment.GetCommandLineArgs();
            processcmd(cmd);
            path     = Directory.GetCurrentDirectory();
            path     = getAncestorPath(3, path);
            path_web = path + "\\LocalConvertedWebpages";
            Loadcmd(cmd);
            endPoint_ = new CsEndPoint();            // start Comm
            endPoint_.machineAddress = "localhost";
            endPoint_.port           = 8081;
            translater = new Translater();
            translater.listen(endPoint_);
            processMessages();          // start processing messages
            loadDispatcher();           // load dispatcher
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;
            CurrPath.Text = "Storage";
            pathStack_.Push("..");
            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");
            msg.add("suffix1", suffix1);
            msg.add("suffix2", suffix2);
            translater.postMessage(msg);
            convertfiles();
        }
Esempio n. 16
0
        //----< start Comm, fill window display with dirs and files >------

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            // start Comm
            endPoint_ = new CsEndPoint();
            endPoint_.machineAddress = "localhost";
            endPoint_.port           = 8082;
            translater = new Translater();
            translater.listen(endPoint_);

            // start processing messages
            processMessages();

            // load dispatcher
            loadDispatcher();

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

            //txtPath.Text = "Storage";
            //pathStack_.Push("../Storage");

            WDirectory = "../CodeUtilities";
            WDirectory = System.IO.Path.GetFullPath(WDirectory);
            Patterns   = "*.h$$*.cpp";
            Regex      = "[G-H](.*)";

            txtPath.Text     = WDirectory;
            txtPatterns.Text = Patterns;
            txtRegex.Text    = Regex;

            pathStack_.Push("../CodeUtilities");
            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);

            /*
             * CsMessage msgF = new CsMessage();
             * msgF.add("to",CsEnd
             * msgF.add("to", CsEndPoint.toString(serverEndPoint));
             * msg.add("from", CsEndPoint.toString(endPoint_));
             * msg.add("command", "getFile");
             * msg.add("file","filename.h");
             * translater.postMessage(msgF);
             * msgF.attributes["path"] = "Filename.h";
             * translater.postMessage(msgF);
             *
             */
            //test1();
        }
        //----< send getKeys message to the remote server >----------------
        private void GetKeysInRepo()
        {
            CsMessage msg = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "getKeys");
            translater.postMessage(msg);
            msg.remove("command");
        }
        //----< respond to mouse double-click on dir name >----------------

        public void DirList_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            MainWindow win = (MainWindow)Window.GetWindow(this);

            // build path for selected dir
            string selectedDir;

            if (DirList.SelectedIndex == -1)
            {
                selectedDir = "A";
            }
            else
            {
                selectedDir = (string)DirList.SelectedItem;
            }

            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
            PathTextBlock.Text = win.removeFirstDir(pathStack_.Peek());

            // build message to get dirs and post it
            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", "getDirs");
            msg.add("path", pathStack_.Peek());
            win.translater.postMessage(msg);

            // build message to get files and post it
            msg.remove("command");
            msg.add("command", "getFiles");
            win.translater.postMessage(msg);
        }
        //----< start Comm, fill window display with files  to convert>------
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            if (!System.IO.Directory.Exists(workingDir))
            {
                System.IO.Directory.CreateDirectory(workingDir);
            }
            endPoint_ = new CsEndPoint();
            endPoint_.machineAddress = "localhost";
            endPoint_.port           = 8082;
            translater = new Translater();
            translater.listen(endPoint_, workingDir, workingDir);
            processMessages();
            loadDispatcher();
            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = 8080;
            pathStack_.Push("../Storage");
            CsMessage messg = new CsMessage();

            messg.add("to", CsEndPoint.toString(serverEndPoint));
            messg.add("from", CsEndPoint.toString(endPoint_));
            messg.add("command", "getDirs");
            messg.add("path", pathStack_.Peek());
            translater.postMessage(messg);
            messg.remove("command");
            messg.add("command", "getFiles");
            translater.postMessage(messg);
            string[] args = Environment.GetCommandLineArgs();
            WDirectory = "../../../";
            WDirectory = Path.GetFullPath(WDirectory);
            List <string> list_st = new List <string>();

            input(list_st);                                      // input for arguments
            CsMessage msg_Conv = new CsMessage();

            msg_Conv.add("to", CsEndPoint.toString(serverEndPoint));     //sending message to convert files
            msg_Conv.add("from", CsEndPoint.toString(endPoint_));
            msg_Conv.add("command", "convert");
            msg_Conv.add("convert", args.First());
            msg_Conv.add("argc", list_st.Count().ToString());
            int    count = 1;
            string cmd   = "cmd";

            foreach (string val_store in list_st)
            {
                string listch = cmd + count;
                msg_Conv.add(listch, val_store.ToString());
                count++;
            }
            translater.postMessage(msg_Conv);
            translater.getMessage();
            demo_getfile(serverEndPoint);                // demonstrating file sent to clientFolder
        }
        //----< respond to mouse double-click on dir name >----------------

        private void DirList_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                // build path for selected dir
                string selectedDir = (string)DirList.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
                PathTextBlock.Text = removeFirstDir(pathStack_.Peek());

                // build message to get dirs and post it
                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", "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);
                //msg.remove("command");
                //msg.add("command", "getFile");
                //translater.postMessage(msg);
            }
            catch (Exception)
            {
                Console.WriteLine("Exception occured : you have clicked on the blank space");
            }
        }
Esempio n. 21
0
        //----< start Comm, fill window display with dirs, files and other information >------
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            if (!System.IO.Directory.Exists(workingDir))
            {
                System.IO.Directory.CreateDirectory(workingDir);
            }

            endPoint_ = new CsEndPoint();
            endPoint_.machineAddress = "localhost";
            string[] args = Environment.GetCommandLineArgs();
            int      len  = args.Count();

            if (len > 1 && args[1] != "")
            {
                clientPortValue_ = args[1];
            }

            if (len > 2 && args[2] != "")
            {
                serverPortValue_ = args[2];
            }
            Console.WriteLine("\nClient Port: " + clientPortValue_);
            endPoint_.port = Int32.Parse(clientPortValue_);

            serverEndPoint = new CsEndPoint();
            serverEndPoint.machineAddress = "localhost";

            Console.WriteLine("\nServer Port: " + serverPortValue_);
            serverEndPoint.port = Int32.Parse(serverPortValue_);

            translater = new Translater();
            translater.listen(endPoint_, workingDir, workingDir);

            PathTextBlock.Text = "Project4_OOD_ADP";
            pathStack_.Push("../../Project4_OOD_ADP");
            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);

            processMessages();
            loadDispatcher();
            Thread testThread = null;

            testThread = new Thread(atu);
            testThread.Start();
        }
Esempio n. 22
0
        //----< triggered by double click on directoy name under tab "Directory Navigation", send messages to server to fetch subdirectories' name and files' name >--------
        private void Dirs_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                // build path for selected dir
                string selectedDir = (string)Dirs.SelectedItem;
                if (selectedDir == null)
                {
                    return;
                }
                string path;
                if (selectedDir == "..")
                {
                    if (pathStack_.Count > 1)
                    {
                        pathStack_.Pop();
                    }
                    else
                    {
                        log("ERROR: Operation Forbidden. Due to security consideration, user can only navigate inside the project dirctory of the server.\n");
                        return;
                    }
                }
                else
                {
                    path = pathStack_.Peek() + "/" + selectedDir;
                    pathStack_.Push(path);
                }
                // display path in Dir TextBlcok
                CurrPath.Text = pathStack_.Peek();

                // build message to get dirs and post it
                CsEndPoint serverEndPoint = new CsEndPoint();
                serverEndPoint.machineAddress = serverAddress;
                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);

                // build message to get files and post it
                msg.remove("command");
                msg.add("command", "getFiles");
                translater.postMessage(msg);
                log("Navigate to directory " + selectedDir + "\n");
            }
            catch
            {
                return;
            }
        }
Esempio n. 23
0
        //----< start Comm, fill window display with dirs and files >------
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            string[] args = System.Environment.GetCommandLineArgs();
            selfport   = int.Parse(args[1]);
            serverport = int.Parse(args[2]);

            // start Comm
            endPoint_ = new CsEndPoint();
            endPoint_.machineAddress = "localhost";
            endPoint_.port           = selfport;
            translater = new Translater();
            translater.listen(endPoint_);

            // start processing messages
            processMessages();

            // load dispatcher
            loadDispatcher();

            CsEndPoint serverEndPoint = new CsEndPoint();

            serverEndPoint.machineAddress = "localhost";
            serverEndPoint.port           = serverport;
            working_directory             = Directory.GetCurrentDirectory() + "/../../../../";
            working_directory             = Path.GetFullPath(working_directory);
            Patterns         = "*.h *.cpp";
            Regex            = "[A-C](.*)";
            txtPatterns.Text = Patterns;
            txtRegex.Text    = Regex;

            txtPath.Text = ".";
            pathStack_.Push("../");
            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);

            Automated_Publish();
            demoReq1(); // demonstrating requirement 1
            demoReq2(); // demonstrating requirement 2
            demoReq3(); // demonstrating requirement 3
            demoReq4(); // demonstrating requirement 4
            demoReq5(); // demonstrating requirement 5
            demoReq6(); // demonstrating requirement 6
            demoReq7(); // demonstrating requirement 7
            demoReq8(); // demonstrating requirement 8
        }
        //--------------------<send message to server to get files without parents of the selected category>-------------------
        private void CategoriesList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            String    category = CategoriesList.SelectedValue as String;
            CsMessage msg      = new CsMessage();

            msg.add("to", CsEndPoint.toString(serverEndPoint));
            msg.add("from", CsEndPoint.toString(endPoint_));
            msg.add("command", "getRoot");
            msg.add("category", category);
            translater.postMessage(msg);
            msg.show();
            msg.remove("command");
        }
Esempio n. 25
0
        //----< respond to mouse double-click on dir name >----------------

        private void LstDirs_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            Display.Text    = "Ready..";
            statusText.Text = "Ready..";
            string selectedDir = (string)lstDirs.SelectedItem;

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

            if (selectedDir == "..")
            {
                if (pathStack_.Count > 1)  // don't pop off "Project4"
                {
                    pathStack_.Pop();
                }
                else
                {
                    return;
                }
            }
            else
            {
                path = pathStack_.Peek() + "/" + selectedDir;
                pathStack_.Push(path);
            }

            textPath.Text = removeFirstDir(pathStack_.Peek());

            CsEndPoint serverEndPoint = new CsEndPoint();

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

            Console.Write("\n\nREQUIREMENT 5 : --------- Providing message design for getting files and directories ---------\n");

            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);
        }
        //----<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);
        }
        //----< 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();
                }
            }
        }
Esempio n. 28
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);
        }
Esempio n. 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);
        }
Esempio n. 30
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);
        }