[svn r340] WIP commit
This commit is contained in:
parent
a40c22f13a
commit
435a26f4d6
108 changed files with 8325 additions and 680 deletions
|
|
@ -32,8 +32,7 @@ import java.util.logging.LogManager;
|
|||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import com.idcanet.vasc.core.VascTable;
|
||||
import com.idcanet.vasc.impl.swing.SwingVascViewRenderer;
|
||||
import com.idcanet.vasc.core.VascEntry;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
|
|
@ -55,6 +54,15 @@ public class SwingTest extends TestCase {
|
|||
public void tearDown() throws Exception {
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
- default view field
|
||||
- Admin fields and order
|
||||
- Admin field groups -> 'collapse
|
||||
- List filters auto by type
|
||||
- search fields
|
||||
|
||||
*/
|
||||
public void testAll() throws Exception {
|
||||
JFrame.setDefaultLookAndFeelDecorated(false);
|
||||
|
||||
|
|
@ -75,6 +83,8 @@ public class SwingTest extends TestCase {
|
|||
// render
|
||||
render.initTable(table);
|
||||
|
||||
//table.getTableColumns().get(0).set
|
||||
|
||||
//render.renderEdit(table.getTableData().get(0));
|
||||
render.renderView();
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,11 @@ import java.util.ArrayList;
|
|||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.idcanet.vasc.core.AbstractVascDataSource;
|
||||
import com.idcanet.vasc.core.AbstractVascBackend;
|
||||
import com.idcanet.vasc.core.VascEntry;
|
||||
import com.idcanet.vasc.core.VascEntryField;
|
||||
import com.idcanet.vasc.core.entry.VascEntryFieldValue;
|
||||
import com.idcanet.vasc.core.entry.VascEntryRecordCreator;
|
||||
import com.idcanet.vasc.core.ui.VascSelectItem;
|
||||
import com.idcanet.vasc.core.ui.VascSelectItemModel;
|
||||
import com.idcanet.vasc.models.TestModel;
|
||||
|
|
@ -40,7 +44,7 @@ import com.idcanet.vasc.models.TestModel;
|
|||
* @author Willem Cazander
|
||||
* @version 1.0 Mar 21, 2007
|
||||
*/
|
||||
public class TestModelVascDataSource extends AbstractVascDataSource implements VascSelectItemModel {
|
||||
public class TestModelVascDataSource extends AbstractVascBackend implements VascSelectItemModel {
|
||||
|
||||
private List<Object> testModels = null;
|
||||
|
||||
|
|
@ -93,4 +97,12 @@ public class TestModelVascDataSource extends AbstractVascDataSource implements V
|
|||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public VascEntryFieldValue provideVascEntryFieldValue(VascEntryField field) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public VascEntryRecordCreator provideVascEntryRecordCreator(VascEntry vascEntry) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -28,13 +28,11 @@ package com.idcanet.vasc;
|
|||
|
||||
import java.util.Date;
|
||||
|
||||
import com.idcanet.vasc.core.VascTable;
|
||||
import com.idcanet.vasc.core.column.VascAnnotationTableColumn;
|
||||
import com.idcanet.vasc.core.column.VascTableColumn;
|
||||
import com.idcanet.vasc.core.ui.VascColorChooser;
|
||||
import com.idcanet.vasc.core.VascEntry;
|
||||
import com.idcanet.vasc.core.VascEntryField;
|
||||
import com.idcanet.vasc.core.ui.VascList;
|
||||
import com.idcanet.vasc.core.ui.VascTextField;
|
||||
import com.idcanet.vasc.impl.BeanVascRecordCreator;
|
||||
import com.idcanet.vasc.impl.DefaultVascEntry;
|
||||
import com.idcanet.vasc.impl.DefaultVascEntryField;
|
||||
import com.idcanet.vasc.impl.DefaultVascTableController;
|
||||
import com.idcanet.vasc.impl.actions.AddRowAction;
|
||||
import com.idcanet.vasc.impl.actions.CSVExportGlobalAction;
|
||||
|
|
@ -42,7 +40,8 @@ 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.column.BeanPropertyVascColumnValue;
|
||||
import com.idcanet.vasc.impl.entry.BeanVascEntryRecordCreator;
|
||||
import com.idcanet.vasc.impl.entry.BeanPropertyVascEntryFieldValue;
|
||||
import com.idcanet.vasc.models.TestModel;
|
||||
|
||||
|
||||
|
|
@ -53,7 +52,7 @@ import com.idcanet.vasc.models.TestModel;
|
|||
*/
|
||||
public class TestTable {
|
||||
|
||||
static public VascTable getVascTable() throws Exception {
|
||||
static public VascEntry getVascTable() throws Exception {
|
||||
|
||||
// define query
|
||||
/*
|
||||
|
|
@ -67,69 +66,70 @@ public class TestTable {
|
|||
TestModelVascDataSource data = new TestModelVascDataSource();
|
||||
|
||||
// config table
|
||||
VascTable table = new VascTable();
|
||||
table.setName("Testje");
|
||||
table.setHeaderName("Test Table enzo");
|
||||
table.setHeaderToolTip("Met een hele coole tooltip");
|
||||
table.setHeaderImage("/resources/images/gabelfresser.gif");
|
||||
table.setHelpId("someKey");
|
||||
table.setVascTableController(new DefaultVascTableController());
|
||||
table.setVascDataSource(data);
|
||||
VascEntry entry = new DefaultVascEntry();
|
||||
entry.setName("Testje");
|
||||
entry.setHeaderName("Test Table enzo");
|
||||
entry.setHeaderDescription("Met een hele coole tooltip");
|
||||
entry.setHeaderImage("/resources/images/gabelfresser.gif");
|
||||
entry.setHelpId("someKey");
|
||||
//entry.setVascTableController(new DefaultVascTableController());
|
||||
entry.setVascBackend(data);
|
||||
|
||||
//table.setVascTextValue(new DefaultVascTextValue());
|
||||
table.setVascTextValue(new VascI18nTextValue());
|
||||
table.setVascRecordCreator(new BeanVascRecordCreator(TestModel.class));
|
||||
table.addRowActions(new AddRowAction());
|
||||
table.addRowActions(new EditRowAction());
|
||||
table.addRowActions(new DeleteRowAction());
|
||||
entry.setVascEntryResourceResolver(new VascI18nTextValue());
|
||||
|
||||
// entry.setVascEntryRecordCreator(new BeanVascEntryRecordCreator(TestModel.class));
|
||||
entry.addRowAction(new AddRowAction());
|
||||
entry.addRowAction(new EditRowAction());
|
||||
entry.addRowAction(new DeleteRowAction());
|
||||
|
||||
table.addGlobalActions(new XMLExportGlobalAction());
|
||||
table.addGlobalActions(new CSVExportGlobalAction());
|
||||
entry.addGlobalAction(new XMLExportGlobalAction());
|
||||
entry.addGlobalAction(new CSVExportGlobalAction());
|
||||
//table.addGlobalActions(new HTMLExportGlobalAction());
|
||||
table.addGlobalActions(new RefreshDataGlobalAction());
|
||||
entry.addGlobalAction(new RefreshDataGlobalAction());
|
||||
|
||||
//table.addUserOptions(userOption);
|
||||
|
||||
//table.addColumnActions(new GraphColumnAction());
|
||||
|
||||
VascTableColumn column = new VascTableColumn();
|
||||
column.setName("test");
|
||||
column.setToolTip("tooltip");
|
||||
column.setDefaultValue("DEFFFFFF");
|
||||
column.setHelpId("helpColumnKey");
|
||||
column.setImage("/META-INF/images/silk/png/tick.png");
|
||||
column.setWidth(400);
|
||||
column.setVascUIComponent(new VascTextField());
|
||||
// column.setVascColumnRenderer(new DefaultVascColumnRenderer());
|
||||
column.setVascColumnValue(new BeanPropertyVascColumnValue("name"));
|
||||
table.addTableColumns(column);
|
||||
VascEntryField field = new DefaultVascEntryField();
|
||||
field.setName("test");
|
||||
field.setDescription("tooltip");
|
||||
field.setDefaultValue("DEFFFFFF");
|
||||
field.setHelpId("helpColumnKey");
|
||||
field.setImage("/META-INF/images/silk/png/tick.png");
|
||||
field.setVascEntryFieldType(vascEntryFieldType)
|
||||
field.setVascEntryFieldValue(new BeanPropertyVascEntryFieldValue("name"));
|
||||
entry.addVascEntryField(field);
|
||||
|
||||
column = new VascAnnotationTableColumn("description");
|
||||
table.addTableColumns(column);
|
||||
/*
|
||||
field = new VascAnnotationTableColumn("description");
|
||||
entry.addVascField(field);
|
||||
|
||||
column = new VascAnnotationTableColumn("active");
|
||||
column.setDefaultValue(true);
|
||||
table.addTableColumns(column);
|
||||
field = new VascAnnotationTableColumn("active");
|
||||
field.setDefaultValue(true);
|
||||
entry.addVascField(field);
|
||||
|
||||
column = new VascAnnotationTableColumn("date");
|
||||
column.setDefaultValue(new Date());
|
||||
table.addTableColumns(column);
|
||||
field = new VascAnnotationTableColumn("date");
|
||||
field.setDefaultValue(new Date());
|
||||
entry.addVascField(field);
|
||||
|
||||
column = new VascAnnotationTableColumn("testModel");
|
||||
field = new VascAnnotationTableColumn("testModel");
|
||||
VascList list = new VascList();
|
||||
list.setVascSelectItemModel(data);
|
||||
column.setVascUIComponent(list);
|
||||
table.addTableColumns(column);
|
||||
field.setVascUIComponent(list);
|
||||
entry.addVascField(field);
|
||||
|
||||
|
||||
column = new VascAnnotationTableColumn("hexColor");
|
||||
column.setDefaultValue("#FF3355");
|
||||
VascColorChooser ui = new VascColorChooser();
|
||||
ui.setHexSwingEncoding(true);
|
||||
column.setVascUIComponent(ui);
|
||||
table.addTableColumns(column);
|
||||
field = new VascAnnotationTableColumn("hexColor");
|
||||
field.setDefaultValue("#FF3355");
|
||||
//VascColorChooser ui = new VascColorChooser();
|
||||
//ui.setHexSwingEncoding(true);
|
||||
//field.setVascUIComponent(ui);
|
||||
entry.addVascField(field);
|
||||
*/
|
||||
|
||||
return table;
|
||||
return entry;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -31,14 +31,15 @@ import java.util.MissingResourceException;
|
|||
import java.util.ResourceBundle;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.idcanet.vasc.core.VascTextValue;
|
||||
import com.idcanet.vasc.core.entry.VascEntryResourceResolver;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Aug 2, 2007
|
||||
*/
|
||||
public class VascI18nTextValue implements VascTextValue {
|
||||
public class VascI18nTextValue implements VascEntryResourceResolver {
|
||||
|
||||
|
||||
private String getKeyMapping(String key) {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ import java.util.Date;
|
|||
|
||||
import org.hibernate.validator.NotNull;
|
||||
import org.hibernate.validator.Max;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.idcanet.vasc.annotations.VascColumnWidth;
|
||||
import com.idcanet.vasc.annotations.VascDefaultValue;
|
||||
|
|
@ -39,6 +40,9 @@ import com.idcanet.vasc.annotations.VascImage;
|
|||
import com.idcanet.vasc.annotations.VascModelReference;
|
||||
import com.idcanet.vasc.annotations.VascName;
|
||||
import com.idcanet.vasc.annotations.VascToolTip;
|
||||
import com.idcanet.vasc.validator.VascDateFuture;
|
||||
import com.idcanet.vasc.validator.VascObjectNotNull;
|
||||
import com.idcanet.vasc.validator.VascStringLength;
|
||||
|
||||
/**
|
||||
* TestModel
|
||||
|
|
@ -57,10 +61,12 @@ public class TestModel {
|
|||
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;
|
||||
}
|
||||
|
|
@ -83,6 +89,8 @@ public class TestModel {
|
|||
@VascImage(image="/resources/images/gabelfresser.gif")
|
||||
@NotNull
|
||||
@Max(value=10)
|
||||
@VascObjectNotNull
|
||||
@VascStringLength(max=10)
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
|
@ -125,7 +133,7 @@ public class TestModel {
|
|||
@VascImage(image="/resources/images/gabelfresser.gif")
|
||||
@VascModelReference
|
||||
@NotNull
|
||||
@Max(value=10)
|
||||
@VascObjectNotNull
|
||||
public TestModel getTestModel() {
|
||||
return testModel;
|
||||
}
|
||||
|
|
|
|||
224
tests/resources/vasc/tables.xml
Normal file
224
tests/resources/vasc/tables.xml
Normal file
|
|
@ -0,0 +1,224 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xtes xmlns="http://xtes.idcanet.com/eld/xtes-lang.eld"
|
||||
xmlns:x4o="http://x4o.idcanet.com/eld/x4o-lang.eld"
|
||||
>
|
||||
<!--
|
||||
|
||||
- View
|
||||
- States
|
||||
- Tables
|
||||
- Columns
|
||||
|
||||
|
||||
|
||||
Master
|
||||
- Details
|
||||
|
||||
-->
|
||||
|
||||
<x4o:bean el.id="dataSource" bean.class="com.id.."/>
|
||||
<x4o:bean el.id="tableController" bean.class="com.id.."/>
|
||||
|
||||
|
||||
<v:vascView name="test1">
|
||||
<v:vascTableController>
|
||||
</v:vascTableController>
|
||||
<v:vascBackendController>
|
||||
<v:vascJDBCQueryController>
|
||||
<x4o:property name="list">select id,name,blog_status_id,description,slug from blog_post</x4o:property>
|
||||
<x4o:property name="update">update (id,name,blog_status_id,description,slug) values(?,?,?,?,?) from blog_post where id=?</x4o:property>
|
||||
<x4o:property name="create">instert into (id,name,blog_status_id,description,slug) values(?,?,?,?,?) from blog_post where id=?</x4o:property>
|
||||
<x4o:property name="delete">delete from blog_post where id=?</x4o:property>
|
||||
</v:vascJDBCQueryController>
|
||||
</v:vascBackendController>
|
||||
|
||||
<v:vascField name="">
|
||||
<v:vascFieldOptions/>
|
||||
<v:vascFieldChoises/>
|
||||
</v:vascField>
|
||||
<v:vascField name="">
|
||||
<v:vascUserRoles list="admin"/>
|
||||
</v:vascField>
|
||||
|
||||
</v:vascView>
|
||||
|
||||
<x4o:template el.id="ldapServerTemplate">
|
||||
<v:ldapConnection name="main">
|
||||
<x4o:property name="connectionUrl" value="ldaps://ldap.office.mbuyu.nl"/>
|
||||
</v:ldapConnection>
|
||||
</x4o:template>
|
||||
|
||||
<v:ldapConnection el.id="sudoers" x4o.templates="ldapServerTemplate">
|
||||
<x4o:property name="user" value="uid=admin-sudo,ou=services,dc=m4n,dc=nl"/>
|
||||
<x4o:property name="pass" value="adminSudo"/>
|
||||
<x4o:property name="baseDn" value="ou=sudoers,dc=m4n,dc=nl"/>
|
||||
</v:ldapConnection>
|
||||
|
||||
<x4o:template el.id="sudoTemplate">
|
||||
<v:field name="user" backendName="cn" readOnly="true"/>
|
||||
<v:field name="description" backendName="description"/>
|
||||
<v:field name="sudoCommand" fieldEditor="listField"/>
|
||||
<v:field name="sudoHost" fieldEditor="listField"/>
|
||||
<v:field name="sudoUser" fieldEditor="listField"/>
|
||||
</x4o:template>
|
||||
|
||||
<x4o:template el.id="sambaUserSchema">
|
||||
<v:field name="sambaSID" fieldEditor="textField" edit="false" list="false" view="false" create="false" defaultValue="S-1-5-21-1200182392-965607725-1867741125-514"/>
|
||||
<v:field name="sambaGroupType" v.defaultValue="2"/>
|
||||
</x4o:template>
|
||||
|
||||
<v:viewController name="ldapUsers" primaryKey="user">
|
||||
<x4o:templateTag template="${posixUserSchema}"/>
|
||||
<x4o:templateTag template="${sambaUserSchema}">
|
||||
<!-- template overrideing -->
|
||||
<v:field name="sambaGroupType" v.defaultValue="3"/>
|
||||
</x4o:templateTag>
|
||||
|
||||
<!-- redifine overrideing -->
|
||||
<v:field name="sambaGroupType" v.defaultValue="4"/>
|
||||
|
||||
|
||||
</v:viewController>
|
||||
|
||||
|
||||
<v:viewController name="sudoers" primaryKey="user">
|
||||
<v:field name="user" backendName="cn" readOnly="true"/>
|
||||
<v:field name="description" backendName="description">
|
||||
<v:roles edit="admin" list="all"/>
|
||||
</v:field>
|
||||
<v:field name="sudoCommand" fieldEditor="listField"/>
|
||||
<v:field name="sudoHost" fieldEditor="listField"/>
|
||||
<v:field name="sudoUser" fieldEditor="listField"/>
|
||||
|
||||
<v:field name="sambaSID" fieldEditor="textField" edit="false" list="false" view="false" create="false" defaultValue="S-1-5-21-1200182392-965607725-1867741125-514"/>
|
||||
<v:field name="sambaGroupType" v.defaultValue="2"/>
|
||||
|
||||
<v:field name="gidNumber" v.defaultValue="nextUidNumber();"/>
|
||||
<v:field name="objectclass" v.defaultValue="{posixGroup,sambaGroupMapping,top}"/>
|
||||
|
||||
<v:fieldSet name="extraOptions" optional="true">
|
||||
<v:field name="sudoHost" defaultValue="localhost"/>
|
||||
</v:fieldSet>
|
||||
|
||||
<v:ldapNextIdFunction name="nextUidNumber" ldapFilter="(&(objectClass=posixGroup))" ldapAttribute="gidnumber"/>
|
||||
|
||||
<v:listeners hook="post_create">
|
||||
<etc:loginToFtpServer/>
|
||||
</v:listeners>
|
||||
|
||||
<v:link fieldName="user" viewController="ldapUsers" parameterName="user_cn"/>
|
||||
<v:link fieldName="gidNumber" viewController="ldapGroups" parameterName="group_key,${baseDn}"/>
|
||||
|
||||
<v:detail fieldName="gidNumber" detailController="${ldapGroups}"/>
|
||||
|
||||
<!-- default are oke here
|
||||
<v:createView allField="true"/>
|
||||
<v:editView allField="true" inverse="true">
|
||||
<v:fieldName name="description"/>
|
||||
</v:editView>
|
||||
-->
|
||||
|
||||
<v:ldapBackend ldapConnection="${sudoers}">
|
||||
<x4o:property name="list_filter">(&(objectClass=sudoRole))</x4o:property>
|
||||
<x4o:property name="delete">${baseDn},cn=%s</x4o:property>
|
||||
<x4o:property name="new_classes">sudoRole,top</x4o:property>
|
||||
</v:ldapBackend>
|
||||
</v:viewController>
|
||||
|
||||
<jsf-vasc:viewManager controller="${sudoers}">
|
||||
|
||||
</jsf-vasc:viewManager>
|
||||
|
||||
|
||||
<table
|
||||
name = "myTable1"
|
||||
vascDataSource = "${dataSource}"
|
||||
vascRecordBeanCreatorClass="com.id.models.User"
|
||||
vascTextValue="${vascI18nController}"
|
||||
vascTableController = "${tableController}"
|
||||
UIIdentifierVascTableColomn = "${idColumn}"
|
||||
|
||||
>
|
||||
|
||||
<actions:addRowAction/>
|
||||
<actions:DeleteRowAction/>
|
||||
<actions:editRowAction/>
|
||||
|
||||
<action:csvExportAction/>
|
||||
<action:xmlExportAction/>
|
||||
<action:refreshDataAction/>
|
||||
|
||||
<option:comboBoxOption />
|
||||
|
||||
<colum el.id="idColumn"
|
||||
name="test"
|
||||
toolTip="test"
|
||||
defaultValue="true"
|
||||
width="30"
|
||||
helpId="test"
|
||||
image="ergens"
|
||||
editDisplay="true"
|
||||
editReadonly="false"
|
||||
listDisplay="true"
|
||||
>
|
||||
<bind:beanColumnValue />
|
||||
<ui:vascToggle />
|
||||
</colum>
|
||||
</table>
|
||||
|
||||
|
||||
<view>
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
<xslt>
|
||||
# Convert from xml -> csv and html or xitext
|
||||
</xslt>
|
||||
-->
|
||||
|
||||
<query name="limit">
|
||||
<sql>
|
||||
LIMIT <parameter name="limit"/>
|
||||
</sql>
|
||||
<parameterValue name="limit" value="10" defaultValue="200" type="parameter"/>
|
||||
</query>
|
||||
<query name="paging" type="hql">
|
||||
<sql>
|
||||
OFFSET <parameter name="offset"/>
|
||||
<include name="limit"/>
|
||||
</sql>
|
||||
<parameterValue name="offset" value="0" defaultValue="0" type="parameter"/>
|
||||
</query>
|
||||
<query name="baseSelect">
|
||||
<x4o:property name="executionTimeout" value="200"/>
|
||||
<x4o:property name="cacheTimeout" value="99"/>
|
||||
<x4o:property name="jdniConnection" value="somewhere"/>
|
||||
<sql>
|
||||
SELECT
|
||||
USERS.USERNAME AS USERNAME
|
||||
USERS.PASSWD AS PASSWORD
|
||||
FROM
|
||||
USERS
|
||||
</sql>
|
||||
<comment>Bla bla</comment>
|
||||
<comment>Also see this site http://www.google.com</comment>
|
||||
</query>
|
||||
|
||||
<query name="testUsers2" type="hql">
|
||||
<x4o:property name="persistanceSession" value="sessionName"/>
|
||||
<sql>
|
||||
<!-- SOME COMMENT -->
|
||||
<include name="baseSelect"/>
|
||||
<parameter name="extra_where"/>
|
||||
AND role is in <parameter name="roles"/>
|
||||
<include name="paging"/>
|
||||
</sql>
|
||||
<parameterValue name="extra_where" defaultValue="WHERE true=true" type="raw"/>
|
||||
<parameterValue name="roles" value="1,12,99,200" type="parameterList"/>
|
||||
<parameterValue name="limit" value="15"/>
|
||||
<parameterValue name="offset" value="25"/>
|
||||
</query>
|
||||
</xtes>
|
||||
Loading…
Add table
Add a link
Reference in a new issue