//----< 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(); }
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(); }
//----< 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; } }
//----< 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); }
//----< 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(); } }
//----< 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(); }
//----< 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"); } }
//----< 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(); }
//----< 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; } }
//----< 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"); }
//----< 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(); } } }
//----< 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); }
// 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); }
//----< 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); }