private void AddNewMSButton_Clicked(object obj)
        {
            this.CurrentModelSystem = new ModelSystem(this.XTMF.XTMF.Configuration);
            // ok it is time to go and learn what model system they would like to make
            QuestionData descriptionQuestion = new QuestionData()
            {
                OnSuccess     = XTMFPage.EditModelSystem,
                OnSuccessData = this.CurrentModelSystem,
                OnCancel      = XTMFPage.SelectModelSystemPage,
                Question      = "How would you describe the Model System?",
                Path          = this.Path,
                Hint          = "Description"
            };

            QuestionData question = new QuestionData()
            {
                OnSuccess     = XTMFPage.QuestionPage,
                OnSuccessData = descriptionQuestion,
                OnCancel      = XTMFPage.SelectModelSystemPage,
                Hint          = "Model System Name",
                Question      = "Select a unique name for the new Model System.",
                Path          = this.Path,
                Validate      = this.ValidModelSystemNameAndStore
            };

            this.XTMF.Navigate(XTMFPage.QuestionPage, question);
        }
示例#2
0
 public void SetActive(object data)
 {
     if (data is QuestionData)
     {
         var question = data as QuestionData;
         this.FileNameLabel.Content = question.Question;
         this.CurrentQuestion       = question;
     }
 }
示例#3
0
 public void SetActive(object data)
 {
     if ( data is QuestionData )
     {
         var question = data as QuestionData;
         this.FileNameLabel.Content = question.Question;
         this.CurrentQuestion = question;
     }
 }
示例#4
0
        public void SetActive(object data)
        {
            var questionData = data as QuestionData;

            if (questionData == null)
            {
                if (data is QuestionResult)
                {
                    var res = data as QuestionResult;
                    if (res.Data is QuestionData)
                    {
                        questionData = res.Data as QuestionData;
                    }
                }
            }
            if (questionData == null)
            {
                return;
            }
            this.PreviousValid              = false;
            this.Data                       = questionData;
            this.QuestionTextBox.Width      = double.NaN;
            this.QuestionTextBox.HeaderText = questionData.Question;
            this.QuestionTextBox.HintText   = questionData.Hint;
            this.QuestionTextBox.Dispatcher.BeginInvoke(
                new Action(delegate()
            {
                var width = this.QuestionTextBox.HeaderContent.ActualWidth + 50;
                this.QuestionTextBox.Width = width + (50 - (width % 50));
            }), System.Windows.Threading.DispatcherPriority.Background);
            if (questionData.DefaultText != null)
            {
                this.QuestionTextBox.Text = questionData.DefaultText;
            }
            else
            {
                this.QuestionTextBox.Text = String.Empty;
            }
            int length;

            XTMFPage[] ourPath = new XTMFPage[(length = questionData.Path.Length) + 1];
            for (int i = 0; i < length; i++)
            {
                ourPath[i] = questionData.Path[i];
            }
            ourPath[length] = XTMFPage.QuestionPage;
            this.Path       = ourPath;
            if (this.Data.Validate != null)
            {
                this.SelectButton.IsEnabled = this.PreviousValid = ((this.ErrorLabel.Content = this.Data.Validate(this.QuestionTextBox.Text)) == null);
            }
            else
            {
                this.SelectButton.IsEnabled = true;
            }
        }
示例#5
0
        private void ReRunButton_Clicked(object obj)
        {
            QuestionData question = new QuestionData();

            question.Path          = this.Path;
            question.OnSuccess     = XTMFPage.RunModelSystemPage;
            question.OnSuccessData = this.ModelInterface.Root;
            question.OnCancel      = XTMFPage.ViewProjectRunPage;
            question.OnCancelData  = null;
            question.Validate      = ValidateRunName;
            question.Question      = "Select a unique name for the run";
            question.Hint          = "Run Name";
            this.XTMF.Navigate(XTMFPage.QuestionPage, question);
        }
示例#6
0
        private void Run_Clicked(object obj)
        {
            QuestionData question = new QuestionData();

            question.Path          = this.Path;
            question.OnSuccess     = XTMFPage.RunModelSystemPage;
            question.OnSuccessData = this.Context.ModelSystem;
            question.OnCancel      = XTMFPage.ModelSystemSettingsPage;
            question.OnCancelData  = this.Context;
            question.Validate      = ValidateRunName;
            question.Question      = "Select a unique name for the run";
            question.Hint          = "Run Name";
            this.XTMF.Navigate(XTMFPage.QuestionPage, question);
        }
示例#7
0
        private void SaveButton_Clicked(object obj)
        {
            this.NewMSHolder = new ModelSystem(this.XTMF.XTMF.Configuration);
            QuestionData question = new QuestionData();

            question.Path          = this.Path;
            question.OnSuccess     = XTMFPage.ViewProjectRunPage;
            question.OnSuccessData = this.NewMSHolder;
            question.OnCancel      = XTMFPage.ViewProjectRunPage;
            question.OnCancelData  = null;
            question.Validate      = ValidateModelSystemName;
            question.Question      = "Select a unique name for the Model System";
            question.Hint          = "Model System";
            question.DefaultText   = System.IO.Path.GetFileName(System.IO.Path.GetDirectoryName(this.RunDirectory));
            this.XTMF.Navigate(XTMFPage.QuestionPage, question);
        }
示例#8
0
        private void SaveMS_Clicked(object obj)
        {
            this.NewMSHolder = new ModelSystem(this.XTMF.XTMF.Configuration);
            QuestionData question = new QuestionData();

            question.Path          = this.Path;
            question.OnSuccess     = XTMFPage.ModelSystemSettingsPage;
            question.OnSuccessData = this.NewMSHolder;
            question.OnCancel      = XTMFPage.ModelSystemSettingsPage;
            question.OnCancelData  = this.Context;
            question.Validate      = ValidateModelSystemName;
            question.Question      = "Select a unique name for the Model System";
            question.Hint          = "Model System";
            question.DefaultText   = this.ModuleNameLabel.Text;
            this.XTMF.Navigate(XTMFPage.QuestionPage, question);
        }
示例#9
0
        private void ModelSystemViewer_RenameLinkedParamater(ILinkedParameter obj)
        {
            LastLinkedParameterRequest = obj;
            QuestionData question = new QuestionData()
            {
                DefaultText   = obj.Name,
                Validate      = ValidateSubmodelName,
                Question      = "What would you like to call this linked parameter?",
                Path          = this.Path,
                Hint          = "Linked Parameter Name",
                OnSuccess     = XTMFPage.EditModelSystem,
                OnSuccessData = "Rename LinkedParameter",
                OnCancel      = XTMFPage.EditModelSystem,
            };

            this.XTMF.Navigate(XTMFPage.QuestionPage, question);
        }
示例#10
0
        private void ModelSystemViewer_RenameRequested(IModelSystemStructure obj)
        {
            LastRenameStructureRequest = obj;
            QuestionData question = new QuestionData()
            {
                DefaultText   = obj.Name,
                Validate      = ValidateSubmodelName,
                Question      = "What would you like to call this submodel?",
                Path          = this.Path,
                Hint          = "Submodel Name",
                OnSuccess     = XTMFPage.EditModelSystem,
                OnSuccessData = "Rename Submodel",
                OnCancel      = XTMFPage.EditModelSystem,
            };

            this.XTMF.Navigate(XTMFPage.QuestionPage, question);
        }
示例#11
0
        private void RenameButton_Clicked(object obj)
        {
            var          ms       = this.ModelSystemViewer.ModelSystem;
            QuestionData question = new QuestionData()
            {
                DefaultText   = ms.Name,
                Validate      = ValidModelSystemName,
                Question      = "What would you like to call this model system?",
                Path          = this.Path,
                Hint          = "Model System Name",
                OnSuccess     = XTMFPage.EditModelSystem,
                OnSuccessData = "Rename",
                OnCancel      = XTMFPage.EditModelSystem,
            };

            this.XTMF.Navigate(XTMFPage.QuestionPage, question);
        }
示例#12
0
 private void MSContextMenu_SaveAsModelSystemPressed()
 {
     if (this.CurrentModelSystem != null)
     {
         this.SaveAsMS = new ModelSystem(this.XTMF.XTMF.Configuration);
         QuestionData question = new QuestionData();
         question.Path          = this.Path;
         question.OnSuccess     = XTMFPage.ProjectSettingsPage;
         question.OnSuccessData = this.SaveAsMS;
         question.OnCancel      = XTMFPage.ProjectSettingsPage;
         question.OnCancelData  = null;
         question.Validate      = ValidateModelSystemName;
         question.Question      = "Select a unique name for the Model System";
         question.Hint          = "Model System";
         question.DefaultText   = this.CurrentModelSystem.Name;
         this.XTMF.Navigate(XTMFPage.QuestionPage, question);
     }
 }
示例#13
0
 private void MSContextMenu_RenamePressed(string name)
 {
     if (this.CurrentModelSystem != null)
     {
         QuestionData question = new QuestionData();
         question.Question = "What would you like to rename the model system?";
         var module = this.CurrentModelSystem;
         question.DefaultText   = module.Name;
         question.OnSuccess     = XTMFPage.ProjectSettingsPage;
         question.OnCancel      = XTMFPage.ProjectSettingsPage;
         question.OnCancelData  = null;
         question.OnSuccessData = module;
         question.Path          = this.Path;
         question.Hint          = "The model systems's new name";
         question.Validate      = ValidateModuleName;
         this.XTMF.Navigate(XTMFPage.QuestionPage, question);
     }
 }
示例#14
0
 private void MSContextMenu_RenamePressed(string name)
 {
     if (this.CurrentModelSystem != null)
     {
         var          ms       = this.CurrentModelSystem;
         QuestionData question = new QuestionData()
         {
             DefaultText   = ms.Name,
             Validate      = ValidModelSystemName,
             Question      = "What would you like to call this model system?",
             Path          = this.Path,
             Hint          = "Model System Name",
             OnSuccess     = XTMFPage.SelectModelSystemPage,
             OnSuccessData = "Rename",
             OnCancel      = XTMFPage.SelectModelSystemPage,
         };
         this.XTMF.Navigate(XTMFPage.QuestionPage, question);
     }
 }
示例#15
0
        private void Rename_Clicked(object obj)
        {
            QuestionData question = new QuestionData();

            question.Question = "What would you like to rename the module?";
            var module = obj as IModelSystemStructure;

            if (module != null)
            {
                question.DefaultText = module.Name;
            }
            else
            {
                question.DefaultText = this.CurrentModule.Name;
            }
            question.OnSuccess     = XTMFPage.ModelSystemSettingsPage;
            question.OnCancel      = XTMFPage.ModelSystemSettingsPage;
            question.OnCancelData  = null;
            question.OnSuccessData = module;
            question.Path          = this.Path;
            question.Hint          = "The module's new name";
            question.Validate      = ValidateModuleName;
            this.XTMF.Navigate(XTMFPage.QuestionPage, question);
        }
示例#16
0
        private void CopyFiles(string[] fileNames)
        {
            string copyToDir;

            if (this.Context.Type == ImportTypeContext.ImportType.ModelSystem)
            {
                copyToDir = this.XTMF.XTMF.Configuration.ModelSystemDirectory;
            }
            else
            {
                copyToDir = this.XTMF.XTMF.Configuration.ProjectDirectory;
            }
            var    length     = fileNames.Length;
            string result     = this.Context.Result;
            int    startIndex = result == null ? 0 : 1;

            if (result != null)
            {
                switch (result)
                {
                case "Overwrite":
                {
                    if (this.Context.Type == ImportTypeContext.ImportType.ModelSystem)
                    {
                        this.XTMF.LoadModelSystem(fileNames[0], true);
                    }
                    else
                    {
                        this.XTMF.ImportProject(fileNames[0], true);
                    }
                }
                break;

                case "Rename":
                {
                    var path         = System.IO.Path.GetDirectoryName(fileNames[0]);
                    var baseFileName = System.IO.Path.GetFileNameWithoutExtension(fileNames[0]);
                    var extension    = System.IO.Path.GetExtension(fileNames[0]);
                    for (int i = 2; true; i++)
                    {
                        var renamedForm = System.IO.Path.Combine(copyToDir, String.Format("{0}({1}){2}", baseFileName, i, extension));

                        if (this.Context.Type == ImportTypeContext.ImportType.ModelSystem)
                        {
                            if (!System.IO.File.Exists(renamedForm))
                            {
                                System.IO.File.Copy(fileNames[0], renamedForm, false);
                                this.XTMF.LoadModelSystem(renamedForm, false);
                                break;
                            }
                        }
                        else if (this.Context.Type == ImportTypeContext.ImportType.Project)
                        {
                            this.XTMF.ImportProject(fileNames[0], false);
                            break;
                        }
                    }
                }
                break;

                case "Cancel":
                {
                }
                break;
                }
            }
            for (int i = startIndex; i < length; i++)
            {
                if (this.Context.Type == ImportTypeContext.ImportType.ModelSystem)
                {
                    string newMsFile = System.IO.Path.Combine(copyToDir, System.IO.Path.GetFileName(fileNames[i]));
                    if (System.IO.File.Exists(newMsFile))
                    {
                        this.Context.Files = new string[length - i];
                        Array.Copy(fileNames, i, this.Context.Files, 0, length - i);
                        Question = new QuestionData()
                        {
                            Question      = System.IO.Path.GetFileName(fileNames[i]),
                            OnSuccess     = XTMFPage.ImportPage,
                            OnCancel      = XTMFPage.ImportPage,
                            OnSuccessData = this.Context,
                            OnCancelData  = this.Context,
                            DefaultText   = null,
                            Path          = null,
                            Validate      = null
                        };
                        this.XTMF.Navigate(XTMFPage.FileNamePage, Question);
                        return;
                    }
                    else
                    {
                        System.IO.File.Copy(fileNames[i], newMsFile, true);
                        this.XTMF.LoadModelSystem(newMsFile);
                    }
                }
                else if (this.Context.Type == ImportTypeContext.ImportType.Project)
                {
                    this.XTMF.ImportProject(fileNames[0], false);
                }
            }

            if (this.Context.Type == ImportTypeContext.ImportType.ModelSystem)
            {
                MessageBox.Show("The Model System(s) have been imported successfully", "Import Complete", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            else
            {
                MessageBox.Show("The Project(s) have been imported successfully", "Import Complete", MessageBoxButton.OK, MessageBoxImage.Information);
            }

            // if we got here we are finished and can return the state
            this.Context.Type   = ImportTypeContext.ImportType.NumberOfImportTypes;
            this.Context.Result = null;
            this.Context.Files  = null;
        }
示例#17
0
 private void Rename_Clicked(object obj)
 {
     QuestionData question = new QuestionData();
     question.Question = "What would you like to rename the module?";
     var module = obj as IModelSystemStructure;
     if ( module != null )
     {
         question.DefaultText = module.Name;
     }
     else
     {
         question.DefaultText = this.CurrentModule.Name;
     }
     question.OnSuccess = XTMFPage.ModelSystemSettingsPage;
     question.OnCancel = XTMFPage.ModelSystemSettingsPage;
     question.OnCancelData = null;
     question.OnSuccessData = module;
     question.Path = this.Path;
     question.Hint = "The module's new name";
     question.Validate = ValidateModuleName;
     this.XTMF.Navigate( XTMFPage.QuestionPage, question );
 }
示例#18
0
 private void Run_Clicked(object obj)
 {
     QuestionData question = new QuestionData();
     question.Path = this.Path;
     question.OnSuccess = XTMFPage.RunModelSystemPage;
     question.OnSuccessData = this.Context.ModelSystem;
     question.OnCancel = XTMFPage.ModelSystemSettingsPage;
     question.OnCancelData = this.Context;
     question.Validate = ValidateRunName;
     question.Question = "Select a unique name for the run";
     question.Hint = "Run Name";
     this.XTMF.Navigate( XTMFPage.QuestionPage, question );
 }
示例#19
0
 private void SaveMS_Clicked(object obj)
 {
     this.NewMSHolder = new ModelSystem( this.XTMF.XTMF.Configuration );
     QuestionData question = new QuestionData();
     question.Path = this.Path;
     question.OnSuccess = XTMFPage.ModelSystemSettingsPage;
     question.OnSuccessData = this.NewMSHolder;
     question.OnCancel = XTMFPage.ModelSystemSettingsPage;
     question.OnCancelData = this.Context;
     question.Validate = ValidateModelSystemName;
     question.Question = "Select a unique name for the Model System";
     question.Hint = "Model System";
     question.DefaultText = this.ModuleNameLabel.Text;
     this.XTMF.Navigate( XTMFPage.QuestionPage, question );
 }
示例#20
0
 private void RenameButton_Clicked(object obj)
 {
     var ms = this.ModelSystemViewer.ModelSystem;
     QuestionData question = new QuestionData()
     {
         DefaultText = ms.Name,
         Validate = ValidModelSystemName,
         Question = "What would you like to call this model system?",
         Path = this.Path,
         Hint = "Model System Name",
         OnSuccess = XTMFPage.EditModelSystem,
         OnSuccessData = "Rename",
         OnCancel = XTMFPage.EditModelSystem,
     };
     this.XTMF.Navigate( XTMFPage.QuestionPage, question );
 }
示例#21
0
 private void ModelSystemViewer_RenameRequested(IModelSystemStructure obj)
 {
     LastRenameStructureRequest = obj;
     QuestionData question = new QuestionData()
     {
         DefaultText = obj.Name,
         Validate = ValidateSubmodelName,
         Question = "What would you like to call this submodel?",
         Path = this.Path,
         Hint = "Submodel Name",
         OnSuccess = XTMFPage.EditModelSystem,
         OnSuccessData = "Rename Submodel",
         OnCancel = XTMFPage.EditModelSystem,
     };
     this.XTMF.Navigate( XTMFPage.QuestionPage, question );
 }
示例#22
0
 private void ModelSystemViewer_RenameLinkedParamater(ILinkedParameter obj)
 {
     LastLinkedParameterRequest = obj;
     QuestionData question = new QuestionData()
     {
         DefaultText = obj.Name,
         Validate = ValidateSubmodelName,
         Question = "What would you like to call this linked parameter?",
         Path = this.Path,
         Hint = "Linked Parameter Name",
         OnSuccess = XTMFPage.EditModelSystem,
         OnSuccessData = "Rename LinkedParameter",
         OnCancel = XTMFPage.EditModelSystem,
     };
     this.XTMF.Navigate( XTMFPage.QuestionPage, question );
 }
示例#23
0
 private void MSContextMenu_RenamePressed(string name)
 {
     if ( this.CurrentModelSystem != null )
     {
         QuestionData question = new QuestionData();
         question.Question = "What would you like to rename the model system?";
         var module = this.CurrentModelSystem;
         question.DefaultText = module.Name;
         question.OnSuccess = XTMFPage.ProjectSettingsPage;
         question.OnCancel = XTMFPage.ProjectSettingsPage;
         question.OnCancelData = null;
         question.OnSuccessData = module;
         question.Path = this.Path;
         question.Hint = "The model systems's new name";
         question.Validate = ValidateModuleName;
         this.XTMF.Navigate( XTMFPage.QuestionPage, question );
     }
 }
示例#24
0
 private void MSContextMenu_SaveAsModelSystemPressed()
 {
     if ( this.CurrentModelSystem != null )
     {
         this.SaveAsMS = new ModelSystem( this.XTMF.XTMF.Configuration );
         QuestionData question = new QuestionData();
         question.Path = this.Path;
         question.OnSuccess = XTMFPage.ProjectSettingsPage;
         question.OnSuccessData = this.SaveAsMS;
         question.OnCancel = XTMFPage.ProjectSettingsPage;
         question.OnCancelData = null;
         question.Validate = ValidateModelSystemName;
         question.Question = "Select a unique name for the Model System";
         question.Hint = "Model System";
         question.DefaultText = this.CurrentModelSystem.Name;
         this.XTMF.Navigate( XTMFPage.QuestionPage, question );
     }
 }
示例#25
0
 public void SetActive(object data)
 {
     var questionData = data as QuestionData;
     if ( questionData == null )
     {
         if ( data is QuestionResult )
         {
             var res = data as QuestionResult;
             if ( res.Data is QuestionData )
             {
                 questionData = res.Data as QuestionData;
             }
         }
     }
     if ( questionData == null ) return;
     this.PreviousValid = false;
     this.Data = questionData;
     this.QuestionTextBox.Width = double.NaN;
     this.QuestionTextBox.HeaderText = questionData.Question;
     this.QuestionTextBox.HintText = questionData.Hint;
     this.QuestionTextBox.Dispatcher.BeginInvoke(
         new Action( delegate()
         {
             var width = this.QuestionTextBox.HeaderContent.ActualWidth + 50;
             this.QuestionTextBox.Width = width + ( 50 - ( width % 50 ) );
         } ), System.Windows.Threading.DispatcherPriority.Background );
     if ( questionData.DefaultText != null )
     {
         this.QuestionTextBox.Text = questionData.DefaultText;
     }
     else
     {
         this.QuestionTextBox.Text = String.Empty;
     }
     int length;
     XTMFPage[] ourPath = new XTMFPage[( length = questionData.Path.Length ) + 1];
     for ( int i = 0; i < length; i++ )
     {
         ourPath[i] = questionData.Path[i];
     }
     ourPath[length] = XTMFPage.QuestionPage;
     this.Path = ourPath;
     if ( this.Data.Validate != null )
     {
         this.SelectButton.IsEnabled = this.PreviousValid = ( ( this.ErrorLabel.Content = this.Data.Validate( this.QuestionTextBox.Text ) ) == null );
     }
     else
     {
         this.SelectButton.IsEnabled = true;
     }
 }
示例#26
0
 private void ReRunButton_Clicked(object obj)
 {
     QuestionData question = new QuestionData();
     question.Path = this.Path;
     question.OnSuccess = XTMFPage.RunModelSystemPage;
     question.OnSuccessData = this.ModelInterface.Root;
     question.OnCancel = XTMFPage.ViewProjectRunPage;
     question.OnCancelData = null;
     question.Validate = ValidateRunName;
     question.Question = "Select a unique name for the run";
     question.Hint = "Run Name";
     this.XTMF.Navigate( XTMFPage.QuestionPage, question );
 }
示例#27
0
 private void SaveButton_Clicked(object obj)
 {
     this.NewMSHolder = new ModelSystem( this.XTMF.XTMF.Configuration );
     QuestionData question = new QuestionData();
     question.Path = this.Path;
     question.OnSuccess = XTMFPage.ViewProjectRunPage;
     question.OnSuccessData = this.NewMSHolder;
     question.OnCancel = XTMFPage.ViewProjectRunPage;
     question.OnCancelData = null;
     question.Validate = ValidateModelSystemName;
     question.Question = "Select a unique name for the Model System";
     question.Hint = "Model System";
     question.DefaultText = System.IO.Path.GetFileName( System.IO.Path.GetDirectoryName( this.RunDirectory ) );
     this.XTMF.Navigate( XTMFPage.QuestionPage, question );
 }