-
Notifications
You must be signed in to change notification settings - Fork 35
Change Log
Phil Beauvoir edited this page Oct 9, 2024
·
54 revisions
- 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
andtextOffsetWorkaround
andviewBoxBounds
(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
- Add a preference to enable/disable CommonJS support
- 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
- 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
- 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_POSITION
constants should useCENTER
notCENTRE
- 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/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()
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.x
andbounds['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
- 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 accessDiagramModelReferenceProxy#getRefView()
for referenced View - Add nested option to
createViewReference()
(see https://github.com/archimatetool/archi-scripting-plugin/issues/81) - Change
note
todiagram-model-note
andgroup
todiagram-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
.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
- 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!