ATTENTIONThis FlexSim Community Forum is read-only. Please post any new questions, ideas, or discussions to our new community (we call it Answers) at https://answers.flexsim.com/. Our new Question & Answer site brings a modern, mobile-friendly interface and more focus on getting answers quickly. There are a few differences between how our new Q&A community works vs. a classic, threaded-conversation-style forum like the one below, so be sure to read our Answers Best Practices. |
flexsim.com |
#1
|
||||
|
||||
Save and Restore Tabs in Code Editor
Hi All,
I thought this might be a good feature for future FlexSim release. So I posted here. The current Code Editor in FlexSim does not save all tabs. Once you close it. It is gone. I made the piece of code below to save the code tabs and then later you can restore it. Once you have a lot of code tabs, you will find it will be a little bit hard to find the tab that you want. Therefore, I also add a feature that you can choose to sort the tabs when you save it. I found this is very useful in our simulation model development. You may put the code below into a customized toolbar or a user command. This should work for FlexSim 5 and 6. Let me know if this helps you a little or you have any comments. Enjoy FlexSim coding. Code:
// This tool save or restore the code tabs in code editor // You may put this into your Customize Toolbar under File|Global Preferences, or // put this into a user command or customized toolbar #define SAVE 1 #define RESTORE 0 #define CANCEL -1 int saveOrRestore = msg("Code Editor Restore", concat("Yes to save tabs.", strascii(13), "No to restore tabs", strascii(13), "Cancel to do nothing"), 3); treenode toolsNode = node("/Tools", model()); treenode editorNode = node("/CodeEditor", toolsNode); // find the current active code editor view treenode activeViews = node("/active", views()); treenode codeEditorView = NULL; for(int i=1; i<= content(activeViews); i++) { if(stringsearch(getnodename(rank(activeViews, i)), "picklisteditwindows", 0)>=0) { codeEditorView = rank(activeViews, i); break; } } // Save or restore code tabs according to user's choice switch(saveOrRestore) { case SAVE: { if(!objectexists(codeEditorView)) { msg("Error", "Could not find Code Editor Window!"); return 0; } if(objectexists(editorNode)){ if(msg("Overwrite?", "Code tabs saved before. Overwrite?", 4)) clearcontents(editorNode); else return 0; } else { nodeinsertinto(toolsNode); editorNode = last(toolsNode); setnodename(editorNode, "CodeEditor"); } // save code tabs into an array treenode tabs = node("/tabcontrol", codeEditorView); int numTabs = content(tabs); stringarray codePaths = makearray(numTabs); for(int i=1;i<=numTabs;i++) { treenode tab = rank(tabs, i); treenode obj = node(">objectfocus", tab); string path = nodetopath(tonode(get(obj)), 1); //pt(path);pr(); codePaths[i] = path; } if(msg("Sort?", "Do you want to sort code tabs before save?", 4)) { // sort code tabs for(int i=1;i<=numTabs-1;i++) { int m = i; for(int j=i+1;j<=numTabs;j++) { if(stringcompare(codePaths[m], codePaths[j])>0) m = j; } if(m!=i) { string tmp = codePaths[i]; codePaths[i] = codePaths[m]; codePaths[m] = tmp; } } } // save code tabs into model/Tools for(int i=1;i<=numTabs;i++) { nodeinsertinto(editorNode); nodeadddata(last(editorNode), DATATYPE_STRING); setnodestr(last(editorNode), codePaths[i]); } } break; case RESTORE: { if(!objectexists(editorNode)) { msg("Error", "Could not find saved code tabs!"); return 0; } for(int i=1; i<=content(editorNode);i++) { string path = getnodestr(rank(editorNode, i)); createview("VIEW:/standardviews/picklistedit", path, ""); } } break; default: break; }
__________________
Best, Alan |
The Following 2 Users Say Thank You to AlanZhang For This Useful Post: | ||
Jay Chou (07-21-2013) |
Thread | Thread Starter | Forum | Replies | Last Post |
SAve and restore the state of the model during a simulation run | Stephan Seidel | Q&A | 3 | 04-16-2012 08:50 AM |
problem with recycle and restore item | juan alberto | Q&A | 1 | 03-09-2011 06:49 AM |
Add all open tabbed Trigger editor in V5 | JMEngelhart | Gripes and Goodies | 1 | 08-14-2009 09:57 AM |
Things I like about v4.3 (autocompletion, billboards, shortcuts, relative media paths, code editor) | Tom David | Gripes and Goodies | 1 | 03-28-2008 02:34 AM |