Bug 67062 - Hypergraphic and hierarchy links
Summary: Hypergraphic and hierarchy links
Status: REOPENED
Alias: None
Product: umbrello
Classification: Applications
Component: general (show other bugs)
Version: 1.1.1
Platform: Unlisted Binaries Linux
: NOR wishlist
Target Milestone: ---
Assignee: Umbrello Development Group
URL:
Keywords:
: 66998 93642 105022 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-11-02 17:38 UTC by Eugine V. Kosenko
Modified: 2014-07-08 05:29 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.9.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eugine V. Kosenko 2003-11-02 17:38:41 UTC
Version:           1.1.1 (using KDE KDE 3.1.2)
Installed from:    Unspecified Linux
OS:          Linux

It's a cool and difficult feature, but it is often used. For example, each use case may be associated with an activity diagram, and the use case diagram may be used as a 'contents' drawing to find appropriate activities.

Apart from this, activities may be involved one by other, making a hierarchy. Using the hypergraphics navigation we may go to lower or higher level of details.

I ordinally use the feature in MS Visio, and it is very useful there. Another example is Tgif open-source product, where widgets may be considered as hypergraphic links.
Comment 1 Jonathan Riddell 2004-11-21 15:20:23 UTC
*** Bug 93642 has been marked as a duplicate of this bug. ***
Comment 2 Oliver Kellogg 2004-12-27 19:13:19 UTC
CVS commit by okellogg: 

First simple implementation of hyperlinks only works in the non tabbed
diagram configuration.  Diagrams can be dragged from the list view to
note widgets on the drawing area. Double clicking on the _rim_ of the
note will switch to the hyperlinked diagram. Note that currently, it is
essential to drag to and double-click at the _rim_ of the note, not in
the edit area (the edit area has its own keybindings and drag/drop.)
BUG:67062


  M +1 -1      ChangeLog   1.51
  M +0 -2      umbrello/listpopupmenu.cpp   1.60
  M +37 -6     umbrello/notewidget.cpp   1.33
  M +11 -9     umbrello/notewidget.h   1.20
  M +16 -20    umbrello/umllistview.cpp   1.136
  M +14 -45    umbrello/umlview.cpp   1.199
  M +0 -5      umbrello/umlview.h   1.67
  M +0 -4      umbrello/dialogs/assocgenpage.cpp   1.15
  M +0 -2      umbrello/dialogs/classgenpage.cpp   1.29



Comment 3 Oliver Kellogg 2007-06-19 22:41:57 UTC
*** Bug 105022 has been marked as a duplicate of this bug. ***
Comment 4 Oliver Kellogg 2012-06-30 17:51:27 UTC
*** Bug 66998 has been marked as a duplicate of this bug. ***
Comment 5 Ralf Habacker 2013-11-06 17:16:42 UTC
apply fixed bug from 4.9.0 changelog
Comment 6 Oliver Kellogg 2014-06-27 18:45:19 UTC
(In reply to comment #2)
> First simple implementation of hyperlinks only works in the non tabbed
> diagram configuration.  Diagrams can be dragged from the list view to
> note widgets on the drawing area. [...]

This does not work anymore.
The problem is that the switchover new diagram is already done on left butteon press in the tree view. This means that it is not possible to drag/drop a _different_ diagram onto a note in the currently selected diagram.
Proposed fix:  Do the switchover to a new diagram on mouse button _release_ not on _press_.
Then, the release event could occur elsewhere than in the tree view; for example, on a note widget in the diagram area.
Comment 7 Oliver Kellogg 2014-07-08 05:29:38 UTC
Git commit 1258d81ab14cab51b85b8a5b96ef92eb484b1265 by Oliver Kellogg.
Committed on 08/07/2014 at 05:28.
Pushed by okellogg into branch 'master'.

(In reply to comment #6)
> [...]
> Proposed fix: Do the switchover to a new diagram on mouse button _release_
> not on _press_.
> Then, the release event could occur elsewhere than in the tree view; for
> example, on a note widget in the diagram area.

This would create behaviour that is not in line with the rest of Umbrello.
Rather than changing the press/release semantics, here is an implementation
for Copy from UMLListview and Paste onto NoteWidget in diagram:

umbrello/widgets/notewidget.h
- Add static NoteWidget *s_pCurrentNote.
  Putting this here instead of in UMLApp to reduce coupling.

umbrello/clipboard/umldragdata.cpp
- In function decodeClip2(), call UMLDragData::decodeObjects() only if
  NoteWidget::s_pCurrentNote is NULL.
- In function decodeViews() while-loop, if NoteWidget::s_pCurrentNote is non
  NULL then extract attribute "xmi.id" from diagramElement and call
  NoteWidget::s_pCurrentNote->setDiagramLink() with the extracted ID.

umbrello/clipboard/umlclipboard.cpp function pasteClip2()
- After call to UMLDragData::decodeClip2(), if NoteWidget::s_pCurrentNote is
  non NULL then reset it to NULL instead of adding the views to the UMLDoc.

umbrello/listpopupmenu.cpp
- In ctor ListPopupMenu(QWidget*,WidgetBase*,bool,WidgetBase::WidgetType),
  if object is a Note and UMLListView::startedCopy() is true then assign
  object to NoteWidget::s_pCurrentNote and setActionEnabled(mt_Paste, true).

umbrello/widgets/notewidget.cpp
- In function setDiagramLink() add missing final call to update() for
  display of new text.

M  +9    -3    umbrello/clipboard/umlclipboard.cpp
M  +15   -2    umbrello/clipboard/umldragdata.cpp
M  +10   -1    umbrello/listpopupmenu.cpp
M  +4    -5    umbrello/widgets/notewidget.cpp
M  +2    -0    umbrello/widgets/notewidget.h

http://commits.kde.org/umbrello/1258d81ab14cab51b85b8a5b96ef92eb484b1265