 				case Keyboard.ESCAPE:
 					undoLastChange();
 					break;
+				case Keyboard.DOWN:
+					setFocusOnNextAttribute();
+					break;
+				case Keyboard.UP:
+					setFocusOnPreviousAttribute();
+					break;
+				case Keyboard.PAGE_DOWN:
+					setFocusOnNextAttribute(10);
+					break;
+				case Keyboard.PAGE_UP:
+					setFocusOnPreviousAttribute(10);
+					break;
+			}
+		}
+		
+		protected function setFocusOnNextAttribute(offset:int = 1):void {
+			setFocusOnSiblingEntityChild(offset);
+		}
+		
+		protected function setFocusOnPreviousAttribute(offset:int = 1):void {
+			setFocusOnSiblingEntityChild(- offset);
+		}
+		
+		protected function setFocusOnSiblingEntityChild(offset:int):void {
+			var attributeName:String = _view.attributeDefinition.name
+			if ( _view.attributeDefinition is AttributeDefinitionProxy && ! _view.attributeDefinition.multiple ) {
+				var entity:EntityProxy = EntityProxy(_view.parentEntity.getSibling(offset));
+				if ( entity != null ) {
+					var attribute:AttributeProxy = entity.getSingleAttribute(attributeName);
+					var nodeEvent:InputFieldEvent = new InputFieldEvent(InputFieldEvent.SET_FOCUS);
+					nodeEvent.attributeId = attribute.id;
+					nodeEvent.fieldIdx = _view.fieldIndex;
+					eventDispatcher.dispatchEvent(nodeEvent);
+				}
 			}
 		}
 		

			}
			
			BindingUtils.bindSetter(setAttribute, _view, "attribute");
		}
		
		protected static function approveMissingHandler(event:NodeEvent): void {

			super.initEventListeners();
			
			eventDispatcher.addEventListener(ApplicationEvent.UPDATE_RESPONSE_RECEIVED, updateResponseReceivedHandler);
			eventDispatcher.addEventListener(InputFieldEvent.SET_FOCUS, setFocusHandler);
			
			if(_view.textInput != null) {
				_view.textInput.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
