gzz-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz] MM bundle


From: Asko Soukka
Subject: [Gzz] MM bundle
Date: Tue, 1 Jul 2003 10:38:01 +0300 (EEST)

Hi,

If somebody hasn't read these yet (fenfire/docs/dartboard/). I'm now three 
days totally unavailable, but when I come back I would be eager to get 
some feedback / read discussion about these.

Hmm... I seem to forgot to write about "special canvases". Canvases / 
papers, which would have special background pattern on top of the 
normal texture. Mudyc has already done that calendar paper. Some patters 
relevant for note taking could be bases fo "mandala" and "vee diagram". I 
reallys should scan some examples of those...

======================
MindMapping on Fenfire
======================

$Id: idea.rst,v 1.1 2003/06/27 10:48:39 humppake Exp $

Structure
=========

- data nodes (may contain arbitrary amount of multiline text or an image)
- paper nodes (identifies paper canvases with unique textures)

Naming connections and storing coordinates needs something
extra... Could connection names and placing coordinates be added
afterwards by reificating connection/statement (*"A is linked to B"*
or *"A is placed on B"*)?

2D structure view
=================

- shows vanishing focus+context network of the plain structure
- if reified statements are used, they should be abstracted
- data nodes are represented by multiline vobs
- paper nodes are represented by vobs with their papers' unique background
- connections between vobs are filleted (`named connections`_?)
- if direction of the connection matters, form of fillet could show the 
direction
- non-connected data nodes could be entered into `floating buffer`_
- some special key / button / action for creating connected / 
non-connected paper node,
  maybe also some `special papers`_ are supported
- nodes from buffer could be connected to accursed node
- nodes could be marked into `marked node list`_
- nodes from marked node list could be linked to accursed node
- when accursed data node is placed on any paper, teared part of that 
paper
  (focused to accursed node) is floating as a buoy
- when a paper node is accursed, teared part of its 2D paper canvas
  (focused to accursed node) is floating as a buoy
- 2D canvas buoys are shown as distorted_
- besides keybindings, mouse / pen could be used with `RMB action switch`_ 
method

.. _`named connections`: 
../naming_filleted_connections--humppake/idea.gen.html
.. _`floating buffer`: ../floating_buffer--humppake/idea.gen.html
.. _`marked node list`: ../marked_node_list--humppake/idea.gen.html
.. _`RMB action switch`: ../rmb_action_switch--humppake/idea.gen.html
.. _distorted: ../distorting_2d_canvas--humppake/idea.gen.html
.. _`special papers`: ../special_canvases--humppake/idea.gen.html

- adding new nodes, removing old nodes, marking nodes, creating 
connections between nodes etc...

2D paper canvas view
====================

- every 2D paper canvas has representative paper node in the structure
- on single 2D paper canvas is shown only data nodes that are connected
  to its representative paper node in the structure
- data nodes are shown as multiline vobs
- connections within the nodes shown on paper canvas are shown as
  filleted connections on canvas (`named connections`_?)
- if direction of the connection matters, form of fillet could show the 
direction
- connections to nodes that are not on canvas are shown as connections
  to buoys
  
  + buoys can be teared parts of other papers (shown as distorted_),
    focused to target node
  + one buoy for every paper where target node is placed on
  + if target node is not placed on any paper a focused and vanishing 
    `2D structure view is shown as buoy`_

- nodes from floating buffer can be dragged & dropped onto canvas
- nodes from marked node list can be dragged & dropped onto canvas
- when a single data node is accursed, a 2D structured view focused
  to that node is shown as a buoy
- like canvas can be zoomed, it can also be distorted_ to see the big 
picture

- adding new nodes: nodes added to canvas will be connected to 
representing
  paper node on the structure
- removing old nodes: node will be removed from the structure only if it 
has
  no connections to any other node but the paper node representing
  active canvas
- moving nodes on canvas
- creating and removing connection between nodes on canvas

.. _`2D structure view is shown as buoy`: 
../views_as_buoys--humppake/idea.gen.html

Transition between views is done via buoys.

Special keybinding to hide buoys (and floating buffer, and marked node
list), but only as long as the key is pressed.

Topic map
=========

.. UML:: mindmap_topicmap
   :menu: 0

   page (distorted) "Distorting 2D canvas"
        link
                ../distorting_2d_canvas--humppake/idea.gen.html
   page (buffer) "Floating buffer"
        link
                ../floating_buffer--humppake/idea.gen.html
   page (nodelist) "Marked node list"
        link
                ../marked_node_list--humppake/idea.gen.html
   page (named) "Naming filleted connections"
        link
                ../naming_filleted_connections--humppake/idea.gen.html
   page (rmb) "RMB action switch"
        link
                ../rmb_action_switch--humppake/idea.gen.html
   page (buoys) "Views as buoys"
        link
                ../views_as_buoys--humppake/idea.gen.html
  
   page MindMap
        link
                idea.gen.html
        use distorted
        use buffer
        use nodelist
        use named
        use rmb
        use buoys

   ---
   horizontally(25, hor_a, buoys, distorted, named);
   horizontally(25, hor_b, nodelist, MindMap, buffer);
   vertically(25, vert, distorted, MindMap, rmb);

==============================
New nodes onto floating buffer
==============================

$Id: idea.rst,v 1.3 2003/06/30 11:27:59 humppake Exp $

When writing notes, it would be useful to first enter the data and
then (reprocess and) connect it to an existing structure.

Mudyc developed a nice solution demo for this. 

 1. press 'tab' to 'lost the focus'
 2. enter the data and a new node is created

    Note: entering multi-line content should be allowed

 3. press 'tab' to enter a new node
 4. previously entered node remains non-connected and
    floats on view's nadir
 
Later the floating nodes can be connected to structure using mouse
(keybindings should be possible, but mouse would be the most natural
way).

In mudyc's demo connections were created in special mode with only
mouse (using `rmb_action_switch`__). Of course something like CTRL +
mouse could also be considered.

.. _rmb: ../rmb_action_switch--humppake/idea.gen.html
__ rmb_

.. image:: floating-example-2.png

.. image:: floating-example-1.png


Discussion
==========

Would it be a problem that nodes would float among buoys?

==============
Views as buoys
==============

$Id: idea.rst,v 1.1 2003/06/27 10:48:39 humppake Exp $

As long as there are need for only a few number of different views,
those views could be accessible using mouse, if they were presented as
buoys.

Idea of Fenfire's MindMap applitude is a good example:

 - when on 2D structure view, there would be one 2D canvas buoy for every 
   paper, where accursed node is placed

 - when on 2D canvas view, there would be one buoy with 2D structure view

Transition between views happens, of course, when a buoy is clicked.

===========================
Naming filleted connections
===========================

$Id: idea.rst,v 1.1 2003/06/27 10:48:39 humppake Exp $

In RDF every connection has a property and in concept map every
connection should have a name. Normally in RDF properties are only to
help computer to interpret connection. But if we want to edit plain
RDF or use RDF to represent concept map, all properties should be shown
and editable.

As fillet technology is currently advancing fast, in filleted
connections the fillet itself could be natural place for the
connection property/name.

.. image:: sketch.png

The property/name could also be changed by clicking the old name or
the fillet.

=====================
List for marked nodes
=====================

$Id: idea.rst,v 1.1 2003/06/27 10:48:39 humppake Exp $

To allow connecting faraway nodes which cannot be shown on the same
focus+context view, we need to allow marking of those nodes.

Benja had already developed a list for marked nodes into GZZ client,
but after abandoning GZZ this feature was kind of lost. Of course,
this will be a feature of full working Loom, but this would also be
useful in Fenfire's MindMap (later MM) applitude.

.. image:: gzz-marked-node-list.png

MM has a 2D structure view, where marked node list could work as it
worked in GZZ: marked nodes can be connected to accursed node.

In MM nodes created in 2D structure view must also be able to place 
on 2D canvases. When on 2D canvas view, marked nodes in list should
be able to drag & drop onto canvas.

New features:

- nodes can be dragged & dropped onto 2D canvas

  + in MM this will cause a connection between marked node and paper node
    representing that canvas, also dropping coordinates are added into
    connection


==================================
Distortion attribute for 2D canvas
==================================

$Id: idea.rst,v 1.1 2003/06/27 10:48:39 humppake Exp $

How should 2D canvases be distorted?

Since generally distortable/diceable vob architecture is still *under
development* for some time, FishEye transformation wouldn't work with
vobs.

One solution could be that we won't even try to distort single vobs,
but only their relative sizes and distances. The focused vob would be
in it's original size, but step by step vobs would be drawn smaller
and closer each other. This distortation way is a bit familiar from
vanishing views in GZZ.

.. image:: distortion-example.png

Distorted 2D canvases could be useful i.e. in buoys.

Discussion
==========

As this distortation wouldn't be continuous, could background be
distorted at all?

==============================
RightMouseButton action switch
==============================

$Id: idea.rst,v 1.1 2003/06/27 10:48:39 humppake Exp $

In Sierra's SCUMM interfaces user first selected an action from a
action command list and then pointed some item for the selected
action. As the next step the actiom command list was hidden behind
right mouse button and selected action was shown as more or less
descriptive mouse cursor.

 1. user pressed RMB -> mouse cursor changed to the next action
 2. user repeats 1. until mouse cursor
    shows the correct action
 4. user points the item for action

Discussion
==========

Can we create efficiently (and how platform independently) our own
descriptive mouse cursors?

If we remain using only available default mouse cursors, what would be
a extra cue good enough with them? I.e. showing name of the selected
action in some corner?

-- 
Asko Soukka <address@hidden>
<http://www.iki.fi/asko.soukka/>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]