public void InitializeComponent() { // determine the type the filter applies to Type filterType = typeof(DatabaseTable); if (_fieldSettings != null) { filterType = _fieldSettings.Table; } if (filterType == null) { return; } bool buttonsVisible = true; TranslationParserDelegate translationParser = null; if (genericMenuTreePanel != null) { buttonsVisible = ((IMenuTreePanel)genericMenuTreePanel).IsEditable; translationParser = ((IMenuTreePanel)genericMenuTreePanel).TranslationParser; } // create an instance of the filter panel specific to the type we are filtering genericMenuTreePanel = null; Type genericType = typeof(GenericMenuTreePanel <>).GetGenericTypeDefinition(); Type specificType = genericType.MakeGenericType(new Type[] { filterType }); genericMenuTreePanel = (Control)specificType.GetConstructor(Type.EmptyTypes).Invoke(null); genericMenuTreePanel.Dock = System.Windows.Forms.DockStyle.Fill; ((IMenuTreePanel)genericMenuTreePanel).SelectedNodeChanged += new DBNodeEventHandler(MenuTreePanel_SelectedNodeChanged); // link new control to existing settings ((IMenuTreePanel)genericMenuTreePanel).DBManager = DBManager; ((IFieldDisplaySettingsOwner)genericMenuTreePanel).FieldDisplaySettings = FieldDisplaySettings; ((IMenuTreePanel)genericMenuTreePanel).TranslationParser = translationParser; ((IMenuTreePanel)genericMenuTreePanel).IsEditable = buttonsVisible; SuspendLayout(); Controls.Clear(); Controls.Add(genericMenuTreePanel); Name = "FilterEditorPane"; Size = new System.Drawing.Size(689, 364); ResumeLayout(false); }
public MenuEditorPopup() { InitializeComponent(); MenuTree.SelectedNodeChanged += new DBNodeEventHandler(MenuTree_SelectedNodeChanged); nodeSettingsPanel.DBManager = MovingPicturesCore.DatabaseManager; MenuTree.DBManager = MovingPicturesCore.DatabaseManager; nodeSettingsPanel.ShowFilterHelpButton = true; nodeSettingsPanel.FilterHelpAction = new HelpActionDelegate(delegate { ProcessStartInfo processInfo = new ProcessStartInfo(Resources.FilterEditorURL); Process.Start(processInfo); }); TranslationParserDelegate parserDelegate = new TranslationParserDelegate(Translation.ParseString); MenuTree.TranslationParser = parserDelegate; nodeSettingsPanel.TranslationParser = parserDelegate; }
public MenuEditorPopup() { InitializeComponent(); MenuTree.SelectedNodeChanged += new DBNodeEventHandler(MenuTree_SelectedNodeChanged); nodeSettingsPanel.DBManager = MovingPicturesCore.DatabaseManager; MenuTree.DBManager = MovingPicturesCore.DatabaseManager; nodeSettingsPanel.ShowFilterHelpButton = true; nodeSettingsPanel.FilterHelpAction = new HelpActionDelegate(delegate { ProcessStartInfo processInfo = new ProcessStartInfo(Resources.FilterEditorURL); Process.Start(processInfo); }); TranslationParserDelegate parserDelegate = new TranslationParserDelegate(Translation.ParseString); MenuTree.TranslationParser = parserDelegate; nodeSettingsPanel.TranslationParser = parserDelegate; }