TextGridLab's Core Plug-ins

TextGridLab's plug-in structure mainly aims at providing a stand-alone application, based on the Eclipse Rich Client Platform framework. Additionally, it should be possible to use TextGridLab's features inside a usual Eclipse installation, possibly with some quirks. This is reflected in the plug-in structure.

Guidelines

Basically, one job, one plug-in.

Central Plug-ins and their Jobs

Lab Core

info.textgrid.lab.core.model
Classes modelling the basic TextGridRep resources – objects (TextGridObject), projects (TextGridProject) and the like.
info.textgrid.lab.core.efs.tgcrud
Implementation of the TextGridRep access. Generally interesting for clients who should use the stuff in info.textgrid.lab.core.model.
info.textgrid.lab.core.browserfix
Small plugin responsible for fixing the browser problems. Client implementations who need a browser control please use TextGridLabBrowser.createBrowser(Composite).
info.textgrid.lab.core.swtutils
Various utility implementations to deal with SWT and Eclipse specific stuff. Might be interesting for everyone, doesn't contain TextGrid specific stuff. Never introduce dependencies to other lab plugins here!
info.textgrid.utils
Utility classes that don't contain TextGrid- or Lab-specific stuff.
info.textgrid.lab.core.application
Contains the Application class that controls our lifecycle, but more interestringly various advisor classes that set up the main workbench window of the stand-alone application. The menus and toolbars are set up to be compatible with the Eclipse Workbench. This plugin also contains the product definition for deploying the Lab application.
info.textgrid.lab.ui.core
Contains common user interface code (like the new dialog etc.). Here are the global menu items, perspectives, handlers and some utility classes that might be interesting for other plugins. There should be no tool specific code here – this plugin should not depend on other UI plug-ins.
info.textgrid.lab.core.metadataeditor
The component for displaying and manipulating TextGridObjects' metadata.

Infrastructure Frontends

These plug-ins provide frontend code to the TextGridLab infrastructure. You should use them whenever you want to access a utility and the classes in the model aren't enough.

When you write infrastructure frontends, please separate user interface and model / implementation, and please do not leak ADB or Axis classes … (AXIOM is fine).

info.textgrid.lab.conf
Access to the configuration server. Use this to retrieve the URIs to the other utilities (and services).
info.textgrid.lab.authn
Access to the authentication functionality. You'll usually want to call RBACSession.getInstance().getSID(boolean) to retrieve the session ID used for authentication.
info.textgrid.lab.log
TextGrid-wide logging facility. You can retrieve the log ID used by several utilities here, and the user can display the remote log. Do not confuse this with the eclipse logging facility used for logging client-side events (StatusManager etc.)
info.textgrid.lab.search
Frontend to TG-search. Use these classes if you need a specific search that you visualize yourself.
info.textgrid.lab.search.ui
The search user interface.
info.textgrid.lab.navigator
The navigator UI to browse through TextGrid.
info.textgrid.lab.projectadmin
User and project administration GUI. This is a UI for some of the stuff in info.textgrid.lab.core.model.

Other Lab Tools

These are the frontends for various lab tools.

info.textgrid.lab.workflow
The preliminary workflow editor. The plug-in info.textgrid.lab.workflow.external contains some libraries the workflow editor uses.
info.textgrid.lab.templateeditor
Project managers can use the template editor to define which metadata shall be defined for objects in their respective projects.
info.textgrid.lab.dictionarysearch
Plugin to search the Wörterbuchnetz. Also contains the Dictionary Results View that displays dictionary entries for the word currently selected in the XML editor – you might find inspiration here.
info.textgrid.lab.dictionarysearchmask
Plugin to manually search the Wörterbuchnetz. You can narrow the search down to a single dictionary or a group of dictionaries. You can also freely choose the desired dictionaries within the Wörterbuchnetz. You can define the type of search, limit the count of search results, that were shown at once in the Dictionary Search Results View and decide, if only entries should be shown, that were linked with other dictionaries.
info.textgrid.lab.lemmatizer.serviceclient, info.textgrid.lab.lemmatizer.ui
Frontend code for the lemmatizer.

XML Editor

The XML editor integrates the XML editor from the Eclipse Web Tools Platform with a WYSIWYM component based on Vex and functionality specific for TextGrid.

info.textgrid.lab.xmleditor.mpeditor
This is the core plug-in, it contains the multipage editor as well as integration code and TextGrid specific implementation.
net.sf.vex.toolkit
Contains all backend functionality for the WYSIWYM part, especially the data model (see net.sf.vex.dom.linked) and the layout code (net.sf.vex.layout).
net.sf.vex.editor
Contains the EditorPart for Vex, i.e. the Eclipse interfacing part.
de.textgrid.efrontend.charbrowser
A unicode character browser. TODO this code needs to be updated …

The Text Image Link Editor is a tool to link a digitized image of, e.g., a manuscript with its transcription on the level of image areas.

info.textgrid.lab.linkeditor.controller
info.textgrid.lab.linkeditor.model
Controller and model for managing the links
info.textgrid.lab.linkeditor.mip
info.textgrid.lab.linkeditor.mip.component
Contains the image view and associated functionality. Parts of this origin at the ArchWay projects EPT.
info.textgrid.lab.linkeditor.rch.ept.libraries
Libraries used by the link editor.
info.textgrid.lab.linkeditor.rcp_linkeditor
contains the text view that is currently used for the Text part of the links. In the future, we will probably use the XML editor for this.

Various GUI and Help stuff

info.textgrid.lab.help
The end user documentation for TextGridLab (in English).
info.textgrid.lab.doc.baseline
The documentation for the TextGrid Baseline Encoding. Do not edit here – this is generated from the LaTeX code elsewhere in the SVN.
info.textgrid.lab.doc.programmer
The developers' documentation you are currently reading. This plugin contains script to generate the Lab javadoc (executed at compile time) and HTML pages with the guide text you're currently reading.
info.textgrid.lab.welcome
The welcome screen, as well as some perspectives that should be factored out of here.
info.textgrid.lab.eyecandy
Some icons etc.
info.textgrid.lab.feedback.ui
The report-a-bug dialogue.

Stubs and libraries

The plugins

contain various web service stubs used by other plugins.

The plugins

contain libraries repackaged for use in TextGridLab.

Finally, we're deploying XULrunner 1.8 with TextGridLab for various architectures: