Giter Site home page Giter Site logo

vainolo / object-process-programming Goto Github PK

View Code? Open in Web Editor NEW
15.0 15.0 13.0 60.76 MB

Eclipse plug-in to create, edit, and execute Object-Process Progaming models

Home Page: http://vainolo.github.com/Object-Process-Programming/

Java 100.00%

object-process-programming's People

Contributors

vainolo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

object-process-programming's Issues

Add "type" attibute to objects

  1. Not mandatory (complex object can are defined by the model an not by their types).
  2. The name of the attribute is added to the name of the object "<object_name>:<type_name>"
  3. Currently available types: Number, String
  4. Types are currently added using a string.

Automatic Resize of Primitive Nodes

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.

Add grid functionality

  • Added new actions to the graphical editor and to the action bar/tool bar.
  • Implemented edit policies in OPD and Thing and adapters for snapping.

Let the user create more bendpoints for structural links

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

Add structural link to editor

Structural links are added using an aggregator.

  1. the first structural link of each kind that is added to a thing creates a new aggregator.
  2. when the source thing is deleted all aggregators that are connected to it must be deleted.
  3. when the aggregator is deleted all links are deleted.
  4. links use manhattan router.
  5. when a new structural link is added we have to check if there is already an aggregator of its kind and use it.

Fix Strucutral Links for Internal Nodes

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 OPM Event and Condition Link in Diagram

Partially implemented already. What was done:

  1. changed the model
  2. added new links to the diagram using special decorators, but they look ugly. So will re-implement using the endpoint decorator of the link.

Status update 30/5/2012:

  • Added new link types to the editor, but the new implementation of the decorators is still lacking. Added task to implement new decorators for these links
  • During the implementation I too the time to create icons in the palette for all editor operations. Looks nicer.
  • Changed the default font of the diagram to match (my) java code font. Added new task so that the font is loaded from the current workbench definition.

Add procedural links to the model

  • Add a new class OPMProceduralLink that exends OPMLink and contains an OPMProceduralLinkKind
  • OPMProceduralLinkKind can be AGENT, INSTRUMENT, CONS_RES (Consumption/Result) and EFFECT

Add structural link to model

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).

Interconectivity with Java

Processes can be build-in java functions of two kinds:

  1. static functions: no need of a special "this" reference
  2. object functions: need to add reference to "this"
    the "new" operator is a static function.

Add decorators to links

  1. decorator to structural links for number of possible instances: min,max
  2. decorator for procedural links: argument name

Creation of OPD DAG for execution

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.

Create initial Interpreter

The interpreter should be able to:

  1. Read input from the user using a dialog box containing a single field where the user can insert numbers and strings.
  2. Basic add, delete and input from user operations.
  3. Handling of instrument, information-transfer links.
  4. single diagram execution.
    The interpreter will not handle at this stage:
  5. Structural Links.
  6. Multi-diagram execution.

Add procedural links to editor

  • Each procedural link is created with a different tool.
  • The factory used by the tool is the place where the kind of the link is set.
  • A procedural link acts just like a regular link therefore the existing functionality should work, must check code that uses OPMLink to verify this

Enable Save Action

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.

Create OPMNodeEditPart

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.