Back | Home | Up | Next

Directory Browser



Core UML
Tiger Server
DNA Declarations
Physiology RO
Real Time RO
ANNA as an Eco System RO
HMM Generator


#K+{bmc logo.bmp}

Revision History



Nov. 2, 04

Alexander Mihail

Started the document

Nov. 7, 04

Alexander Mihail

Major sections: Browser, Tree, Toolbar, Status bar. Skeleton. and document formats.

Nov. 10, 04

Alexander Mihail

Added the toolbar description


Alexander Mihail

Explained the role of the browser. Described the object flags.

Table of Contents

 TOC \o "1-3" \h \z 1      Fax Active Directory (FAD) Browser PAGEREF _Toc88924004 \h 2

1.1       The responsibility of the FAD Browser PAGEREF _Toc88924005 \h 3

1.2       The Browser as the generic object editor PAGEREF _Toc88924006 \h 3

1.3       Object links. PAGEREF _Toc88924007 \h 3

1.4       Local and remote FAD objects. PAGEREF _Toc88924008 \h 3

1.5       The browser's interaction with a type editor PAGEREF _Toc88924009 \h 4

1.6       The browser's object locator PAGEREF _Toc88924010 \h 4

1.7       Sub components of the browser PAGEREF _Toc88924011 \h 4

2      FAD tree viewer PAGEREF _Toc88924012 \h 5

3      The toolbar PAGEREF _Toc88924013 \h 6

3.1       Root PAGEREF _Toc88924014 \h 6

3.2       Order PAGEREF _Toc88924015 \h 6

3.3       Insert PAGEREF _Toc88924016 \h 6

3.4       Delete. PAGEREF _Toc88924017 \h 6

3.5       Rename. PAGEREF _Toc88924018 \h 6

4      The status bar PAGEREF _Toc88924019 \h 7

5      Flags. PAGEREF _Toc88924020 \h 8

5.1       (R) Readable. PAGEREF _Toc88924021 \h 8

5.2       (W) Write-able. PAGEREF _Toc88924022 \h 8

5.3       (Pr) Protected. PAGEREF _Toc88924023 \h 8

5.4       (Sh) Shared. PAGEREF _Toc88924024 \h 8

5.5       (M) Moveable. PAGEREF _Toc88924025 \h 8

5.6       (Ins) Insert-able. PAGEREF _Toc88924026 \h 8

5.7       (Tr) Traversable. PAGEREF _Toc88924027 \h 9


Go to First topic FAD Browser

(manual page break)
#K +{bmc logo.bmp}

Fax Active Directory (FAD) Browser 


The Fax Active Directory (FAD) is the foundation of our fax system. Please see Fax CoreFax Core for details on what FAD is, and its architecture. In simple terms, the FAD is an arborescence of fax related objects, which allows navigation (browsing), configuring and execution of its individual objects.


The FAD viewer/browser is the tool to manage fax objects.

Please follow the >> button for details.


See also  Fax System Fax_System, Fax Type Library Fax Type Library , Fax Core Fax Core

The responsibility of the FAD Browser

  1. Descend onto the arborescence by expanding FAD objects to their sub-nodes.
  2. Select any object
  3. Edit objects in their most general terms, which are the Name and Flags of each object.
  4. Show the current status of the currently selected object in the browser's status bar.
  5. Allow the insertion of new objects within the selected node.
  6. Order the tree lexicographically
  7. Delete the selected object and all its sub-nodes.
  8. Move objects from one branch of the tree to another, and move entire branches.
  9. Open a more specialized object for each object depending on that object's type.
  10. Associate an object with another to create links.
  11. Auto-locate objects in the tree


The reader is already familiar with the workings of a File Manager/Explorer, and would not be surprised by nay of these duties of the browser. It's what browsers do.

The Browser as the generic object editor

All object types share some common aspects: Name, Flags, Status, and Dirty. The browser allows an object to be renamed using the tree's in-place label editor. The flags can be edited in the flags bar. The status is a synthetic field of an object, and can only be displayed. The status line is the second panel of the status-bar. The browser doesn't modify the Dirty state of an object and only uses it for the look of a tree label.

Renaming an object is disabled for read-only objects, the flags cannot be altered for protected objects that do not belong to the current user's tree of containment.

Object links

An element of novelty, perhaps, is the FAD Browser's alternative behavior to moving objects, which is to create links between the dragged objects and the drop target. This mode is available during drag-and-drop while pressing the ALT key. Object links are displayed in italic and they represent a loose coupling relationship between the source of the link and the target of the link. The target object seems to have this source as a sub-object. One can browse the link as any sub-node, while in fact browsing the original. In the screenshot above, amongst the sub-objects of fax document Fax2_041120_201555 we find references to Address Book Extension and to John Doe, both of which are contained elsewhere in the FAD, and only included here for use.


A source object shares itself to other objects. Other objects include the object source by reference. The inclusion doesn't copy the source object. Consequently, the targets of a shared object will receive updates from the source, and always see the latest contents of the included object.

Local and remote FAD objects

The FAD network is distributed amongst computers. To distinguish local objects from remote a color scheme of black=local and blue=remote is used in the tree view. There are numerous issues involved with browsing across machine boundaries most of them pertaining to the domain of networking protocols and file-systems. The FAD is both a file system and a networking protocol. The FAD allows entire structures to be moved from one machine to another while preserving the reference links between objects, which is a highly sophisticated issue that we had to resolve. All the reader needs to know here is that the FAD browser will manage the all the cross-links between the user's local machine and remote ones, and vice versa. Please note that object may only be moved when they are flagged as such. Also, objects that are flagged as non-insert-able cannot be drop targets in move operations. They may, however, be linked to source objects with the appropriate concourse of the object's type editor, under program control.

The browser's interaction with a type editor

Each FAD object has a type. The object's type provides an editor for the object. The fax system groups all these type editors into the Fax Type LibraryFax Type Library . Double clicking on a tree node would open that object's type editor. The GUI docking frame opens the object's editor on the right hand side panel next to the FAD browser. The object's label will change to mark it as having been opened for editing. If the editor for the object is already open, then the FAD will locate and activate that editor, as others may have obscured it. The user may now drag FAD nodes from the browser and drop them over the editor to quickly create reference links. The browser and the editor work mostly decoupled so the user is free to browse any branch of the tree while editing one object. The browser acts on the editor when opening and closing the editor, when dropping nodes over the editor, or when focusing a tree node that is already in an editor. The editor interacts with the browser on special occasions such as performing a login/logout sequence and that requires a certain tree branch to be expanded or collapsed.

The browser's object locator

The browser may be asked to locate a given object in the tree and expand the quickest path to it. This mechanism is used in the fax system to bring-up the news from a server to a user. An example of auto location is an incoming fax file in a server's queue that pops up on a user's remote user interface. The auto-locator works in conjunction with a server's path builder logic and can expand trees of up to 32 levels deep.

Sub components of the browser

The browser is made out of: Fax Tree View FAD Tree Viewer, Tool bar Toolbar. and Status bar StatusBar

(manual page break)
#K +{bmc logo.bmp}


FAD tree viewer

Shows and browses the arborescence of the Fax Active Directory.


The attributes of an object in the FAD browser may be one or combinations of the following:


1.      Normal

2.      Modified (bold label)

3.      Remote    (blue label)

4.      Link         (Italic label)

5.      Editing      (Underline label)



                           Simple black label represents a local node

                    Italic black label represents a link to a local node

                          Normal blue label represents a reference to a remote node

                 Italic blue label represents a link to a remote node

             Underline label is for nodes that have open editors attached

        Bold label represents a modified node that needs viewing.


Go to FAD BrowserFAD Browser

(manual page break)
#K +{bmc logo.bmp}

The toolbar

Groups the tightest possible set of options needed and sufficient to edit the tree.

Buttons and related menu options are described next

(manual page break)
#K +{bmc logo.bmp}


When a branch is selected in the tree browser, clicking this button will set the branch as the new root of the browser. The tree will then fill with the sub-nodes of the branch. If no object is selected, clicking this tool would set the browser's root to the FAD's absolute beginning, which is always the Servers node.

(manual page break)
#K +{bmc logo.bmp}


Before pressing this button the FAD tree is organized naturally. Natural ordering is the order in which the objects were created. Pressing this button would sort the tree based on lexicographic order of tree node labels. The tool is useful in sorting the fax documents in an ascending date and time order given the file-naming scheme purposely chosen in this sense.

(manual page break)
#K +{bmc logo.bmp}


Only objects flagged Flags as insert-able have this button enabled. The drop-down menu is automatically rebuilt on tree selection changes to reflect the insertion capabilities of each type of FAD node. This context-sensitive menu helps to maintain the sanity of a FAD tree. One can still move objects any type of other object into this one with drag and drop. The user does this at his own risk, however. The administrator would prevent any critical FAD branches from such insertion flagging the objects as not insert-able.

(manual page break)
#K +{bmc logo.bmp}


Only write-able Flags objects may be deleted. Deleting an object automatically closes any local editors. If an object is edited remotely, then the inter server transport protocol will cancel the delete operation. Deleting certain complex objects may have extensive side effects. Deleting a user, for instance would log that user out and destroy all the associated file persistence. Selecting a server, would destroy all the users of that server which in turn involves a sequence of logouts, etc. Sensitive objects should not be write-able. An administrator who needs to edit something should remember to put the read-only flagFlags back on right after. Deleting an object also deletes all references that other objects have to this source.

(manual page break)
#K +{bmc logo.bmp}


Renaming an object is done with the in-place label editor of the tree viewer. Entering this label editing mode is done with two subsequent mouse clicks further apart than the double-click delay. The option is available in the system's menu. Only write-able Flags objects may be renamed. Renaming a source object also propagates to all other objects that include it by reference.


Go to FAD BrowserFAD Browser

(manual page break)
#K +{bmc logo.bmp}

The status bar


The first panel shows the status of the local server. For a server that isn't loaded much the message would mostly say Paused and only occasionally turn to Evaluating. So this panel is only accurate so as to change once every second server evaluation cycle. These are common sampling issues. If the evaluation effort grows in comparison with the evaluation period, then the status becomes more accurate.

The second panel shows the status of the node currently selected in the browser. Remote nodes are not generally refreshed for status, so this panel only shows the last known status of the selected object. To refresh these remote objects you may need to collapse and expand the FAD branch that contains the object, so that the inter-server synchronization protocol may come into action. Certain editors such as the Document Editor refreshes the status of the edited object for its own internal reasons. The browser would also benefit from such updates.

Status reporting is a system's ongoing work of refinement. The system updates an object's status field only on major events such as a failed connection, or a finished job. The real state of the object may have changed since the last assignment to this field and the report refers to an older condition, that has now changed. In simple terms, the status bar generally shows a slightly worse picture of the system than it currently is in. The object may have since reconnected without clearing an error status.


Go to FAD BrowserFAD Browser

(manual page break)
#K +{bmc logo.bmp}


Go to FAD BrowserFAD Browser


Each object has a flags field editable with the following checkbox bar.

The flags are defined as follows:

(manual page break)
#K +{bmc logo.bmp}

 (R) Readable

An object that is not readable would not be allowed to be loaded into viewer by anyone other than its owner. The owner of an object is a user that ultimately contains the object. The tree of containment must be a straight parenthood relation from object up towards the user, and not discontinued by any link object. Whether you can access an object doesn't imply that you're also its owner.

(manual page break)
#K +{bmc logo.bmp}

 (W) Write-able

An object that is not write-able cannot be deleted. The editor opens for it, but the Apply button would be denied with a status report showing the cause. A non-write-able object may still be moveable and insert-able.

(manual page break)
#K +{bmc logo.bmp}

 (Pr) Protected

This flag sets a protection onto the flags themselves, so only the owner of the object can edit them. You are not the owner of an object if you don't have a straight containment descent from your user session down to the object.

(manual page break)
#K +{bmc logo.bmp}

 (Sh) Shared

Any shared objects in the first level of containment of a server will be made available by reference to all users upon their login. You may choose to share "yourself" onto the server you're logging into. You do so by logging in firs, then setting the Shared flag on your user node. Any other user logging into the system would then link to you. Pleas consider the security implications of doing this, and have all your sensitive material not-readable, or not not-write-able, etc. Sharing your user session onto the network means that other users can pick you as a nominal fax destination of an inbound call. Also they can forward their documents to you in raw TIFF form. If you don't share your user session (default) then you will only be targeted by server fax broadcasts to everyone.

(manual page break)
#K +{bmc logo.bmp}

 (M) Moveable

Moving an object can have adverse effects on you or on the whole system. You should not be able to move a remote server's Outbox, for example. Doing so would leave that server incapable of sending faxes until the Outbox queue is restored. You may want to periodically move your remote Inboxes and bring them locally. You would then need to re-create another Inbox on that server. What you do with your folders is your prerogative. You cannot move objects owned by someone else, and that are flagged as non-moveable. If you choose to share yourself on the network, you should also protect your own folders with this flag, so others can't snatch them from you.

(manual page break)
#K +{bmc logo.bmp}

 (Ins) Insert-able

Unless an object allows insertions, it cannot be the destination of a manual drag and drop move operation. The system underneath does it though. The flag only prevents other users from dropping you stuff.

(manual page break)
#K +{bmc logo.bmp}

 (Tr) Traversable

This flag affects the fax Server itself and its automated de-convolving iterators. It's like saying whether the system can or cannot browse this branch of the FAD like you do manually. Non traversable objects do not appear on any report list that the server builds. Such a list is the Files, Contacts, and Jobs of the Document Editor, or the list of the Queue Editor. Generally, Contacts are traversable in their Contact Lists, Users are traversable in their Servers, Files are traversable in their Queues. Reference links are not traversable by default, unless the system created them for internal reasons. When working with links to include address books or folders into one another, you must take good care of this issue and not create traversable cycles.

(manual page break)
!#K Fax System

(manual page break)
!#K Fax Type Library

(manual page break)
!#K Fax Core



+ 001

# FAD Browser

K FAD Browser

+ 002

# FAD tree viewer

K FAD tree viewer

+ 003

# Toolbar

K Toolbar

+ 004

# Root

K Root

+ 005

# Order

K Order

+ 006

# Insert

K Insert

+ 007

# Delete

K Delete

+ 008

# Rename

K Rename

+ 009

# StatusBar

K StatusBar

+ 010

# Flags

K Flags

+ 011

# Readable

K Readable

+ 012

# Writeable

K Writeable

+ 013

# Protected

K Protected

+ 014

# Shared

K Shared

+ 015

# Moveable

K Moveable

+ 016

# Insertable

K Insertable

+ 017

# Traversable

K Traversable

+ 018

! JumpContext(FaxSys.hlp, 1)

# Fax_System

K Fax_System

! JumpContext(FaxTypeLib.hlp, 1)

# Fax Type Library

K Fax Type Library

! JumpContext(FaxCore.hlp, 1)

# Fax Core

K Fax Core

Hit Counter Created on 05/27/2009 06:38:37 AM, modified on 05/27/2009 06:38:37 AM


Home | Up | Feedback | Contents | Search

Send mail to with questions or comments about this web site.
All principles and artwork exposed on this site or by our software products is our intellectual property. 
Copyright © 2006 Proxima Centauri Romania SRL. Last modified: 05/27/09