2
0
Fork 0

Small refactor for comming converters

This commit is contained in:
Willem Cazander 2012-01-22 08:16:15 +01:00
parent 75b3d5e0a0
commit 1c308a684a
178 changed files with 5865 additions and 1531 deletions

View file

@ -64,8 +64,12 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.forwardfire.vasc</groupId>
<artifactId>vasc-test-frontend-data</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

View file

@ -0,0 +1,154 @@
/*
* Copyright 2007-2012 forwardfire.net All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
* following disclaimer.
* * 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 THE COPYRIGHT HOLDERS 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
* THE COPYRIGHT HOLDER 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.
*/
package net.forwardfire.vasc.frontends.swt;
import java.util.List;
import net.forwardfire.vasc.backend.VascBackendPageNumber;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.actions.GlobalVascAction;
import net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener;
import net.forwardfire.vasc.core.ui.VascSelectItem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
/**
* SwtActionPanel renders action bar
*
* @author Willem Cazander
* @version 1.0 May 13, 2009
*/
public class SwtActionPanel implements VascEntryFrontendEventListener {
private static final long serialVersionUID = 3747573488962487970L;
private VascEntry entry = null;
private Text rowNumberField = null;
private Combo pageBox = null;
private Combo downloadBox = null;
private Label resultLabel = null;
private boolean vascEvent = false;
public SwtActionPanel(VascEntry entry) {
this.entry=entry;
entry.getVascFrontendData().addVascEntryFrontendEventListener(this);
}
public void createComposite(Composite parent) {
Composite actionRow = new Composite(parent, SWT.NONE);
GridLayout bodyLayout = new GridLayout();
bodyLayout.numColumns = 8;
actionRow.setLayout(bodyLayout);
actionRow.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
//actionRow.setBackground(c);
Label l = new Label(actionRow, SWT.CENTER);
l.setText("Row Numbers");
rowNumberField = new Text(actionRow, SWT.NONE | SWT.BORDER);
rowNumberField.setText(""+entry.getVascFrontendData().getVascEntryState().getVascBackendState().getPageSize()+" ");
rowNumberField.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent arg0) {
if (vascEvent) {
return;
}
int pageSize = new Integer(rowNumberField.getText());
entry.getVascFrontendData().getVascEntryState().getVascBackendState().setPageSize(pageSize);
entry.getVascFrontendData().getVascFrontendActions().refreshData();
}
});
l = new Label(actionRow, SWT.CENTER);
l.setText("Goto: ");
pageBox = new Combo(actionRow,SWT.SINGLE | SWT.BORDER);
pageBox.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
entry.getVascFrontendData().getVascFrontendActions().pageAction(pageBox.getSelectionIndex()-1);
pageBox.select(0);
}
});
l = new Label(actionRow, SWT.CENTER);
l.setText("Download: ");
downloadBox = new Combo(actionRow,SWT.SINGLE | SWT.BORDER);
downloadBox.add("...");
for (GlobalVascAction a:entry.getGlobalActions()) {
if (a.getId().contains("xport")) {
downloadBox.add(a.getName());
}
}
downloadBox.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
downloadBox.select(0);
}
});
resultLabel = new Label(actionRow, SWT.CENTER);
resultLabel.setText("Result......................................");
}
/**
* @see net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener#getEventTypes()
*/
public VascFrontendEventType[] getEventTypes() {
VascFrontendEventType[] result = {VascEntryFrontendEventListener.VascFrontendEventType.POST_READ};
return result;
}
public void vascEvent(VascEntry entry,Object dataNotUsed) {
vascEvent = true;
long pageSize = entry.getVascFrontendData().getVascFrontendPager().getPageSize();
long pageStart = entry.getVascFrontendData().getVascFrontendPager().getPageStartCount();
long pageStop = entry.getVascFrontendData().getVascFrontendPager().getPageStopCount();
long pageTotalCount = entry.getVascFrontendData().getVascFrontendPager().getPageTotalRecordCount();
String format = "Results %1$d-%2$d from %3$d rows";
resultLabel.setText(String.format(format, pageStart, pageStop, pageTotalCount));
resultLabel.redraw();
rowNumberField.setText(""+pageSize);
rowNumberField.redraw();
pageBox.removeAll();
pageBox.add("Goto...");
List<VascBackendPageNumber> pages = entry.getVascFrontendData().getVascFrontendPager().getTablePagesFromBackend();
int i=0;
for (VascBackendPageNumber page:pages) {
pageBox.add("page: "+page.getPageNumber()+" "+(i*pageSize)+"-"+((i*pageSize)+pageSize));
i++;
}
vascEvent = false;
}
}

View file

@ -0,0 +1,82 @@
/*
* Copyright 2007-2012 forwardfire.net All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
* following disclaimer.
* * 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 THE COPYRIGHT HOLDERS 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
* THE COPYRIGHT HOLDER 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.
*/
package net.forwardfire.vasc.frontends.swt;
import java.util.List;
import net.forwardfire.vasc.backend.VascBackendPageNumber;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.actions.GlobalVascAction;
import net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener;
import net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener.VascFrontendEventType;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Layout;
import org.eclipse.swt.widgets.Text;
/**
* SwtPagerPanel renders pager bar
*
* @author Willem Cazander
* @version 1.0 May 13, 2009
*/
public class SwtPagerPanel implements VascEntryFrontendEventListener {
private static final long serialVersionUID = 3747573488962487970L;
private VascEntry entry = null;
public SwtPagerPanel(VascEntry entry) {
this.entry=entry;
entry.getVascFrontendData().addVascEntryFrontendEventListener(this);
}
public void createComposite(Composite parent) {
Composite actionRow = new Composite(parent, SWT.NONE);
GridLayout bodyLayout = new GridLayout();
bodyLayout.numColumns = 1;
actionRow.setLayout(bodyLayout);
actionRow.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
//actionRow.setBackground(c);
Label l = new Label(actionRow, SWT.CENTER);
l.setText("Pagers");
}
/**
* @see net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener#getEventTypes()
*/
public VascFrontendEventType[] getEventTypes() {
VascFrontendEventType[] result = {VascEntryFrontendEventListener.VascFrontendEventType.POST_READ};
return result;
}
public void vascEvent(VascEntry entry,Object dataNotUsed) {
}
}

View file

@ -47,6 +47,7 @@ import org.eclipse.swt.widgets.Shell;
/**
* SwtVascEditDialog renders swt edit dialog
*
* @author Willem Cazander
* @version 1.0 May 13, 2009
@ -206,7 +207,7 @@ public class SwtVascEditDialog extends Dialog {
if (error) {
return;
}
entry.getVascFrontendData().getVascFrontendHelper().mergeObject(entry);
entry.getVascFrontendData().getVascFrontendActions().mergeObject();
shell.dispose();
} catch (Exception ee) {
ee.printStackTrace();

View file

@ -27,20 +27,19 @@ import java.io.OutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.forwardfire.vasc.core.AbstractVascFrontend;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.VascFrontendData;
import net.forwardfire.vasc.core.actions.GlobalVascAction;
import net.forwardfire.vasc.core.actions.RowVascAction;
import net.forwardfire.vasc.core.entry.VascEntryExporter;
import net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener;
import net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener.VascFrontendEventType;
import net.forwardfire.vasc.core.ui.VascOptionValueModelListener;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.ui.VascValueModelListener;
import net.forwardfire.vasc.frontend.AbstractVascFrontend;
import net.forwardfire.vasc.frontend.VascFrontendData;
import net.forwardfire.vasc.frontends.swt.ui.SwtBoolean;
import net.forwardfire.vasc.frontends.swt.ui.SwtButton;
import net.forwardfire.vasc.frontends.swt.ui.SwtLabel;
@ -86,6 +85,7 @@ import org.eclipse.swt.widgets.ToolItem;
/**
* SwtVascFrontend Vasc swt frontend.
*
* @author Willem Cazander
* @version 1.0 Mar 21, 2007
@ -95,6 +95,7 @@ public class SwtVascFrontend extends AbstractVascFrontend {
private Logger logger = null;
private Composite parent = null;
private boolean renderGlobalActions = true;
private boolean initOnce = false;
public SwtVascFrontend(Composite parent) {
logger = Logger.getLogger(SwtVascFrontend.class.getName());
@ -102,7 +103,7 @@ public class SwtVascFrontend extends AbstractVascFrontend {
}
/**
* @see net.forwardfire.vasc.core.VascFrontend#getFrontendType()
* @see net.forwardfire.vasc.frontend.VascFrontend#getFrontendType()
*/
public String getFrontendType() {
return "swt";
@ -193,7 +194,7 @@ public class SwtVascFrontend extends AbstractVascFrontend {
return;
}
// yes
entry.getVascFrontendData().getVascFrontendHelper().deleteObject(entry);
entry.getVascFrontendData().getVascFrontendActions().deleteObject();
}
private boolean askDelete(Shell shell) {
@ -209,6 +210,10 @@ public class SwtVascFrontend extends AbstractVascFrontend {
}
public void renderView() throws Exception {
if (initOnce) {
return;
}
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
@ -235,6 +240,8 @@ public class SwtVascFrontend extends AbstractVascFrontend {
createHeader(header);
createBody(body);
createFooter(footer);
initOnce = true;
}
@ -325,7 +332,7 @@ public class SwtVascFrontend extends AbstractVascFrontend {
model.setValue(null);
model.addListener(new VascValueModelListener() {
public void valueUpdate(VascValueModel model) throws VascException {
entry.getVascFrontendData().getVascFrontendHelper().refreshData(entry);// mm
entry.getVascFrontendData().getVascFrontendActions().refreshData();// mm
}
});
Object edit = editor.createComponent(entry,option,model,headerOptions);
@ -351,15 +358,21 @@ public class SwtVascFrontend extends AbstractVascFrontend {
public void modifyText(ModifyEvent e) {
String value = text.getText();
try {
entry.getVascFrontendData().getVascFrontendHelper().searchAction(entry, value);
entry.getVascFrontendData().getVascFrontendActions().searchAction(value);
} catch (Exception ee) {
entry.getVascFrontendData().getVascFrontendHelper().handleException(entry,ee);
}
}
});
SwtPagerPanel pagerBar = new SwtPagerPanel(entry);
pagerBar.createComposite(header);
SwtActionPanel actionBar = new SwtActionPanel(entry);
actionBar.createComposite(header);
entry.getVascFrontendData().getVascFrontendHelper().headerOptionsCreatedFillData(entry);
} catch (Exception e) {
e.printStackTrace();
}
@ -440,7 +453,7 @@ public class SwtVascFrontend extends AbstractVascFrontend {
}
table2.setSortDirection(dir);
VascEntryField field = (VascEntryField)currentColumn.getData();
entry.getVascFrontendData().getVascFrontendHelper().sortAction(entry, field);
entry.getVascFrontendData().getVascFrontendActions().sortAction(field);
}
};
@ -529,6 +542,13 @@ public class SwtVascFrontend extends AbstractVascFrontend {
public void createFooter(Composite footer) {
logger.finest("Creating footer");
SwtActionPanel p = new SwtActionPanel(entry);
p.createComposite(footer);
SwtPagerPanel pagerBar = new SwtPagerPanel(entry);
pagerBar.createComposite(footer);
for( RowVascAction action:entry.getRowActions()) {
if (entry.getVascFrontendData().getVascFrontendHelper().renderRowVascAction(action)==false) {
continue;

View file

@ -22,11 +22,13 @@
package net.forwardfire.vasc;
import java.io.InputStream;
import java.util.logging.LogManager;
import net.forwardfire.vasc.core.VascController;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryControllerLocal;
import net.forwardfire.vasc.frontends.swt.SwtVascFrontend;
import net.forwardfire.vasc.impl.DefaultVascFactory;
import net.forwardfire.vasc.test.frontend.data.TestModelEntry;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
@ -43,13 +45,9 @@ import junit.framework.TestCase;
*/
public class SWTTest extends TestCase {
private TestModelEntry entry = null;
public void setUp() throws Exception {
// enable all logs
//InputStream loggingProperties = this.getClass().getResourceAsStream("/META-INF/logging.properties");
//LogManager.getLogManager().readConfiguration( loggingProperties );
//loggingProperties.close();
// load xtes queries
}
public void tearDown() throws Exception {
@ -72,10 +70,15 @@ public class SWTTest extends TestCase {
// define redering and render
SwtVascFrontend render = new SwtVascFrontend(shell);
entry = new TestModelEntry();
VascController vc = entry.getTestVascController();
VascEntry ve = entry.createVascEntry(vc);
((VascEntryControllerLocal)vc.getVascEntryController()).addVascEntry(ve,vc);
DefaultVascFactory.fillVascControllerLocalEntries((VascEntryControllerLocal) vc.getVascEntryController(), vc);
DefaultVascFactory.fillVascEntryFrontend(ve, vc, DefaultVascFactory.getDefaultVascFrontendData(null));
VascEntry entry = TestTable.getVascTable();
entry.getVascFrontendData().getVascFrontendHelper().refreshData(entry);
render.initEntry(entry);
ve.getVascFrontendData().getVascFrontendActions().refreshData();
render.initEntry(ve);
render.renderView();
// view

View file

@ -1,167 +0,0 @@
/*
* Copyright 2007-2012 forwardfire.net All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
* following disclaimer.
* * 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 THE COPYRIGHT HOLDERS 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
* THE COPYRIGHT HOLDER 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.
*/
package net.forwardfire.vasc;
import java.util.Date;
import net.forwardfire.vasc.annotations.VascDefaultValue;
import net.forwardfire.vasc.annotations.VascEntry;
import net.forwardfire.vasc.annotations.VascI18n;
import net.forwardfire.vasc.annotations.VascModelReference;
import net.forwardfire.vasc.annotations.VascStyle;
import net.forwardfire.vasc.validators.VascDateFuture;
import net.forwardfire.vasc.validators.VascObjectNotNull;
import net.forwardfire.vasc.validators.VascStringLength;
//import org.hibernate.validator.NotNull;
//import org.hibernate.validator.Max;
/**
* TestModel
*
*
* @author Willem Cazander
* @version 1.0 Mar 28, 2007
*/
@VascEntry(headerName="En een tooltip op het model")
public class TestModel {
private String name = null;
private String description = null;
private Float price = null;
private Boolean active = null;
private Date date = null;
private TestModel testModel = null;
private String hexColor = null;
//private Node nonEditorField = null;
/**
* @return the date
*/
@VascDateFuture
public Date getDate() {
return date;
}
/**
* @param date the date to set
*/
public void setDate(Date date) {
this.date = date;
}
/**
* @return the description
*/
@VascI18n( name="omscheiving",
description="De omscrijving",
image="/resources/images/gabelfresser.gif",
helpId="help.id")
@VascDefaultValue(value="xxxxx")
@VascStyle(sizeList=200)
// @NotNull
// @Max(value=10)
@VascObjectNotNull
@VascStringLength(max=10)
public String getDescription() {
return description;
}
/**
* @param description the description to set
*/
public void setDescription(String description) {
this.description = description;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the price
*/
public Float getPrice() {
return price;
}
/**
* @param price the price to set
*/
public void setPrice(Float price) {
this.price = price;
}
// @NotNull
@VascObjectNotNull
@VascModelReference
@VascI18n(image="/resources/images/gabelfresser.gif")
public TestModel getTestModel() {
return testModel;
}
public void setTestModel(TestModel testModel) {
this.testModel = testModel;
}
/**
* @return the active
*/
public Boolean getActive() {
return active;
}
/**
* @param active the active to set
*/
public void setActive(Boolean active) {
this.active = active;
}
/**
* @return the hexColor
*/
public String getHexColor() {
return hexColor;
}
/**
* @param hexColor the hexColor to set
*/
public void setHexColor(String hexColor) {
this.hexColor = hexColor;
}
}

View file

@ -1,145 +0,0 @@
/*
* Copyright 2007-2012 forwardfire.net All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
* following disclaimer.
* * 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 THE COPYRIGHT HOLDERS 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
* THE COPYRIGHT HOLDER 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.
*/
package net.forwardfire.vasc;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.forwardfire.vasc.core.AbstractVascBackend;
import net.forwardfire.vasc.core.VascBackendState;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.entry.VascEntryFieldValue;
import net.forwardfire.vasc.core.entry.VascEntryRecordCreator;
import net.forwardfire.vasc.core.ui.VascSelectItem;
import net.forwardfire.vasc.core.ui.VascSelectItemModel;
import net.forwardfire.vasc.impl.entry.BeanPropertyVascEntryFieldValue;
import net.forwardfire.vasc.impl.entry.BeanVascEntryRecordCreator;
/**
*
* @author Willem Cazander
* @version 1.0 Mar 21, 2007
*/
public class TestModelVascDataSource extends AbstractVascBackend implements VascSelectItemModel {
private List<Object> testModels = null;
private String nullLabel = null;
private String nullKeyValue = null;
public TestModelVascDataSource() {
testModels = new ArrayList<Object>(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<Object> testModels) {
this.testModels=testModels;
}
public List<Object> 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<VascSelectItem> getVascSelectItems(VascEntry entry) {
List<VascSelectItem> res = new ArrayList<VascSelectItem>(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;
}
}

View file

@ -1,150 +0,0 @@
/*
* Copyright 2007-2012 forwardfire.net All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
* following disclaimer.
* * 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 THE COPYRIGHT HOLDERS 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
* THE COPYRIGHT HOLDER 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.
*/
package net.forwardfire.vasc;
import java.io.File;
import java.io.FileOutputStream;
import java.lang.reflect.Method;
import java.util.Locale;
import net.forwardfire.vasc.core.VascBackend;
import net.forwardfire.vasc.core.VascBackendControllerLocal;
import net.forwardfire.vasc.core.VascController;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.VascFrontendData;
import net.forwardfire.vasc.impl.DefaultVascBackedEntryFinalizer;
import net.forwardfire.vasc.impl.DefaultVascFactory;
import net.forwardfire.vasc.impl.DefaultVascFrontendData;
import net.forwardfire.vasc.impl.DefaultVascFrontendHelper;
import net.forwardfire.vasc.impl.VascBackendProxyPaged;
import net.forwardfire.vasc.impl.VascBackendProxySearch;
import net.forwardfire.vasc.impl.VascBackendProxySort;
import net.forwardfire.vasc.impl.actions.AddRowAction;
import net.forwardfire.vasc.impl.actions.CSVExportGlobalAction;
import net.forwardfire.vasc.impl.actions.DeleteRowAction;
import net.forwardfire.vasc.impl.actions.EditRowAction;
import net.forwardfire.vasc.impl.actions.RefreshDataGlobalAction;
import net.forwardfire.vasc.impl.actions.XMLExportGlobalAction;
import net.forwardfire.vasc.impl.x4o.VascParser;
/**
*
* @author Willem Cazander
* @version 1.0 Aug 2, 2007
*/
public class TestTable {
static VascController getDefaultVascController() throws Exception {
VascController c = DefaultVascFactory.getDefaultVascController(2288L,"vasc.forwardfire.net","user","admin");
// for test
TestModelVascDataSource backend = new TestModelVascDataSource();
backend.setId("testBackend1");
((VascBackendControllerLocal)c.getVascBackendController()).addVascBackend(backend);
return c;
}
static public void fill(VascEntry entry,VascController vascController) {
VascFrontendData frontendData = DefaultVascFactory.getDefaultVascFrontendData(null);
frontendData.setVascController(vascController);
entry.setVascFrontendData(frontendData);
VascBackend backend = DefaultVascFactory.getProxyVascBackend(entry);
frontendData.getVascEntryState().setVascBackend(backend);
frontendData.getVascEntryState().setVascEntry(entry);
entry.addRowAction(new AddRowAction());
entry.addRowAction(new EditRowAction());
entry.addRowAction(new DeleteRowAction());
entry.addGlobalAction(new XMLExportGlobalAction());
entry.addGlobalAction(new CSVExportGlobalAction());
entry.addGlobalAction(new RefreshDataGlobalAction());
// hackje om deze manuale actions van i18n keys te voorzien;
// this is temp untill x4o templaing
DefaultVascBackedEntryFinalizer f = new DefaultVascBackedEntryFinalizer();
try {
f.finalizeVascEntry(entry, vascController);
} catch (VascException e) {
e.printStackTrace();
}
}
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().getVascEntryController().getVascEntryById("dg2_profiles");
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));
}
}
}
}