[INTERNAL|GUI|STF] always show the exit session dialog if left alone in
session

The STF highly depends on the automatically close of a session that
is executed by this handler. Stack traces shown that there are
race conditions and bugs in the project negotiation so that
a project negotiation returns with exit status OK even if the
remote participant is no longer in the session and so this handler
would fail to handle the leave correctly.

The user is now always asked to leave the session if he is left alone
regardless of the project negotiation status.

Change-Id: I968f69df522af81f803e84ce835a67fd1b527529
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/585
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] Wizard closing dialog

After some testing I found out that this dialog will be opened
if the close() method is called on the container but it
currently executed operation via the run method.

GUI changes:

The information and error dialogs are now shown after the wizard
finished.

This wizard will always close, regardless of the exit status or
thrown exceptions.

It no longer possible to cancel the invitation after it has been
accepted (just the GUI part).

Change-Id: I93ab25d6a374b79e6357c9f5bfc9be6d6b8dc400
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/586
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[REFACTOR] moved GUI stuff from the logic back to the GUI

It is up to the GUI to create Jobs / fork a non GUI thread
to execute long running logic operations.

Change-Id: I7a37abe02619f9efae98498d9383cc94801b65f1
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/587
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] removed the XMPPException from the startSession method

This check gains you false safety because it is possible the
a connection loss occur right after the check was made.

The user will still notice that the session will not work
because he cannot invite anyone (which also had happen with this
check).

Change-Id: Ic83f2d75c95dbcc795cbb348311cb379e829f357
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/588
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] canceling an invitation caused all outstanding invitations to
abort

Detected by Patrick Schlott.

The invitation process did only check for the current session users
but not for outstanding invitations.

Change-Id: Ic5a92ca8fbc8fd99fdce3f050723826ada0067ef
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/589
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] project negotiation was prematurely started

Either this defect was always present or has been caused
due to large refactoring of the invitation classes.

Only start a project negotiation after the session negotiation
has been fully completed.

Change-Id: I39673960d78377981adb1284580ac4edd4b331e3
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/590
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] fixed non modal dialog handling

The AddProjectToSessionWizard is a non modal wizard but
it was set to block when it should be opened. If a 
modal shell is currently open when this wizard is about
to open it crashed the whole GUI in that way that
is was not possible to close the modal shell.


Change-Id: I2f74f1b7b8f92b7aed20a09fe9a6df50295b267a
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/591
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[API] added a color ID storage component

The component allows the storing of color ID sets which
contain the used color IDs for a specific participant
set during a session.

Change-Id: I51411f7261df31b651570c6642cd806f9657465e
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/554
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] removed user invitation completed flag

If you are looking carefully at the session negotiation
you will find out that the user is added, the
user list is synchronized and just after the synchronization
the user completed flag is set and the user list is
synchronized again.

It seems that this is a left over from a very old
negotiation protocol where the users session
invitation is completed after it had received
the whole project.

Change-Id: I55b1cfbfdcabc736672c621f583389bcbb2956fd
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/596
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] user list synchronization is now transparent

The Saros session will now automatically synchronize
the user list if a user is added to the session.

Change-Id: Ib603d6262223629b31550b4c7838d07fc125950b
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/597
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] do not allow to start and stop a session at the same time

It makes no sense to stop a session that is currently started.
Just stop the session after it has started and vice versa.

Change-Id: I55c0fdb91275d3323cdf57905caa5b9c868bd392
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/592
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX] reverted version manager protocol change

The new version was using a string instead of an 
version object. Therefore the newer version
of this class did not respond to version requests
to avoid NPE on the outdated side.

We now use again a version object and so can
respond to the version request.

Change-Id: I5133eca5dda65459a94a0c97a2d7c6b7e6a43df1
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/600
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[GUI] extended Saros configuration wizard

The wizard now includes the selection of the
favorite session color. 

Change-Id: I4d227df1f7e81feb11a1d2473fb17c559fc783e2
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/599
Tested-by: Jenkins CI
Reviewed-by: Franz Zieris <zieris@inf.fu-berlin.de>
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] removed contains check

It is up to the caller to decide how many times it
will register a (possibly the same) listener

Change-Id: Ia0bb5b08d9ea67884a53d3ff93de0bbce4b429b5
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/602
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[FIX|REFACTOR] revert asynchronous dispatching

Activities are now once again dispatched synchronous
because the asynchronous dispatching lead to several
failures in some activity handlers like SVN and Needbased.

Removed the complete activity transformation out of
the SarosSession and put it into the new ActivityHandler
class.

Change-Id: I698842d2247f0f655f513b116d623bd9a71c3718
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/598
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>
[INTERNAL] incoming session negotiation can no longer be aborted

Just changed the internal logic. It was already
not possible to abort the process as the monitor
could not be cancelled.

Change-Id: I6e1cb56f221b0e71a29b7a991f5ae2830c0a0b9f
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/605
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>