public JobSubmissionForm(ILabsRequestHandler labsRequestHandler, IMaxRequestHandler maxRequestHandler, IMaxLogger logger)
        {
            _logger             = logger;
            _labsRequestHandler = labsRequestHandler;
            _maxRequestHandler  = maxRequestHandler;

            InitializeComponent();
            DataContext = this;

            SetWindowColor();
            SetControlColors();

            Templates        = TemplateHelper.GetApplicationTemplates(logger);
            SelectedTemplate = TemplateHelper.TemplateStandard;

            Renderers = new ObservableCollection <KeyValuePair <string, string> >();
            Renderers.AddRange(TemplateHelper.GetRenderers(TemplateHelper.TemplateStandard));
            // todo: read this from the scene
            SelectedRenderer = GetSelectedRenderer(TemplateHelper.TemplateStandard);

            MissingAssets = new ObservableCollection <IAssetFile>();
            MissingAssets.CollectionChanged += OnMissingCollectionChanged;
            MissingSpinnerVisibility         = Visibility.Collapsed;

            AssetDirectories = new ObservableCollection <AssetFolder>();
            AssetDirectories.CollectionChanged += OnDirectoryCollectionChanged;
            AssetSpinnerVisibility              = Visibility.Collapsed;

            // only load assets if we have a current scene
            if (HasSceneFile)
            {
                _logger.Debug($"Current renrder is set to: '{_maxRequestHandler.CurrentRenderer}'");

                _maxFileFolderPath = Path.GetDirectoryName(_maxRequestHandler.CurrentSceneFilePath);
                AssetDirectories.Add(new AssetFolder(_maxFileFolderPath, true));

                SceneFile.Text = _maxRequestHandler.CurrentSceneFileName;
                JobId.Text     = Utils.ContainerizeMaxFile(SceneFile.Text);

                FrameWidth.Text  = _maxRequestHandler.RenderWidth.ToString();
                FrameHeight.Text = _maxRequestHandler.RenderHeight.ToString();

                SetAssetCollection();
            }
            else
            {
                SetButtonState(false);
                Status.Text = "No scene loaded, unable to submit a job.";
                RenderTemplates.IsEnabled = false;
                RendererType.IsEnabled    = false;
            }
        }
Beispiel #2
0
        public ColorPalette(IMaxRequestHandler maxRequestHandler, IMaxLogger logger)
        {
            InitializeComponent();
            DataContext = this;

            Brushes = new ObservableCollection <MaxColorBrush>();
            var uiColors = maxRequestHandler.GetAllColorBrushes();

            foreach (Tuple <string, Brush> color in uiColors)
            {
                logger.Debug($"case GuiColors.{color.Item1}: return ColorTranslator.FromHtml(\"{ color.Item2.ToString()}\");");
                Brushes.Add(new MaxColorBrush(color.Item1, color.Item2));
            }
        }