afawcett / apex-umlcanvas Goto Github PK
View Code? Open in Web Editor NEWCreate UML diagrams from Apex code using the Tooling API
License: BSD 3-Clause "New" or "Revised" License
Create UML diagrams from Apex code using the Tooling API
License: BSD 3-Clause "New" or "Revised" License
Is it possible to add the ability to download or save the canvas?
I Andrew ,
I am using your class "ToolingAPI" to create a trigger dynamically , but i received the Error "INVALID_ARGUMENT_TYPE : Missing field [TableEnumOrId] on trigger create"
I am using this code :
ToolingAPI toolingAPI = new ToolingAPI();
toolingAPI.ApexTrigger newTrigger = new ToolingAPI.ApexTrigger();
newTrigger.Name = 'HelloWorld77';
newTrigger.Body = 'trigger HelloWorld77 on Account (before insert) {}';
and when I added this line :
newTrigger.tableEnumOrId = 'Account';
I received an another error :
System.StringException: Invalid id: Account
Thank you for your help @alan-morey @ImJohnMDaniel @afawcett
Raphael
The tool doesn't show the relationship for child classes. Some child classes are declared as public and referenced everywhere. But this tool is not showing them
@afawcett - I am seeing that the ApexUML package classes show in the list of classes available? IMO, this should not be the case. I can't think of a use case where we would want that to appear.
Thoughts?
using ApexUML v1.5
The ApexClass selection list on the left sidebar will fail if there are more than 1000 ApexClasses in the default namespace of the org.
This is an issue with the apex:repeat because it can only contain 1000 records (see VisualForce docs )
I am pretty sure I did everything right but after I select a class I get a pop up error 'umlcanvas.na81.visual.force.com says failed[]'
The class and methods will show up on the canvas but I am not able to show any relationships.
When the user de-selects a class it should be removed from the diagram.
SFDC now has the ability to include a post-installation instructions page.
What would we include?
Even though the code is visible in packaging org the classes don't appear in the list on the left.
This issue relates to the unreleased v1.6 version.
Expected Result: It is added again (usual top left default place)
Actual Result: Nothing is added, the classes remained greyed out and the canvas is not clickable nor items can be moved around.
Have we removed the class from the canvas correctly? Maybe worth scanning the samples in the original repo for the library? https://github.com/christophevg/UmlCanvas
It occurs to me that we already have a release of this app on Heroku that folks are currently using. Since we are using Apache Maven, it would be good to codify that version now before we move forward. The version could be set to "0.1.0".
This way we can start working on version 0.2.0-SNAPSHOT and setup milestones around this (and future) version and we will not run into version confusion.
I can take care of the release now if needed, but I wanted to get your take, @afawcett before proceeding. Just let me know.
Cheers!
My org has more that 1000 classes and the tool failed to start!
Visualforce Error
Help for this Page
Collection size 1,276 exceeds maximum size of 1,000.
I'm getting Collection size 2,592 exceeds maximum size of 1,000 when trying to load the visualforce page. I've got about 500 Apex classes in my org and I've a number of managed packages installed including FinancialForce which puts me well over the 1000 size limit.
This affects v1.5 package.
I removed the package and manually deployed components from the Git repo and it seems the changes to ApexClassesSelector.selectAllVisible()
in e4b842d fix my immediate problem, now that managed package classes are not included any more. However, I think the underlying problem may still arise in an org with more than 1000 visible Apex classes.
When ApexUML is installed, the usual experience is that the admin forgets to add a Remote Site Setting record to allow ApexUML to utilize the connection to the ToolingAPI. (I know I keep forgetting). Right now the exception comes back as very convoluted and is not a "user friendly" message explaining what needs to be done. We can do better!!! ;-)
This error occurs if your using v1.3 in a Multi-Currency org.
We should add a display bar above the canvas grid to be used to convey system messages. This display would be a better way to present system errors and messages then using a Javascript alert() message box.
Installed V1.5 on sandbox and tried to select a class and not seeing any response after that.
Chrome Console showing following error :
1> Uncaught TypeError: Cannot read property 'name' of null
at Object.constructUMLClass (uml?sfdc.tabName=01rQ0000000Djvr:262)
at Visualforce.remoting.Manager.invokeAction.escape (uml?sfdc.tabName=01rQ0000000Djvr:108)
at e.cb (VFRemote.js:133)
at constructor.doCallback (VFRemote.js:99)
at constructor.onData (VFRemote.js:94)
at VFExt3.data.Connection.handleResponse (VFRemote.js:75)
at a (VFRemote.js:39)
at VFRemote.js:40
constructUMLClass @ uml?sfdc.tabName=01rQ0000000Djvr:262
Visualforce.remoting.Manager.invokeAction.escape @ uml?sfdc.tabName=01rQ0000000Djvr:108
e.cb @ VFRemote.js:133
doCallback @ VFRemote.js:99
onData @ VFRemote.js:94
handleResponse @ VFRemote.js:75
a @ VFRemote.js:39
(anonymous) @ VFRemote.js:40
setInterval (async)
g @ VFRemote.js:40
request @ VFRemote.js:42
request @ VFRemote.js:74
doSend @ VFRemote.js:96
combineAndSend @ VFRemote.js:96
g @ VFRemote.js:79
setInterval (async)
b.delay @ VFRemote.js:79
queueTransaction @ VFRemote.js:127
doCall @ VFRemote.js:97
doCall @ VFRemote.js:127
(anonymous) @ VFRemote.js:99
(anonymous) @ VFRemote.js:18
invokeAction @ VFRemote.js:138
select @ uml?sfdc.tabName=01rQ0000000Djvr:99
onclick @ uml?sfdc.tabName=01rQ0000000Djvr:332
uml?sfdc.tabName=01rQ0000000Djvr:201
Uncaught TypeError: Cannot set property 'symbolTable' of undefined
at Visualforce.remoting.Manager.invokeAction.escape (uml?sfdc.tabName=01rQ0000000Djvr:201)
at e.cb (VFRemote.js:133)
at constructor.doCallback (VFRemote.js:99)
at constructor.onData (VFRemote.js:94)
at VFExt3.data.Connection.handleResponse (VFRemote.js:75)
at a (VFRemote.js:39)
at VFRemote.js:40
Visualforce.remoting.Manager.invokeAction.escape @ uml?sfdc.tabName=01rQ0000000Djvr:201
e.cb @ VFRemote.js:133
doCallback @ VFRemote.js:99
onData @ VFRemote.js:94
handleResponse @ VFRemote.js:75
a @ VFRemote.js:39
(anonymous) @ VFRemote.js:40
setInterval (async)
g @ VFRemote.js:40
request @ VFRemote.js:42
request @ VFRemote.js:74
doSend @ VFRemote.js:96
combineAndSend @ VFRemote.js:96
g @ VFRemote.js:79
setInterval (async)
b.delay @ VFRemote.js:79
queueTransaction @ VFRemote.js:127
doCall @ VFRemote.js:97
doCall @ VFRemote.js:127
(anonymous) @ VFRemote.js:99
(anonymous) @ VFRemote.js:18
invokeAction @ VFRemote.js:138
renderRelationships @ uml?sfdc.tabName=01rQ0000000Djvr:190
Visualforce.remoting.Manager.invokeAction.escape @ uml?sfdc.tabName=01rQ0000000Djvr:159
e.cb @ VFRemote.js:133
doCallback @ VFRemote.js:99
onData @ VFRemote.js:94
handleResponse @ VFRemote.js:75
a @ VFRemote.js:39
(anonymous) @ VFRemote.js:40
setInterval (async)
g @ VFRemote.js:40
request @ VFRemote.js:42
request @ VFRemote.js:74
doSend @ VFRemote.js:96
combineAndSend @ VFRemote.js:96
g @ VFRemote.js:79
setInterval (async)
b.delay @ VFRemote.js:79
queueTransaction @ VFRemote.js:127
doCall @ VFRemote.js:97
doCall @ VFRemote.js:127
(anonymous) @ VFRemote.js:99
(anonymous) @ VFRemote.js:18
invokeAction @ VFRemote.js:138
checkAsync @ uml?sfdc.tabName=01rQ0000000Djvr:144
setInterval (async)
Visualforce.remoting.Manager.invokeAction.escape @ uml?sfdc.tabName=01rQ0000000Djvr:79
e.cb @ VFRemote.js:133
doCallback @ VFRemote.js:99
onData @ VFRemote.js:94
handleResponse @ VFRemote.js:75
a @ VFRemote.js:39
(anonymous) @ VFRemote.js:40
setInterval (async)
g @ VFRemote.js:40
request @ VFRemote.js:42
request @ VFRemote.js:74
doSend @ VFRemote.js:96
combineAndSend @ VFRemote.js:96
g @ VFRemote.js:79
setInterval (async)
b.delay @ VFRemote.js:79
queueTransaction @ VFRemote.js:127
doCall @ VFRemote.js:97
doCall @ VFRemote.js:127
(anonymous) @ VFRemote.js:99
(anonymous) @ VFRemote.js:18
invokeAction @ VFRemote.js:138
select @ uml?sfdc.tabName=01rQ0000000Djvr:99
onclick @ uml?sfdc.tabName=01rQ0000000Djvr:332
The tooling API currently does not mark if a class is an interface or not. This is important to UML. We need to find a way to distinguish between the two.
When adding an interface and a class that implements that interface to the canvas there is no relationship line drawn between the 2 entities to show the class realizes the interface.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.