vainolo / object-process-programming Goto Github PK
View Code? Open in Web Editor NEWEclipse plug-in to create, edit, and execute Object-Process Progaming models
Home Page: http://vainolo.github.com/Object-Process-Programming/
Eclipse plug-in to create, edit, and execute Object-Process Progaming models
Home Page: http://vainolo.github.com/Object-Process-Programming/
The interpreter should be able to:
Specifically created because the implementation of OPMState created duplications.
In the current implementation the font is hard-coded. This needs to be changed to dynamic loading of the font from the defaults of the workbench.
resize so that all of the label's text is inside the entity.
Currently structural links are connected to and from elements using Manhattan routers. A better way to connect them would be to create special bendpoint routers which allow the user to create new perpendicular benpoints like this:
thing1 |
---|
-------
|
/ \
---
| ---------
----------| thing2 |
---------
Solution can probably be implemented using a limited bendpoint connection router
Structural links created between things that are contained in other things are not located correctly. Create two things inside a thing and connect them with a structural thing to see this happen.
Object - Green
Process - Blue
State - Grey
Currently there is a OPMNodeEditPart and OPMNode but much functionality that should be implemented for nodes is currrently implemented only for OPMThing and OPMThingEditPart. Search where this happens and update the code.
Implement the function in OPDAnalyzer, using the OPDDAG
event links:
instrument event:
e
-----------O(
consumption event
e
----------->(
instrument condition
c
-----------O(
consumption condition
c
----------->(
direct editing is currenly implemented only for things. Must also be implemented for states and labels. Should only be implemented once...
Some of the functionality of the OPMThingEditPart can be transfered to a newly created OPMNodeEditPart so that it can be used also with the future OPMStructuralLinkAggregatorEditPart.
This shoud be done with refactoring!
Methods should return the specific type of link, since this is what they do.
Enable viewing and setting element properties in the eclipse properties sheet.
Added new decorators to event and conditional links. They may not look nice but show the idea how this should be done.
Currently the incoming and outgoing links of a structural link are created as simple OPMLink instances that use default router. Must find elegant way for them to use a manhattanrouter
Add structural link to model.
A structural link is defined using three classes: source link, structural aggregator and target link.
Source link connects one thing to the aggregator
Aggregator defines the structural link's kind.
Target link(s) connect the aggregator to at least one thing (but can be connected to many).
The execution of an OPD is defined by a DAG (direct acyclic graph) defined by the upper and lower point of the locations.
Process P1 executes before P2 if the lowest point of P1 is located above the upper point of P2.
If process P1 executes before P2 and P2 executes before P3 then P3 will only depend on P2 and not on P1.
This task should create this DAG with the minimum required links needed to fully define the execution order of an OPD.
Define when links can be added between model entities:
Three groups:
The size of a node should be calculated based on the size of its text.
There is an action that already does this, we must call it after the text of a node is edited.
Maybe also doesn't take into account inner figures.
Structural link aggregators should not change size when a resize to content action is applied on them.
Furthermore, the action should no be enabled if they are selected.
OPM lets user create nodes inside other nodes (objects inside objects, processes inside processes).
Processes can be build-in java functions of two kinds:
Partially implemented already. What was done:
Status update 30/5/2012:
When a container thing is deleted, the internal thing are deleted but not the links that start/end at the internal things. Furthermore, they are probably also referenced by this links and may cause persistency problems.
Structural links are added using an aggregator.
Be able to save the model after it has been changed.
The action should be active when there have been changes to the model. The action should be inactive if after the last save no changes have been done to the editor.
Implement a label that can be added anywhere in the model, for better visibility and documentation
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.