There are a number of "modes" in which it might be useful to launch the interactive client from the web:
  1. Full editor mode. This would show the "exploring..." (file system) view and full user list.
  2. Specific window in "conference" mode. This would show a user list, attached to the window, indicating others who are using the object. It would not show the exploring window or the global user list.
  3. Specific window in "normal" mode, without global- or per-object user list.

Issues include:
  1. Running client detection. The current (020730) implementation includes logic for detecting an attempt to open the client when it is already running. If a running client is detected, that instance of the client is used to open an editor for the requested object. (Note that the communication between the new, soon-to-exit client and the existing client is currently limited to strings, though that could probably be extended if absolutely necessary.) This behavior will need to be preserved, but with some extensions:
    • Currently the running client detector simply passes a path to the existing instance of the client. This will need to be augmented to include information about the type of window to be created.
    • Support will need to be added for "expanding" the client mode. For example, if the client is launched in specific conference window mode and then the user clicks a "Full Editor" link, the explorer window and global user list should appear.
  2. Shorthand extensions. Case (1) is handled reasonbly well by per-page "Full Editor" links, and the "Site contents" view could be extended to include full editor links as well. There is currently no way to create a link (using wiki-style shorthand) to edit in any of the modes. The backquote character is no longer used for url generation (as it was in very early prototypes), so that would be a candidate, e.g. "Click `here>My Drawing` to edit this drawing." It does not appear that there are two additional "spare" characters that could be reserved for markers, so we will not be able to have different markers for each of the three modes. Assuming that the most common use by relatively novice users for this kind of link will be creation of shortcuts to specific collaborative tools (e.g., a chat exercise), a proposed solution:
    • Make specific conference-style windows be the default. The conference window implementation should probably be augmented to include a menu item that will hide and show the user list. (In fact, this could become the standard for all ComponentViewFrames, just with different defaults depending on how they were to be used.)
    • Add additional markers inside the backquotes for the other two modes, e.g., `!My Drawing` for specific "normal" window and `-My Drawing` for full editor.
  3. Suppressing duplicate per-object user information. Some kinds of objects (such as workspaces, if they ever actually get implemented) will inherently include per-object user information that is at least as complete as the conference window user list. In these cases, there needs to be a way to suppress user list attachment on the conference window. Possible solutions include:
    • Using shorthand variant for "normal" specific window for these objects. This is likely to be problematic for novice users, and may also not be appropriate if conference windows have other differences (e.g., an "invite" option) from normal windows.
    • Adding a marker interface that conference objects can implement to tell the conference window constructor that they should not have a user list.


In the initial implementation of this functionality:
  • The main client class (WebSiteEditor) will have a "mode" field.
  • The backquote will be used to indicate conference window mode. (Shortcuts for other modes will be deferred.). The parameter "mode=conf" will be appended to the url that launches the client in the generated links.
  • The running client detector will prepend the mode parameter (if present) to the command that would be sent to the running instance if one exists. (e.g., the command would be "/users/smith/Home" for full editor and "conf:/users/smith/Home" for conf mode.)
  • On startup, if the mode argument is "conf" and a path has been specified, the client will set its mode field to minimal and not show the exporer or global user list windows. The object specified by the path will be shown in a ConferenceWindow.
  • On notification from the running client detector, the client will look for a mode parameter:
    • If the requested mode is "conf", the client will open the requested object in a conference window.
    • If the requested mode is not "conf", the client will open the object in a normal ComponentViewFrame and check its current mode. If the client is running in "conf" mode, it will open the global user list and an explorer window. (And change its mode field.)


/public/projects/bridge/design/Interactive client modes Login | Web Editor | Full Editor
Last modified 9/11/03 12:56 PM by isenhour (history)
Site contents