Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientInformationView.Designer.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientInformationView.Designer.cs	(revision 15953)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientInformationView.Designer.cs	(revision 15953)
@@ -0,0 +1,103 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+namespace HeuristicLab.Clients.Access.Views {
+  partial class RefreshableLightweightAccessClientInformationView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        lightweightUserInformationView.UserInformationChanged -= new EventHandler(lightweightUserInformationView_Changed);
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RefreshableLightweightAccessClientInformationView));
+      this.lightweightUserInformationView = new HeuristicLab.Clients.Access.Views.LightweightUserInformationView();
+      this.storeButton = new System.Windows.Forms.Button();
+      this.SuspendLayout();
+      // 
+      // refreshButton
+      // 
+      this.refreshButton.Location = new System.Drawing.Point(4, 3);
+      // 
+      // lightweightUserInformationView
+      // 
+      this.lightweightUserInformationView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.lightweightUserInformationView.Caption = "RefreshableLightweightUserInformation View";
+      this.lightweightUserInformationView.Content = null;
+      this.lightweightUserInformationView.Location = new System.Drawing.Point(3, 33);
+      this.lightweightUserInformationView.Name = "lightweightUserInformationView";
+      this.lightweightUserInformationView.ReadOnly = false;
+      this.lightweightUserInformationView.Size = new System.Drawing.Size(378, 245);
+      this.lightweightUserInformationView.TabIndex = 2;
+      // 
+      // storeButton
+      // 
+      this.storeButton.Enabled = false;
+      this.storeButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.PublishToWeb;
+      this.storeButton.Location = new System.Drawing.Point(34, 3);
+      this.storeButton.Name = "storeButton";
+      this.storeButton.Size = new System.Drawing.Size(24, 24);
+      this.storeButton.TabIndex = 3;
+      this.storeButton.UseVisualStyleBackColor = true;
+      this.storeButton.Click += new System.EventHandler(this.storeButton_Click);
+      // 
+      // RefreshableLightweightAccessClientInformationView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.lightweightUserInformationView);
+      this.Controls.Add(this.storeButton);
+      this.Name = "RefreshableLightweightAccessClientInformationView";
+      this.Size = new System.Drawing.Size(384, 281);
+      this.Controls.SetChildIndex(this.storeButton, 0);
+      this.Controls.SetChildIndex(this.lightweightUserInformationView, 0);
+      this.Controls.SetChildIndex(this.refreshButton, 0);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private LightweightUserInformationView lightweightUserInformationView;
+    private System.Windows.Forms.Button storeButton;
+
+  }
+}
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientInformationView.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientInformationView.cs	(revision 15953)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientInformationView.cs	(revision 15953)
@@ -0,0 +1,76 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+
+namespace HeuristicLab.Clients.Access.Views {
+  public partial class RefreshableLightweightAccessClientInformationView : RefreshableView {
+    public RefreshableLightweightAccessClientInformationView() {
+      InitializeComponent();
+    }
+
+    private void RefreshUserData() {
+      UserInformation.Instance.Refresh();
+      lightweightUserInformationView.UserInformationChanged += new EventHandler(lightweightUserInformationView_Changed);
+    }
+
+    void lightweightUserInformationView_Changed(object sender, EventArgs e) {
+      if (!storeButton.Enabled) storeButton.Enabled = true;
+    }
+
+    protected override void RefreshData() {
+      Content.ExecuteActionAsync(RefreshUserData, PluginInfrastructure.ErrorHandling.ShowErrorDialog);
+    }
+
+    protected override void Content_Refreshing(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(Content_Refreshing), sender, e);
+      } else {
+        base.Content_Refreshing(sender, e);
+        lightweightUserInformationView.Enabled = false;
+        storeButton.Enabled = false;
+      }
+    }
+
+    protected override void Content_Refreshed(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(Content_Refreshed), sender, e);
+      } else {
+        base.Content_Refreshed(sender, e);
+        lightweightUserInformationView.Enabled = true;
+        if (!UserInformation.Instance.UserExists) {
+          MessageBox.Show("Couldn't fetch user information from the server." + Environment.NewLine +
+            "Please verify that you have an existing user and that your user name and password is correct. ", "HeuristicLab Access Service", MessageBoxButtons.OK, MessageBoxIcon.Error);
+          lightweightUserInformationView.Content = null;
+        } else {
+          lightweightUserInformationView.Content = UserInformation.Instance.User;
+        }
+      }
+    }
+
+    private void storeButton_Click(object sender, EventArgs e) {
+      AccessClient.Instance.ExecuteActionAsync(new Action(delegate {
+        AccessClient.CallAccessService(x => x.UpdateLightweightUser(UserInformation.Instance.User));
+      }), HeuristicLab.PluginInfrastructure.ErrorHandling.ShowErrorDialog);
+    }
+  }
+}
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientView.Designer.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientView.Designer.cs	(revision 15953)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientView.Designer.cs	(revision 15953)
@@ -0,0 +1,80 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Clients.Access.Views {
+  partial class RefreshableLightweightAccessClientView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.lightweightUserView = new HeuristicLab.Clients.Access.Views.LightweightUserView();
+      this.SuspendLayout();
+      // 
+      // lightweightUserView
+      // 
+      this.lightweightUserView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.lightweightUserView.Caption = "LightweightUser View";
+      this.lightweightUserView.Content = null;
+      this.lightweightUserView.Location = new System.Drawing.Point(3, 33);
+      this.lightweightUserView.Name = "lightweightUserView";
+      this.lightweightUserView.ReadOnly = false;
+      this.lightweightUserView.Size = new System.Drawing.Size(500, 218);
+      this.lightweightUserView.TabIndex = 2;
+      this.lightweightUserView.SelectedUsersChanged += new System.EventHandler(this.lightweightUserView_SelectedUsersChanged);
+      // 
+      // RefreshableLightweightUserView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.lightweightUserView);
+      this.Name = "RefreshableLightweightUserView";
+      this.Controls.SetChildIndex(this.lightweightUserView, 0);
+      this.Controls.SetChildIndex(this.refreshButton, 0);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private LightweightUserView lightweightUserView;
+  }
+}
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientView.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientView.cs	(revision 15953)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientView.cs	(revision 15953)
@@ -0,0 +1,133 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+using HeuristicLab.Core;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Clients.Access.Views {
+  [View("RefreshableLightweightAccessClient View")]
+  [Content(typeof(AccessClient), false)]
+  public partial class RefreshableLightweightAccessClientView : RefreshableView {
+    public RefreshableLightweightAccessClientView() {
+      InitializeComponent();
+    }
+
+    //set an action like a webservice call to retrieve the users which should be marked as checked           
+    private Func<List<Guid>> fetchSelectedUsers;
+    public Func<List<Guid>> FetchSelectedUsers {
+      get { return fetchSelectedUsers; }
+      set {
+        fetchSelectedUsers = value;
+        selectedUsers = null;
+        lightweightUserView.Content = null;
+        SetEnabledStateOfControls();
+      }
+    }
+
+    private List<Guid> selectedUsers;
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+
+      selectedUsers = null;
+      lightweightUserView.Content = null;
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      refreshButton.Enabled = FetchSelectedUsers != null && Content != null;
+      lightweightUserView.Locked = Locked;
+    }
+
+    protected override void RefreshData() {
+      Action completeRefreshAction = new Action(delegate {
+        selectedUsers = FetchSelectedUsers();
+        Content.Refresh();
+      });
+
+      Content.ExecuteActionAsync(completeRefreshAction, new Action<Exception>((Exception ex) => ErrorHandling.ShowErrorDialog(this, "Refresh failed.", ex)));
+    }
+
+    protected override void Content_Refreshing(object sender, EventArgs e) {
+      base.Content_Refreshing(sender, e);
+      lightweightUserView.Content = null;
+    }
+
+    protected override void Content_Refreshed(object sender, EventArgs e) {
+      base.Content_Refreshed(sender, e);
+
+      if (Content.UsersAndGroups != null) {
+        lightweightUserView.Content = new ItemList<UserGroupBase>(Content.UsersAndGroups.Where(x => selectedUsers.Contains(x.Id)));
+        if (lightweightUserView.Content != null) OnStorableStateChanged();
+      }
+    }
+
+    public IItemList<UserGroupBase> GetDeletedUsers() {
+      if (lightweightUserView.Content == null) {
+        return null;
+      } else {
+        var deletedIds = selectedUsers.Where(x => lightweightUserView.Content.Count(y => y.Id == x) == 0);
+        List<UserGroupBase> deletedUGs = Content.UsersAndGroups.Where(x => deletedIds.Contains(x.Id)).ToList();
+        return new ItemList<UserGroupBase>(deletedUGs);
+      }
+    }
+
+    public IItemList<UserGroupBase> GetCheckedUsers() {
+      return (lightweightUserView.Content == null) ? null : lightweightUserView.Content;
+    }
+
+    public IItemList<UserGroupBase> GetAddedUsers() {
+      return (lightweightUserView.Content == null) ? null : new ItemList<UserGroupBase>(lightweightUserView.Content.Where(x => !selectedUsers.Contains(x.Id)));
+    }
+
+    public event EventHandler SelectedUsersChanged;
+    protected virtual void OnSelectedUsersChanged() {
+      if (InvokeRequired)
+        Invoke((MethodInvoker)OnSelectedUsersChanged);
+      else {
+        EventHandler handler = SelectedUsersChanged;
+        if (handler != null)
+          handler(this, EventArgs.Empty);
+      }
+    }
+
+    public event EventHandler StorableStateChanged;
+    protected virtual void OnStorableStateChanged() {
+      if (InvokeRequired)
+        Invoke((MethodInvoker)OnStorableStateChanged);
+      else {
+        EventHandler handler = StorableStateChanged;
+        if (handler != null)
+          handler(this, EventArgs.Empty);
+      }
+    }
+
+    private void lightweightUserView_SelectedUsersChanged(object sender, EventArgs e) {
+      OnSelectedUsersChanged();
+    }
+  }
+}
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserInformationView.Designer.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserInformationView.Designer.cs	(revision 15761)
+++ 	(revision )
@@ -1,103 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-namespace HeuristicLab.Clients.Access.Views {
-  partial class RefreshableLightweightUserInformationView {
-    /// <summary> 
-    /// Required designer variable.
-    /// </summary>
-    private System.ComponentModel.IContainer components = null;
-
-    /// <summary> 
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing) {
-      if (disposing && (components != null)) {
-        lightweightUserInformationView.UserInformationChanged -= new EventHandler(lightweightUserInformationView_Changed);
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Component Designer generated code
-
-    /// <summary> 
-    /// Required method for Designer support - do not modify 
-    /// the contents of this method with the code editor.
-    /// </summary>
-    private void InitializeComponent() {
-      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RefreshableLightweightUserInformationView));
-      this.lightweightUserInformationView = new HeuristicLab.Clients.Access.Views.LightweightUserInformationView();
-      this.storeButton = new System.Windows.Forms.Button();
-      this.SuspendLayout();
-      // 
-      // refreshButton
-      // 
-      this.refreshButton.Location = new System.Drawing.Point(4, 3);
-      // 
-      // lightweightUserInformationView
-      // 
-      this.lightweightUserInformationView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.lightweightUserInformationView.Caption = "RefreshableLightweightUserInformation View";
-      this.lightweightUserInformationView.Content = null;
-      this.lightweightUserInformationView.Location = new System.Drawing.Point(3, 33);
-      this.lightweightUserInformationView.Name = "lightweightUserInformationView";
-      this.lightweightUserInformationView.ReadOnly = false;
-      this.lightweightUserInformationView.Size = new System.Drawing.Size(378, 245);
-      this.lightweightUserInformationView.TabIndex = 2;
-      // 
-      // storeButton
-      // 
-      this.storeButton.Enabled = false;
-      this.storeButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.PublishToWeb;
-      this.storeButton.Location = new System.Drawing.Point(34, 3);
-      this.storeButton.Name = "storeButton";
-      this.storeButton.Size = new System.Drawing.Size(24, 24);
-      this.storeButton.TabIndex = 3;
-      this.storeButton.UseVisualStyleBackColor = true;
-      this.storeButton.Click += new System.EventHandler(this.storeButton_Click);
-      // 
-      // RefreshableLightweightUserInformationView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.lightweightUserInformationView);
-      this.Controls.Add(this.storeButton);
-      this.Name = "RefreshableLightweightUserInformationView";
-      this.Size = new System.Drawing.Size(384, 281);
-      this.Controls.SetChildIndex(this.storeButton, 0);
-      this.Controls.SetChildIndex(this.lightweightUserInformationView, 0);
-      this.Controls.SetChildIndex(this.refreshButton, 0);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private LightweightUserInformationView lightweightUserInformationView;
-    private System.Windows.Forms.Button storeButton;
-
-  }
-}
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserInformationView.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserInformationView.cs	(revision 15761)
+++ 	(revision )
@@ -1,76 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Windows.Forms;
-
-namespace HeuristicLab.Clients.Access.Views {
-  public partial class RefreshableLightweightUserInformationView : RefreshableView {
-    public RefreshableLightweightUserInformationView() {
-      InitializeComponent();
-    }
-
-    private void RefreshUserData() {
-      UserInformation.Instance.Refresh();
-      lightweightUserInformationView.UserInformationChanged += new EventHandler(lightweightUserInformationView_Changed);
-    }
-
-    void lightweightUserInformationView_Changed(object sender, EventArgs e) {
-      if (!storeButton.Enabled) storeButton.Enabled = true;
-    }
-
-    protected override void RefreshData() {
-      Content.ExecuteActionAsync(RefreshUserData, PluginInfrastructure.ErrorHandling.ShowErrorDialog);
-    }
-
-    protected override void Content_Refreshing(object sender, EventArgs e) {
-      if (InvokeRequired) {
-        Invoke(new EventHandler(Content_Refreshing), sender, e);
-      } else {
-        base.Content_Refreshing(sender, e);
-        lightweightUserInformationView.Enabled = false;
-        storeButton.Enabled = false;
-      }
-    }
-
-    protected override void Content_Refreshed(object sender, EventArgs e) {
-      if (InvokeRequired) {
-        Invoke(new EventHandler(Content_Refreshed), sender, e);
-      } else {
-        base.Content_Refreshed(sender, e);
-        lightweightUserInformationView.Enabled = true;
-        if (!UserInformation.Instance.UserExists) {
-          MessageBox.Show("Couldn't fetch user information from the server." + Environment.NewLine +
-            "Please verify that you have an existing user and that your user name and password is correct. ", "HeuristicLab Access Service", MessageBoxButtons.OK, MessageBoxIcon.Error);
-          lightweightUserInformationView.Content = null;
-        } else {
-          lightweightUserInformationView.Content = UserInformation.Instance.User;
-        }
-      }
-    }
-
-    private void storeButton_Click(object sender, EventArgs e) {
-      AccessClient.Instance.ExecuteActionAsync(new Action(delegate {
-        AccessClient.CallAccessService(x => x.UpdateLightweightUser(UserInformation.Instance.User));
-      }), HeuristicLab.PluginInfrastructure.ErrorHandling.ShowErrorDialog);
-    }
-  }
-}
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.Designer.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.Designer.cs	(revision 15761)
+++ 	(revision )
@@ -1,80 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.Clients.Access.Views {
-  partial class RefreshableLightweightUserView {
-    /// <summary> 
-    /// Required designer variable.
-    /// </summary>
-    private System.ComponentModel.IContainer components = null;
-
-    /// <summary> 
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing) {
-      if (disposing && (components != null)) {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Component Designer generated code
-
-    /// <summary> 
-    /// Required method for Designer support - do not modify 
-    /// the contents of this method with the code editor.
-    /// </summary>
-    private void InitializeComponent() {
-      this.lightweightUserView = new HeuristicLab.Clients.Access.Views.LightweightUserView();
-      this.SuspendLayout();
-      // 
-      // lightweightUserView
-      // 
-      this.lightweightUserView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.lightweightUserView.Caption = "LightweightUser View";
-      this.lightweightUserView.Content = null;
-      this.lightweightUserView.Location = new System.Drawing.Point(3, 33);
-      this.lightweightUserView.Name = "lightweightUserView";
-      this.lightweightUserView.ReadOnly = false;
-      this.lightweightUserView.Size = new System.Drawing.Size(500, 218);
-      this.lightweightUserView.TabIndex = 2;
-      this.lightweightUserView.SelectedUsersChanged += new System.EventHandler(this.lightweightUserView_SelectedUsersChanged);
-      // 
-      // RefreshableLightweightUserView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.lightweightUserView);
-      this.Name = "RefreshableLightweightUserView";
-      this.Controls.SetChildIndex(this.lightweightUserView, 0);
-      this.Controls.SetChildIndex(this.refreshButton, 0);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private LightweightUserView lightweightUserView;
-  }
-}
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserView.cs	(revision 15761)
+++ 	(revision )
@@ -1,133 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.MainForm;
-using HeuristicLab.MainForm.WindowsForms;
-using HeuristicLab.PluginInfrastructure;
-
-namespace HeuristicLab.Clients.Access.Views {
-  [View("RefreshableLightweightUser View")]
-  [Content(typeof(AccessClient), false)]
-  public partial class RefreshableLightweightUserView : RefreshableView {
-    public RefreshableLightweightUserView() {
-      InitializeComponent();
-    }
-
-    //set an action like a webservice call to retrieve the users which should be marked as checked           
-    private Func<List<Guid>> fetchSelectedUsers;
-    public Func<List<Guid>> FetchSelectedUsers {
-      get { return fetchSelectedUsers; }
-      set {
-        fetchSelectedUsers = value;
-        selectedUsers = null;
-        lightweightUserView.Content = null;
-        SetEnabledStateOfControls();
-      }
-    }
-
-    private List<Guid> selectedUsers;
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-
-      selectedUsers = null;
-      lightweightUserView.Content = null;
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      refreshButton.Enabled = FetchSelectedUsers != null && Content != null;
-      lightweightUserView.Locked = Locked;
-    }
-
-    protected override void RefreshData() {
-      Action completeRefreshAction = new Action(delegate {
-        selectedUsers = FetchSelectedUsers();
-        Content.Refresh();
-      });
-
-      Content.ExecuteActionAsync(completeRefreshAction, new Action<Exception>((Exception ex) => ErrorHandling.ShowErrorDialog(this, "Refresh failed.", ex)));
-    }
-
-    protected override void Content_Refreshing(object sender, EventArgs e) {
-      base.Content_Refreshing(sender, e);
-      lightweightUserView.Content = null;
-    }
-
-    protected override void Content_Refreshed(object sender, EventArgs e) {
-      base.Content_Refreshed(sender, e);
-
-      if (Content.UsersAndGroups != null) {
-        lightweightUserView.Content = new ItemList<UserGroupBase>(Content.UsersAndGroups.Where(x => selectedUsers.Contains(x.Id)));
-        if (lightweightUserView.Content != null) OnStorableStateChanged();
-      }
-    }
-
-    public IItemList<UserGroupBase> GetDeletedUsers() {
-      if (lightweightUserView.Content == null) {
-        return null;
-      } else {
-        var deletedIds = selectedUsers.Where(x => lightweightUserView.Content.Count(y => y.Id == x) == 0);
-        List<UserGroupBase> deletedUGs = Content.UsersAndGroups.Where(x => deletedIds.Contains(x.Id)).ToList();
-        return new ItemList<UserGroupBase>(deletedUGs);
-      }
-    }
-
-    public IItemList<UserGroupBase> GetCheckedUsers() {
-      return (lightweightUserView.Content == null) ? null : lightweightUserView.Content;
-    }
-
-    public IItemList<UserGroupBase> GetAddedUsers() {
-      return (lightweightUserView.Content == null) ? null : new ItemList<UserGroupBase>(lightweightUserView.Content.Where(x => !selectedUsers.Contains(x.Id)));
-    }
-
-    public event EventHandler SelectedUsersChanged;
-    protected virtual void OnSelectedUsersChanged() {
-      if (InvokeRequired)
-        Invoke((MethodInvoker)OnSelectedUsersChanged);
-      else {
-        EventHandler handler = SelectedUsersChanged;
-        if (handler != null)
-          handler(this, EventArgs.Empty);
-      }
-    }
-
-    public event EventHandler StorableStateChanged;
-    protected virtual void OnStorableStateChanged() {
-      if (InvokeRequired)
-        Invoke((MethodInvoker)OnStorableStateChanged);
-      else {
-        EventHandler handler = StorableStateChanged;
-        if (handler != null)
-          handler(this, EventArgs.Empty);
-      }
-    }
-
-    private void lightweightUserView_SelectedUsersChanged(object sender, EventArgs e) {
-      OnSelectedUsersChanged();
-    }
-  }
-}
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableView.Designer.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableView.Designer.cs	(revision 15761)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableView.Designer.cs	(revision 15953)
@@ -45,6 +45,8 @@
     /// </summary>
     private void InitializeComponent() {
+      components = new System.ComponentModel.Container();
       System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RefreshableView));
       this.refreshButton = new System.Windows.Forms.Button();
+      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
       this.SuspendLayout();
       // 
@@ -56,4 +58,5 @@
       this.refreshButton.Size = new System.Drawing.Size(24, 24);
       this.refreshButton.TabIndex = 1;
+      this.toolTip.SetToolTip(this.refreshButton, "Refresh data");
       this.refreshButton.UseVisualStyleBackColor = true;
       this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
@@ -72,4 +75,5 @@
     #endregion
 
+    private System.Windows.Forms.ToolTip toolTip;
     protected System.Windows.Forms.Button refreshButton;
   }
Index: branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/UserInformationDialog.Designer.cs
===================================================================
--- branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/UserInformationDialog.Designer.cs	(revision 15761)
+++ branches/2839_HiveProjectManagement/HeuristicLab.Clients.Access.Views/3.3/UserViews/UserInformationDialog.Designer.cs	(revision 15953)
@@ -46,5 +46,5 @@
     private void InitializeComponent() {
       this.closeButton = new System.Windows.Forms.Button();
-      this.refreshableLightweightUserInformationView = new HeuristicLab.Clients.Access.Views.RefreshableLightweightUserInformationView();
+      this.refreshableLightweightUserInformationView = new HeuristicLab.Clients.Access.Views.RefreshableLightweightAccessClientInformationView();
       this.SuspendLayout();
       // 
@@ -95,5 +95,5 @@
     #endregion
 
-    private RefreshableLightweightUserInformationView refreshableLightweightUserInformationView;
+    private RefreshableLightweightAccessClientInformationView refreshableLightweightUserInformationView;
     private System.Windows.Forms.Button closeButton;
   }
