adjusted legal info, refactoring of keyevents, suggesttextfields

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.vaadin.addons.designer.overlay/.settings/com.vaadin.integration.eclipse.prefs b/org.eclipse.osbp.vaadin.addons.designer.overlay/.settings/com.vaadin.integration.eclipse.prefs
index 7d2a1a0..694c8a1 100644
--- a/org.eclipse.osbp.vaadin.addons.designer.overlay/.settings/com.vaadin.integration.eclipse.prefs
+++ b/org.eclipse.osbp.vaadin.addons.designer.overlay/.settings/com.vaadin.integration.eclipse.prefs
@@ -1,4 +1,4 @@
-com.vaadin.integration.eclipse.mavenLatestVersionsUpgrade=["7.5.10","7.7.16"]
+com.vaadin.integration.eclipse.mavenLatestVersionsUpgrade=["7.5.10","7.7.17"]
 com.vaadin.integration.eclipse.previousCompileAction=widgetset
 com.vaadin.integration.eclipse.useLatestNightly=false
 com.vaadin.integration.eclipse.widgetsetBuildsSuspended=true
diff --git a/org.eclipse.osbp.vaadin.addons.kanban/.settings/com.vaadin.integration.eclipse.prefs b/org.eclipse.osbp.vaadin.addons.kanban/.settings/com.vaadin.integration.eclipse.prefs
index 079c585..3785754 100644
--- a/org.eclipse.osbp.vaadin.addons.kanban/.settings/com.vaadin.integration.eclipse.prefs
+++ b/org.eclipse.osbp.vaadin.addons.kanban/.settings/com.vaadin.integration.eclipse.prefs
@@ -1,5 +1,5 @@
 com.vaadin.integration.eclipse.mavenAutoCompileWidgetset=true
-com.vaadin.integration.eclipse.mavenLatestVersionsUpgrade=["7.7.16"]
+com.vaadin.integration.eclipse.mavenLatestVersionsUpgrade=["7.7.17"]
 com.vaadin.integration.eclipse.notifyOfVaadinUpdates=true
 com.vaadin.integration.eclipse.previousCompileAction=widgetset
 com.vaadin.integration.eclipse.useLatestNightly=false
diff --git a/org.eclipse.osbp.vaadin.addons.keyevents/.settings/com.vaadin.integration.eclipse.prefs b/org.eclipse.osbp.vaadin.addons.keyevents/.settings/com.vaadin.integration.eclipse.prefs
index cd0ea90..543ac33 100644
--- a/org.eclipse.osbp.vaadin.addons.keyevents/.settings/com.vaadin.integration.eclipse.prefs
+++ b/org.eclipse.osbp.vaadin.addons.keyevents/.settings/com.vaadin.integration.eclipse.prefs
@@ -1,11 +1,11 @@
 com.vaadin.integration.eclipse.mavenAutoCompileWidgetset=true
-com.vaadin.integration.eclipse.mavenLatestVersionsUpgrade=["7.7.16"]
+com.vaadin.integration.eclipse.mavenLatestVersionsUpgrade=["7.7.17"]
 com.vaadin.integration.eclipse.notifyOfVaadinUpdates=true
 com.vaadin.integration.eclipse.previousCompileAction=widgetset
 com.vaadin.integration.eclipse.useLatestNightly=false
 com.vaadin.integration.eclipse.widgetsetBuildsSuspended=true
-com.vaadin.integration.eclipse.widgetsetCompilationEta=31801
-com.vaadin.integration.eclipse.widgetsetDirty=false
+com.vaadin.integration.eclipse.widgetsetCompilationEta=31469
+com.vaadin.integration.eclipse.widgetsetDirty=true
 com.vaadin.integration.eclipse.widgetsetExtraParameters=-strict -logLevel WARN
 com.vaadin.integration.eclipse.widgetsetStyle=PRETTY
 com.vaadin.integration.eclipse.widgetsetVerbose=true
diff --git a/org.eclipse.osbp.vaadin.addons.keyevents/Sample/org/eclipse/osbp/vaadin/addons/keyevents/sample/KeyEventsSample.java b/org.eclipse.osbp.vaadin.addons.keyevents/Sample/org/eclipse/osbp/vaadin/addons/keyevents/sample/KeyEventsSample.java
index ee9c68a..6d0c343 100644
--- a/org.eclipse.osbp.vaadin.addons.keyevents/Sample/org/eclipse/osbp/vaadin/addons/keyevents/sample/KeyEventsSample.java
+++ b/org.eclipse.osbp.vaadin.addons.keyevents/Sample/org/eclipse/osbp/vaadin/addons/keyevents/sample/KeyEventsSample.java
@@ -36,6 +36,7 @@
 	@WebServlet(value = "/*", asyncSupported = true)
 	@VaadinServletConfiguration(productionMode = false, ui = KeyEventsSample.class, widgetset = "org.eclipse.osbp.vaadin.addons.keyevents.KeyEventsWidgetset")
 	public static class Servlet extends VaadinServlet {
+		String a = "";
 	}
 
 	@Override
@@ -83,7 +84,9 @@
 					e.charCode = 0xDF;
 				}
 			}
-			t.setValue(" "+e.charCode+" "+(char)e.charCode);
+			t.setValue(t.getValue() + (char)e.charCode);
+			return;
+//			t.setValue(" "+e.charCode+" "+(char)e.charCode);
 		});
 
 		this.focus();
diff --git a/org.eclipse.osbp.vaadin.addons.keyevents/src/org/eclipse/osbp/vaadin/addons/keyevents/client/KeyEventExtensionConnector.java b/org.eclipse.osbp.vaadin.addons.keyevents/src/org/eclipse/osbp/vaadin/addons/keyevents/client/KeyEventExtensionConnector.java
index a34203b..782dd5f 100644
--- a/org.eclipse.osbp.vaadin.addons.keyevents/src/org/eclipse/osbp/vaadin/addons/keyevents/client/KeyEventExtensionConnector.java
+++ b/org.eclipse.osbp.vaadin.addons.keyevents/src/org/eclipse/osbp/vaadin/addons/keyevents/client/KeyEventExtensionConnector.java
@@ -1,20 +1,18 @@
 package org.eclipse.osbp.vaadin.addons.keyevents.client;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import org.eclipse.osbp.vaadin.addons.keyevents.KeyEventExtension;
 
+import com.google.gwt.dom.client.Element;
 import com.google.gwt.dom.client.NativeEvent;
+import com.google.gwt.event.dom.client.KeyCodes;
 import com.google.gwt.event.shared.HandlerRegistration;
 import com.google.gwt.user.client.Event.NativePreviewEvent;
 import com.google.gwt.user.client.Event.NativePreviewHandler;
+import com.google.gwt.user.client.ui.RootPanel;
 import com.vaadin.client.ServerConnector;
 import com.vaadin.client.VConsole;
 import com.vaadin.client.communication.RpcProxy;
 import com.vaadin.client.extensions.AbstractExtensionConnector;
-import com.vaadin.event.ShortcutAction.KeyCode;
-import com.vaadin.event.ShortcutAction.ModifierKey;
 import com.vaadin.shared.ui.Connect;
 
 @SuppressWarnings("serial")
@@ -23,23 +21,6 @@
 
 	private KeyEventServerRpc serverRPC = RpcProxy.create(KeyEventServerRpc.class, this);
 	private HandlerRegistration handlerRegistration;
-	protected Map<Integer, String> unkeyMapper = new HashMap<Integer, String>() {
-		private static final long serialVersionUID = 8801421284339992078L;
-		{
-			put(KeyCode.ARROW_DOWN, "ARROW_DOWN");
-			put(KeyCode.ARROW_LEFT, "ARROW_LEFT");
-			put(KeyCode.ARROW_RIGHT, "ARROW_RIGHT");
-			put(KeyCode.ARROW_UP, "ARROW_UP");
-			put(KeyCode.HOME, "HOME");
-			put(KeyCode.END, "END");
-			put(KeyCode.DELETE, "DELETE");
-			put(KeyCode.BACKSPACE, "BACKSPACE");
-			put(ModifierKey.ALT, "ALT");
-			put(ModifierKey.SHIFT, "SHIFT");
-			put(ModifierKey.CTRL, "CTRL");
-			put(ModifierKey.META, "META");
-		}
-	};
 
 	@Override
 	protected void init() {
@@ -47,17 +28,29 @@
 
 		handlerRegistration = com.google.gwt.user.client.Event.addNativePreviewHandler(new NativePreviewHandler() {
 			@Override
-			public void onPreviewNativeEvent(NativePreviewEvent nativePreviewEvent) {
-				switch (nativePreviewEvent.getTypeInt()) {
-				case com.google.gwt.user.client.Event.ONKEYUP:
-					final Event event = createEvent(nativePreviewEvent.getNativeEvent());
-					if (!unkeyMapper.containsKey(event.charCode)) {
-						serverRPC.onKeyPress(event);
-						nativePreviewEvent.cancel();
+			public void onPreviewNativeEvent(NativePreviewEvent event) {
+				if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_BACKSPACE) {
+					final Event evt = createNullEvent();
+					serverRPC.onKeyPress(evt);
+		            if (event.getNativeEvent().getEventTarget() != null) {
+		                Element as = Element.as(event.getNativeEvent().getEventTarget());
+		                if (as == RootPanel.getBodyElement()) {
+		                    event.getNativeEvent().stopPropagation();
+		                    event.getNativeEvent().preventDefault();
+		                }
+		            }
+		 		} else {
+					switch (event.getTypeInt()) {
+					case com.google.gwt.user.client.Event.ONKEYDOWN:
+					case com.google.gwt.user.client.Event.ONKEYUP:
+						final Event evt = createEvent(event.getNativeEvent());
+						if(event.getTypeInt()==com.google.gwt.user.client.Event.ONKEYUP) {
+							serverRPC.onKeyPress(evt);
+						}
+						event.cancel();
+						break;
 					}
-					break;
-				}
-
+		 		}
 			}
 		});
 	}
@@ -66,7 +59,7 @@
 		super.onUnregister();
 
 		if (handlerRegistration != null) {
-			VConsole.log("Unregister handlerRegistratio for keyEvents");
+			VConsole.log("Unregister handlerRegistration for keyEvents");
 			handlerRegistration.removeHandler();
 		}
 	}
@@ -86,4 +79,14 @@
 		return e;
 	}
 
+	protected Event createNullEvent() {
+		Event e = new Event();
+		e.charCode = 'x';
+		e.altKeyDown = false;
+		e.controlKeyDown = false;
+		e.metaKeyDown = false;
+		e.shiftKeyDown = false;
+		return e;
+	}
+
 }
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/.project b/org.eclipse.osbp.vaadin.addons.suggesttext/.project
index 8d17138..a1ffab8 100644
--- a/org.eclipse.osbp.vaadin.addons.suggesttext/.project
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/.project
@@ -41,11 +41,6 @@
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>com.vaadin.integration.eclipse.addonStylesBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
 			<name>org.eclipse.m2e.core.maven2Builder</name>
 			<arguments>
 			</arguments>
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/com.vaadin.integration.eclipse.prefs b/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/com.vaadin.integration.eclipse.prefs
index 2b85cce..27e395e 100644
--- a/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/com.vaadin.integration.eclipse.prefs
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/com.vaadin.integration.eclipse.prefs
@@ -1,5 +1,5 @@
 com.vaadin.integration.eclipse.mavenAutoCompileWidgetset=true
-com.vaadin.integration.eclipse.mavenLatestVersionsUpgrade=["7.7.16"]
+com.vaadin.integration.eclipse.mavenLatestVersionsUpgrade=["7.7.17"]
 com.vaadin.integration.eclipse.notifyOfVaadinUpdates=true
 com.vaadin.integration.eclipse.previousCompileAction=widgetset
 com.vaadin.integration.eclipse.useLatestNightly=false
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/org.eclipse.jdt.core.prefs
index 13b3428..91ca62e 100644
--- a/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/org.eclipse.jdt.core.prefs
@@ -10,4 +10,5 @@
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.release=disabled
 org.eclipse.jdt.core.compiler.source=1.8
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/org.eclipse.wst.common.component b/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/org.eclipse.wst.common.component
index 9578c6f..14142d1 100644
--- a/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/org.eclipse.wst.common.component
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/.settings/org.eclipse.wst.common.component
@@ -3,6 +3,7 @@
         <wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
         <wb-resource deploy-path="/WEB-INF/classes" source-path="/Sample"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/test"/>
         <property name="java-output-path" value="/org.eclipse.osbp.vaadin.addons.suggesttext/build/classes"/>
         <property name="context-root" value="org.eclipse.osbp.vaadin.addons.suggesttext"/>
     </wb-module>
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/ivy.xml b/org.eclipse.osbp.vaadin.addons.suggesttext/ivy.xml
index 1925187..5b53d60 100644
--- a/org.eclipse.osbp.vaadin.addons.suggesttext/ivy.xml
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/ivy.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE ivy-module [
-	<!ENTITY vaadin.version "7.7.6">
+	<!ENTITY vaadin.version "7.7.13">
 ]>
 <ivy-module version="2.0"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/SuggestTextField.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/SuggestTextField.java
index 562b821..352dd2b 100644
--- a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/SuggestTextField.java
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/SuggestTextField.java
@@ -21,6 +21,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.function.Function;
 
 import org.eclipse.osbp.vaadin.addons.suggesttext.client.OQueryDelegate.SuggestionResult;
 import org.eclipse.osbp.vaadin.addons.suggesttext.client.SuggestTextFieldClientRpc;
@@ -102,10 +103,10 @@
 
 		@Override
 		public void selectionChanged(String handleId, String id) {
-			if(!Objects.equals(handleId, currentHandleId)){
+			if (!Objects.equals(handleId, currentHandleId)) {
 				return;
 			}
-			
+
 			Object itemId = getItemById(id);
 			if (itemId != null) {
 				fireSelectionChanged(itemId);
@@ -116,6 +117,11 @@
 		public void setSuggestionEnabled(boolean value) {
 			SuggestTextField.this.setSuggestionEnabled(value);
 		}
+
+		@Override
+		public void openHistorizedDialog() {
+			SuggestTextField.this.openHistorizedDialog();
+		}
 	};
 
 	/** The container. */
@@ -130,6 +136,12 @@
 	/** The uuidmapping. */
 	private Map<String, Object> uuidmapping = new HashMap<>();
 
+	private Object currentItemId;
+
+	private Function<Object, String> captionFunction;
+
+	private ShowHistoryDialogCallback histDialogCallback;
+
 	/**
 	 * Instantiates a new suggest text field.
 	 */
@@ -185,6 +197,44 @@
 	}
 
 	/**
+	 * Sets the function to map the object (DTO) into a string representation.
+	 * 
+	 * @param captionFunction
+	 */
+	public void setCaptionPropertyRetriever(Function<Object, String> captionFunction) {
+		this.captionFunction = captionFunction;
+	}
+	
+	/**
+	 * Sets the current itemId which is displayed.
+	 * 
+	 * @param itemId
+	 */
+	public void setCurrentItemId(Object itemId) {
+//		boolean changed = currentItemId != itemId;
+		currentItemId = itemId;
+
+//		if (changed) {
+//			// null due to constructor call on init
+//			if (textField == null) {
+//				setValue("");
+//				return;
+//			}
+//F
+//			setValue(captionFunction.apply(itemId));
+//		}
+	}
+	
+	/**
+	 * Returns the current selected itemId.
+	 * 
+	 * @return
+	 */
+	public Object getCurrentItemId() {
+		return currentItemId;
+	}
+	
+	/**
 	 * Returns the value from the text field.
 	 * 
 	 * @return
@@ -203,7 +253,9 @@
 		currentHandleId = null;
 		closePopup();
 		textField.setValue(value);
-		if(isSuggestionEnabled()) {
+		// TODO - update later bei RPC
+		setCurrentItemId(null);
+		if (isSuggestionEnabled()) {
 			openPopup();
 		}
 	}
@@ -278,6 +330,15 @@
 	}
 
 	/**
+	 * Opens the historized dialog.
+	 */
+	protected void openHistorizedDialog() {
+		if(histDialogCallback != null) {
+			histDialogCallback.openHistoryDialog();
+		}
+	}
+
+	/**
 	 * Tooltip for "disable suggestions" action.
 	 * 
 	 * @param disableSuggestionTooltip
@@ -287,6 +348,29 @@
 	}
 
 	/**
+	 * True, if the bean is historized. Allows the client to render an
+	 * OpenHistorizedDialog button.
+	 * 
+	 * @param historized
+	 */
+	public void setHistorized(boolean historized) {
+		getState(true).historized = historized;
+	}
+
+	/**
+	 * Sets the historizedTooltip.
+	 * 
+	 * @param historizedTooltip
+	 */
+	public void setHistorizedTooltip(String historizedTooltip) {
+		getState(true).historizedTooltip = historizedTooltip;
+	}
+	
+	public void setShowHistoryDialogCallback(ShowHistoryDialogCallback histDialogCallback) {
+		this.histDialogCallback = histDialogCallback;
+	}
+
+	/**
 	 * True, if suggestions should be enabled. False otherwise.
 	 *
 	 * @param suggestionEnabled
@@ -691,11 +775,25 @@
 		void selectionChanged(SelectionChangedEvent event);
 
 	}
+	
+	public interface ShowHistoryDialogCallback {
+		void openHistoryDialog();
+	}
 
 	public class TextFieldCustom extends TextField {
 
 		public TextFieldCustom() {
 			super();
 		}
+
+		@Override
+		protected void setInternalValue(String newValue) {
+			super.setInternalValue(newValue);
+		}
+
+		@Override
+		public void setValue(String newValue) throws ReadOnlyException {
+			super.setValue(newValue);
+		}
 	}
 }
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OSuggestBox.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OSuggestBox.java
index 3c35070..2cf9335 100644
--- a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OSuggestBox.java
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/OSuggestBox.java
@@ -77,7 +77,10 @@
 public class OSuggestBox extends SimplePanel implements HasText, Focusable, HasEnabled, HasAllKeyHandlers,
 		HasValue<String>, HasSelectionHandlers<Suggestion>, IsEditor<LeafValueEditor<String>> {
 
+	private static final String HIST_HIDDEN = "hist-hidden";
+	private static final String HIST_VISIBLE = "hist-visible";
 	private static final String SELECTED_CLASSNAME = "selected";
+	private static final String HISTORIZED_CLASSNAME = "historized";
 
 	/**
 	 * The callback used when a user selects a {@link Suggestion}.
@@ -811,6 +814,10 @@
 
 	private String disableSuggestionTooltip;
 
+	private String historizedToolTip;
+	private boolean isHistorizedEnabled;
+	private Element historizedModeDiv;
+
 	private SuggestTextFieldServerRpc serverRpc;
 
 	/**
@@ -883,6 +890,8 @@
 
 		Element mainElement = getElement();
 
+		// suggestModeDiv
+		//
 		suggestModeDiv = DOM.createDiv();
 		suggestModeDiv.addClassName("enableSuggestions");
 		mainElement.appendChild(suggestModeDiv);
@@ -902,9 +911,39 @@
 		});
 		Event.sinkEvents(suggestModeDiv, Event.ONCLICK);
 
+		// historizedModeDiv
+		//
+		historizedModeDiv = DOM.createDiv();
+		mainElement.appendChild(historizedModeDiv);
+		historizedModeDiv.addClassName(HISTORIZED_CLASSNAME);
+		historizedModeDiv.setTitle(historizedToolTip);
+		
+		historizedModeDiv.removeClassName(HIST_VISIBLE);
+		historizedModeDiv.removeClassName(HIST_HIDDEN);
+		if(isHistorizedEnabled) {
+			historizedModeDiv.addClassName(HIST_VISIBLE);
+		}else{
+			historizedModeDiv.addClassName(HIST_HIDDEN);
+		}
+
+		Event.setEventListener(historizedModeDiv, new EventListener() {
+			@Override
+			public void onBrowserEvent(Event event) {
+				showHistorizedDialog();
+			}
+		});
+		Event.sinkEvents(historizedModeDiv, Event.ONCLICK);
+
 		setStyleName(STYLENAME_DEFAULT);
 	}
 
+	/**
+	 * Opens the historized dialog server side by RPC call.
+	 */
+	protected void showHistorizedDialog() {
+		serverRpc.openHistorizedDialog();
+	}
+
 	public boolean isSuggestMode() {
 		return suggestModeDiv.hasClassName(SELECTED_CLASSNAME);
 	}
@@ -1432,4 +1471,28 @@
 		this.serverRpc = serverRpc;
 	}
 
+	public void setIsHistorizedEnabled(boolean historized) {
+		this.isHistorizedEnabled = historized;
+		
+		if(historizedModeDiv != null) {
+			historizedModeDiv.removeClassName(HIST_VISIBLE);
+			historizedModeDiv.removeClassName(HIST_HIDDEN);
+			
+			if(isHistorizedEnabled) {
+				historizedModeDiv.addClassName(HIST_VISIBLE);
+			}else{
+				historizedModeDiv.addClassName(HIST_HIDDEN);
+			}
+		}
+	}
+
+	public void setHistorizedToolTip(String historizedTooltip) {
+		this.historizedToolTip = historizedTooltip;
+		
+		if(historizedModeDiv != null) {
+			historizedModeDiv.setTitle(historizedTooltip);
+		}
+
+	}
+
 }
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldConnector.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldConnector.java
index cd25d5c..6f0757e 100644
--- a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldConnector.java
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldConnector.java
@@ -133,6 +133,9 @@
 		getWidget().setOpenPopupKey(getState().openPopup_key);
 		getWidget().setOpenPopupKeyModifier(getState().openPopup_modifier);
 		getWidget().setDisableSuggestionTooltip(getState().disableSuggestionTooltip);
+		getWidget().setIsHistorizedEnabled(getState().historized);
+		getWidget().setHistorizedToolTip(getState().historizedTooltip);
+		
 	}
 
 	/*
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldServerRpc.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldServerRpc.java
index d429868..fa72645 100644
--- a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldServerRpc.java
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldServerRpc.java
@@ -16,7 +16,6 @@
 
 import com.vaadin.shared.communication.ServerRpc;
 
-// TODO: Auto-generated Javadoc
 /**
  * The Interface SuggestTextFieldServerRpc.
  */
@@ -52,4 +51,9 @@
 	 */
 	public void setSuggestionEnabled(boolean value);
 
+	/**
+	 * Opens the historized dialog.
+	 */
+	public void openHistorizedDialog();
+
 }
diff --git a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldState.java b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldState.java
index bab3684..48e1957 100644
--- a/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldState.java
+++ b/org.eclipse.osbp.vaadin.addons.suggesttext/src/org/eclipse/osbp/vaadin/addons/suggesttext/client/SuggestTextFieldState.java
@@ -59,4 +59,14 @@
 	 * Tooltip text
 	 */
 	public String disableSuggestionTooltip = "disable / enable suggestion";
+
+	/**
+	 * True if content is historized.
+	 */
+	public boolean historized;
+
+	/**
+	 * The tooltip for historized button.
+	 */
+	public String historizedTooltip;
 }