/* * 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.impl.DefaultVascBackedEntryFinalizer; import com.idcanet.vasc.impl.DefaultVascBackendController; import com.idcanet.vasc.impl.DefaultVascBackendControllerResolver; import com.idcanet.vasc.impl.DefaultVascEntryController; import com.idcanet.vasc.impl.DefaultVascEntryControllerResolver; 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.type.DefaultVascEntryFieldTypeController; import com.idcanet.vasc.impl.type.DefaultVascEntryFieldTypeControllerResolver; import com.idcanet.vasc.impl.x4o.VascParser; /** * * @author Willem Cazander * @version 1.0 Aug 2, 2007 */ public class TestTable { static VascController getDefaultVascController() throws Exception { // for test TestModelVascDataSource backend = new TestModelVascDataSource(); backend.setId("testBackend1"); // config full controller for local jvm use DefaultVascController c = new DefaultVascController(); DefaultVascBackendControllerResolver vascBackendControllerResolver = new DefaultVascBackendControllerResolver(); DefaultVascBackendController vascBackendController = new DefaultVascBackendController(); vascBackendController.addVascBackend(backend); vascBackendControllerResolver.setVascBackendController(vascBackendController); c.setVascBackendControllerResolver(vascBackendControllerResolver); DefaultVascEntryControllerResolver vascEntryControllerResolver = new DefaultVascEntryControllerResolver(); DefaultVascEntryController vascEntryController = new DefaultVascEntryController(); vascEntryControllerResolver.setVascEntryController(vascEntryController); c.setVascEntryControllerResolver(vascEntryControllerResolver); DefaultVascEntryFieldTypeControllerResolver vascEntryFieldTypeControllerResolver = new DefaultVascEntryFieldTypeControllerResolver(); DefaultVascEntryFieldTypeController vascEntryFieldTypeController = new DefaultVascEntryFieldTypeController(); //vascEntryFieldTypeController. vascEntryFieldTypeControllerResolver.setVascEntryFieldTypeController(vascEntryFieldTypeController); c.setVascEntryFieldTypeControllerResolver(vascEntryFieldTypeControllerResolver); return c; } static public void fill(VascEntry entry,VascController c) { DefaultVascFrontendData vascFrontendData = new DefaultVascFrontendData(); vascFrontendData.setVascController(c); VascI18nTextValue vascEntryResourceResolver = new VascI18nTextValue();// new DefaultVascEntryResourceResolver(); vascFrontendData.setVascEntryResourceResolver(vascEntryResourceResolver); DefaultVascFrontendHelper vascFrontendHelper = new DefaultVascFrontendHelper(); vascFrontendData.setVascFrontendHelper(vascFrontendHelper); entry.setVascFrontendData(vascFrontendData); entry.addRowAction(new AddRowAction()); entry.addRowAction(new EditRowAction()); entry.addRowAction(new DeleteRowAction()); entry.addGlobalAction(new XMLExportGlobalAction()); entry.addGlobalAction(new CSVExportGlobalAction()); entry.addGlobalAction(new RefreshDataGlobalAction()); } static public VascEntry getVascTable() throws Exception { VascController c = getDefaultVascController(); VascParser parser = new VascParser(c); parser.parseResource("resources/vasc/tables.xml"); VascEntry entry = parser.getVascController().getVascEntryControllerResolver().getVascEntryController().getVascEntryById("test1"); fill(entry,c); // config table //VascEntry entry = new DefaultVascEntry(); //entry.setId("test1"); //entry.setBackendId("testBackend"); /* //table.addUserOptions(userOption); //table.addColumnActions(new GraphColumnAction()); VascEntryField field = new DefaultVascEntryField("name"); field.setImage("/META-INF/images/silk/png/tick.png"); entry.addVascEntryField(field); field = new DefaultVascEntryField("description"); field.setVascEntryFieldType(c.getVascEntryFieldTypeControllerResolver().getVascEntryFieldTypeController().getVascEntryFieldTypeById("EmailField")); 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"); field.setVascEntryFieldType(c.getVascEntryFieldTypeControllerResolver().getVascEntryFieldTypeController().getVascEntryFieldTypeById("ListField")); field.getVascEntryFieldType().setDataObject(c.getVascBackendControllerResolver().getVascBackendController().getVascBackendById("testBackend")); entry.addVascEntryField(field); field = new DefaultVascEntryField("hexColor"); field.setVascEntryFieldType(c.getVascEntryFieldTypeControllerResolver().getVascEntryFieldTypeController().getVascEntryFieldTypeById("ColorField")); field.setDefaultValue("#FF3355"); entry.addVascEntryField(field); printEntry(entry); DefaultVascBackedEntryFinalizer f = new DefaultVascBackedEntryFinalizer(); entry = f.finalizeVascEntry(entry,c); printEntry(entry); DefaultVascFrontendEntryFinalizer f2 = new DefaultVascFrontendEntryFinalizer(); entry = f2.finalizeVascEntry(entry,c); //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)); } } } }