/* * Copyright 2004-2007 IDCA. All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the * following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and * the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions * and the following disclaimer in the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY IDCA AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IDCA OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * The views and conclusions contained in the software and documentation are those of the authors and * should not be interpreted as representing official policies, either expressed or implied, of IDCA. */ package org.x4o.vasc; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.x4o.vasc.core.AbstractVascBackend; import org.x4o.vasc.core.VascBackendState; import org.x4o.vasc.core.VascEntry; import org.x4o.vasc.core.VascEntryField; import org.x4o.vasc.core.VascException; import org.x4o.vasc.core.entry.VascEntryFieldValue; import org.x4o.vasc.core.entry.VascEntryRecordCreator; import org.x4o.vasc.core.ui.VascSelectItem; import org.x4o.vasc.core.ui.VascSelectItemModel; import org.x4o.vasc.impl.entry.BeanPropertyVascEntryFieldValue; import org.x4o.vasc.impl.entry.BeanVascEntryRecordCreator; /** * * @author Willem Cazander * @version 1.0 Mar 21, 2007 */ public class TestModelVascDataSource extends AbstractVascBackend implements VascSelectItemModel { private List testModels = null; private String nullLabel = null; private String nullKeyValue = null; public TestModelVascDataSource() { testModels = new ArrayList(2); TestModel t = new TestModel(); t.setDate(new Date()); t.setDescription("yoyo test"); t.setName("this Name"); t.setPrice(34.1f); t.setActive(true); t.setHexColor("#FF66EE"); testModels.add(t); t = new TestModel(); t.setDate(new Date()); t.setDescription("Model2 test"); t.setName("BeanSourde"); t.setPrice(19.2f); t.setActive(false); t.setTestModel((TestModel)testModels.get(0)); testModels.add(t); } public TestModelVascDataSource(List testModels) { this.testModels=testModels; } public List execute(VascBackendState state) throws VascException { return testModels; } public void persist(Object object) throws VascException { testModels.add(object); } public Object merge(Object object) throws VascException { if(testModels.contains(object)==false) { testModels.add(object); } return object; } public void delete(Object object) throws VascException { testModels.remove(object); } public VascEntryFieldValue provideVascEntryFieldValue(VascEntryField field) { return new BeanPropertyVascEntryFieldValue(field.getBackendName()); } public VascEntryRecordCreator provideVascEntryRecordCreator(VascEntry vascEntry) { return new BeanVascEntryRecordCreator(TestModel.class); } // --- VascSelectItemModel interface public List getVascSelectItems(VascEntry entry) { List res = new ArrayList(4); for (Object o:testModels) { TestModel t = (TestModel)o; VascSelectItem i = new VascSelectItem(t.getName(),t); res.add(i); } return res; } /** * @return the nullLabel */ public String getNullLabel() { return nullLabel; } /** * @param nullLabel the nullLabel to set */ public void setNullLabel(String nullLabel) { this.nullLabel = nullLabel; } /** * @return the nullKeyValue */ public String getNullKeyValue() { return nullKeyValue; } /** * @param nullKeyValue the nullKeyValue to set */ public void setNullKeyValue(String nullKeyValue) { this.nullKeyValue = nullKeyValue; } }