Skip to content
Phil Beauvoir edited this page Oct 9, 2024 · 54 revisions

Version 1.7 - October 9 2024

  • 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, embedFonts and textOffsetWorkaround and viewBoxBounds (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 bug fixes and improvements

Version 1.6.1 - February 22 2024

  • Add a preference to enable/disable CommonJS support

Version 1.6 - February 18 2024

  • Requires Archi 5.2
  • Enable support for CommonJS / Node.js modules (see here)
  • Add setlineWidth/getLineWidth for diagram objects
  • Add setDeriveLineColor/getDeriveLineColor for ArchiMate diagram objects
  • Internal fixes

Version 1.5 - October 2 2023

  • Add setIconColor/getIconColor for diagram objects
  • Add openInUI for 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

Version 1.4 - March 21 2023

  • 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

Version 1.3.1 - November 4 2022

  • Fix class not found exception

Version 1.3 - November 4 2022

  • 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_POSITION constants should use CENTER not CENTRE
  • Show more exception detail and error line numbers when a script fails
  • Escape apostrophes in file path when calling load('filepath')

Version 1.2.1 - August 11 2022

  • 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

Version 1.2 - October 12 2021

  • 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
  • AddsetGradient/getGradient for diagram objects
  • Add $.process.release for 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() and console.hide()
  • Internal fixes and improvements

Version 1.1.1 - August 18 2021

  • 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

Version 1.1.0 - January 12 2021

  • Use a Graal ProxyObject for Java Map objects if using Graal JS Engine (in order to support field accessors like bounds.x and bounds['x'])
  • Added global$.process.engine to return the class name of the current Script Engine
  • Added global $.process.platform to return the current operating system
  • Function getArgs() is now deprecated - use $.process.argv instead
  • 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

Version 1.0.0 - January 4 2021

  • 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 DiagramModelReferenceProxy class to access DiagramModelReferenceProxy#getRefView() for referenced View
  • Add nested option to createViewReference() (see https://github.com/archimatetool/archi-scripting-plugin/issues/81)
  • Change note to diagram-model-note and group to diagram-model-group
  • Ignore case on ArchimateRelationshipProxy#setAccessType() values
  • [PreferencePage] Initialise font to current font in font chooser dialog

Version 0.8.0 - June 23 2020

  • Add setTextAlignment() and setTextPosition() 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 .log file
  • 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

Version 0.7.2 - February 28 2020

  • Add outlineOpacity to objects - DiagramModelObjectProxy#setOutlineOpacity(int)
  • Add labelVisible to connections - DiagramModelConnectionProxy#setLabelVisible(boolean)
  • Add function getArgs() to retrieve command line arguments

Version 0.7.1 - January 31 2020

  • Add DiagramModelProxy#createViewReference()
  • Add DiagramModelObjectProxy#createViewReference()
  • Fix Nashorn message written to console

Version 0.7.0 - January 13 2020

  • Add model query functions - $.model.isModelLoaded(model) and $.model.getLoadedModels()
  • Add Association relationship directed attribute - relation.setAssociationDirected(boolean) and relation.isAssociationDirected()
  • Fix DiagramModelObjectProxy.children() and DiagramModelProxy.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

Version 0.6.0 - October 20 2019

  • 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)

Version 0.5.0 - July 12 2019

  • 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

Version 0.4.5 - April 16 2019

  • 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

Version 0.4.4 - March 22 2019

  • Add getPath() to ArchimateModelProxy
  • 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

Version 0.4.3 - February 12 2019

  • Don't show hidden files in Scripts Manager
  • Fix regression of exported images x2 on hires screens on Windows

Version 0.4.2 - February 1 2019

  • 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

Version 0.4.1 - October 26 2018

  • 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

Version 0.4.0 - August 9 2018

  • 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

Version 0.3.0 - July 23 2018

  • 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() and setTarget() now updates all view instances of connections
  • Rename model.addElement() and model.addRelationship() to model.createElement() and model.createRelationship()
  • Added folder.add(concept) and folder.createFolder(name)
  • Rename DiagramComponent#getDiagramModel() to DiagramComponent#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

Version 0.2.0 - July 12 2018

  • Add new examples to premium content
  • Rename getArchimateConcept() to getConcept()
  • 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

Version 0.1.0 - July 2 2018

  • First beta release
Clone this wiki locally