code: public void moveAttributeValueDown(final CmsAttributeValueView reference) {
  
          final int index = reference.getValueIndex();
          if (index >= (m_entity.getAttribute(m_attributeName).getValueCount() - 1)) {
              return;
          }
          m_widgetService.addChangedOrderPath(getSimplePath(-1));
          reference.hideAllButtons();
          Element parent = reference.getElement().getParentElement();
          parent.getStyle().setPosition(Position.RELATIVE);
          final Element placeHolder = reference.getPlaceholder(null);
          int top = reference.getElement().getOffsetTop();
          int left = reference.getElement().getOffsetLeft();
          int width = reference.getOffsetWidth();
          reference.getElement().getStyle().setPosition(Position.ABSOLUTE);
          reference.getElement().getStyle().setZIndex(5);
          parent.insertAfter(placeHolder, reference.getElement().getNextSibling());
          reference.getElement().getStyle().setTop(top, Unit.PX);
          reference.getElement().getStyle().setLeft(left, Unit.PX);
          reference.getElement().getStyle().setWidth(width, Unit.PX);
          new CmsMoveAnimation(reference.getElement(), top, left, placeHolder.getOffsetTop(), left, new Command() {
  
              public void execute() {
  
                  clearMoveAnimationStyles(placeHolder, reference);
                  moveAttributeValue(reference, index, index + 1);
  
              }
          }).run(200);
          CmsUndoRedoHandler handler = CmsUndoRedoHandler.getInstance();
          if (handler.isIntitalized()) {
              handler.addChange(m_entity.getId(), m_attributeName, 0, ChangeType.sort);
          }
      }
docs: Moves the reference value down in the value list.<p>
  
  @param reference the reference value