/* * 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.io.File; import java.io.FileOutputStream; import java.lang.reflect.Method; import com.idcanet.vasc.core.VascController; import com.idcanet.vasc.core.VascEntry; import com.idcanet.vasc.core.VascEntryField; 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.DefaultVascController; import com.idcanet.vasc.impl.DefaultVascFrontendData; import com.idcanet.vasc.impl.DefaultVascFrontendHelper; import com.idcanet.vasc.impl.DefaultVascUserRoleController; import com.idcanet.vasc.impl.DefaultVascUserRoleControllerResolver; 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); DefaultVascUserRoleControllerResolver vascUserRoleControllerResolver = new DefaultVascUserRoleControllerResolver(); DefaultVascUserRoleController vascUserRoleController = new DefaultVascUserRoleController(2288L,"idca.nl","user","admin"); vascUserRoleControllerResolver.setVascUserRoleController(vascUserRoleController); c.setVascUserRoleControllerResolver(vascUserRoleControllerResolver); 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); // hack if (entry.getVascFrontendData()!=null) { entry.setVascFrontendData(vascFrontendData); return; } else { 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); File f = File.createTempFile("test-vasc", ".xml"); parser.setDebugOutputStream(new FileOutputStream(f)); parser.parseResource("vasc/tables.xml"); VascEntry entry = parser.getVascController().getVascEntryControllerResolver().getVascEntryController().getVascEntryById("test1"); fill(entry,c); 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)); } 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)); } } } }