private void addAssetMenuItem_Click(object sender, EventArgs e) { // Get asset name from dialog TextboxDialog dialog = new TextboxDialog("Create new asset", "New asset name"); dialog.ShowDialog(); if (dialog.Cancelled) { return; } // Create new asset element with given name AssetElement ae = new AssetElement(); ae.Name = dialog.StringValue; // Add asset to selected model TreeNode modelNode = mainTreeView.SelectedNode; ModelComponent model = ((ModelForm)mainTreeView.SelectedNode.Tag).Model; model.Assets.Add(ae); // Refresh to add node UpdateModelNode(model, modelNode.Parent); TreeNode newNode = getNodeFromElement(ae); mainTreeView.SelectedNode = newNode; PicassoSubform newForm = (PicassoSubform)newNode.Tag; newForm.Show(); }
private void mainTreeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { // Node has been clicked try { // Check for form and show PicassoSubform target = (PicassoSubform)e.Node.Tag; target.Show(); target.Focus(); // Highlight in property grid mainPropertyGrid.SelectedObject = target.Element; // If it belongs to a different scenario than the one current selected, change it ScenarioComponent targetScenario = getScenarioFromNode(e.Node); if (targetScenario != _activeScenario) { _activeScenario = targetScenario; Text = _textPrefix + " - " + _activeScenario.ScenarioName; // Hide all open forms not underneath this scenario List <TreeNode> allNodes = getAllNodes(mainTreeView.Nodes); foreach (TreeNode node in allNodes) { if (getScenarioFromNode(node) != _activeScenario && ((Form)node.Tag).Visible) { ((Form)node.Tag).Visible = false; } } } } catch (NullReferenceException) { // Node has no form in tag } catch (InvalidCastException) { // Node tag is not a form } }