示例#1
0
        public void Navigate(XTMFPage gotoPage, object extraData = null)
        {
            try
            {
                do
                {
                    this.Reload = false;
                    if (this.CheckToSave)
                    {
                        this.InterruptedNavigationTo   = gotoPage;
                        this.InterruptedNavigationData = extraData;
                        gotoPage         = XTMFPage.SaveProjectPage;
                        this.CheckToSave = false;
                    }
                    if (this.CurrentPage == XTMFPage.SaveProjectPage)
                    {
                        gotoPage  = this.CurrentPage = this.InterruptedNavigationTo;
                        extraData = this.InterruptedNavigationData;
                    }
                    else
                    {
                        this.CurrentPage = gotoPage;
                    }
                    var isTerminal = System.Windows.Forms.SystemInformation.TerminalServerSession;
                    if (!isTerminal)
                    {
                        this.DoFadeInAnimation(typeof(Grid));
                    }
                    this.CurrentMode.Children.Clear();
                    this.CurrentMode.Visibility = System.Windows.Visibility.Hidden;
                    this.LoadingPane.Visibility = System.Windows.Visibility.Visible;

                    /*if(!isTerminal)
                     * {
                     *  DoubleAnimation fadeIn = new DoubleAnimation( 0, 1, new Duration( TimeSpan.FromMilliseconds( 300 ) ) );
                     *  this.LoadingPane.BeginAnimation( Grid.OpacityProperty, fadeIn );
                     * }*/
                    this.DoEvents();
                    if (this.Pages[(int)this.CurrentPage] == null)
                    {
                        this.CreatePage(this.CurrentPage);
                    }
                    this.Pages[(int)this.CurrentPage].SetActive(extraData);
                    this.CurrentMode.Visibility = System.Windows.Visibility.Visible;
                    this.LoadingPane.Visibility = System.Windows.Visibility.Hidden;
                    extraData = null;
                } while (this.Reload);
                this.CurrentPath = this.Pages[(int)this.CurrentPage].Path;
                this.HeaderControl.NewPathSet();
                this.CurrentMode.Children.Add((UserControl)this.Pages[(int)this.CurrentPage]);
                this.HeaderControl.CurrentPageIsStart = (this.CurrentPage == XTMFPage.StartPage);
                var itemToFocus = (this.Pages[(int)this.CurrentPage] as IInputElement);
                Keyboard.Focus(itemToFocus);
            }
            catch (Exception e)
            {
                MessageBox.Show(this, "XTMF.GUI had an internal error:\r\n" + e.Message + "\r\nStack Trace:\r\n" + e.StackTrace, "Internal Error", MessageBoxButton.OK, MessageBoxImage.Error);
                Environment.Exit(1);
            }
        }
示例#2
0
        public void SetActive(object data)
        {
            var questionData = data as BooleanQuestionData;

            if (questionData == null)
            {
                if (data is BooleanQuestionResult)
                {
                    var res = data as BooleanQuestionResult;
                    if (res.Data is BooleanQuestionData)
                    {
                        questionData = res.Data as BooleanQuestionData;
                    }
                }
            }
            if (questionData == null)
            {
                return;
            }

            SetupButton(this.SelectButton, questionData.Yes);
            SetupButton(this.CancelButton, questionData.No);
            this.Data = questionData;
            this.QuestionTextBox.Content = questionData.Question;
            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;
            this.SelectButton.IsEnabled = true;
        }
示例#3
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;
            }
        }
示例#4
0
 public PathLabel(XTMFPage page)
 {
     this.Page = page;
     InitializeComponent();
 }
示例#5
0
 private void CreatePage(XTMFPage page)
 {
     switch ( page )
     {
         case XTMFPage.StartPage:
             this.Pages[(int)XTMFPage.StartPage] = new StartingPage( this );
             break;
         case XTMFPage.SettingsPage:
             this.Pages[(int)XTMFPage.SettingsPage] = new SettingsPage( this );
             break;
         case XTMFPage.ImportPage:
             this.Pages[(int)XTMFPage.ImportPage] = new ImportTypeSelectPage( this );
             break;
         case XTMFPage.ProjectSelectPage:
             this.Pages[(int)XTMFPage.ProjectSelectPage] = new ProjectPage( this );
             break;
         case XTMFPage.NewProjectPage:
             this.Pages[(int)XTMFPage.NewProjectPage] = new NewProjectPage( this );
             break;
         case XTMFPage.DeleteProjectPage:
             this.Pages[(int)XTMFPage.DeleteProjectPage] = new DeleteProjectPage( this );
             break;
         case XTMFPage.SaveProjectPage:
             this.Pages[(int)XTMFPage.SaveProjectPage] = new SaveProjectPage( this );
             break;
         case XTMFPage.ProjectSettingsPage:
             this.Pages[(int)XTMFPage.ProjectSettingsPage] = new ProjectSettingsPage( this );
             break;
         case XTMFPage.SelectModelSystemPage:
             this.Pages[(int)XTMFPage.SelectModelSystemPage] = new SelectModelSystemPage( this );
             break;
         case XTMFPage.ModelSystemSettingsPage:
             this.Pages[(int)XTMFPage.ModelSystemSettingsPage] = new ModelSystemPage( this );
             break;
         case XTMFPage.RemoveModelSystem:
             this.Pages[(int)XTMFPage.RemoveModelSystem] = new RemoveModelSystemPage( this );
             break;
         case XTMFPage.RunModelSystemPage:
             this.Pages[(int)XTMFPage.RunModelSystemPage] = new RunModelSystemPage( this );
             break;
         case XTMFPage.ViewProjectRunsPage:
             this.Pages[(int)XTMFPage.ViewProjectRunsPage] = new ViewRunsPage( this );
             break;
         case XTMFPage.ViewProjectRunPage:
             this.Pages[(int)XTMFPage.ViewProjectRunPage] = new ViewRunPage( this );
             break;
         case XTMFPage.DeleteRunPage:
             this.Pages[(int)XTMFPage.DeleteRunPage] = new DeleteRunPage( this );
             break;
         case XTMFPage.EditModelSystem:
             this.Pages[(int)XTMFPage.EditModelSystem] = new EditModelSystemPage( this );
             break;
         case XTMFPage.DeleteModelSystemPage:
             this.Pages[(int)XTMFPage.DeleteModelSystemPage] = new DeleteModelSystemPage( this );
             break;
         case XTMFPage.QuestionPage:
             this.Pages[(int)XTMFPage.QuestionPage] = new QuestionPage( this );
             break;
         case XTMFPage.BooleanQuestionPage:
             this.Pages[(int)XTMFPage.BooleanQuestionPage] = new BooleanQuestionPage( this );
             break;
         case XTMFPage.FileNamePage:
             this.Pages[(int)XTMFPage.FileNamePage] = new CopyFileConflictPage( this );
             break;
         case XTMFPage.AboutPage:
             this.Pages[(int)XTMFPage.AboutPage] = new AboutPage( this );
             break;
     }
 }
示例#6
0
 public void Navigate(XTMFPage gotoPage, object extraData = null)
 {
     try
     {
         do
         {
             this.Reload = false;
             if ( this.CheckToSave )
             {
                 this.InterruptedNavigationTo = gotoPage;
                 this.InterruptedNavigationData = extraData;
                 gotoPage = XTMFPage.SaveProjectPage;
                 this.CheckToSave = false;
             }
             if ( this.CurrentPage == XTMFPage.SaveProjectPage )
             {
                 gotoPage = this.CurrentPage = this.InterruptedNavigationTo;
                 extraData = this.InterruptedNavigationData;
             }
             else
             {
                 this.CurrentPage = gotoPage;
             }
             var isTerminal = System.Windows.Forms.SystemInformation.TerminalServerSession;
             if ( !isTerminal )
             {
                 this.DoFadeInAnimation( typeof( Grid ) );
             }
             this.CurrentMode.Children.Clear();
             this.CurrentMode.Visibility = System.Windows.Visibility.Hidden;
             this.LoadingPane.Visibility = System.Windows.Visibility.Visible;
             /*if(!isTerminal)
             {
                 DoubleAnimation fadeIn = new DoubleAnimation( 0, 1, new Duration( TimeSpan.FromMilliseconds( 300 ) ) );
                 this.LoadingPane.BeginAnimation( Grid.OpacityProperty, fadeIn );
             }*/
             this.DoEvents();
             if ( this.Pages[(int)this.CurrentPage] == null )
             {
                 this.CreatePage( this.CurrentPage );
             }
             this.Pages[(int)this.CurrentPage].SetActive( extraData );
             this.CurrentMode.Visibility = System.Windows.Visibility.Visible;
             this.LoadingPane.Visibility = System.Windows.Visibility.Hidden;
             extraData = null;
         } while ( this.Reload );
         this.CurrentPath = this.Pages[(int)this.CurrentPage].Path;
         this.HeaderControl.NewPathSet();
         this.CurrentMode.Children.Add( (UserControl)this.Pages[(int)this.CurrentPage] );
         this.HeaderControl.CurrentPageIsStart = ( this.CurrentPage == XTMFPage.StartPage );
         var itemToFocus = ( this.Pages[(int)this.CurrentPage] as IInputElement );
         Keyboard.Focus( itemToFocus );
     }
     catch ( Exception e )
     {
         MessageBox.Show(this, "XTMF.GUI had an internal error:\r\n" + e.Message + "\r\nStack Trace:\r\n" + e.StackTrace, "Internal Error", MessageBoxButton.OK, MessageBoxImage.Error);
         Environment.Exit( 1 );
     }
 }
示例#7
0
        private void CreatePage(XTMFPage page)
        {
            switch (page)
            {
            case XTMFPage.StartPage:
                this.Pages[(int)XTMFPage.StartPage] = new StartingPage(this);
                break;

            case XTMFPage.SettingsPage:
                this.Pages[(int)XTMFPage.SettingsPage] = new SettingsPage(this);
                break;

            case XTMFPage.ImportPage:
                this.Pages[(int)XTMFPage.ImportPage] = new ImportTypeSelectPage(this);
                break;

            case XTMFPage.ProjectSelectPage:
                this.Pages[(int)XTMFPage.ProjectSelectPage] = new ProjectPage(this);
                break;

            case XTMFPage.NewProjectPage:
                this.Pages[(int)XTMFPage.NewProjectPage] = new NewProjectPage(this);
                break;

            case XTMFPage.DeleteProjectPage:
                this.Pages[(int)XTMFPage.DeleteProjectPage] = new DeleteProjectPage(this);
                break;

            case XTMFPage.SaveProjectPage:
                this.Pages[(int)XTMFPage.SaveProjectPage] = new SaveProjectPage(this);
                break;

            case XTMFPage.ProjectSettingsPage:
                this.Pages[(int)XTMFPage.ProjectSettingsPage] = new ProjectSettingsPage(this);
                break;

            case XTMFPage.SelectModelSystemPage:
                this.Pages[(int)XTMFPage.SelectModelSystemPage] = new SelectModelSystemPage(this);
                break;

            case XTMFPage.ModelSystemSettingsPage:
                this.Pages[(int)XTMFPage.ModelSystemSettingsPage] = new ModelSystemPage(this);
                break;

            case XTMFPage.RemoveModelSystem:
                this.Pages[(int)XTMFPage.RemoveModelSystem] = new RemoveModelSystemPage(this);
                break;

            case XTMFPage.RunModelSystemPage:
                this.Pages[(int)XTMFPage.RunModelSystemPage] = new RunModelSystemPage(this);
                break;

            case XTMFPage.ViewProjectRunsPage:
                this.Pages[(int)XTMFPage.ViewProjectRunsPage] = new ViewRunsPage(this);
                break;

            case XTMFPage.ViewProjectRunPage:
                this.Pages[(int)XTMFPage.ViewProjectRunPage] = new ViewRunPage(this);
                break;

            case XTMFPage.DeleteRunPage:
                this.Pages[(int)XTMFPage.DeleteRunPage] = new DeleteRunPage(this);
                break;

            case XTMFPage.EditModelSystem:
                this.Pages[(int)XTMFPage.EditModelSystem] = new EditModelSystemPage(this);
                break;

            case XTMFPage.DeleteModelSystemPage:
                this.Pages[(int)XTMFPage.DeleteModelSystemPage] = new DeleteModelSystemPage(this);
                break;

            case XTMFPage.QuestionPage:
                this.Pages[(int)XTMFPage.QuestionPage] = new QuestionPage(this);
                break;

            case XTMFPage.BooleanQuestionPage:
                this.Pages[(int)XTMFPage.BooleanQuestionPage] = new BooleanQuestionPage(this);
                break;

            case XTMFPage.FileNamePage:
                this.Pages[(int)XTMFPage.FileNamePage] = new CopyFileConflictPage(this);
                break;

            case XTMFPage.AboutPage:
                this.Pages[(int)XTMFPage.AboutPage] = new AboutPage(this);
                break;
            }
        }
示例#8
0
        public void SetActive(object data)
        {
            var questionData = data as BooleanQuestionData;
            if ( questionData == null )
            {
                if ( data is BooleanQuestionResult )
                {
                    var res = data as BooleanQuestionResult;
                    if ( res.Data is BooleanQuestionData )
                    {
                        questionData = res.Data as BooleanQuestionData;
                    }
                }
            }
            if ( questionData == null ) return;

            SetupButton( this.SelectButton, questionData.Yes );
            SetupButton( this.CancelButton, questionData.No );
            this.Data = questionData;
            this.QuestionTextBox.Content = questionData.Question;
            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;
            this.SelectButton.IsEnabled = true;
        }
示例#9
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;
     }
 }
示例#10
0
 public PathLabel(XTMFPage page)
 {
     this.Page = page;
     InitializeComponent();
 }