using RoboforkApp.DataModel; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using RoboforkApp.Commons; namespace RoboforkApp { /// /// Interaction logic for RoboforkMenu.xaml /// public partial class RoboforkMenu : Window { private Common cm = new Common(); private const double CanvasdWidth = 1000; private const double CanvasHeight = 1000; public int IndexVehicle = 15; public int IndexProject = 0; public RoboforkMenu() { InitializeComponent(); Load_Form(); } private void Load_Form() { //PassplanTree.IsEnabled = false; //NodeTree.IsEnabled = false; MyDesignerCanvas.InitDrawRoute(); MyDesignerCanvas.scheduleCanvas = MyScheduleCanvas; } private void Window_Loaded(object sender, RoutedEventArgs e) { GetScaleCanVas(); GetScheduleCanVas(); MyDesignerCanvas.ReadFile(); DisplayMap_1(); } public void GetScaleCanVas() { double Width = 0; double Height = 0; Width = GridCanVas.ActualWidth; Height = GridCanVas.ActualHeight; ScaleCanvas scale = new ScaleCanvas(); scale.scaleWidthCanvas = Width / CanvasdWidth; scale.scaleHeightCanvas = Height / CanvasHeight; this.MyDesignerCanvas.DataContext = scale; } public void GetScheduleCanVas() { double Width = 0; double Height = 0; Width = MCGridShedule.ActualWidth; Height = MCGridShedule.ActualHeight; DesignerCanvas.CanvasScheduleWidth = Width; DesignerCanvas.CanvasScheduleHeight = Height; } private void DisplayMap_1() { ImageBrush myBrush = new ImageBrush(); Image image = new Image(); //myBrush.ImageSource = new BitmapImage(new Uri(@"..\..\Images\map.png", UriKind.Relative)); image.Source = new BitmapImage(new Uri("pack://application:,,,/Images/mapindex.png")); myBrush.ImageSource = image.Source; //Grid grid = new Grid(); MCGrid.Background = myBrush; } private void DisplayMap_2() { ImageBrush myBrush = new ImageBrush(); Image image = new Image(); //myBrush.ImageSource = new BitmapImage(new Uri(@"..\..\Images\map.png", UriKind.Relative)); image.Source = new BitmapImage(new Uri("pack://application:,,,/Images/map.png")); myBrush.ImageSource = image.Source; //Grid grid = new Grid(); MCGrid.Background = myBrush; } private void btnMenu_Selected(object sender, RoutedEventArgs e) { if (((TreeViewItem)sender) == null) { return; } string tag = ((TreeViewItem)sender).Tag.ToString(); switch (tag) { //2017/03/04 NAM ADD START1 case "NodeTree": NewDoBeginSetFreeNotes(); break; //2017/03/04 NAM ADD END case "SetupRestriction": DoBeginSetupRestriction(); break; case "SetStart": DoBeginSetStart(); break; case "SetGoal": DoBeginSetGoal(); break; case "SetupRoute": DoBeginSetupRoute(); break; case "MakeRoot": DoBeginMakeRoot(); break; case "DeleteRoute": DoBeginDeleteRoute(); break; case "SetAutoNodes": DoBeginSetAutoNotes(); break; case "SetFreeNodes": DoBeginSetFreeNotes(); break; case "ScheduleRoute": DoBeginSetSchedule(); break; case "TaskpattermTree": DoBeginTask(); break; case "InfoFork": LoadInfoFork(); break; case "InfoNode": LoadInfoNode(); break; default: break; } } private void DoBeginSetSchedule() { MyDesignerCanvas.SetScheduleRoute(); } private void NewDoBeginSetFreeNotes() { MyDesignerCanvas.Init(); MyDesignerCanvas.Operation = DesignerCanvas.OperationState.NewDrawSetFreeNode; MyDesignerCanvas.scheduleCanvas = MyScheduleCanvas; } private void LoadInfoFork() { DesignerCanvas.LoadDBFlag = true; MyDesignerCanvas.GetInfoFork(); } private void LoadInfoNode() { DesignerCanvas.LoadDBFlag = true; MyDesignerCanvas.GetInfoNode(); } private void btnMenu_UnselectedSet(object sender, RoutedEventArgs e) { if (((TreeViewItem)sender) == null) { return; } string tag = ((TreeViewItem)sender).Tag.ToString(); switch (tag) { case "InfoFork": DesignerCanvas.LoadDBFlag = false; break; case "InfoNode": DesignerCanvas.LoadDBFlag = false; break; default: break; } } private void DoBeginTask() { MyScheduleCanvas.CreateSimulation(MyDesignerCanvas.ucScheduleNode_Lst, MyDesignerCanvas.ProjectModel.ProjectModelList[MyDesignerCanvas.ProjectIndex], MyDesignerCanvas.VehicleIndex); } private void DoBeginSetAutoNotes() { MyDesignerCanvas.SetAutoNodes(); } private void DoBeginSetFreeNotes() { MyDesignerCanvas.Init(); MyDesignerCanvas.Operation = DesignerCanvas.OperationState.DrawSetFreeNode; } private void DoBeginSetupRestriction() { MyDesignerCanvas.Init(); MyDesignerCanvas.Operation = DesignerCanvas.OperationState.DrawObstract; MyDesignerCanvas.mouseState = DesignerCanvas.MouseState.None; } private void DoBeginSetStart() { MyDesignerCanvas.CreateStartPoint(); } private void DoBeginSetGoal() { MyDesignerCanvas.CreateGoalPoint(); } private void DoBeginSetupRoute() { MyDesignerCanvas.Operation = DesignerCanvas.OperationState.DrawRoute; } private void DoBeginMakeRoot() { MyDesignerCanvas.Children.Remove(MyDesignerCanvas.pRootLine); MyDesignerCanvas.MakeRoot(); } private void DoBeginDeleteRoute() { MessageBoxResult result = MessageBox.Show("Do you want delete route?", "Delete route", MessageBoxButton.OKCancel); if (result == MessageBoxResult.OK) { MyDesignerCanvas.ClearRoute(); } } private void GetPassplanTree(object sender, RoutedEventArgs e) { MessageBoxResult result = MessageBox.Show("Selected PassplanTree", "", MessageBoxButton.OKCancel); } private void SetPassplanTree(object sender, RoutedEventArgs e) { } private void GetNodeTree(object sender, RoutedEventArgs e) { MessageBoxResult result = MessageBox.Show("Selected NodeTree", "", MessageBoxButton.OKCancel); } private void SetNodeTree(object sender, RoutedEventArgs e) { } private void GetFK15Tree(object sender, RoutedEventArgs e) { MessageBoxResult result = MessageBox.Show("Selected FK15Tree", "", MessageBoxButton.OKCancel); } private void SetFK15Tree(object sender, RoutedEventArgs e) { } private void GetVehicleAddTree(object sender, RoutedEventArgs e) { MessageBoxResult result = MessageBox.Show("Selected VehicleAddTree", "", MessageBoxButton.OKCancel); } #region Add new Vehicle Item private void btnVehicleItem_Selected(object sender, RoutedEventArgs e) { if (((TreeViewItem)sender) == null) { return; } string _VehicleName = ((TreeViewItem)sender).Name.ToString(); string _VehicleTag = ((TreeViewItem)sender).Tag.ToString(); string _VehicleHeader = ((TreeViewItem)sender).Header.ToString(); string _ProjectName = "ProjectAAA"; //get Parent Tree item TreeViewItem _VehicleItem = Vehicle; TreeViewItem item = e.OriginalSource as TreeViewItem; if (item != null) { ItemsControl parent = cm.GetSelectedTreeViewItemParent(item); _VehicleItem = parent as TreeViewItem; } //get Project item TreeViewItem _ProjectItem = Vehicle; if (_VehicleItem != null) { ItemsControl parent = cm.GetSelectedTreeViewItemParent(_VehicleItem); _ProjectItem = parent as TreeViewItem; _ProjectName = _ProjectItem.Name.ToString(); } switch (_VehicleTag) { case "VehicleAddTree": AddNewVehicleItem(_VehicleItem); break; case "VehicleItem": GetDataVehicle(_ProjectName, _VehicleName, _VehicleHeader); break; default: break; } } private void AddNewVehicleItem(TreeViewItem treeitem) { IndexVehicle += 1; treeitem.Items.RemoveAt(treeitem.Items.Count - 1); treeitem.Items.RemoveAt(treeitem.Items.Count - 1); TreeViewItem item = new TreeViewItem(); item.Header = "FK"+ IndexVehicle.ToString()+"_#1"; item.Tag = "VehicleItem"; item.FontSize = 13; item.Selected += new RoutedEventHandler(btnVehicleItem_Selected); //item.IsSelected = true; item.IsExpanded = true; item.Name = "FK_" + IndexVehicle.ToString(); treeitem.Items.Add(item); TreeViewItem item2 = new TreeViewItem(); item2.Header = "[+]"; item2.Tag = "VehicleAddTree"; item2.FontSize = 13; item2.Selected += new RoutedEventHandler(btnVehicleItem_Selected); item2.Name = "VehicleAdd"; treeitem.Items.Add(item2); TreeViewItem item3 = new TreeViewItem(); item3.Header = "--------------------"; item3.FontSize = 13; item3.Name = "UnderLine"; treeitem.Items.Add(item3); } private void GetDataVehicle(string ProjectItem, string VehicleItem, String VehicleHeader) { if (VehicleItem == "FK_15") { DisplayMap_1(); } else { DisplayMap_2(); } MyDesignerCanvas.ProjectItem = ProjectItem; MyDesignerCanvas.VehicleItem = VehicleItem; MyDesignerCanvas.GetdataVehicle(); LabelSchedule.Content = VehicleHeader; WorkVehicle.Content = "Work [" + VehicleHeader + "]"; TaskpattermTree.Header = "Task patterm [" + VehicleHeader + "]"; } #endregion #region Project Item private void btnProjectItem_Selected(object sender, RoutedEventArgs e) { if (((TreeViewItem)sender) == null) { return; } string name = ((TreeViewItem)sender).Name.ToString(); string tag = ((TreeViewItem)sender).Tag.ToString(); string header = ((TreeViewItem)sender).Header.ToString(); switch (tag) { case "ProjectAddTree": AddNewProjectItem(); break; case "ProjectItem": //GetDataProject(name, header); break; default: break; } } private void AddNewProjectItem() { IndexProject += 1; ProjectTreeView.Items.RemoveAt(ProjectTreeView.Items.Count - 1); //Root Project TreeViewItem itemProject = new TreeViewItem(); itemProject.Header = "Project[" + IndexProject + "工場]"; itemProject.FontSize = 13; itemProject.Selected += new RoutedEventHandler(btnProjectItem_Selected); //itemProject.Name = "Project"; itemProject.Name = "Project" + IndexProject; itemProject.Tag = "ProjectItem"; itemProject.IsExpanded = true; ProjectTreeView.Items.Add(itemProject); //Tree Map TreeViewItem itemMap = new TreeViewItem(); itemMap.Header = "Map"; itemMap.FontSize = 13; itemMap.Name = "Map"; itemProject.Items.Add(itemMap); TreeViewItem itemRestrict = new TreeViewItem(); itemRestrict.Header = "Setup Restriction"; itemRestrict.FontSize = 13; itemRestrict.Selected += new RoutedEventHandler(btnMenu_Selected); itemRestrict.Name = "SetupRestriction"; itemRestrict.Tag = "SetupRestriction"; itemMap.Items.Add(itemRestrict); TreeViewItem itemNode = new TreeViewItem(); itemNode.Header = "Node"; itemNode.FontSize = 13; itemNode.Selected += new RoutedEventHandler(btnMenu_Selected); itemNode.Name = "NodeTree"; itemNode.Tag = "NodeTree"; itemMap.Items.Add(itemNode); TreeViewItem itemDivision = new TreeViewItem(); itemDivision.Header = "--------------------"; itemDivision.FontSize = 13; itemMap.Items.Add(itemDivision); //Tree Vehicle TreeViewItem itemVehicle = new TreeViewItem(); itemVehicle.Header = "Vehicle"; itemVehicle.FontSize = 13; itemVehicle.Name = "Vehicle" + IndexProject.ToString(); itemProject.Items.Add(itemVehicle); IndexVehicle += 1; TreeViewItem itemVehicleBr = new TreeViewItem(); itemVehicleBr.Header = "FK"+ IndexVehicle.ToString()+"_#1"; itemVehicleBr.Tag = "VehicleItem"; itemVehicleBr.FontSize = 13; itemVehicleBr.Selected += new RoutedEventHandler(btnVehicleItem_Selected); itemVehicleBr.IsExpanded = true; itemVehicleBr.Name = "FK_" + IndexVehicle.ToString(); itemVehicle.Items.Add(itemVehicleBr); itemVehicleBr = new TreeViewItem(); itemVehicleBr.Header = "[+]"; itemVehicleBr.Tag = "VehicleAddTree"; itemVehicleBr.FontSize = 13; itemVehicleBr.Selected += new RoutedEventHandler(btnVehicleItem_Selected); itemVehicleBr.Name = "VehicleAdd"; itemVehicle.Items.Add(itemVehicleBr); itemVehicleBr = new TreeViewItem(); itemVehicleBr.Header = "--------------------"; itemVehicleBr.FontSize = 13; itemVehicleBr.Name = "UnderLine"; itemVehicle.Items.Add(itemVehicleBr); //Tree Work TreeViewItem itemWork = new TreeViewItem(); itemWork.Header = "Work"; itemWork.FontSize = 13; itemProject.Items.Add(itemWork); TreeViewItem itemWorkChild = new TreeViewItem(); itemWorkChild.Header = "Task patterm [FK15_#1]"; itemWorkChild.FontSize = 13; itemWorkChild.Name = "TaskpattermTree"; itemWorkChild.Tag = "TaskpattermTree"; itemWorkChild.Selected += new RoutedEventHandler(btnMenu_Selected); itemWorkChild.IsExpanded = true; itemWork.Items.Add(itemWorkChild); itemWorkChild = new TreeViewItem(); itemWorkChild.Header = "[+]"; itemWorkChild.FontSize = 13; itemWorkChild.Selected += new RoutedEventHandler(btnMenu_UnselectedSet); itemWorkChild.Name = "WorkAddTree"; itemWork.Items.Add(itemWorkChild); itemWorkChild = new TreeViewItem(); itemWorkChild.Header = "--------------------"; itemWorkChild.FontSize = 13; itemWork.Items.Add(itemWorkChild); //Tree Setting TreeViewItem itemSetting = new TreeViewItem(); itemSetting.Header = "Setting"; itemSetting.FontSize = 13; itemProject.Items.Add(itemSetting); TreeViewItem itemSettingChild = new TreeViewItem(); itemSettingChild.Header = "Connect [Wi-Fi]"; itemSettingChild.FontSize = 13; itemSettingChild.Name = "ConnectTree"; itemSettingChild.Selected += new RoutedEventHandler(btnMenu_UnselectedSet); itemSettingChild.IsExpanded = true; itemSetting.Items.Add(itemSettingChild); itemSettingChild = new TreeViewItem(); itemSettingChild.Header = "Parameter"; itemSettingChild.FontSize = 13; itemSettingChild.Selected += new RoutedEventHandler(btnMenu_UnselectedSet); itemSettingChild.Name = "ParameterTree"; itemSetting.Items.Add(itemSettingChild); itemSettingChild = new TreeViewItem(); itemSettingChild.Header = "--------------------"; itemSettingChild.FontSize = 13; itemSetting.Items.Add(itemSettingChild); //Tree Logging TreeViewItem itemLog = new TreeViewItem(); itemLog.Header = "Logging"; itemLog.Name = "LoggingTree"; itemLog.Selected += new RoutedEventHandler(btnMenu_UnselectedSet); itemLog.FontSize = 13; itemProject.Items.Add(itemLog); //Tree -------------------- //Tree Logging TreeViewItem itemDash = new TreeViewItem(); itemDash.Header = "--------------------"; itemDash.FontSize = 13; itemProject.Items.Add(itemDash); ////Root Alert //TreeViewItem itemAlert = new TreeViewItem(); //itemAlert.Header = "Alert"; //itemAlert.FontSize = 13; //itemAlert.Selected += new RoutedEventHandler(GetAlertTree); //itemAlert.Name = "AlertTree"; //ProjectTreeView.Items.Add(itemAlert); ////Root Help //TreeViewItem itemHelp = new TreeViewItem(); //itemHelp.Header = "Help"; //itemHelp.FontSize = 13; //itemHelp.Selected += new RoutedEventHandler(GetHelpTree); //itemHelp.Name = "HelpTree"; //ProjectTreeView.Items.Add(itemHelp); //Root New Project TreeViewItem itemNewProject = new TreeViewItem(); itemNewProject.Header = "[+New Project]"; itemNewProject.FontSize = 13; itemNewProject.Selected += new RoutedEventHandler(btnProjectItem_Selected); itemNewProject.Name = "NewProjectTree"; itemNewProject.Tag = "ProjectAddTree"; ProjectTreeView.Items.Add(itemNewProject); MyDesignerCanvas.ProjectItem = itemProject.Name; MyDesignerCanvas.ProjectIndex++; MyDesignerCanvas.AddNewProjectItem(); } #endregion } }