/* * Copyright 2004-2006 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 com.idcanet.vasc; import java.lang.reflect.Method; import java.util.Date; import com.idcanet.vasc.core.VascController; import com.idcanet.vasc.core.VascEntry; import com.idcanet.vasc.core.VascEntryField; import com.idcanet.vasc.core.ui.VascList; import com.idcanet.vasc.impl.DefaultVascBackedEntryFinalizer; import com.idcanet.vasc.impl.DefaultVascFrontendEntryFinalizer; import com.idcanet.vasc.impl.DefaultVascController; import com.idcanet.vasc.impl.DefaultVascEntry; import com.idcanet.vasc.impl.DefaultVascEntryField; import com.idcanet.vasc.impl.DefaultVascFrontendData; import com.idcanet.vasc.impl.DefaultVascFrontendHelper; import com.idcanet.vasc.impl.actions.AddRowAction; import com.idcanet.vasc.impl.actions.CSVExportGlobalAction; import com.idcanet.vasc.impl.actions.DeleteRowAction; import com.idcanet.vasc.impl.actions.EditRowAction; import com.idcanet.vasc.impl.actions.RefreshDataGlobalAction; import com.idcanet.vasc.impl.actions.XMLExportGlobalAction; import com.idcanet.vasc.impl.entry.BeanVascEntryRecordCreator; import com.idcanet.vasc.impl.entry.BeanPropertyVascEntryFieldValue; import com.idcanet.vasc.impl.entry.DefaultVascEntryResourceResolver; import com.idcanet.vasc.impl.type.DefaultVascEntryFieldTypeController; import com.idcanet.vasc.impl.type.DefaultVascEntryFieldTypeControllerResolver; import com.idcanet.vasc.models.TestModel; /** * * @author Willem Cazander * @version 1.0 Aug 2, 2007 */ public class TestTable { static VascController getDefaultVascController() throws Exception { DefaultVascController c = new DefaultVascController(); //DefaultVascBackendControllerResolver vascBackendControllerResolver = new DefaultVascBackendControllerResolver(); //c.setVascBackendControllerResolver(vascBackendControllerResolver); //DefaultVascEntryControllerResolver vascEntryControllerResolver = new DefaultVascEntryControllerResolver(); //c.setVascEntryControllerResolver(vascEntryControllerResolver); DefaultVascEntryFieldTypeControllerResolver vascEntryFieldTypeControllerResolver = new DefaultVascEntryFieldTypeControllerResolver(); DefaultVascEntryFieldTypeController vascEntryFieldTypeController = new DefaultVascEntryFieldTypeController(); vascEntryFieldTypeControllerResolver.setVascEntryFieldTypeController(vascEntryFieldTypeController); c.setVascEntryFieldTypeControllerResolver(vascEntryFieldTypeControllerResolver); return c; } static public VascEntry getVascTable() throws Exception { // define query /* XTESParser parser = new XTESParser(); parser.parseResource("/resources/xtes/tests.xml"); TemplateStore store = XTESParser.getTemplateStore(parser.getElementContext()); Query query = store.getQuery("testUsers2"); */ VascController c = getDefaultVascController(); TestModelVascDataSource data = new TestModelVascDataSource(); // config table VascEntry entry = new DefaultVascEntry(); DefaultVascFrontendData vascFrontendData = new DefaultVascFrontendData(); vascFrontendData.setVascBackend(data); DefaultVascEntryResourceResolver vascEntryResourceResolver = new DefaultVascEntryResourceResolver(); vascFrontendData.setVascEntryResourceResolver(vascEntryResourceResolver); DefaultVascFrontendHelper vascFrontendHelper = new DefaultVascFrontendHelper(); vascFrontendData.setVascFrontendHelper(vascFrontendHelper); entry.setVascFrontendData(vascFrontendData); entry.setId("test1"); entry.addRowAction(new AddRowAction()); entry.addRowAction(new EditRowAction()); entry.addRowAction(new DeleteRowAction()); entry.addGlobalAction(new XMLExportGlobalAction()); entry.addGlobalAction(new CSVExportGlobalAction()); entry.addGlobalAction(new RefreshDataGlobalAction()); //table.addUserOptions(userOption); //table.addColumnActions(new GraphColumnAction()); VascEntryField field = new DefaultVascEntryField("name"); field.setImage("/META-INF/images/silk/png/tick.png"); try { field.setVascEntryFieldType(c.getVascEntryFieldTypeControllerResolver().getVascEntryFieldTypeController().getVascEntryFieldType("TextField")); } catch (Throwable e) { e.printStackTrace(); } field.setVascEntryFieldValue(new BeanPropertyVascEntryFieldValue("name")); entry.addVascEntryField(field); field = new DefaultVascEntryField("description"); field.setVascEntryFieldValue(new BeanPropertyVascEntryFieldValue("description")); entry.addVascEntryField(field); field = new DefaultVascEntryField("active"); field.setDefaultValue(true); entry.addVascEntryField(field); field = new DefaultVascEntryField("date"); field.setDefaultValue(new Date()); entry.addVascEntryField(field); field = new DefaultVascEntryField("testModel"); VascList list = new VascList(); list.setVascSelectItemModel(data); //field.setVascUIComponent(list); entry.addVascEntryField(field); field = new DefaultVascEntryField("hexColor"); field.setDefaultValue("#FF3355"); //VascColorChooser ui = new VascColorChooser(); //ui.setHexSwingEncoding(true); //field.setVascUIComponent(ui); entry.addVascEntryField(field); printEntry(entry); DefaultVascBackedEntryFinalizer f = new DefaultVascBackedEntryFinalizer(); entry = f.finalizeVascEntry(entry); printEntry(entry); DefaultVascFrontendEntryFinalizer f2 = new DefaultVascFrontendEntryFinalizer(); entry = f2.finalizeVascEntry(entry); //printEntry(entry); return entry; } static void printEntry(VascEntry e) throws Exception { System.out.println(""); System.out.println("=== Printing entry ==="); System.out.println(""); for (Method m:e.getClass().getMethods()) { if (m.getName().startsWith("get")==false) { //a bit dirty continue; } if (m.getParameterTypes().length>0) { continue; } System.out.println("prop: "+m.getName()+" -> "+m.invoke(e, null)); } System.out.println(""); System.out.println("=== Fields ==="); for (VascEntryField vef:e.getVascEntryFields()) { System.out.println("=== Field: "+vef.getId()); for (Method m:vef.getClass().getMethods()) { if (m.getName().startsWith("get")==false) { //a bit dirty continue; } if (m.getParameterTypes().length>0) { continue; } System.out.println("prop: "+m.getName()+" -> "+m.invoke(vef, null)); } } } }