public static BaseElementTreeNode AddScreen(ScreenSave screenSave) { string screenFileName = screenSave.Name + ".cs"; string screenFileWithoutExtension = FileManager.RemoveExtension(screenFileName); var screenTreeNode = new ScreenTreeNode(FileManager.RemovePath(screenFileWithoutExtension)); screenTreeNode.CodeFile = screenFileName; mScreenNode.Nodes.Add(screenTreeNode); string generatedFile = screenFileWithoutExtension + ".Generated.cs"; screenTreeNode.GeneratedCodeFile = generatedFile; screenTreeNode.SaveObject = screenSave; int desiredIndex = ProjectManager.GlueProjectSave.Screens.IndexOf(screenSave); if (desiredIndex < mScreenNode.Nodes.Count && mScreenNode.Nodes[desiredIndex] != mScreenNode) { mScreenNode.Nodes.Remove(screenTreeNode); mScreenNode.Nodes.Insert(desiredIndex, screenTreeNode); } return(screenTreeNode); }
private void CreateScreenTreeNodes() { for (int i = 0; i < ProjectManager.GlueProjectSave.Screens.Count; i++) { ScreenSave screenSave = ProjectManager.GlueProjectSave.Screens[i]; // This is so fast now that we don't even need to show the user // what's going on //SetInitWindowText("Creating Screens: " + screenSave.Name); ScreenTreeNode screenTreeNode = GlueState.Self.Find.ScreenTreeNode(ProjectManager.GlueProjectSave.Screens[i].Name); #region If there is no screenTreeNode if (screenTreeNode == null) { // See if the file exists string fileToSearchFor = FileManager.RelativeDirectory + screenSave.Name + ".cs"; if (System.IO.File.Exists(fileToSearchFor)) { // If we got here that means there's probably not a build item for this file MessageBox.Show("The Glue project has the following Screen:\n" + screenSave.Name + "\n" + "but this file is not part of Visual Studio. This file may have been removed manually or " + "there may have been some saving error. You should close Glue, manually add this and the Generated file " + "to Visual Studio, then restart Glue."); MainGlueWindow.Self.HasErrorOccurred = true; } else { System.Windows.Forms.MessageBox.Show("Could not create the ScreenSave for " + screenSave.Name); } //mGlueProjectSave.Screens.RemoveAt(i); //i--; continue; } #endregion screenTreeNode.SaveObject = ProjectManager.GlueProjectSave.Screens[i]; CheckForMissingCustomFile(screenTreeNode); if (ProjectManager.GlueProjectSave.Screens[i].IsRequiredAtStartup) { screenTreeNode.BackColor = ElementViewWindow.RequiredScreenColor; } screenTreeNode.UpdateReferencedTreeNodes(); screenTreeNode.SaveObject.UpdateCustomProperties(); } }
private void CreateScreenTreeNodes() { for (int i = 0; i < ProjectManager.GlueProjectSave.Screens.Count; i++) { ScreenSave screenSave = ProjectManager.GlueProjectSave.Screens[i]; ScreenTreeNode screenTreeNode = GlueState.Self.Find.ScreenTreeNode(ProjectManager.GlueProjectSave.Screens[i].Name); if (ProjectManager.GlueProjectSave.Screens[i].IsRequiredAtStartup) { screenTreeNode.BackColor = ElementViewWindow.RequiredScreenColor; } screenTreeNode.UpdateReferencedTreeNodes(); } }
public static NamedObjectSave AddNewNamedObjectToSelectedElement(string objectName, MembershipInfo membershipInfo, bool raisePluginResponse = true) { NamedObjectSave namedObject = new NamedObjectSave(); namedObject.InstanceName = objectName; namedObject.DefinedByBase = membershipInfo == MembershipInfo.ContainedInBase; #region Adding to a NamedObject (PositionedObjectList) if (EditorLogic.CurrentNamedObject != null) { AddNamedObjectToCurrentNamedObjectList(namedObject); } #endregion #region else adding to Screen else if (EditorLogic.CurrentScreenTreeNode != null) { ScreenTreeNode screenTreeNode = EditorLogic.CurrentScreenTreeNode; AddNewNamedObjectToElementTreeNode(screenTreeNode, namedObject, true); } #endregion #region else adding to an Entity else if (EditorLogic.CurrentEntityTreeNode != null) { EntityTreeNode entityTreeNode = EditorLogic.CurrentEntityTreeNode; AddNewNamedObjectToElementTreeNode(entityTreeNode, namedObject, true); } #endregion if (raisePluginResponse) { PluginManager.ReactToNewObject(namedObject); } MainGlueWindow.Self.PropertyGrid.Refresh(); ElementViewWindow.GenerateSelectedElementCode(); GluxCommands.Self.SaveGlux(); return(namedObject); }
public static void UpdateNodeToListIndex(ScreenSave screenSave) { ScreenTreeNode screenTreeNode = GlueState.Self.Find.ScreenTreeNode(screenSave); bool wasSelected = MainGlueWindow.Self.ElementTreeView.SelectedNode == screenTreeNode; int desiredIndex = ProjectManager.GlueProjectSave.Screens.IndexOf(screenSave); mScreenNode.Nodes.Remove(screenTreeNode); mScreenNode.Nodes.Insert(desiredIndex, screenTreeNode); if (wasSelected) { MainGlueWindow.Self.ElementTreeView.SelectedNode = screenTreeNode; } }
public ScreenTreeNode ScreenTreeNode(ScreenSave screenSave) { for (int i = 0; i < ElementViewWindow.ScreensTreeNode.Nodes.Count; i++) { if (ElementViewWindow.ScreensTreeNode.Nodes[i] is ScreenTreeNode) { ScreenTreeNode asScreenTreeNode = ElementViewWindow.ScreensTreeNode.Nodes[i] as ScreenTreeNode; if (asScreenTreeNode.ScreenSave == screenSave) { return(asScreenTreeNode); } } } return(null); }
public ScreenTreeNode ScreenTreeNode(string screenFileName) { for (int i = 0; i < ElementViewWindow.ScreensTreeNode.Nodes.Count; i++) { if (ElementViewWindow.ScreensTreeNode.Nodes[i] is ScreenTreeNode) { ScreenTreeNode asScreenTreeNode = ElementViewWindow.ScreensTreeNode.Nodes[i] as ScreenTreeNode; if (asScreenTreeNode.SaveObject.Name == screenFileName) { return(asScreenTreeNode); } } } return(null); }
public TreeNode NamedObjectTreeNode(NamedObjectSave namedObjectSave) { IElement container = namedObjectSave.GetContainer(); if (container is ScreenSave) { ScreenTreeNode screenTreeNode = GlueState.Self.Find.ScreenTreeNode((ScreenSave)container); return(screenTreeNode.GetTreeNodeFor(namedObjectSave)); } else if (container is EntitySave) { EntityTreeNode entityTreeNode = GlueState.Self.Find.EntityTreeNode((EntitySave)container); return(entityTreeNode.GetTreeNodeFor(namedObjectSave)); } else { return(null); } }
public TreeNode ReferencedFileSaveTreeNode(ReferencedFileSave referencedFileSave) { IElement container = referencedFileSave.GetContainer(); if (container == null) { return(TreeNodeByTagIn(referencedFileSave, ElementViewWindow.GlobalContentFileNode.Nodes)); } else if (container is ScreenSave) { ScreenTreeNode screenTreeNode = GlueState.Self.Find.ScreenTreeNode((ScreenSave)container); return(screenTreeNode.GetTreeNodeFor(referencedFileSave)); } else if (container is EntitySave) { EntityTreeNode entityTreeNode = GlueState.Self.Find.EntityTreeNode((EntitySave)container); return(entityTreeNode.GetTreeNodeFor(referencedFileSave)); } return(null); }
public static BaseElementTreeNode AddScreen(ScreenSave screenSave) { string screenFileName = screenSave.Name + ".cs"; string screenFileWithoutExtension = FileManager.RemoveExtension(screenFileName); var screenTreeNode = new ScreenTreeNode(FileManager.RemovePath(screenFileWithoutExtension)); screenTreeNode.CodeFile = screenFileName; mScreenNode.Nodes.Add(screenTreeNode); string generatedFile = screenFileWithoutExtension + ".Generated.cs"; bool doesFileExist = FileManager.FileExists(generatedFile); if (!doesFileExist) { CodeWriter.CreateAndAddGeneratedFile(screenSave); } screenTreeNode.GeneratedCodeFile = generatedFile; screenTreeNode.SaveObject = screenSave; int desiredIndex = ProjectManager.GlueProjectSave.Screens.IndexOf(screenSave); mScreenNode.Nodes.Remove(screenTreeNode); mScreenNode.Nodes.Insert(desiredIndex, screenTreeNode); if (!string.IsNullOrEmpty(screenTreeNode.GeneratedCodeFile)) { CodeWriter.GenerateCode(screenSave); } return(screenTreeNode); }
void ActionTreeView_OnActionTreeNodeMouseClick(object s) { ScreenTreeNode sender = s as ScreenTreeNode; if (sender != null) { object screenObj = null; if (sender.CachedScreen == null) { ActionNodeData data = sender.Parameter as ActionNodeData; Type type = Type.GetType(data.TypeName); ConstructorInfo ci = type.GetConstructor(Type.EmptyTypes); screenObj = ci.Invoke(null); sender.CachedScreen = (Form)screenObj; } else { screenObj = sender.CachedScreen; } ScreenRegion region = screenObj as ScreenRegion; ContentPanel.Embed(region, EmbedType.Fill); } }
public static void UpdateAllDerivedElementFromBaseValues(bool regenerateCode) { if (EditorLogic.CurrentEntitySave != null) { List <EntitySave> derivedEntities = ObjectFinder.Self.GetAllEntitiesThatInheritFrom(EditorLogic.CurrentEntitySave.Name); List <NamedObjectSave> nosList = ObjectFinder.Self.GetAllNamedObjectsThatUseEntity(EditorLogic.CurrentEntitySave.Name); for (int i = 0; i < derivedEntities.Count; i++) { EntitySave entitySave = derivedEntities[i]; nosList.AddRange(ObjectFinder.Self.GetAllNamedObjectsThatUseEntity(entitySave.Name)); entitySave.UpdateFromBaseType(); // Update the tree nodes EntityTreeNode treeNode = GlueState.Self.Find.EntityTreeNode(entitySave); treeNode.UpdateReferencedTreeNodes(); if (regenerateCode) { CodeWriter.GenerateCode(entitySave); } } foreach (NamedObjectSave nos in nosList) { nos.UpdateCustomProperties(); IElement element = nos.GetContainer(); if (element != null) { CodeWriter.GenerateCode(element); } } } else if (EditorLogic.CurrentScreenSave != null) { List <ScreenSave> derivedScreens = ObjectFinder.Self.GetAllScreensThatInheritFrom(EditorLogic.CurrentScreenSave.Name); for (int i = 0; i < derivedScreens.Count; i++) { ScreenSave screenSave = derivedScreens[i]; screenSave.UpdateFromBaseType(); ScreenTreeNode treeNode = GlueState.Self.Find.ScreenTreeNode(screenSave); treeNode.UpdateReferencedTreeNodes(); if (regenerateCode) { CodeWriter.GenerateCode(screenSave); } } } else { if (EditorLogic.CurrentNamedObject == null) { // This means the value is being set on the Screen itself throw new NotImplementedException(); } } }
public static ScreenTreeNode AddScreen(ScreenSave screenSave) { string screenFileName = screenSave.Name + ".cs"; string screenFileWithoutExtension = FileManager.RemoveExtension(screenFileName); ScreenTreeNode screenTreeNode = new ScreenTreeNode(FileManager.RemovePath(screenFileWithoutExtension)); screenTreeNode.CodeFile = screenFileName; mScreenNode.Nodes.Add(screenTreeNode); string generatedFile = screenFileWithoutExtension + ".Generated.cs"; bool doesFileExist = FileManager.FileExists(generatedFile); if (!doesFileExist) { CodeWriter.CreateAndAddGeneratedFile(screenSave); } screenTreeNode.GeneratedCodeFile = generatedFile; screenTreeNode.ScreenSave = screenSave; int desiredIndex = ProjectManager.GlueProjectSave.Screens.IndexOf(screenSave); mScreenNode.Nodes.Remove(screenTreeNode); mScreenNode.Nodes.Insert(desiredIndex, screenTreeNode); if (!string.IsNullOrEmpty(screenTreeNode.GeneratedCodeFile)) { CodeWriter.GenerateCode(screenSave); } return screenTreeNode; }