Last active
February 9, 2019 11:46
-
-
Save gevaertw/540c64dec4e2b0955b6e3d4fc5eb54b1 to your computer and use it in GitHub Desktop.
#jArchi Script to create default application pattern into the active model.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
jArchi Script to create default application pattern into the active model. It creates the objects and relations. | |
It puts all objects into a folder per application and creates a view. | |
*/ | |
console.clear(); | |
console.log("Creating Default Application Pattern"); | |
//Pop up for application name, and check if that is already in the model | |
var appName = window.prompt("Name of the application to create", "My Application Service"); | |
var applicationServiceRead = appName | |
var applicationComponentRead = appName + " Application Component" | |
var applicationComponentDataRead = appName + " Application Data Component" | |
var appHostingServiceRead = appName + " Application hosting Service" | |
var dataHostingServiceRead = appName + " Data hosting Service" | |
// Create objects in active model | |
var applicationService = model.createElement("application-Service", applicationServiceRead); | |
var applicationComponent = model.createElement("application-Component", applicationComponentRead); | |
var applicationComponentData = model.createElement("application-Component", applicationComponentDataRead); | |
var appHostingService = model.createElement("technology-service", appHostingServiceRead); | |
var dataHostingService = model.createElement("technology-service", dataHostingServiceRead); | |
// Put objects in folder | |
var folder = $("folder.Application").first(); | |
var myAppFolder = folder.createFolder(appName); | |
myAppFolder.add (applicationService); | |
myAppFolder.add (applicationComponent); | |
myAppFolder.add (applicationComponentData); | |
folder = $("folder.Technology & Physical").first(); | |
myAppFolder = folder.createFolder(appName); | |
myAppFolder.add (appHostingService); | |
myAppFolder.add (dataHostingService); | |
// Create realtions in active model | |
var relationship1 = model.createRelationship("realization-relationship", "", applicationComponent, applicationService); | |
var relationship2 = model.createRelationship("realization-relationship", "", applicationComponentData, applicationService); | |
var relationship3 = model.createRelationship("serving-relationship", "", appHostingService, applicationComponent); | |
var relationship4 = model.createRelationship("serving-relationship", "", dataHostingService, applicationComponentData); | |
//Create a view with the model objects | |
/*Personal taste: Grid size = 10 (preset) space between objects = 3 grids = 30 | |
an object has a default length (X) of 13 and a height (Y) of 6 | |
so on the grid next X value = 160, next Y value is 90 | |
*/ | |
//Objects | |
var archimateView = model.createArchimateView(appName + "-Deployment"); | |
archimateView.viewpoint = "implementation_migration"; | |
var viewpointObject1 = archimateView.add(applicationService,10,10,-1,-1); | |
var viewpointObject2 = archimateView.add(applicationComponent,10,100,-1,-1); | |
var viewpointObject3 = archimateView.add(applicationComponentData,170,100,-1,-1); | |
var viewpointObject4 = archimateView.add(appHostingService,10,190,-1,-1); | |
var viewpointObject5 = archimateView.add(dataHostingService,170,190,-1,-1); | |
//Relations | |
var connection1 = archimateView.add(relationship1, viewpointObject2, viewpointObject1); | |
var connection2 = archimateView.add(relationship2, viewpointObject3, viewpointObject1); | |
var connection3 = archimateView.add(relationship3, viewpointObject4, viewpointObject2); | |
var connection4 = archimateView.add(relationship4, viewpointObject5, viewpointObject3); | |
//Default properties that I use | |
applicationService.prop("Archimate lifecycle status", "Active", false); | |
applicationComponent.prop("Archimate lifecycle status", "Active", false); | |
applicationComponentData.prop("Archimate lifecycle status", "Active", false); | |
appHostingService.prop("Archimate lifecycle status", "Active", false); | |
dataHostingService.prop("Archimate lifecycle status", "Active", false); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is really helpful. I have been doing this with a few more parts, mimicking the recommendations of Gerben Wierda. I plan to enhance your excellent work with that. Let me know if you are interested in the results.
ak