Results from ProjetSEG web retrieved at 20:18 (Local)

At first glance this doesn't seem to be a problem since we will be using the Command pattern (within the GEF framework). While almost all operations should support undo, this is not always the case with redo. At some point we will need to figure out what exactly can be redone.

-- Jordan Mc Manus? - 07 Feb 2005

-- Daniel Amyot - 30 Jan 2005

All except documented exceptions tested. Marking as completed.

-- Jason Kealey - 14 Jul 2005

-- Daniel Amyot - 30 Jan 2005

All except documented exceptions tested. Marking as completed. -- Jason Kealey - 14 Jul 2005

-- Daniel Amyot - 30 Jan 2005

All except documented exceptions tested. Marking as completed. -- Jason Kealey - 14 Jul 2005

This is an important feature that may impact how the model is maintained. Does EMF help here?

-- Daniel Amyot - 30 Jan 2005

When using GEF/EMF, every action performed creates a Command object. You create the Command and its inverse if you ever need to bring the model back to its original state. This command object is stored in some stack somewhere and the redo/undo functions are handled by the framework. Etienne's network editor already has this functionality. (I don't know how many commands are contained in the stack.

-- Jason Kealey - 03 Feb 2005

Will be complete when all commands have tests in JUCMNav Command Tests?. -- Jason Kealey - 06 May 2005

All except documented exceptions tested. Marking as completed. -- Jason Kealey - 14 Jul 2005

-- Asterion Daedalus? - 18 Oct 2005

-- Daniel Amyot - 15 Feb 2005

Some pointers in this presentation at slide 38.

-- Olivier Clift Noel? - 16 Feb 2005

Switched to future -- Jean Philippe Daigle? - 16 Feb 2005

Why future? Isn't this supported by GEF? Sasha Boyko seemed to imply this was easy to do. It should remain at least Mandatory (with Low priority if you want it out of the scope of your projet). -- Daniel Amyot - 17 Feb 2005

Restored to mandatory. -- Jason Kealey - 17 Feb 2005

The Zoom Manager? is the class that allows this: "A Zoom Manager? controls how zoom in and zoom out are performed. It also determines the list of choices the user sees in the drop-down Combo on the toolbar. The zoom manager controls a Scalable Figure?, which performs the actual zoom, and also a Viewport. The viewport is needed so that the scrolled location is preserved as the zoom level changes."

I haven't managed to find a concrete example of how the Scalable Figure? performs a zoom. Information on this subject seems quite limited...

-- Jordan Mc Manus? - 18 Feb 2005

Navigating the editor input If you want to implement a navigation history in your editor, you should implement INavigation Location Provider?. This provides a mechanism for the workbench to request a current navigation location (INavigation Location?) as needed to keep a navigation history. The workbench handles the mechanics of the navigation user interface. Your INavigation Location? will be notified when it needs to restore the editor to the location that it represents.

-- Jason Kealey - 30 Jan 2005

Sounds interesting. Do we need further discussion?

-- Daniel Amyot - 13 Feb 2005

Seems easy to do according to this website: http://www.eclipsefaq.org/chris/faq/html/faq214.html

-- Olivier Clift Noel? - 14 Feb 2005

  • History of different files opened: supported automatically by the framework
  • Must be able to remember multiple locations in same file: for plug-ins.
  • Completion:
    • When the navigation locations are remembered for all diagrams contained in one UCM file
-- Daniel Amyot - 30 Jan 2005 Completion:
  • When both the navigator and outline views are complete.

What if you have multiple parents? -- Jason Kealey- 30 Jan 2005

If the context is known (I reached this plug-in via a specific stub from a specific parent map), then the information can be displayed. If I go to such a plug-in map directly (through some means) without proper context, then this information will not be displayed. -- Daniel Amyot - 13 Feb 2005

-- Daniel Amyot - 30 Jan 2005

  • Our project's scope:
    • a) Limited to a textual expression that can be edited in the properties view. If present, [expression] is displayed.
    • b) Using central boolean variable repository as with UCMNav

  • Where can conditions be found?
    • Timeout path.
    • Start points
    • Waiting points
    • Or Fork
    • Am I missing any?

  • Completion:
    • Same behaviour as labels.
    • Available for: timer timeout paths, start points, waiting points, or fork.
At the very least, accuented characters in ISO Latin 1 should be supported, but ideally we should have Unicode. Maybe we can get this this for free with Eclipse...

-- Daniel Amyot - 30 Jan 2005

I just tested Etienne Tremblay's network editor and French characters seem to work fine. I pasted a chinese symbol and it showed a rectangle. Maybe there's a simple option somewhere for this.

-- Jason Kealey - 03 Feb 2005

Everything usually works with Unicode under the covers, but the display might pose issues... Latin-1 seems to work but a quick googling will reveal oriental charsets give everyone headaches:
http://www.google.com/search?hl=en&lr=&q=eclipse+chinese+characters&btnG=Search
-- Jean Philippe Daigle? - 03 Feb 2005

After further research, right-to-left language and complex script language (such as arabic, thai) might cause some problems as well. Chinese should work on Windows as long as the font used is not Arial Unicode MS (because it rotate chinese character for some reason). Asian, arabic and complex languages support on Linux might be limited because GTK doesn't have a good support.
-- Olivier Clift Noel? - 14 Feb 2005

ISO Latin1 --- implicit. -- Jason Kealey - 10 Jun 2005

In the future, start and end points will likely support input/out parameters (or at list type signatures). For instance: thestart(type1, type2). -- Daniel Amyot - 30 Jan 2005

Moved to optional for uniformity -- Jason Kealey - 17 Feb 2005

-- Daniel Amyot - 30 Jan 2005

Changed type to GUI. -- Jason Kealey - 03 Feb 2005

Implemented except font size. -- Jason Kealey - 10 Jun 2005

Comments could be displayed in a box with a folded corner (like a document icon).

-- Daniel Amyot - 15 Feb 2005

-- Jason Kealey - 10 Feb 2005

Renamed requirement, and added deletion and resizing. -- Daniel Amyot - 15 Feb 2005

Completion:

  • Can create a component
  • Can delete a component
  • Can resize a component
  • Can move a component
  • Can edit a component
    • Can change model properties in property view
    • Can change name
    • most other properties are discussed in seperate requirements. this requirement is limited to basic functionality.

Completed. -- Jason Kealey - 06 May 2005

-- Daniel Amyot - 15 Feb 2005

Using modifications in URNMeta Model version 6, can be improved, but has been implemented. -- Jason Kealey - 19 May 2005

Binding should be automatic when a component is moved into another, but explicit menus would probably be useful too (see UCMNav).

-- Daniel Amyot - 30 Jan 2005

An example in GEF of how this could be implemented:

  1. The user move a node in a container using the editor.
  2. The editor inform the editpart with a request that it wants to change the model.
  3. The right editpolicy for this particular request is called to know what to do.
  4. The editpolicy generate a command able to change the model.
  5. The command would then look for an intersection of the node new coordinate and an existing container.
  6. If the node's coordinates are IN a container, then the command would add this node as a "child" of this container.
  7. The link would be created in the model and would be used afterwards to handle moves of the parent container.
    1. A node can only be binded to one parent and a parent can have multiple children.
    2. A node can't have a circular binding. This could create big recursive problems. A circular binding would be for example a node that is binded to a parent and the parent is binded to the child. This is not allowed.
  8. The model then notify the edit part that it was changed.
  9. The editpart refresh the visual representation of the model in the editor with the changes.
  10. Next time the user try to move a container, the SetConstraint commands will KNOW that this container has child and will move those childs accordingly.

-- Etienne Tremblay - 03 Feb 2005

Completed. -- Jason Kealey - 06 May 2005

I want a confirmation from Daniel about the fact that an element's parent cannot be one of its children. We're thinking of a tree like hierarchy.

-- Jason Kealey - 03 Feb 2005

Conformed. No circular binding relationships.

-- Daniel Amyot - 13 Feb 2005

This requirement is said to be complete when:

  • can drag & drop a component inside another to bind it.
  • can select a component reference from a dropdown inside the properties view
    • must not allow circular binding relationships inside this dropdown.

See Test Bind Unbind

-- Difference with UCMNav:

  • A component should only be bound to another if 100% of its area is included inside the other one.
  • In UCMNav, this threshold used to be 50%.
  • (To be reviewed with user acceptance tests; UCM validity)

-- Jason Kealey - 29 Mar 2005

-- Daniel Amyot - 30 Jan 2005

This requirement is said to be complete when:

  • can drag & drop a component outside its parent to unbind it.
  • can select -none- a component reference from a dropdown inside the properties view
  • can choose the unbind from parent in the contextual menu after selecting it
  • can choose a component and select unbind all contained components

See Test Bind Unbind

Completed. -- Jason Kealey - 06 May 2005

Binding should be automatic when a path element is moved into a component, but explicit menus would probably be useful too (see UCMNav). -- Daniel Amyot - 30 Jan 2005

Just some behaviour checking: To draw a path in the current version, you click n times and you get n-1 blank nodes. The first click puts the starting point and end point at the same place. If you change tools, the path will be deleted. The second click moves the end point to somewhere else and creates a blank node in the middle of the line. All subsequent clicks move the end point to where you clicked and inserts a blank point in the old end point location.

All clicks inside a component bind those points to the component. IN ADDITION, if the first blank node to be created (after your second click, in the middle of the segment) happens to land inside a component, it is bound to this component EVEN IF YOU DID NOT CLICK INSIDE THE COMPONENT. -- Jason Kealey - 03 Feb 2005

I was referring more to an existing UCMNav functionality. Right-click on a component, select "Unbind Enclosed Path Elements". You can then move the component while the path elements stay where they are (because they are not bound to the component anymore). You can then select "Bind Enclosed Path Elements" if desired (to re-bind the enclosed elements). The second functionaility is what I would like to have.

What you described is the automatic binding of new path elements in a component, which is also desired. The new empty point, if created (automatically) in a component, should probably be bound to it (I think this is easier to handle than doing complex checks of what was clicked where). -- Daniel Amyot - 13 Feb 2005

Completion: See Test Bind Unbind

Completed. -- Jason Kealey - 06 May 2005

A popup menu (transformation) was used in UCMNav

-- Daniel Amyot - 30 Jan 2005

I cannot find the option. Please be more specific. I want to study its behaviour. I found it for components but not paths.

-- Jason Kealey - 03 Feb 2005

Right-click on a component, select "Unbind Enclosed Path Elements". You can then move the component while the path elements stay where they are (because they are not bound to the component anymore). You can then select "Bind Enclosed Path Elements" if desired (to re-bind the enclosed elements).

-- Daniel Amyot - 13 Feb 2005

Completion: See Test Bind Unbind

Completed. -- Jason Kealey - 06 May 2005

Ideally, adding new types and new shapes (even a user-defined bitmap) should be easy to do.

-- Daniel Amyot - 15 Feb 2005

I have no problem with container type graphics, but we'll have to talk about stickmens in more detail (paths bound to stickmen?) -- Jason Kealey - 17 Feb 2005

Completion:

  • Drop-down selection in properties view.
  • Visual aspect changes according to type.

Implemented all but actor. -- Jason Kealey - 10 Jun 2005

-- Daniel Amyot - 14 Feb 2005

I'm not very familiar with the SVG or EPS formats, but would this be a problem ? -- Jason Kealey - 15 Feb 2005

No, SVG and EPS can both embed bitmap objects. -- Daniel Amyot - 15 Feb 2005

Perfect. We could cheat our way through Req Export EPS using this feature smile -- Jason Kealey - 15 Feb 2005

Ick. This means the user has to design components along with how they connect to others. Not easy to design this to support runtime definition of components. -- Jean Philippe Daigle? - 16 Feb 2005

Actually, components react alike in terms of how they connect to each other (and to how path elements connect to them). I'm just thinking of a bitmap (in a rectangle) instead of just a plain rectangle. -- Daniel Amyot - 17 Feb 2005

Reclassified as optional instead of future for uniformity. -- Jason Kealey - 17 Feb 2005

-- Jason Kealey - 10 Feb 2005

Split into two parts (see Req Connections Async, of lower priority).

-- Daniel Amyot - 15 Feb 2005

Completion:

  • Select end point and start/wait/timer, right-click, connect
  • Drop an end point on wait/timer (start merges)
Split from Req Connections. Such interactions are called "in-passing" or "asynchronous" triggering of a start/wait/timer.

-- Daniel Amyot - 15 Feb 2005

Completion:

  • Select blank point and start/wait/timer, right-click, connect
  • Drop a blank point on start/wait/timer
  • One should be able to copy/cut in one map and paste in another.
  • One should be able to copy/cut in one map and paste in the same one.
  • Obviously, as with deletions, one should not be able to copy or cut incomplete path sequences, unless these are truncated with appropriate start/end points.
  • If easily supported, copy-paste (as bitmap?) to other applications would be interesting as well.

-- Jason Kealey - 19 May 2005

Needs more discussion. Copy/paste appears relevant to me for:

  • one or many component references (this is important)
  • a responsibility reference
  • an entire map
  • a stub (and its content)

This might be problematic for partial maps. Could perhaps be extended to copy/paste of a connected set of nodes from a given node (including everything to start points and end points). For instance, one could cut a path, copy/paste it elsewhere, and reconnect it afterwards (or delete it).

This may need to be refined into separate requirements.

-- Daniel Amyot - 20 May 2005

The current UCMNav has such an API, which is used to render UCMs in X (display), EPS, MIF, SVG, and CGM. Very useful to support new export formats. -- Daniel Amyot - 30 Jan 2005

Changed to non functional. -- Jason Kealey - 17 Feb 2005

-- Jason Kealey - 10 Feb 2005

Completed when:

  • contextual menu on empty node: add and fork
    • creates tiny path
  • contextual menu on empty node and start point: add and fork

More than too branches is required for completion, but is of lower priority. -- Jason Kealey - 19 May 2005

-- Jason Kealey - 10 Feb 2005

Completed when:

  • contextual menu on empty node: add and join
    • creates tiny incoming path
  • contextual menu on empty node and end point: add and join
Now, this one is rather simple for path elements with one input and one output (responsibility, goal tag, timestamp, etc.), but more complex when:

  • many input or outputs are used (AND/OR fork/join, connected timer/wait/start, stub...)
  • removing this element would make the UCM invalid (start or end point)
  • there are dependencies to/from other parts of the model (beware of dangling/invalid references)

-- Daniel Amyot - 15 Feb 2005

How do we handle those issues? Discuss. -- Jean Philippe Daigle? - 16 Feb 2005

Right now in UCMNav (not necessarily how we should do it for jUCMNav):

  • AND/OR fork/join
    • One cannot delete them directly. One needs to delete N-1 input path segments of an N-input join (then it becomes an empty point). Similarly, one needs to delete N-1 output path segments (branches) of an N-output fork (then it becomes an empty point).
  • Timer
    • The timeout path of a timer (if any) needs to be deleted first. If the timer is connected to an end/empty point, the connection should be deleted as well (right now, I think UCMNav crashes on such an operation...)
  • Stub
    • Cannot be deleted until there is only one input and one output path (the other path segments need to be decomposed from the stub first). Whether we should make sure a stub is empty before being deleted (no plug-in) or not is an issue.
  • Start points
    • Right now, the option is to remove the whole path. However, if there is a stub (with more than one input) a or AND/OR join on the path, then this is not allowed.
  • End points
    • Cannot be deleted, except when deleting the path.
  • Responsibilities, goal tags, timestamps, waiting places (unconnected): can be removed anytime.

-- Daniel Amyot - 17 Feb 2005

Currently: properties of a blank point. Should probably be a property of a path segment.

-- Jason Kealey - 10 Feb 2005

  • Now in the meta model as a path element, just like all nodes.

Completed when:

  • Can be inserted on a path
  • Direction is determined by the direction of the path.
-- Jason Kealey - 10 Feb 2005

"slots" are components displayed with a dotted line (this is just a Boolean attribute). Pools are containers for dynamic components (different shape).

-- Daniel Amyot - 15 Feb 2005

-- Jason Kealey - 10 Feb 2005

Required for completion of this requirement:

  • the visual representation
  • connect end points to the stub. end points must not be visible.
  • connect start points to the setub. start points must not be visible.

should be able to connect multiple paths to a stub. -- Jason Kealey - 19 May 2005

-- Jason Kealey - 10 Feb 2005

  • Already implemented basic behaviour
  • Must insure that its intended interactions are possible with other elements
  • For example: Insert other elements to replace the empty node, etc.

See Change Req Empty Point Occurence: removing third bullet.

For completion, no longer have to allow intended interactions. That is the responsibility of the new elements.

Therefore is implemented.

-- Jason Kealey - 19 May 2005

As discussed May 18th

  • Must be in palette.
  • uses responsibility's new empty boolean attribute added in the new URNMeta Model (version 6+)
  • One can convert an empty responsibility to a regular one but cannot do the opposite.
  • figure: small filled square, size of empty point.
  • empty responsibilities can reference one and only one Responsibility
  • their reference can never be changed (no dropdown selection)
  • empty responsibilities will be automatically converted to regular ones when:
    • one adds a label
    • one changes the name
    • one flips the boolean flag in the properties view
  • the boolean flag should not be visible for regular responsibilities as they cannot revert back to an empty responsibility.
  • no label appears by default because as soon as one exists, it is replaced by a regular responsibility.
  • a convert to responsibility option should appear in its contextual menu

low priority.

-- Jason Kealey - 19 May 2005

Everything that moves in the editor will be an Edit Part?. At some point we will need to sit down in front of the model and discuss what will be an Edit Part?. (This applies to many other requirments)

-- Jordan Mc Manus? - 07 Feb 2005

-- Daniel Amyot - 16 Jan 2005

Inserting a loop seems to reduce to inserting a directed path segment and two new empty points.

-- Jason Kealey - 10 Feb 2005

Loops here are explicit loops, not implicit.

-- Jason Kealey - 10 Feb 2005

Completed when:

  • contextual menu on empty node: add or fork
    • creates tiny path
  • contextual menu on empty node and start point: add or fork
  • or fork in palette
-- Jason Kealey - 10 Feb 2005

Completed when:

  • contextual menu on empty node: add or join
    • creates tiny incoming path
  • contextual menu on empty node and end point: add or join
-- Daniel Amyot - 17 Jan 2005

  • Workload is not yet in model; performance annotations.
-- Jason Kealey - 10 Feb 2005

Required for completion of this requirement:

  • the visual representation
  • connect end points to the stub. end points must not be visible.
  • connect start points to the setub. start points must not be visible.

should be able to connect multiple paths to a stub.

-- Jason Kealey - 19 May 2005

Not sure what you mean by "end points must not be visible" (there is no end point anymore). We can discuss this next week.

-- Daniel Amyot - 20 May 2005

That was old text. But it could be could to clarify the situation.

  • a) end points are connected (using connect element) to a stub pathnode. they are therefore no longer visible but remain in the model.
  • b) end points are removed and the nodeconnection nows leads directly to the stub.

-- Jason Kealey - 20 May 2005

Option b)

-- Daniel Amyot - 20 May 2005

Note: a stub has to have at least one in, one out. Can't delete the last in/out branch without deleting the stub.

-- Jason Kealey - 29 May 2005

-- Jason Kealey - 10 Feb 2005

Completion: see UCMElements Behaviour

Some behaviour still remaining.

It seems JPEG, GIF, PNG, ICO, BMP are supported in the same way. Hard to find anything related to SVG though...

-- Daniel Amyot - 13 Feb 2005

Currently this doesn't save the connection edit parts. Further research is needed to understand the mechanism that is used to display the edit parts in the editor.

I've tried this on the Network Editor? and I can get a jpeg that contains the nodes.

Code for saving an image from a Draw 2 D? figure

try {
   IFigure f = getFigure(); //The content EditPart's getFigure() method
   Image image = new Image(Display.getCurrent(), f.getSize().width, f.getSize().height);
   GC gc = new GC(image);
   SWTGraphics graphics = new SWTGraphics(gc);
   f.paint(graphics);

   FileOutputStream fos = new FileOutputStream("in.jpg"); //This will save the image directly on the c: drive
   ImageLoader loader = new ImageLoader();
   loader.data = new ImageData[] { image.getImageData() };
   loader.save(fos, SWT.IMAGE_JPEG); //Several image formats are supported, including bitmap
} catch(NullPointerException n) {
   System.out.println(n); //Probably not needed, but I was getting some errors before I got it working
} catch(IOException e) {
   System.out.println(e);
}

-- Jordan Mc Manus? - 04 Feb 2005

-- Daniel Amyot - 30 Jan 2005

When testing, must export a diagram with a very complex diagram and verify that everything appears.

Simply missing current and submaps but putting completed anyways. -- Jason Kealey - 10 Jun 2005

-- Daniel Amyot - 30 Jan 2005

Changed to Low priority. However, I have changed the status of the bitmap export to Mandatory (since this seems easier with Eclipse)

-- Daniel Amyot - 15 Feb 2005

Be careful to keep the same identifiers in the file produced.

-- Daniel Amyot - 30 Jan 2005

Usually, file association is platform-dependent. Yet, this requirement may lead to additional programming to handle the different ways file parameters are provided by the various OSes (Windows, Linus, Solaris, Mac OS). For instance, file paths may use "\" or "/". Maybe Eclipse can help...

-- Daniel Amyot - 30 Jan 2005

.jacm or .jucm? I'm not sure we can event link to eclipse as a default editor because all files must be in projects. We'll have to investigate. For file paths, in the Resource API, they use a common scheme that is mapped to the file system. At the file system level, we might have to deal differently with these but probably the Java VM will help.

-- Jason Kealey - 31 Jan 2005

.jucm

-- Jason Kealey - 31 Jan 2005

GEF can provide native drag and drop from the OS to Eclipse. GEF allows access to the operating system's underlying drag and drop infrastructure through SWT.

Using Native Drag and Drop with GEF

That do not answer the question if we can associate certain file type to eclipse with the jucmnva perspective, but it's a start... We know we can access the underlying api for such functionnalities.

-- Etienne Tremblay - 03 Feb 2005

This one is not a priority. This might be easier with a standalone app than with an Eclipse plug-in. This could perhaps be done by associating the extension with a batch file that would start Eclipse with the appropriate file or project.

-- Daniel Amyot - 13 Feb 2005

I don't think we can do it. If I open a Java file with Eclipse, it just load Eclipse and show my workspace. It doesn't open the file. Furthermore, Rational Software Architect is not associated with their file extensions. The second point in my mind is that if we use the update site approach to deploy JUCMNav, it's hard to detect the OS and, in the case of Windows change the registry, or in the case of Linux/Unix/*BSD, detect the window manager and create an association there.

-- Olivier Clift Noel? - 16 Feb 2005

Rejected -- Jason Kealey - 16 Feb 2005

http://help.eclipse.org/help30/topic/org.eclipse.platform.doc.user/reference/ref-13.htm?resultof=%22%46%69%6c%65%22%20%22%66%69%6c%65%22%20

We might end up doing it anyways smile

-- Jason Kealey - 10 Apr 2005

This file association seems to be from the Eclipse Workbench, not the OS... But i'll take whatever is offered smile

-- Daniel Amyot - 12 Apr 2005

Many of the classes in the metamodel will have attributes irrelevant for the mandatory requirements, yet it would be nice to see if all can easily be accessed in some way. -- Daniel Amyot - 29 Jan 2005

I am a bit confused about this requirement. I would like to first see a draft of the meta model to discuss what you envision. -- Jason Kealey - 03 Feb 2005

Two examples:

  • Components are associated with Devices, and a Device has several attributes (name, ID, type, description, operation time...). Now, devices do not have a visual representation (this element is used for performance annotations).
  • a Responsibility could also have performance annotations (for using resources) or information for changing the value of path variables (used by scenario definitions). Again, such attributes won't contribute to the satisfaction of the mandatory requirements

I would just want to make sure that eventually it will be easy for other people to add accesses to classes and attributes your team won't be handling (so if a generic mechanism can to this, then let's use it!). -- Daniel Amyot - 13 Feb 2005

Let's make good use of reflection or EMF's built-in mechanism. -- Jason Kealey - 14 Feb 2005

Automatique properties work for all basic types and enumerations. -- Jason Kealey - 10 Jun 2005

This would be very useful for reverse-engineered models. -- Daniel Amyot - 30 Jan 2005

Would having a scripting language take care of this? -- Jordan Mc Manus?

No. -- Jason Kealey

Started as coop job. -- Jason Kealey - 19 May 2005

Navigation capabilities of UCMNav are limited. Those in jUCMNav should provide a user experience similar to what a Web browser offers (and more...) -- Daniel Amyot - 29 Jan 2005

Since when did this go from a potential metaphor to a mandatory one? -- Jason Kealey - 31 Jan 2005

I don't like this goal. It is not precise. Back/Forward are mentionned in Req Browse History. Would this be sufficient? If so, this requirement is a duplicate. Do you mean Req Browse History plus our view that shows all maps in a file?

This makes me think about how we handle plug-ins. Currently, we discussed showing all the linked plug-ins in the outline view in the mockup. By clicking on a map hooked up to a plug-in in the outline view, this map would be loaded. However, we have completely dropped the idea of a stack of plug-in layers that was originally in UCMNav. Is this a problem? From any map, you don't know who uses it. Your requirements and our mockup doesn't make use of a "root" map either. This whole logic of how maps are structure might still be nebulous. -- Jason Kealey - 15 Feb 2005

Req Browse History goes in this direction. The current view in UCMNav is really a history, not a tree structure. Would be nice to have a tree view of maps and submaps (I don't see this in the current mockups), but I can live without it for now. -- Daniel Amyot - 15 Feb 2005

jUCMNAv should be usable with or without the GUI, and a command line interface would enable easy access to some functionalities (e.g., loading a specific file, model analysis, model exporting, model printing, model transformation, etc.) without the need to start the whole interface. Command line interfaces are also very useful when chaining tools and in batch files. -- Daniel Amyot - 29 Jan 2005

Therefore, we must try to seperate EMF and GEF as much as possible. We may have to add another layer in which our commands are self contained and not held strongly linked to GEF. Etienne Tremblay might have a better idea on how all of this should be architectured. -- Jason Kealey - 31 Jan 2005

Scenario definitions can become quite complex themselves. As the model evolve (by adding/removing start points and variables), much effort may be spent on modifying scenario definitions as well. Extending scenario definitions should minimize such maintenance issues. -- Daniel Amyot - 29 Jan 2005

We will need a quick demo to explain what you really mean here. -- Jason Kealey - 03 Feb 2005

This is not supported by UCMNav right now, so the demo will have to wait...! In essence, a scenario definition has a name (ex: ScenarioA), a description, a list of variable initializations (ex: X=T, Y=F), a list of start points (ex: S1, S2), and (optionally) a postcondition. What I would like is to be able to "inherit" the definition of a scenario to create another scenario (by adding initializations and start points). For instance, ScenarioB is ScenarioA but where Z=F, and where we add S3 to the list of start points. In a sense, ScenarioA is a prefix of ScenarioB. This can help manage long scenarios and complex groups of scenarios. -- Daniel Amyot - 13 Feb 2005

Supporting URN entirely may involve having a metamodel larger than the one just for UCMs, but with many classes unused. -- Daniel Amyot - 29 Jan 2005

Then why is it called j UCM Nav? -- Jason Kealey - 31 Jan 2005

Cooler name. -- Jason Kealey - 02 Feb 2005

I have a feeling that not complying with them may result in severe headaches... -- Jordan Mc Manus? - 07 Feb 2005

-- Daniel Amyot - 29 Jan 2005

Moving to future for uniformity. -- Jason Kealey - 17 Feb 2005

-- Daniel Amyot - 30 Jan 2005

How to Internationalize your Eclipse Plug-in

-- Etienne Tremblay - 03 Feb 2005

Seems pretty straight forward for languages like English, French, Spanish, etc. However, we need to resolves issues presented in Req Char Multi Lingual for languages requiring the use of Unicode. -- Jason Kealey - 03 Feb 2005

Strings extracted; easy to maintain. -- Jason Kealey - 10 Jun 2005

An open API would be nice for jUCMNav. But the Eclipse plug-in extension mechanisms may be sufficient? -- Daniel Amyot - 29 Jan 2005

You want an open API for doing what kind of operations exactly? Accessing/manipulating the model? Make the editor better? Your requirement ends with a question meaning we should be looking at creating extension points inside our plug-in. I think we would have to discuss this matter in order to get a feeling of what we want to do by the end of this semester. My initial view is that we will eventually have extension points in our plug-in so that we can add modular units to jUCMNav. However, by the end of the semester, our tool will be quite simple and the probable extensions seem to be to the core functionality. Maybe we should concentrate on doing the core as best as we can. The Eclipse framework and our open source licensing scheme will allow anyone to build on what we have already created. Hopefuly, these additional features will be integrated with the main jUCMNav branch. -- Jason Kealey - 03 Feb 2005

Mainly Accessing/manipulating the model, and invoking some of the commands accessible from the GUI (e.g., for exporting UCMs to EPS/GIF, for extracting scenarios and exporting them to XML, etc.). As long as extension points can be added later (even after your project, without having to include them right from the start), then I think we should be OK with to contribution towards this goal in your project. -- Daniel Amyot - 13 Feb 2005

Many software engineering tools support scripting, which is a way to enable tool tailoring as well as interworking with other tools. -- Daniel Amyot - 29 Jan 2005

I have no experience in ensuring an architecture will support scripting. Do you have any tips? Do you think this will be implicitely done because we will be using EMF and we shouldn't worry about it? -- Jason Kealey - 03 Feb 2005

I have never done it myself either. Tools like Rose, DOORS (and even Word) all have a scriptable way of accessing the commands. In fact, in DOORS, the GUI is essentially a big script program...! I guess this goal means that we should try to decouple the control part from the view part (or the commands from the GUI), to that a scripting language could be supported (and replace the GUI). -- Daniel Amyot - 13 Feb 2005

I'm pretty sure the explicit division between GEF and its model will ensure this property. -- Jason Kealey - 14 Feb 2005

-- Daniel Amyot - 30 Jan 2005

You mean that, in the future, you will be able to create and modify (basically do ANYTHING/EVERYTHING) via the keyboard? Or simply that you will want shortcut keys for common operations such as DEL for delete? -- Jason Kealey - 03 Feb 2005

Not EVERYTHING (of course, I don't want to use the keyboard to start moving points and curves around in a UCM path), but the common shortcuts should be there (save, open, print, page up/down, arrow keys, shift-click for muliple selection, DEL, etc)... essentially the main menu items. I suppose there exist Eclipse UI guidelines for this as well. -- Daniel Amyot - 13 Feb 2005

Moving to future for uniformity. -- Jason Kealey - 17 Feb 2005

One of the main usages of UCM models is for analysis and transformation based on scenario definitions. A traversal mechanism is key to features such as scenario highlight and MSC/UML/XML generation. -- Daniel Amyot - 29 Jan 2005

Make sure your model supports this. -- Jason Kealey - 03 Feb 2005

The rules of the graphical and of the metamodel need to be enforced by the various transformations done allowed by jUCMNav. This may require adding formal syntax verification in the future. -- Daniel Amyot - 29 Jan 2005

Does "in the future" mean when we will be importing UCM from the old navigator? Or will we assume that we are importing a valid UCM? -- Jordan Mc Manus? - 07 Feb 2005

We will always be dealing with valid UCMs, regardless if from old DTD or new one. -- Jason Kealey

Moving to future for uniformity. -- Jason Kealey - 17 Feb 2005

-- Daniel Amyot - 30 Jan 2005

Completion:

  • Self-descriptive.

Switched status to Implemented -- Jean Philippe Daigle? - 13 Jun 2005

-- Daniel Amyot - 29 Jan 2005

Reclassified to Future. -- Jean Philippe Daigle? - 16 Feb 2005

Restored to optional. -- Jason Kealey - 17 Feb 2005

Most likely in the Help menu...

-- Daniel Amyot - 29 Jan 2005

You don't mean online as downloaded from a website, right? -- Jason Kealey - 03 Feb 2005

No, I mean from within the application (like regular Eclipse Help) -- Daniel Amyot - 13 Feb 2005

Yes we can do this and we'll create a document skeleton, but I think detailed docs are out of scope.

Skeleton

  • Part I – Introduction
    • What is a UCM?
    • Quick tour of jUCMNav
    • Basic Elements (Path, Component, Responsibility)
  • Part II – Basic Editing
    • Binding and unbinding components
    • Adding/removing labels
    • Changing properties (name, color, etc.)
    • Using the Outline
    • Forks
  • Part III – Advanced Editing
    • More Elements (Agent, Failure Point, Goal Tag, ISR, Loop, Object, Pool, Process, Stub, Timer, Timestamp Point, Wait)
    • Creating Multiple Maps
    • Using Stubs
  • Part IV – Developer Reference
    • Javadoc

-- Olivier Clift Noel? - 18 May 2005

We can assume people will mainly have Java 1.5 by the time this tool becomes available. In any case, they can always get the JRE version. -- Daniel Amyot - 16 Jan 2005

Changed to non functional as requested. -- Jason Kealey - 17 Feb 2005

Yes, this will require it's own edit part (Everything the user interacts with needs an editpart, since it represents the controler).

Labels will have to be incorporated in the model. They will be implemented in much the same way as the other nodes will.

-- Jordan Mc Manus? - 24 Feb 2005

-- Jason Kealey - 10 Feb 2005

Completion:

  • self-descriptive
  • nice to have: edit in place policy.

Labels for the following should be automatically created. Component Ref? Resp Ref? Start End Stub Waiting Place? Timer

-- Daniel Amyot - 30 Jan 2005

That's easy to say. It's already a hard problem for plain text files; have fun doing it with your graphical notation smile

-- Jason Kealey - 03 Feb 2005

Maybe add some sort of unique ID in the different parts of the model would help do the comparison between two version of the same model? That way you can match model from the two version by their unique ID and just show the differences. New parts in a newer version would easilly be identified this way too.

We would probably have to think of a better algorithm to compare to completely different UCM for similarities/differences.

-- Etienne Tremblay - 04 Feb 2005

Importance: Future

-- Jason Kealey - 04 Feb 2005

This should be done for some elements of the metamodel only, not everything (some modifications are not significant). Not within the scope of your project!

-- Daniel Amyot - 15 Feb 2005

Type: Goals -- Jason Kealey - 17 Feb 2005

-- Daniel Amyot - 30 Jan 2005

Moved from Low to Medium. This is actually a feature of Rose we think to take advantage of in another project. This is not useless...

-- Daniel Amyot - 13 Feb 2005

Don't see a problem with this. This is done with edit policies using the SELECTION_FEEDBACK_ROLE. From the GEF documentation:

"This role is a feedback only. The Selection Tool? will send two types of requests to parts as the mouse enters and pauses over objects. Edit Policies? implementing this role may alter the Edit Part?'s view in some way, or popup hints and labels and the like."

-- Jordan Mc Manus? - 13 Feb 2005

In particular, for merging different updates to the same source model (after a comparison).

-- Daniel Amyot - 30 Jan 2005

Reclassified as optional instead of future for uniformity. -- Jason Kealey - 17 Feb 2005

-- Daniel Amyot - 30 Jan 2005

Probably would involve a new view. -- Jason Kealey - 03 Feb 2005

-- Daniel Amyot - 30 Jan 2005

This is the default mode. -- Jason Kealey - 19 May 2005

This mode proved to be quite useful for UCMNav.

-- Daniel Amyot - 30 Jan 2005

You can assume that these diagrams are from the same project if this makes things simpler. -- Daniel Amyot - 30 Jan 2005

Lengthy discussion on Prep Meeting Jan 31 and Meeting Jan 31. Breakthrough: Olivier found out what Rational did and their solution might be interesting. To be discussed. -- Jason Kealey - 03 Feb 2005

We know it's feasible, but we may be unable to. I made this requirement Low priority (if there is time...) -- Daniel Amyot - 13 Feb 2005

Implemented as a strategy of multi page editor and window, new window menu item. -- Jason Kealey - 19 May 2005

-- Daniel Amyot - 29 Jan 2005

I would like to propose this be downgrated in priority as we will use XMI at least at first. -- Jason Kealey - 03 Feb 2005

Renamed because using XMI. -- Jason Kealey - 16 Feb 2005

Our command tests also test open/save. Therefore, completed.

-- Jason Kealey - 19 May 2005

-- Daniel Amyot - 30 Jan 2005

We discussed making this optional.

-- Jason Kealey - 03 Feb 2005

-- Daniel Amyot - 30 Jan 2005

This doesn't seem to be in synch with how resources are managed in Eclipse. -- Jason Kealey - 03 Feb 2005

When I start my Eclipse, I see the most recently opened files at the bottom of the File menu. Maybe this is already done automatically? This is not a priority anyway. -- Daniel Amyot - 13 Feb 2005

Oops. My mistake. smile -- Jason Kealey - 14 Feb 2005

-- Daniel Amyot - 30 Jan 2005

Your main goal here is to be able to quickly print all diagrams in a ucm file. However, I want you to define exactly what you want here. Do you want the diagram to be resized to fit on a page, spread out on multiple pages, etc. This seems to be a lot of work and can be temporarily replaced by a mass export to JPG files which can then be batch printed. You also wanted reports. An HTML report could be generated with full sized images and it would simplify our work. Fulfilling this requirement would require a print preview page, which is of lower priority.

I would like to put this requirement outside of the scope of our project.

-- Jason Kealey - 15 Feb 2005

Ok.

-- Daniel Amyot - 15 Feb 2005

-- Daniel Amyot - 30 Jan 2005

Hmmmm. Although this sounds obvious, I doesn't look like it is in Eclipse by default. Must investigate. -- Jason Kealey - 03 Feb 2005

Please read this, in particular comments #4 and #7.

Class GC is where all of the drawing capabilities that are supported by SWT are located. Instances are used to draw on either an Image, a Control, or directly on a Display.

We will have to implement our own print preview.

-- Jordan Mc Manus? - 13 Feb 2005

OK as optional (ie: not in this project) -- Jean Philippe Daigle? - 16 Feb 2005

-- Daniel Amyot - 30 Jan 2005

You mean the page to select the printer, pages/sheet, etc or something other? -- Jason Kealey - 03 Feb 2005

Select the printer, pages/sheet, ... is what I have in mind. -- Daniel Amyot - 13 Feb 2005

Eclipse handles this for us. -- Jason Kealey - 14 Feb 2005

Printing will require the graphics export functions, so of course this too is classified 'opt'. -- Jean Philippe Daigle? - 16 Feb 2005

UCMNav contains various options that you could take into consideration. Printing to Post Script? with special comments allows the generation of indexed and hyperlinked PDF files.

-- Daniel Amyot - 30 Jan 2005

From what I understand, the printing mechanism provided in GEF only prints what is displayed. Whatever more we want, we have to do it ourselves. This means finding other plugins that have similar functionality and reuse their code.

-- Jordan Mc Manus? - 13 Feb 2005

Raw HTML or XML+XSLT could be used. -- Jason Kealey - 14 Feb 2005

-- Daniel Amyot - 29 Jan 2005

Changed to XMI (EMF). The URN DTD/Schema export is not in a lower priority requirement: Req Save Schema.

-- Daniel Amyot - 15 Feb 2005

Our command tests also test open/save. Therefore, completed.

-- Jason Kealey - 19 May 2005

-- Daniel Amyot - 29 Jan 2005

Changed to XMI (EMF). The URN DTD/Schema export is not in a lower priority requirement: Req Save Schema.

-- Daniel Amyot - 15 Feb 2005

In the current UCMNav, the Autosave is offered for 5, 10, ... minutes (could be user-defined). A different file extension is used (.uas). jUCMNav should probably reuse these ideas (e.g. .jucm.as) -- Daniel Amyot - 29 Jan 2005

If I am not mistaken, this seems to go against the Eclipse UI guidelines and it is mandatory? -- Jason Kealey - 31 Jan 2005

EG6.2: Modifications made in an editor follow an open-save-close lifecycle model. When an editor first opens, the editor contents should be unmodified (clean). If the contents are modified, the editor should communicate this change to the platform. In response, an asterisk will appear in the editor tab. The modifications should be buffered within the edit model, until such a time as the user explicitly saves them. At that point, the modifications should be committed to the model storage.
Jason is right.
-- Jean Philippe Daigle? - 31 Jan 2005

The autosave should target a different file name. Right now, UCMNav uses .uas (so a UCM document file.ucm is autosaved as file.uas). -- Daniel Amyot - 13 Feb 2005

-- Daniel Amyot - 29 Jan 2005

This would be to a different file. At the moment, UCMNav saves the last version to a .ucm.bak file (e.g., myfile.ucm.bak) -- Daniel Amyot - 13 Feb 2005

Yes, OK, but we need to investigate the standard way to do this. (There's a local history cache with backups in some cases.) -- Jean Philippe Daigle? - 16 Feb 2005

Now out of scope, priority reduced. See Prep Meeting May 25. -- Jason Kealey - 25 May 2005

I guess this is done via Ctrl-A in the Eclipse GUI standard, and probably via some Edit menu item

-- Daniel Amyot - 29 Jan 2005

This could be done in several ways I guess. UCMNav shows 4 square handles for a selected element (and 4 for each element in a selected group). Colours could be different, the selected model element in the panel view could be highlited as well, or even even used as a means to select elements, etc. To be discussed.

-- Daniel Amyot - 29 Jan 2005

The network editor already does this. -- Jason Kealey - 03 Feb 2005

-- Daniel Amyot - 29 Jan 2005

network editor already does this. -- Jason Kealey - 03 Feb 2005

Just a little question... Right now when you select multiple object in network editor with the marquee tool, you have to enclose COMPLETELY the figures you want to select or they're not selected. Do we let this like that or select a figure even if it's not completely surrounded by the marquee tool?

-- Etienne Tremblay - 04 Feb 2005

I like it this way. Daniel? -- Jason Kealey - 04 Feb 2005

Some of the elements may be undeletable at some point, so this should be checked first.

-- Daniel Amyot - 29 Jan 2005

All changes to the model are made via commands, including deleting. The information needed to undo a delete would be stored in the delete command and could be undone after. The problem I see here is when you select a group of element and press the delete key. Delete commands are generated for each selected element and the commands are executed. But I don't know if we have a way to know the order of the deletes and if it could impacts the relations in our model.

I don't think it could really cause problems, but should be tested a lot since EMF always make sure the integrety of it's links are maintained and I read in an article to be more carefull in this situation.

-- Etienne Tremblay - 04 Feb 2005

As discussed, our support of deletion will be fairly limited because the order of deletion has to be known and it is hard to do without proper graph navigation, attained when scenarios are implemented.

This may require a combination of keyboard and mouse click (UCMNav uses Ctrl-left-button).

-- Daniel Amyot - 29 Jan 2005

This could be done by clicking on some empty location in the work area or by pressing the 'Esc' key, as in UCMNav. -- Daniel Amyot - 29 Jan 2005
This is done with shift-click on a selected element in UCMNav. -- Daniel Amyot - 29 Jan 2005
-- Daniel Amyot - 30 Jan 2005

This is too general to actually have an idea of what you exactly want. hide all views or completely hide every window except the editor? if only the editor remains, the navigation must be integrated with the editor...

-- Jason Kealey - 03 Feb 2005

If you double click on the top of an editor tab, all view are hidden and only the editor remain visible... But the menus at the top are still visible.

-- Etienne Tremblay - 04 Feb 2005

Ideally, this would be like a Power Point? presentation where the navigation could be done with the mouse or keyboard. As for the edition, having transofmration-based pop-up menus instead of relying solely on drag-and-drop tools could help.

-- Daniel Amyot - 13 Feb 2005

RE: Etienne Tremblay >> If you double click on the top of an editor tab, all view are hidden and only the editor remain visible... But the menus at the top are still visible.

That's the right way to do it. True full-screen (by hiding common Eclipse Workspace elements) really breaks workbench interaction standards. I, for one, don't want to allow this. (why is it approved??)

-- Jean Philippe Daigle? - 13 Feb 2005

Ok.

-- Daniel Amyot - 15 Feb 2005

Number of topics: 119
Topic revision: r1 - 16 Jan 2005 - 17:23:18 - Daniel Amyot
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback