-
Notifications
You must be signed in to change notification settings - Fork 42
Change Log
Phil Beauvoir edited this page Aug 28, 2025
·
70 revisions
- Return user's default fill color for an object if its current value is null in
diagramObject.getFillColor() - Support connection router type on Views
- Fix
ArchimateModelProxy#mergenot using the update argument - ArchimateModelProxy#merge should call a lightweight load of model so it doesn't load silently into the Models Tree
- Add ellipsis to some menu items
- Optimise Scripts file viewer
- Don't show Script name in Undo/Redo Command (to stop menu width expansion)
- Add
add(object, x, y)to Views and Diagram Object to move Diagram Object to a new parent - Default bounds width and height of -1 value in functions now uses default sizes for all diagram objects (Notes, Groups, Grouping)
- Internal fixes and improvements
- Add option to use Chrome Debugger. See here.
- Add
model.isSet()to check if a model is selected or set
- Requires Archi 5.5
- Update to GraalVM 24.1.2
- Add
duplicatefunction for Elements and Views with option to duplicate these in another folder - Add
delete(false)function to diagram objects to delete the object and keep the object's children - Add
setlineStyle/getLineStylefor diagram objects - Throw exception if bounds of objects have width or height less than zero (-1 is allowed to indicate "default")
- Add
quit()function to init.js (same asexit()) - Remove
exec()andgetArgs()deprecated functions from init.js -
Model#load(path)should call internal IEditorModelManager#load(file) if Workbench is not running (only affects running in ACLI) - Internal fixes and improvements
- Add support for change of z-position of diagram model objects (see #94)
- SVG/PDF image export - Add a map of options for
setViewBox,textAsShapes,embedFontsandtextOffsetWorkaroundandviewBoxBounds(see #99 and #130) - Add
collection#parents(selector)(see #133) - Increase number of shortcut key slots from 10 to 20
- Add leading zero to key binding numbers in Key binding dialog
- Show an error dialog if file/folder can't be renamed in Scripts Manager
- Internal fixes and improvements
- Add a preference to enable/disable CommonJS support
- Requires Archi 5.2
- Enable support for CommonJS / Node.js modules (see here)
- Add
setlineWidth/getLineWidthfor diagram objects - Add
setDeriveLineColor/getDeriveLineColorfor ArchiMate diagram objects - Internal fixes
- Add
setIconColor/getIconColorfor diagram objects - Add
openInUIfor Views - Implement Import Model into current model with
model#merge() - Fix Relationship source and target not being set when adding a new relation, or setting a new relation type, and then doing undo followed by redo
- Internal fixes and optimisations
- Requires Archi 5 (and Java 17)
- Add shortcut keys for scripts
- Add a top level Scripts menu
- Add
window.promptSelection - Implement text alignment for connections
- Check for possible null files list in Scripts Manager (for example Mac directory access not allowed)
- Add basic contextual help support
- Scripts Manager tree provides lexical label comparison based on locale (no more “état” at the end of the list)
- Excel example script - add Specialization and tidy
- Fix class not found exception
- Update to GraalVM 22.3
- No need to use a ProxyObject for HashMap with updated GraalVM
- Dynamically load Nashorn if available
- Build with dir structure instead of jar file
-
IMAGE_POSITIONconstants should useCENTERnotCENTRE - Show more exception detail and error line numbers when a script fails
- Escape apostrophes in file path when calling load('filepath')
- This version is required when using Archi 4.10 as previous versions of jArchi are not recognised due to a change in Eclipse 4.25
- Profile names are checked for case-insensitive
- GraalVM is the default JS engine and Nashorn is now deprecated (although still present)
- It is possible to use a Java version greater than 11 and it won't complain about Nashorn not being present
- jArchi now lazily loads as required
- [Mac Silicon] Make Tree Item height the same as the Intel version
- Fix typo in
CONNECTION_TEXT_POSITION
- Minimum Archi 4.9 required
- Add support for specializations/profiles/images
- Add API to render a View as SVG/SVG String/PDF and add functions to save images directly to file
- Add
setGradient/getGradientfor diagram objects - Add
$.process.releasefor Archi and jArchi version numbers - Ensure parent folder is written on file operations
- Console - set tab width to 4 spaces
- On exception print the first few lines of the stack trace in the console if it is an internal error
- Add "Convert to type" example scripts
- Ampersands show in script context menus
- Ensure system console output is re-directed on
console.show()andconsole.hide() - Internal fixes and improvements
- Add
DiagramModelProxy#createDiagramConnection() - Add
DiagramModelConnectionProxy#setTextPosition() - Add
DiagramModelConnectionProxy#setStyle() - Add "Show Console" action in Tools menu and main toolbar
- Catch exceptions for
RunArchiScript.run()in order to display an error dialog - Simplify DnD operation in Scripts Tree
- Use a Graal ProxyObject for Java Map objects if using Graal JS Engine (in order to support field accessors like
bounds.xandbounds['x']) - Added global
$.process.engineto return the class name of the current Script Engine - Added global
$.process.platformto return the current operating system - Function
getArgs()is now deprecated - use$.process.argvinstead - Function
exec()is now deprecated - use$.child_process.exec()instead - Add API to set the value of a connection bendpoint
DiagramModelConnectionProxy#setRelativeBendpoint(values, index) - Allow
__SCRIPTS_DIR__global variable to work from ACLI - Check for null script engine
- Console is optimised and add Console.log(obj) method for GraalVM
- Catch NPEs in Console
- Fix potential memory leaks
- Now works on Archi 4.7.1 again
- Add a preference to use GraalVM (see https://github.com/archimatetool/archi-scripting-plugin/issues/85)
- Add API to set and get Junction types (
ArchimateElementProxy#setJunctionType()) - Add API for label expressions
- Add API to merge relationships
- Add
DiagramModelReferenceProxyclass to accessDiagramModelReferenceProxy#getRefView()for referenced View - Add nested option to
createViewReference()(see https://github.com/archimatetool/archi-scripting-plugin/issues/81) - Change
notetodiagram-model-noteandgrouptodiagram-model-group - Ignore case on
ArchimateRelationshipProxy#setAccessType()values - [PreferencePage] Initialise font to current font in font chooser dialog
- Add
setTextAlignment()andsetTextPosition()methods for visual objects - Add
setBorderType()for Note and Group objects - Add function
exec()to execute system commands and programs - Allow setting of console font in Preferences -> Scripting -> Console Font
- Use a monospaced font for Console by default
- Add a context menu option in the Scripts Manager to not show a folder in Scripts context menus
- Add
__SCRIPTS_DIR__global for the scripts folder - Script exceptions are written to the console rather than Archi's
.logfile - Copy an object's Features on
ArchimateConceptProxy#setType() - If setting width or height to -1 then use the values from user's preferences
- Sort folders before files in Script context menus on Mac
- The
exit()function no longer reports the line number as this was incorrect
- Add outlineOpacity to objects -
DiagramModelObjectProxy#setOutlineOpacity(int) - Add labelVisible to connections -
DiagramModelConnectionProxy#setLabelVisible(boolean) - Add function
getArgs()to retrieve command line arguments
- Add
DiagramModelProxy#createViewReference() - Add
DiagramModelObjectProxy#createViewReference() - Fix Nashorn message written to console
- Add model query functions -
$.model.isModelLoaded(model)and$.model.getLoadedModels() - Add Association relationship directed attribute -
relation.setAssociationDirected(boolean)andrelation.isAssociationDirected() - Fix
DiagramModelObjectProxy.children()andDiagramModelProxy.children()returning wrong class - Better folder icon
- Add extension point for other languages that conform to JSR 223. Groovy and Ruby extensions are available as source in the jArchi GitHub repository but are unsupported
- Add API to merge concepts
- Fix setting a Note's content not using the Command Stack
- When setting new concept type diagram objects use figure type as set in Preferences
- Allow to set and get ArchiMate Diagram Object figure type
- FolderProxy#add() supports adding Concepts, Views and Folders
- Check integrity of model when saving
- Fix "class.name" selector for name containing dots
- Add ArchimateModelProxy#children to allow access to first level folders
- Some ES6 support (experimental)
- Add autoNest boolean option to
ArchimateDiagramModelProxy.add(element, x, y, width, height, autoNest) - Add autoNest boolean option to
DiagramModelProxy.createObject(type, x, y, width, height, autoNest) - Add Add Relative Bendpoints API to Connections
- Allow selector of id # on model and add diagram object selectors
- Improve EObjectProxyCollection methods' speed by using a LinkedHashSet
- Ensure that source and target diagram components belong to the correct parent diagram model
- Compare file names in menu and file viewer so that they are in alphabetical order on Mac
- Improve the speed of script Undo/Redo if the Models Tree is open
- Fix
setOpacity()not put on Undo/Redo Command Stack (regression in 0.4.4) - Set the current active part on startup if available
- CurrentModel throws exception if model is null in UI (this is better than a NPE)
- Console View moves Caret to end of text
- Add
getPath()toArchimateModelProxy - Add getters and setters for Access Type and Influence Strength
- [Console] Add Scroll Lock option and add new Toolbar icons
- Add option to refresh UI when running a script
- Don't show hidden files in Scripts Manager
- Fix regression of exported images x2 on hires screens on Windows
- find() no longer returns connected relationships on diagram components
- Don't scale exported images x2 on hires screens
- Fix exception on activating scripts menu if the user scripts directory does not exist
- Calling exit() now exits gracefully with a message to console log
- Add getOpacity() and setOpacity() to View Objects
- setBounds() now returns self
- Add setViewpoint(id) and getViewpoint() to ArchiMate Views
- Add isAllowedConceptForViewpoint(conceptName) to ArchiMate Views
- Add new examples to premium content
- Add $.model.isAllowedRelationship(relationshipType, conceptType, conceptType)
- Add createObject(type, x, y, width, height) function to View and View Objects
- Add add(element, x, y, width, height) function to View and View Objects
- Add add(relation, sourceDiagramComponent, targetDiagramComponent) to View
- concept.setType(type) now copies documentation
- Add new examples to premium content
- Add
model.createArchimateView(name) - Add
model.createSketchView(name) - Add
model.createCanvasView(name) -
getType()now returns kebab-case class name - Relationship
setSource()andsetTarget()now updates all view instances of connections - Rename
model.addElement()andmodel.addRelationship()tomodel.createElement()andmodel.createRelationship() - Added
folder.add(concept)andfolder.createFolder(name) - Rename
DiagramComponent#getDiagramModel()toDiagramComponent#getView() - Console.log() can print JavaScript map-type objects (example - "{x:10 y:20}")
- Use a map of options (scale, margin) for
$.model.renderViewAsBase64(options) - Show script name in Undo/Redo menu
- Scripts Manager sorts properly alphabetically on Linux
- Add new examples to premium content
- Rename
getArchimateConcept()togetConcept() - Add diagram object and connection get/set functions: fontColor, fontName, fontSize, fontStyle, lineColor, lineWidth, fillColor. These are now camel case and can be used in
attr()functions. - Add set/get bounds function to view objects and use a JS object for x, y, width, height
- Add
$.model.renderViewAsBase64(view, format, options)function - Simplify Browser object API
- Add options to prompt and file dialogs
- Fix drag and drop not working at top level in Scripts Manager
- First beta release
If you value and use Archi please consider making a donation. Thanks!