google-code-export / umple

Automatically exported from code.google.com/p/umple
1 stars 0 forks source link

Implement UIGU again properly - User interface Generator for Umple in PHP as a teaching tool #637

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
We have twice tried to generate form-based user interfaces for Umple. It 
sort-of works. This issue is to get someone to push this through to a final 
interface. More detailed history below, but first, here is what is needed:

The UIGU3 generator should generate the following in PhP, adding *in addition* 
to what the existing PhP generator already generates.

For each class:
  -  that pane appears and allows creation of an instance of the class and editing of an existing instance.
  - For attributes
     - Strings would allow arbitrary input
     - Times and dates would pop up time and date pickers
     - Integer, Float attributes would be constrained to be numbers with javascript generated by the php
     - Boolean attributes would generate radio buttons
     - Enums (state machines with no events) would generate checkboxes
     - State machines would generate buttons to trigger events (and execute the relevant code)
     - Etc
  - For associations: 
     - The ability to hook up links would be provided: Select from existing objects at the other end, or create a new instance (recursively if needed) of the object at the other end.
  - Instances of the current class would be listed as a table at the bottom of the pane for that table.
  - Singleton, immutable, multiplicity and so on would all be respected.
  - The form would look nice with nice labels.

At the top of each page would be links to create new instances of all classes 
that can be created without reference to other classes (i.e. no *-1) 
associations in them.

The user could trigger generation of a user interface in UmpleOnline. This 
would bring up and empty first page, except with the listing of classes that 
can be instantiated. The user could click on one to pick a class and create an 
instance. The instance would be stored in memory ideally with no need for a 
server. However there might be an ability to dump the entire object construct 
hierarchy in Json so it could be loaded again. There would therefore need to be 
a load button.

The idea is to demonstrate the consequences of a design.

Ideally the whole think would be as lightweight as possible, without the need 
for server interaction, or with minimal server interaction. RESTFULness would 
be desirable, or just a single page that shows and hides relevant parts as 
needed.

History:

The original UIGU was done by Julian Solano. It generated heavyweight Java/JFX, 
but it was too heavyweight and buggy and was not maintained. This was later 
modified, but it still required a lot of heavyweight server work. A rewrite 
attempt to generate PhP was started, but never completed as the student went on 
to other things, and never committed complete code. Starting again is suggested.

Original issue reported on code.google.com by TimothyCLethbridge on 21 Sep 2014 at 2:36