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/
Methods should return the specific type of link, since this is what they do.
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
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.
Processes can be build-in java functions of two kinds:
Define when links can be added between model entities:
OPM lets user create nodes inside other nodes (objects inside objects, processes inside processes).
Enable viewing and setting element properties in the eclipse properties sheet.
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.
Implement the function in OPDAnalyzer, using the OPDDAG
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.
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.
Added new decorators to event and conditional links. They may not look nice but show the idea how this should be done.
Maybe also doesn't take into account inner figures.
event links:
instrument event:
e
-----------O(
consumption event
e
----------->(
instrument condition
c
-----------O(
consumption condition
c
----------->(
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!
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
Three groups:
The interpreter should be able to:
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.
Object - Green
Process - Blue
State - Grey
Implement a label that can be added anywhere in the model, for better visibility and documentation
Specifically created because the implementation of OPMState created duplications.
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.
direct editing is currenly implemented only for things. Must also be implemented for states and labels. Should only be implemented once...
Partially implemented already. What was done:
Status update 30/5/2012:
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).
resize so that all of the label's text is inside the entity.
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.
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.
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.