1 package org.vaadin.tokenfield; 2 3 import org.vaadin.tokenfield.client.ui.TokenFieldServerRpc; 4 5 import com.vaadin.server.PaintException; 6 import com.vaadin.server.PaintTarget; 7 import com.vaadin.v7.ui.ComboBox; 8 9 public abstract class TokenComboBox extends ComboBox { 10 11 private static final long serialVersionUID = 8382983756053298383L; 12 13 protected TokenField.InsertPosition insertPosition; 14 15 private TokenFieldServerRpc rpc = new TokenFieldServerRpc() { 16 public void deleteToken() { 17 onDelete(); 18 } 19 }; 20 21 public TokenComboBox(TokenField.InsertPosition insertPosition) { 22 this.insertPosition = insertPosition; 23 registerRpc(rpc); 24 } 25 26 @Override 27 public void paintContent(PaintTarget target) throws PaintException { 28 super.paintContent(target); 29 target.addVariable(this, "del", false); 30 if (insertPosition == TokenField.InsertPosition.AFTER) { 31 target.addAttribute("after", true); 32 } 33 } 34 35 public void setTokenInsertPosition(TokenField.InsertPosition insertPosition) { 36 this.insertPosition = insertPosition; 37 requestRepaint(); 38 } 39 40 abstract protected void onDelete(); 41 42 }