Package org.olat.modules.fo Description
Contains all forum related classes and interfaces.Each {@link org.olat.modules.fo.Forum} has 0..* forum threads. Each forum thread has 1..* {@link org.olat.modules.fo.Message}.
The thread top {@link org.olat.modules.fo.Message} has the threadtop and the parent message null.
Note: One could improve the Message interface by adding a new isThreadtop() method.
A forum thread has a {@link org.olat.modules.fo.Status}: Sticky, Hidden, Closed, a combination of the mentioned ones, or none of the mentioned ones (Normal).
The statusCode integer value is stored on the threadtop message. The {@link org.olat.modules.fo.Status} class converts the statusCode integer into a meaningful Status object
and vice versa.
A Sticky forum thread is always displayed on the top of the thread list. That is the sorting of the forum threads should always keep the Sticky threads first.
A Closed forum thread is not editable anymore.
A Hidden forum thread is only visible by the moderators.
The {@link org.olat.modules.fo.ForumCallback} controls the actions the current user is allowed to perfom upon a {@link org.olat.modules.fo.Forum}.
Only a moderator (forumCallback.mayEditMessageAsModerator()) is allowed to create a Sticky thread or to change a thread Status in Sticky, Hidden, Closed or vice versa.
Only a moderator is allowed to edit/delete/attach file a/to message with children or to split a thread.
The split thread outcome is a new thread starting from the selected Message on. The old thread loses the subtree starting from the selected Message.
The {@link org.olat.modules.fo.ForumManager} provides the forum storage layer.
The {@link org.olat.modules.fo.ForumController} provides the business workflow. It processes the events coming from different Components or Controllers either by delegating
the storage to the ForumManager or by presenting different Components to the user.
({@link org.olat.modules.fo.MessageEditorController} is for creating a thread, editing or replying to a message. It holds the form and allows to handle attachments.
A forum thread view has three options:
1) shows all messages with details (body text, etc) in a threaded view
2) shows all messages with details (body text, etc) in a flat view
3) shows only one message details at a time plus the messages table in the logical (not chronological) order.
The {@link org.olat.modules.fo.ForumControllerFactory} provides a Titled ForumController, either in a popup or not.
The {@link org.olat.modules.fo.MessageNode} class represents a tree node (see org.olat.core.util.nodes.INode) adapter for the Message objects.
This is later used in {@link org.olat.modules.fo.ForumArchiveManager}.
The {@link org.olat.modules.fo.ForumArchiveManager} provides the possibility to archive the content of an entire forum or of a forum thread.
The {@link org.olat.modules.fo.ForumRTFFormatter} is the {@link org.olat.modules.fo.ForumFormatter} implementation for RTF. The outcome of the forum archive is a zip containing the RTF file plus the
images used for marking the forum thread statuses (e.g. Sticky, Closed).