catch up with branch daily

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.ui.api/META-INF/MANIFEST.MF b/org.eclipse.osbp.ui.api/META-INF/MANIFEST.MF
index b614a09..0baa7f7 100644
--- a/org.eclipse.osbp.ui.api/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.ui.api/META-INF/MANIFEST.MF
@@ -13,6 +13,7 @@
  org.eclipse.osbp.ui.api.contextfunction;version="0.9.0";uses:="com.vaadin.ui",
  org.eclipse.osbp.ui.api.customfields;version="0.9.0";uses:="com.vaadin.server,org.eclipse.e4.core.services.events,com.vaadin.ui",
  org.eclipse.osbp.ui.api.datamart;version="0.9.0",
+ org.eclipse.osbp.ui.api.date;version="0.9.0",
  org.eclipse.osbp.ui.api.e4;version="0.9.0",
  org.eclipse.osbp.ui.api.functionlibrary;version="0.9.0";uses:="org.eclipse.osbp.ui.api.statemachine",
  org.eclipse.osbp.ui.api.layout;version="0.9.0",
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/customfields/IBlobService.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/customfields/IBlobService.java
index c2763de..c4fab0a 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/customfields/IBlobService.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/customfields/IBlobService.java
@@ -197,4 +197,34 @@
 	 * @return the byte array image
 	 */
 	byte[] getByteArrayImage(String uuid, int resolutionId);
+
+	/**
+	 * Gets the base 64 image.
+	 *
+	 * @param uuid the uuid
+	 * @param resolutionId the resolution id
+	 * @return the base 64 image
+	 */
+	String getBase64Image(String uuid, int resolutionId);
+	
+	/**
+	 * Gets the buffered image by name.
+	 *
+	 * @param name the name
+	 * @param resolutionId the resolution id
+	 * @param mimeType the mime type
+	 * @return the buffered image by name
+	 */
+	BufferedImage getBufferedImageByName(String name, int resolutionId, String mimeType);
+	
+	/**
+	 * Gets the base 64 image by name.
+	 *
+	 * @param name the name
+	 * @param resolutionId the resolution id
+	 * @param mimeType the mime type
+	 * @return the base 64 image by name
+	 */
+	String getBase64ImageByName(String name, int resolutionId, String mimeType);
+	
 }
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/DatamartFilter.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/DatamartFilter.java
index d190eba..0520fca 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/DatamartFilter.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/DatamartFilter.java
@@ -63,6 +63,12 @@
         
         /**  hierarchy with multiple values. */
         MULTIPLEHIERARCHY, 
+
+        /**  hierarchy children with single value. */
+        SINGLEHIERARCHYCHILDREN, 
+        
+        /**  hierarchy children with multiple values. */
+        MULTIPLEHIERARCHYCHILDREN, 
         
         /**  range of two values. */
         BETWEEN, 
@@ -221,6 +227,9 @@
 
     /** The selected data. */
     private List<IDualData> selection;
+    
+    /** optional filter. */
+    private boolean optional;
 
 	private IDatamartBetweenInput inputComponent;
 
@@ -240,12 +249,13 @@
      * @param name the name
      * @param sql the sql
      */
-    public DatamartFilter(IDSLMetadataService dslMetadataService, IUser user, FilterType type, String name, String sql) {
+    public DatamartFilter(IDSLMetadataService dslMetadataService, IUser user, FilterType type, String name, String sql, boolean optional) {
     	this.dslMetadataService = dslMetadataService;
     	this.user = user;
     	this.type = type;
     	this.name = name;
     	this.sql = sql;
+    	this.setOptional(optional);
     	data = new ArrayList<>();
     	selection = new ArrayList<>();
 	}
@@ -258,7 +268,7 @@
      * @param name the name
      * @param sql the sql
      */
-    public DatamartFilter(IDSLMetadataService dslMetadataService, IUser user, FilterType type, Map<String, String> dateFormatMap, String name, String sql) {
+    public DatamartFilter(IDSLMetadataService dslMetadataService, IUser user, FilterType type, Map<String, String> dateFormatMap, String name, String sql, boolean optional) {
     	this.dslMetadataService = dslMetadataService;
     	this.user = user;
     	this.type = type;
@@ -278,6 +288,7 @@
     	this.format = format;
     	this.resolution = resolution;
     	this.sql = sql;
+    	this.setOptional(optional);
     	data = new ArrayList<>();
     	selection = new ArrayList<>();
     }
@@ -300,7 +311,6 @@
 		return DatamartFilter.decorate(name);
 	}
 
-
 	/**
 	 * Decorate a string to be replaced later by a selected value/list.
 	 *
@@ -419,6 +429,14 @@
 		return data;
 	}
 
+	public boolean isOptional() {
+		return optional;
+	}
+
+	public void setOptional(boolean optional) {
+		this.optional = optional;
+	}
+
 	/**
 	 * Sets the data.
 	 *
@@ -582,23 +600,10 @@
 	@SuppressWarnings("unchecked")
 	public boolean canSelectData(Map<EventDispatcherDataTag, Object> selectedData, boolean single, boolean olap) {
 		for(EventDispatcherDataTag tag : selectedData.keySet()) {
-			switch(tag) {
-			case ID: 
+			if(tag == EventDispatcherDataTag.ID) { 
 				return false;
-			case LIST:
-				switch(type) {
-				case SINGLE:
-				case MULTIPLE: 
-					return selectData((List<String>)selectedData.get(tag), false);
-				case EXCEPT: 
-				case SINGLESLICER: 
-				case SINGLEHIERARCHY:
-				case MULTIPLESLICER: 
-				case MULTIPLEHIERARCHY:
-					return selectData((List<String>)selectedData.get(tag), true);
-				default:
-					return false;
-				}
+			} else if(tag == EventDispatcherDataTag.LIST) {
+				return selectData((List<String>)selectedData.get(tag));
 			}
 		}
 		return false;
@@ -611,34 +616,47 @@
 	 * @param olap the olap
 	 * @return true, if successful
 	 */
-	private boolean selectData(List<String> selected, boolean olap) {
-		boolean first = true;
+	private boolean selectData(List<String> selected) {
+		boolean firstAdd = true; 
 		for(String item:selected) {
-			if(!olap) {
+			switch(type) {
+			case SINGLE:
+			case MULTIPLE: 
 				for(IDualData dd : data) {
 					if(dd.getSelectionValue().equals(item)) {
-						if(first) {
+						if(firstAdd) {
+							firstAdd = false;
 							clearSelectedData();
-							first = false;
 						}
 						addSelectedItem(dd);
 						return true;
 					}
 				}
-			}
-			if(olap && !item.contains("[") && !data.isEmpty()) {
-				String prefix = data.get(0).getHierarchyWithBrackets()+".";
-				String suffix = ".["+item.replace(".", "].[")+"]";
-				for(IDualData dd : data) {
-					if(dd.getSelectionValue().startsWith(prefix) &&  dd.getSelectionValue().endsWith(suffix)) {
-						if(first) {
-							clearSelectedData();
-							first = false;
+				break;
+			case EXCEPT: 
+			case SINGLESLICER: 
+			case MULTIPLESLICER: 
+			case SINGLEHIERARCHY:
+			case MULTIPLEHIERARCHY:
+			case SINGLEHIERARCHYCHILDREN:
+			case MULTIPLEHIERARCHYCHILDREN:
+				if(!item.contains("[") && !data.isEmpty()) {
+					String prefix = data.get(0).getHierarchyWithBrackets()+".";
+					String suffix = ".["+item.replace(".", "].[")+"]";
+					for(IDualData dd : data) {
+						if(dd.getSelectionValue().startsWith(prefix) &&  dd.getSelectionValue().endsWith(suffix)) {
+							if(firstAdd) {
+								firstAdd = false;
+								clearSelectedData();
+							}
+							addSelectedItem(dd);
+							return true;
 						}
-						addSelectedItem(dd);
-						return true;
 					}
 				}
+				break;
+			default:
+				return false;
 			}
 		}
 		return false;
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java
index 27213e3..c95211f 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java
@@ -21,9 +21,12 @@
 import org.eclipse.osbp.ui.api.user.IUser;
 
  public interface IDataMart {
-     enum EType {
+     public enum EType {
         BOOLEAN, BOOLEAN_CHECKBOX, DATE, TIME, TIMESTAMP, FLOAT, DOUBLE, BYTE, SHORT, INTEGER, LONG, STRING, RICHTEXTAREA, BLOPMAPPING, LENUM, NONE
      }
+     public enum AttributeVisibility {
+    	 HIDDEN, READONLY
+     }
     
 	 static final String DATAMART_CLASS_POSTFIX = "Datamart";
 	 static final String DATAMART_SERVICE_POSTFIX = "DatamartService";
@@ -39,6 +42,7 @@
 	 Map<String, String> getAliasMap();
 	 Map<String, EType> getTypesMap();
 	 Map<String, String> getTypesProp();
+	 Map<String, AttributeVisibility> getHiddenMap();
 	 List<DatamartPrimary<?>> getPrimaryList();
 	 void computeConditions();
 	 void clearCache();
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/date/SimpleDateFormatter.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/date/SimpleDateFormatter.java
new file mode 100644
index 0000000..0693860
--- /dev/null
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/date/SimpleDateFormatter.java
@@ -0,0 +1,101 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the terms of the Eclipse Public License 2.0        
+ *  which accompanies this distribution, and is available at                  
+ *  https://www.eclipse.org/legal/epl-2.0/                                 
+ *                                 
+ *  SPDX-License-Identifier: EPL-2.0                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.ui.api.date;
+
+import java.text.DateFormat;
+import java.util.Locale;
+
+public class SimpleDateFormatter {
+
+	public static DateFormat getFormat(String format, Locale locale) {
+		DateFormat dateFormat = null;
+		if (format.equals("SHORTDATE")) {
+			dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale);
+		}
+		if (format.equals("MEDIUMDATE")) {
+			dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
+		}
+		if (format.equals("LONGDATE")) {
+			dateFormat = DateFormat.getDateInstance(DateFormat.LONG, locale);
+		}
+		if (format.equals("FULLDATE")) {
+			dateFormat = DateFormat.getDateInstance(DateFormat.FULL, locale);
+		}
+		if (format.equals("SHORTTIME")) {
+			dateFormat = DateFormat.getTimeInstance(DateFormat.SHORT, locale);
+		}
+		if (format.equals("MEDIUMTIME")) {
+			dateFormat = DateFormat.getTimeInstance(DateFormat.MEDIUM, locale);
+		}
+		if (format.equals("LONGTIME")) {
+			dateFormat = DateFormat.getTimeInstance(DateFormat.LONG, locale);
+		}
+		if (format.equals("FULLTIME")) {
+			dateFormat = DateFormat.getTimeInstance(DateFormat.FULL, locale);
+		}
+		if (format.equals("SHORTDATESHORTTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
+		}
+		if (format.equals("SHORTDATEMEDIUMTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM, locale);
+		}
+		if (format.equals("SHORTDATELONGTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG, locale);
+		}
+		if (format.equals("SHORTDATEFULLTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.FULL, locale);
+		}
+		if (format.equals("MEDIUMDATESHORTTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT, locale);
+		}
+		if (format.equals("MEDIUMDATEMEDIUMTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, locale);
+		}
+		if (format.equals("MEDIUMDATELONGTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG, locale);
+		}
+		if (format.equals("MEDIUMDATEFULLTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.FULL, locale);
+		}
+		if (format.equals("LONGDATESHORTTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT, locale);
+		}
+		if (format.equals("LONGDATEMEDIUMTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.MEDIUM, locale);
+		}
+		if (format.equals("LONGDATELONGTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
+		}
+		if (format.equals("LONGDATEFULLTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.FULL, locale);
+		}
+		if (format.equals("FULLDATESHORTTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.SHORT, locale);
+		}
+		if (format.equals("FULLDATEMEDIUMTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.MEDIUM, locale);
+		}
+		if (format.equals("FULLDATELONGTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.LONG, locale);
+		}
+		if (format.equals("FULLDATEFULLTIME")) {
+			dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, locale);
+		}
+		dateFormat.setLenient(false);
+        return dateFormat;
+	}
+
+}
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/e4/IE4Dialog.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/e4/IE4Dialog.java
index 530312f..d77fd8a 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/e4/IE4Dialog.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/e4/IE4Dialog.java
@@ -15,5 +15,5 @@
 package org.eclipse.osbp.ui.api.e4;
 
 public interface IE4Dialog {
-
+	String getStateLabelUUID();
 }
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/functionlibrary/IFunctionLibraryService.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/functionlibrary/IFunctionLibraryService.java
index 9e34f1f..699831e 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/functionlibrary/IFunctionLibraryService.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/functionlibrary/IFunctionLibraryService.java
@@ -54,5 +54,6 @@
 			String methodName, Object... params);
 	
 	public Set<IStatus> validation(String className, Object clazz, Map<String, Object> properties);
-
+	
+	public boolean initialization(String className, String methodName, Object clazz, Map<String, Object> properties);
 }
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/message/MessageEvent.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/message/MessageEvent.java
index 5691c42..c873d22 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/message/MessageEvent.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/message/MessageEvent.java
@@ -37,5 +37,14 @@
 	public void setId(String id) {
 		this.id = id;
 	}
-	
+	public String toString() {
+		StringBuilder str = new StringBuilder();
+		str.append("type ");
+		str.append(type.name());
+		str.append(" : ");
+		str.append("id>");
+		str.append(id);
+		str.append("<");
+		return str.toString(); 
+	}
 }
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/perspective/IPerspectiveProvider.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/perspective/IPerspectiveProvider.java
index a78ac6f..e19b2f8 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/perspective/IPerspectiveProvider.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/perspective/IPerspectiveProvider.java
@@ -49,6 +49,12 @@
 		public static final String DIALOG = "dialog";//$NON-NLS-1$
 	}
 	
+	public static final class BrowserConstants {
+		private BrowserConstants() {
+		}
+		public static final String URL = "url";//$NON-NLS-1$
+	}
+	
 	public static final class E4Constants {
 		private E4Constants() {
 		}
@@ -93,6 +99,15 @@
 		public static final String TAG_NOT_IN_OPEN_PERSPECTIVE_DIALOG = "not_in_open_perspective_dialog";
 
 	}
+	
+	public static final class EventDispatcherConstants {
+		private EventDispatcherConstants(){
+		}
+		/**
+		 * Name of the key corresponding to the list of accepted senders. 
+		 */
+		public static final String ACCEPTED_SENDERS = "accepted_senders"; 
+	}
 
 	void openPerspective(String perspectiveId);
 	
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/pos/PenData.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/pos/PenData.java
index df426aa..ac162b1 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/pos/PenData.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/pos/PenData.java
@@ -21,6 +21,9 @@
 	private int x;
 	private int y;
 	
+	public PenData() {
+	}
+
 	public PenData(int rdy, int sw, int pressure, int x, int y) {
 		this.rdy = rdy;
 		this.sw = sw;
@@ -29,6 +32,14 @@
 		this.rdy = y;
 	}
 
+	public PenData(PenData data) {
+		this.rdy = data.getRdy();
+		this.sw = data.getSw();
+		this.pressure = data.getPressure();
+		this.x = data.getX();
+		this.rdy = data.getY();
+	}
+
 	public int getRdy() {
 		return rdy;
 	}
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/report/IReportProvider.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/report/IReportProvider.java
index 97aa4de..a00a56e 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/report/IReportProvider.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/report/IReportProvider.java
@@ -70,6 +70,8 @@
 		}
 	}
 
+	void printReportAsPdf(String reportId, IEclipseContext eclipseContext, Map<String, String> filterMap, String printService);
+
 	void printReportAsPdf(String reportId, IEclipseContext eclipseContext, Map<String, String> filterMap);
 
 	InputStream get(String reportId, IEclipseContext eclipseContext, Map<String, String> filterMap);
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IBeeper.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IBeeper.java
index bd0337a..cd03d0b 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IBeeper.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IBeeper.java
@@ -16,4 +16,5 @@
 
 public interface IBeeper {
 	void beep(Integer duration, Integer frequency);
+	void playSound(String url);
 }
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IStateMachine.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IStateMachine.java
index 3941553..aa9e643 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IStateMachine.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IStateMachine.java
@@ -190,4 +190,12 @@
 	void installKeyEventConsumer(VerticalLayout layout);
 
 	void uninstallKeyEventConsumer();
+	
+	void blockQueueTaking(boolean block);
+	
+	boolean isJavaPosRemote();
+	
+	int getRemotePort();
+	
+	void setRemotePort(int port);
 }
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/themes/EnumCssClass.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/themes/EnumCssClass.java
index a362a6a..fa50e8e 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/themes/EnumCssClass.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/themes/EnumCssClass.java
@@ -47,7 +47,10 @@
 	TABLE_VIEW,
 	TOPOLOGY_VIEW,
 	MPARTTOOLBARAREA,
-	MPARTTOOLBAR;
+	MPARTTOOLBAR,
+	TOOLBAR_STATE,
+	TOOLBAR_BUTTON,
+	TOOLBAR_STATE_CONTAINER;
 
 	public String styleName() {
 		return toString();
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/user/IUser.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/user/IUser.java
index 9526926..e123b2b 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/user/IUser.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/user/IUser.java
@@ -235,7 +235,7 @@
 	interface IColumnUtil {
 		String getColumnWidth(String key);
 		String getColumnCollapsed(String key);
-		Object[] getVisibleColumns(String key);
+		Map<Object, Integer> getVisibleColumns(String key);
 	}
 
 }
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/IUserAccessService.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/IUserAccessService.java
index bb96905..0f64651 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/IUserAccessService.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/IUserAccessService.java
@@ -469,13 +469,6 @@
 	 */
 	boolean isSuperuser();
 
-	/**
-	 * Checks if is supervisor.
-	 *
-	 * @return true, if is supervisor
-	 */
-	boolean isSupervisor();
-
 	void persistProperties(Map<String, Object> properties);
 
 }