Switch to new meta model,fixed small bugs and made demo work pretty oke.
This commit is contained in:
parent
afd821c360
commit
b3635cf64d
46 changed files with 1055 additions and 688 deletions
|
|
@ -45,9 +45,23 @@ public interface VascFrontendDataSelector extends VascFrontendEntry {
|
|||
public boolean isFieldEditReadOnly(VascEntryField field);
|
||||
public boolean isFieldList(VascEntryField field);
|
||||
|
||||
public List<VascEntryField> getFieldsList();
|
||||
public enum EntrySelectType {
|
||||
VIEW,
|
||||
LINK
|
||||
}
|
||||
|
||||
public List<VascEntryField> getFieldsCreate();
|
||||
public enum EntryFieldSelectType {
|
||||
CREATE,
|
||||
LIST,
|
||||
EDIT,
|
||||
|
||||
ALL,
|
||||
|
||||
EXPORT,
|
||||
GRAPH,
|
||||
SUM,
|
||||
SORT
|
||||
}
|
||||
|
||||
public List<VascEntryField> getFieldsEdit();
|
||||
public List<VascEntryField> getFields(EntryFieldSelectType type);
|
||||
}
|
||||
|
|
@ -155,6 +155,8 @@ public class DefaultVascFrontendActions implements VascFrontendActions {
|
|||
// save object on backend
|
||||
if (persist) {
|
||||
entry.getVascFrontendController().getVascEntryState().getVascBackend().persist(object);
|
||||
result = object; // TODO: fix persist
|
||||
entry.getVascFrontendController().getVascEntryState().setTotalBackendRecords(1+entry.getVascFrontendController().getVascEntryState().getTotalBackendRecords());
|
||||
} else {
|
||||
result = entry.getVascFrontendController().getVascEntryState().getVascBackend().merge(object);
|
||||
}
|
||||
|
|
@ -185,6 +187,7 @@ public class DefaultVascFrontendActions implements VascFrontendActions {
|
|||
|
||||
removeObjectFromDataList(object);
|
||||
entry.getVascFrontendController().getVascEntryState().setEntryDataObject(null);
|
||||
entry.getVascFrontendController().getVascEntryState().setTotalBackendRecords(entry.getVascFrontendController().getVascEntryState().getTotalBackendRecords()-1);
|
||||
entry.getVascFrontendController().fireVascFrontendEvent(entry,VascEntryFrontendEventListener.VascFrontendEventType.POST_DELETE, object);
|
||||
} catch (VascException ve) {
|
||||
throw new VascFrontendException(ve);
|
||||
|
|
@ -195,6 +198,8 @@ public class DefaultVascFrontendActions implements VascFrontendActions {
|
|||
* @see net.forwardfire.vasc.frontend.VascFrontendHelper#refreshData(net.forwardfire.vasc.core.VascEntry)
|
||||
*/
|
||||
public void refreshData() throws VascFrontendException {
|
||||
|
||||
// Fire pre read event
|
||||
entry.getVascFrontendController().fireVascFrontendEvent(entry,VascEntryFrontendEventListener.VascFrontendEventType.PRE_READ, null);
|
||||
entry.getVascFrontendController().getVascEntryState().setEntryDataObject(null);
|
||||
VascBackendState backendState = entry.getVascFrontendController().getVascEntryState().getVascBackendState();
|
||||
|
|
@ -213,21 +218,21 @@ public class DefaultVascFrontendActions implements VascFrontendActions {
|
|||
}
|
||||
}
|
||||
|
||||
// Update total every time first
|
||||
// Always update total records
|
||||
Long total = entry.getVascFrontendController().getVascEntryState().getVascBackend().fetchTotalExecuteSize(backendState);
|
||||
entry.getVascFrontendController().getVascEntryState().setTotalBackendRecords(total);
|
||||
|
||||
// check if we need to change the current page if table size if changed in between
|
||||
int pages = new Long(total/backendState.getPageSize()).intValue();
|
||||
if (backendState.getPageIndex() > pages) {
|
||||
backendState.setPageIndex(pages);
|
||||
}
|
||||
|
||||
try {
|
||||
// Execute to get data.
|
||||
entry.getVascFrontendController().getVascEntryState().setEntryDataList(entry.getVascFrontendController().getVascEntryState().getVascBackend().execute(backendState));
|
||||
|
||||
// check if we need to change the current page
|
||||
int pages = new Long(total/backendState.getPageSize()).intValue();
|
||||
if (backendState.getPageIndex() > pages) {
|
||||
backendState.setPageIndex(pages);
|
||||
entry.getVascFrontendController().getVascEntryState().setEntryDataList(entry.getVascFrontendController().getVascEntryState().getVascBackend().execute(backendState));
|
||||
}
|
||||
|
||||
// Fire event post read
|
||||
entry.getVascFrontendController().fireVascFrontendEvent(entry,VascEntryFrontendEventListener.VascFrontendEventType.POST_READ, null);
|
||||
} catch (VascException ve) {
|
||||
throw new VascFrontendException(ve);
|
||||
|
|
@ -251,12 +256,10 @@ public class DefaultVascFrontendActions implements VascFrontendActions {
|
|||
|
||||
public void searchAction(String searchString) throws VascFrontendException {
|
||||
entry.getVascFrontendController().getVascEntryState().getVascBackendState().setSearchString(searchString);
|
||||
entry.getVascFrontendController().getVascEntryState().getVascBackendState().setSortField(null);
|
||||
entry.getVascFrontendController().getVascEntryState().getVascBackendState().setPageIndex(0);
|
||||
entry.getVascFrontendController().fireVascFrontendEvent(entry,VascEntryFrontendEventListener.VascFrontendEventType.SEARCH, searchString);
|
||||
|
||||
refreshData();
|
||||
|
||||
refreshData();
|
||||
entry.getVascFrontendController().getVascFrontend().renderView();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,13 +23,15 @@
|
|||
package net.forwardfire.vasc.impl.frontend;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import net.forwardfire.vasc.core.VascEntry;
|
||||
import net.forwardfire.vasc.core.VascEntryField;
|
||||
import net.forwardfire.vasc.core.actions.VascAction;
|
||||
import net.forwardfire.vasc.frontend.VascFrontendDataSelector;
|
||||
import net.forwardfire.vasc.frontend.VascFrontendDataSelector.EntryFieldSelectType;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -38,7 +40,7 @@ import net.forwardfire.vasc.frontend.VascFrontendDataSelector;
|
|||
* @author Willem Cazander
|
||||
* @version 1.0 Jun 1, 2012
|
||||
*/
|
||||
public class DefaultVascFrontendDataSelector implements VascFrontendDataSelector {
|
||||
public class DefaultVascFrontendDataSelector implements VascFrontendDataSelector {
|
||||
|
||||
private VascEntry entry = null;
|
||||
|
||||
|
|
@ -126,30 +128,48 @@ public class DefaultVascFrontendDataSelector implements VascFrontendDataSelector
|
|||
|
||||
*/
|
||||
|
||||
private List<VascEntryField> filter() {
|
||||
|
||||
public List<VascEntryField> getFields(final EntryFieldSelectType type) {
|
||||
List<VascEntryField> result = new ArrayList<VascEntryField>(50);
|
||||
for (VascEntryField vef:entry.getVascEntryFields()) {
|
||||
|
||||
for (VascEntryField field:entry.getVascEntryFields()) {
|
||||
|
||||
|
||||
if (EntryFieldSelectType.CREATE.equals(type)) {
|
||||
|
||||
if (field.getCreate()!=null && field.getCreate()==false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
} else if (EntryFieldSelectType.EDIT.equals(type)) {
|
||||
|
||||
if (field.getEdit()!=null && field.getEdit()==false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
} else if (EntryFieldSelectType.LIST.equals(type)) {
|
||||
|
||||
if (field.getList()!=null && field.getList()==false) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
result.add(field);
|
||||
}
|
||||
Collections.sort(result,new Comparator<VascEntryField>() {
|
||||
@Override
|
||||
public int compare(VascEntryField o1, VascEntryField o2) {
|
||||
|
||||
if (EntryFieldSelectType.CREATE.equals(type)) {
|
||||
return o1.getOrderCreate().compareTo(o2.getOrderCreate());
|
||||
} else if (EntryFieldSelectType.EDIT.equals(type)) {
|
||||
return o1.getOrderEdit().compareTo(o2.getOrderEdit());
|
||||
} else {
|
||||
// List is default
|
||||
return o1.getOrderList().compareTo(o2.getOrderList());
|
||||
}
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<VascEntryField> getFieldsList() {
|
||||
List<VascEntryField> result = new ArrayList<VascEntryField>(50);
|
||||
result.addAll(entry.getVascEntryFields());
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<VascEntryField> getFieldsCreate() {
|
||||
List<VascEntryField> result = new ArrayList<VascEntryField>(50);
|
||||
result.addAll(entry.getVascEntryFields());
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<VascEntryField> getFieldsEdit() {
|
||||
List<VascEntryField> result = new ArrayList<VascEntryField>(50);
|
||||
result.addAll(entry.getVascEntryFields());
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
xsi:schemaLocation="http://eld.x4o.org/xml/ns/eld-root http://eld.x4o.org/xml/ns/eld-root-1.0.xsd"
|
||||
providerName="vasc.forwardfire.net"
|
||||
name="Vasc Config Language"
|
||||
id="mod-vasc-lang"
|
||||
id="vasc-lang"
|
||||
>
|
||||
|
||||
<eld:classBindingHandler id="VascEntryLocal-VascEntryFieldSet" parentClass="net.forwardfire.vasc.core.VascEntryLocal" childClass="net.forwardfire.vasc.core.VascEntryFieldSet" method="addVascEntryFieldSet"/>
|
||||
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
<eld:elementInterface id="VascBackend" interfaceClass="net.forwardfire.vasc.backend.VascBackend">
|
||||
<eld:configurator id="VascBackendElementConfigurator" bean.class="net.forwardfire.vasc.impl.x4o.VascBackendElementConfigurator" configAction="true"/>
|
||||
<eld:elementParent tag="root" uri="http://vasc.forwardfire.net/xml/ns/vasc-root"/>
|
||||
</eld:elementInterface>
|
||||
|
||||
<eld:namespace
|
||||
|
|
@ -49,12 +50,14 @@
|
|||
<!-- Object for building an entry -->
|
||||
<eld:element tag="entryGroup" objectClass="net.forwardfire.vasc.impl.DefaultVascEntryGroup" >
|
||||
<eld:configurator id="entryGroup-VascEntryElementConfigurator" bean.class="net.forwardfire.vasc.impl.x4o.VascEntryElementConfigurator" configAction="true"/>
|
||||
<eld:elementParent tag="root" uri="http://vasc.forwardfire.net/xml/ns/vasc-root"/>
|
||||
</eld:element>
|
||||
<eld:element tag="entry" objectClass="net.forwardfire.vasc.impl.DefaultVascEntry" >
|
||||
<eld:configurator id="entry-VascEntryElementConfigurator" bean.class="net.forwardfire.vasc.impl.x4o.VascEntryElementConfigurator" configAction="true"/>
|
||||
<eld:attribute name="accessType">
|
||||
<conv:enumConverter enumClass="net.forwardfire.vasc.core.VascEntryAccessType"/>
|
||||
</eld:attribute>
|
||||
<eld:elementParent tag="root" uri="http://vasc.forwardfire.net/xml/ns/vasc-root"/>
|
||||
</eld:element>
|
||||
<eld:element tag="field" objectClass="net.forwardfire.vasc.impl.DefaultVascEntryField" elementClass="net.forwardfire.vasc.impl.x4o.VascEntryFieldElement">
|
||||
<eld:attribute name="vascEntryFieldType" runBeanFill="false"/>
|
||||
|
|
@ -115,6 +118,7 @@
|
|||
|
||||
<eld:element tag="virtualVascBackend" objectClass="net.forwardfire.vasc.backend.VirtualVascBackend">
|
||||
<eld:configurator id="virtualVascBackend-VascBackendElementConfigurator" bean.class="net.forwardfire.vasc.impl.x4o.VascBackendElementConfigurator" configAction="true"/>
|
||||
<eld:elementParent tag="root" uri="http://vasc.forwardfire.net/xml/ns/vasc-root"/>
|
||||
</eld:element>
|
||||
|
||||
</eld:namespace>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue