/// <summary>
        /// Constructor for item creation
        /// </summary>
        public ItemEditorViewModell(IFactorioLogic logic, Window window)
        {
            init(logic, window);

            m_item      = new FactorioItem();
            m_itemDummy = new FactorioItem(-1);
        }
        /// <summary>
        /// Initializer for constructors
        /// </summary>
        /// <param name="logic"></param>
        /// <param name="window"></param>
        private void init(IFactorioLogic logic, Window window)
        {
            this.m_fLogic        = logic;
            this.m_currentWindow = window;

            // Select default recipe item
            if (m_fLogic.Items.Count > 0)
            {
                SelectedComboBoxRecipeItem = m_fLogic.Items[0];
            }
        }
        /// <summary>
        /// Constructor for item editing
        /// </summary>
        /// <param name="logic"></param>
        /// <param name="window"></param>
        /// <param name="item"></param>
        public ItemEditorViewModell(IFactorioLogic logic, Window window, FactorioItem item)
        {
            init(logic, window);

            this.Title            = "Edit item";
            this.TxtItemName      = item.Name;
            this.TxtItemOutput    = item.CraftingOutput.ToString();
            this.TxtItemTime      = item.CraftingTime.ToString();
            this.SelectedCrafting = item.DefaultCraftingType.ToString();
            this.PicturePath      = item.ImagePath;

            this.m_item      = item;
            this.m_itemDummy = item.GetCopy();
        }
        public ItemEditorWindow(IFactorioLogic logic, FactorioItem item)
        {
            InitializeComponent();

            this.DataContext = new ItemEditorViewModell(logic, this, item);
        }
        public ProductionViewerWindow(IFactorioLogic logic, FactorioItem item)
        {
            InitializeComponent();

            this.DataContext = new ProductionViewerViewModell(item);
        }
        public SettingsWindow(IFactorioLogic factorioLogic)
        {
            InitializeComponent();

            this.DataContext = factorioLogic;
        }
 /// <summary>
 /// Default constructor
 /// </summary>
 public MainWindowViewModell(IFactorioLogic logic)
 {
     this.fLogic = logic;
 }