1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
- package com.vaadin.tests;
-
- import java.util.Random;
-
- import com.vaadin.ui.CustomComponent;
- import com.vaadin.ui.Panel;
- import com.vaadin.ui.VerticalLayout;
- import com.vaadin.v7.data.Item;
- import com.vaadin.v7.ui.AbstractSelect;
- import com.vaadin.v7.ui.Select;
-
- public class UsingCustomNewItemHandlerInSelect extends CustomComponent {
-
- private final Select select = new Select();
-
- public static Random random = new Random(1);
-
- private static int sequence = 0;
-
- public UsingCustomNewItemHandlerInSelect() {
-
- VerticalLayout pl = new VerticalLayout();
- pl.setMargin(true);
- final Panel panel = new Panel("Select demo", pl);
- pl.addComponent(select);
-
- select.setCaption("Select component");
- select.setImmediate(true);
- select.addContainerProperty("CAPTION", String.class, "");
- select.setItemCaptionMode(Select.ITEM_CAPTION_MODE_PROPERTY);
- select.setItemCaptionPropertyId("CAPTION");
- select.setNewItemsAllowed(true);
- select.setNewItemHandler(new MyNewItemHandler());
-
- populateSelect();
-
- setCompositionRoot(panel);
- }
-
- public void populateSelect() {
- final String[] names = new String[] { "John", "Mary", "Joe", "Sarah",
- "Jeff", "Jane", "Peter", "Marc", "Josie", "Linus" };
- for (int j = 0; j < 4; j++) {
- Integer id = new Integer(sequence++);
- Item item = select.addItem(id);
- item.getItemProperty("CAPTION").setValue(id.toString() + ": "
- + names[random.nextInt() % names.length]);
- }
- }
-
- public class MyNewItemHandler implements AbstractSelect.NewItemHandler {
- @Override
- public void addNewItem(String newItemCaption) {
- // here could be db insert or other backend operation
- Integer id = new Integer(sequence++);
- Item item = select.addItem(id);
- item.getItemProperty("CAPTION")
- .setValue(id.toString() + ": " + newItemCaption);
- select.setValue(id);
- }
-
- }
-
- }
|