public DrawableCollection(DrawingSheet ownerSheet) { OwnerSheet = ownerSheet; objects = new List <DrawableObject>(); Shadow = new List <DrawableObject>(); transTree = OwnerSheet.sheetTree.Nodes.Add("Transitions", "Transitions", Constants.ImageIndex.Transitions, Constants.ImageIndex.Transitions); statesTree = OwnerSheet.sheetTree.Nodes.Add("States", "States", Constants.ImageIndex.States, Constants.ImageIndex.States); linksTree = OwnerSheet.sheetTree.Nodes.Add("Links", "Links", Constants.ImageIndex.Links, Constants.ImageIndex.Links); textsTree = OwnerSheet.sheetTree.Nodes.Add("Texts", "Texts", Constants.ImageIndex.Texts, Constants.ImageIndex.Texts); OwnerSheet.sheetTree.Expand(); }
//Add an action to the actions collection public void AddDrawAction(RecordableAction.ActionTypes actionType, DrawingSheet sheet, List <DrawableObject> changingObjects, List <DrawableObject> selectedObjects, int focusIndex) { //Erase redo actions if (ActionIndex < Actions.Count) { if (SavedIndex > ActionIndex) { SavedIndex = -1; } Actions.RemoveRange(ActionIndex, Actions.Count - ActionIndex); } //Create the action object var action = new DrawAction(actionType, sheet, changingObjects, selectedObjects, focusIndex); sheet.Sketch.PerformAction(action); //Add new action Actions.Add(action); ActionIndex++; }
public bool Deserialize(byte[] data) { if (data.Length < 7) { return(false); } if (Sheets.Count != 1) { return(false); } DrawingSheet sheet; int index = 0, fileVersion = 0, idx = 0; string str = ""; if (data[index] == Serialization.Token.EncryptedCompressedFile) { //remove first var temp = new byte[data.Length - 1]; Array.Copy(data, 1, temp, 0, temp.Length); //De-encrypt data = Protected.Unprotect(temp); //De-compress data = Util.Decompress(data); } else if (data[index] == Serialization.Token.CompressedData) { //remove first var temp = new byte[data.Length - 1]; Array.Copy(data, 1, temp, 0, temp.Length); //De-compress data = Util.Decompress(Protected.Decrypt(temp, "phafsm")); } //File and file version if (!Serialization.Token.Deserialize(data, ref index, Serialization.Token.StartFile)) { return(false); } if (!Serialization.DeserializeParameter(data, ref index, out fileVersion)) { return(false); } switch (fileVersion) { case 1: break; case 2: idx = index; if (Serialization.Token.Deserialize(data, ref index, Serialization.Token.CodeGenerationLanguage)) { if (!Serialization.DeserializeParameter(data, ref index, out str)) { return(false); } Language = str; } else { index = idx; Language = ""; } idx = index; if (Serialization.Token.Deserialize(data, ref index, Serialization.Token.CodeGenerationFolder)) { if (!Serialization.DeserializeParameter(data, ref index, out str)) { return(false); } ScriptsFolder = str; string folderName = Path.GetFileName(str); if (folderName.EndsWith(".cottle")) { TargetLanguage = folderName.Substring(0, folderName.Length - 7); } else { TargetLanguage = folderName; } } else { index = idx; ScriptsFolder = ""; } idx = index; if (Serialization.Token.Deserialize(data, ref index, Serialization.Token.CodeGenerationExec)) { if (!Serialization.DeserializeParameter(data, ref index, out str)) { return(false); } ExecAfter = ""; } else { index = idx; ExecAfter = ""; } break; default: return(false); } //Document information if (!Serialization.Token.Deserialize(data, ref index, Serialization.Token.StartBookInformation)) { return(false); } //End document information if (!Serialization.Token.Deserialize(data, ref index, Serialization.Token.EndBookInformation)) { return(false); } //Deserialize variables if (!Variables.Deserialize(data, ref index)) { return(false); } //Main sheet definition if (!Serialization.Token.Deserialize(data, ref index, Serialization.Token.StartSheetDefinition)) { return(false); } if (!activeSheet.Deserialize(data, ref index)) { return(false); } //Sheets definitions while (Serialization.Token.Is(data, index, Serialization.Token.StartSheetDefinition)) { switch (DrawingSheet.DeserializeSheetType(data, ref index)) { case DrawingSheet.SheetTypes.Global: sheet = CreateChildSheet(); break; case DrawingSheet.SheetTypes.Model: sheet = CreateModel(); break; default: return(false); } if (!sheet.Deserialize(data, ref index)) { return(false); } } //Global objects priorities if (Serialization.Token.Deserialize(data, ref index, Serialization.Token.StartGlobalPriorityList)) { var list = GetFullObjectsList(); var prioList = new List <IGlobal>(); string name = ""; while (Serialization.Token.Deserialize(data, ref index, Serialization.Token.ObjectName)) { Serialization.DeserializeParameter(data, ref index, out name); if (!list.Exists(obj => obj.Name == name)) { return(false); } var gobj = list.Find(obj => obj.Name == name) as IGlobal; if (!prioList.Contains(gobj)) { prioList.Add(gobj); } } if (!Serialization.Token.Deserialize(data, ref index, Serialization.Token.EndGlobalPriorityList)) { return(false); } Globals = prioList; } return(Serialization.Token.Deserialize(data, ref index, Serialization.Token.EndFile)); }
private void AddSheet(DrawingSheet sheet) { sheet.sheetTree.Tag = sheet; controls.view.Nodes.Add(sheet.sheetTree); Sheets.Add(sheet); }