Jump to: navigation, search

Orion/EAS/EAS Web Use Cases

< Orion‎ | EAS

This document defines some use cases for developing the Eclipse Application Services (EAS) for Orion. This is a working priority list of the use cases we'll use to drive the implementation. The list of services is derived from the desktop Eclipse Application Services, but it is prioritized according to use cases for the Orion work. Part of the web implementation is determining where desktop/web interoperability is important.

For nearly all of these, there are existing design discussions/implementations in both Eclipse and existing web applications, and we need to look at each. OSLC may also have relevant discussion. We should link to important bugs, design docs, etc.

Use Cases

This list itemizes some use cases. Underneath each use case we list what services/architectures we think the use case will push.

  • Separate jslint outliner from editor, outliner can appear on pages besides the editor
    • start evolving "plug-in" story
    • Selection service
    • problem provider service
  • Import/export code from/to an alternate location (github)
    • Command contribution
    • Adapters and other Expressions
    • Async progress reporting
  • Use w3c validator for errors/warnings in HTML files
    • adding new kinds of problem providers
  • Register other kinds of editors for file types. For example, use a web-based image editor for all .png files.
    • Editor lookup and content types
    • How does user specify an editor and its URL format
  • In Firebug, link to file name and line number opens Orion editor
    • links as integration point, "show in" service (?)
  • Debug: Adding a breakpoint in Orion can be seen by Firebug
    • markers as REST resources
  • Improve and generalize the new file/new folder UI in the navigator (table) view using command/object contributions
    • Selection Service
    • Object contributions/commands (commands that apply to certain kind of object) See Orion/EAS/CommandService
    • We have certain key bindings that should work regardless of focus (Ctrl-S for save, Open Resource, etc.)
  • Add random URLs as favorites
    • User-based preferences
  • Show file properties (history, etc.) in a properties view in navigator
    • Selection Service
    • Generalize Eventing Strategy
  • Compare the content of two files
    • Ensuring we can have two instances of a visual component on the same page. (The StyledText-level text editor probably supports more than one instance, but editorContainer.js may not??)
  • Integrating Gerrit code review
  • Drive the editor container (vs editor widget) from Eclipse Desktop
    • Saveables
    • Input Service
    • Keybinding issues
    • Status Reporting
  • Include favorites list or history view on the editor page
    • Visual component configuration/app model
    • Persisting UI state
  • Use Google spell check for text files, spell check code??
    • Content types
    • Service lookup
    • Builders (Problem Providers)
  • Add Open Social gadgets
  • Add a consolidated notifications/feed to the main page
    • Notifications Service - Notifications
    • Part Service (what does bring to front mean on the web...getting user to see notifications)
  • User-comments attached to resources

More general concerns, not use cases

  • Need testing infrastructure, both for unit tests that are independent of browser (e.g. text editor commands like comment/uncomment), and tests that need a browser (use js-test-driver?)
  • Need performance testing infrastructure, for measuring page load speed, and performance testing of the running app
  • What's our story for configuring a page with just the code that is really needed (e.g. if I don't use comment/uncomment at all, can we not load that code)
  • Remember that we need a JS / CSS / HTML build to concatenate / minify / gzip our code
    • how does this play with services, modularity, ...
    • this will also allow us to track code size over time

Other Services

Some services can be added to the existing workflows. They are listed here for completeness.

  • Logging
  • Tracing
  • Authentication
  • Status Handling
  • String Localization
  • Bidi
  • Resource Management (shared resources, sprites, etc..)

Unrepresented Services

Services used in Eclipse desktop for which we don't yet have a use case.

  • Common undo/redo history across visual components
  • Shell provider
  • Label/icon decoration
  • React to extensions/services appearing and disappearing on the fly