2
0
Fork 0

Switch to new meta model,fixed small bugs and made demo work pretty oke.

This commit is contained in:
Willem Cazander 2013-01-11 23:48:36 +01:00
parent afd821c360
commit b3635cf64d
46 changed files with 1055 additions and 688 deletions

View file

@ -51,7 +51,11 @@ public class JSFVascEntryEventListener implements VascEntryFrontendEventListener
* @see net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener#getEventTypes()
*/
public VascFrontendEventType[] getEventTypes() {
VascFrontendEventType[] result = {VascEntryFrontendEventListener.VascFrontendEventType.POST_READ};
VascFrontendEventType[] result = {
VascEntryFrontendEventListener.VascFrontendEventType.POST_READ,
VascEntryFrontendEventListener.VascFrontendEventType.POST_DELETE,
VascEntryFrontendEventListener.VascFrontendEventType.POST_UPDATE
};
return result;
}

View file

@ -87,8 +87,6 @@ public class JSFVascEntrySupportBean implements Serializable {
private Boolean backendMoveable = null;
private Boolean backendSearchable = null;
private Boolean backendPageable = null;
private Boolean sortOrder = null;
private String sortField = null;
private VascEntryExport selectedExporter = null;
private String selectedExporterAction = "null";
private String selectedDirectPage = "null";
@ -441,8 +439,6 @@ public class JSFVascEntrySupportBean implements Serializable {
VascEntry entry = comp.getVascEntry();
VascEntryField field = entry.getVascEntryFieldById(fieldIdString);
entry.getVascFrontendController().getVascFrontendActions().sortAction(field);
sortOrder = entry.getVascFrontendController().getVascEntryState().getVascBackendState().isSortAscending();
sortField = field.getId();
}
public boolean getRenderBackAction() {
@ -855,20 +851,6 @@ public class JSFVascEntrySupportBean implements Serializable {
return tablePagesDataModel;
}
/**
* @return the sortOrder
*/
public Boolean getSortOrder() {
return sortOrder;
}
/**
* @return the sortField
*/
public String getSortField() {
return sortField;
}
/**
* @return the selectedExporter
*/

View file

@ -38,8 +38,6 @@ import net.forwardfire.vasc.frontend.web.jsf.ui.JSFList;
import net.forwardfire.vasc.frontend.web.jsf.ui.JSFText;
import net.forwardfire.vasc.frontend.web.jsf.ui.JSFTextArea;
/**
* Given the jsf vasc renderer its own class
*
@ -56,8 +54,6 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
logger = Logger.getLogger(JSFVascFrontendRenderer.class.getName());
}
// Frontend Stuff
/**
* @see net.forwardfire.vasc.frontend.VascFrontend#getFrontendType()
*/
@ -65,10 +61,9 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
return "jsf";
}
protected void addUiComponents() {
VascFrontendController vfd = getVascEntry().getVascFrontendController();
// required UI components
vfd.putVascUIComponent(net.forwardfire.vasc.core.ui.VascUIComponent.VASC_LABEL,JSFLabel.class.getName());
vfd.putVascUIComponent(net.forwardfire.vasc.core.ui.VascUIComponent.VASC_TEXT, JSFText.class.getName());
@ -82,7 +77,7 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
//vfd.putVascUIComponent(net.forwardfire.vasc.core.ui.VascUIComponent.VASC_COLOR , JSFColorChooser.class.getName());
}
/**
* @see net.forwardfire.vasc.frontend.VascFrontend#renderDelete(java.lang.Object)
*/
@ -92,7 +87,7 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
JSFVascUIComponent comp = JSFVascUIComponent.findVascChild(viewRoot,getVascEntry().getId());
comp.setRenderFacetState("deleteView");
}
/**
* @see net.forwardfire.vasc.frontend.VascFrontend#renderEdit(java.lang.Object)
*/
@ -114,7 +109,7 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
comp.getSupportBean().setSelected(selBean);
}
/**
* @see net.forwardfire.vasc.frontend.VascFrontend#renderExport(net.forwardfire.vasc.core.entry.VascEntryExport)
*/
@ -125,7 +120,7 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
comp.setRenderFacetState("exportView");
comp.getSupportBean().setSelectedExporter(exporter);
}
/**
* @see net.forwardfire.vasc.frontend.VascFrontend#renderView()
*/
@ -134,10 +129,5 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
JSFVascUIComponent comp = JSFVascUIComponent.findVascChild(viewRoot,getVascEntry().getId());
comp.setRenderFacetState("listView");
//if (comp.getSupportBean().getSelected()!=null) {
// comp.getSupportBean().getSelected().setRealValue(false);
// comp.getSupportBean().setSelected(null);
//}
}
}
}

View file

@ -26,7 +26,6 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.logging.Logger;
import javax.el.ValueExpression;
@ -57,63 +56,62 @@ import net.forwardfire.vasc.frontend.web.jsf.ui.JSFListModel;
*/
public class JSFVascUIComponent extends UIComponentBase {
public static final String FAMILY = "vasc.jsf.component.family";
public static final String ENTRY_SUPPORT_VAR_KEY = "entrySupportVar";
public static final String TABLE_RECORD_VAR_KEY = "tableRecordVar";
public static final String INJECT_EDIT_FIELDS_ID = "injectEditFieldsId";
public static final String INJECT_TABLE_OPTIONS_ID = "injectTableOptionsId";
public static final String INJECT_TABLE_COLUMNS_ID = "injectTableColumnsId";
public static final String DISABLE_LINK_COLUMNS = "disableLinkColumns";
public static final String INJECT_TABLE_OPTIONS_ON_CHANGE = "injectTableOptionOnChange";
private JSFVascFrontendRenderer renderer = null;
private JSFVascEntrySupportBean supportBean = null;
private String renderFacetState = null;
private VascEntryLink link = null;
private VascEntryState linkState = null;
private VascEntryState state = null;
private Object stateEditId = null;
private Logger logger = null;
private Boolean initClear = null;
private String injectTableOptionOnChange = null;
public JSFVascUIComponent() {
logger = Logger.getLogger(JSFVascUIComponent.class.getName());
}
public String getFamily() {
return FAMILY;
}
public static final String FAMILY = "vasc.jsf.component.family";
public static final String ENTRY_SUPPORT_VAR_KEY = "entrySupportVar";
public static final String TABLE_RECORD_VAR_KEY = "tableRecordVar";
public static final String INJECT_EDIT_FIELDS_ID = "injectEditFieldsId";
public static final String INJECT_TABLE_OPTIONS_ID = "injectTableOptionsId";
public static final String INJECT_TABLE_COLUMNS_ID = "injectTableColumnsId";
public static final String DISABLE_LINK_COLUMNS = "disableLinkColumns";
public static final String INJECT_TABLE_OPTIONS_ON_CHANGE = "injectTableOptionOnChange";
private JSFVascFrontendRenderer renderer = null;
private JSFVascEntrySupportBean supportBean = null;
private String renderFacetState = null;
private VascEntryLink link = null;
private VascEntryState linkState = null;
private VascEntryState state = null;
private Object stateEditId = null;
private Logger logger = null;
private Boolean initClear = null;
private String injectTableOptionOnChange = null;
public JSFVascUIComponent() {
logger = Logger.getLogger(JSFVascUIComponent.class.getName());
}
public String getFamily() {
return FAMILY;
}
@Override
public Object saveState(FacesContext facesContext) {
logger.fine("Save State");
Object values[] = new Object[5];
values[0] = super.saveState(facesContext);
values[1] = renderer;
values[2] = supportBean;
values[3] = renderFacetState;
values[4] = this.getAttributes().get(INJECT_TABLE_OPTIONS_ON_CHANGE);
return values;
}
@Override
public Object saveState(FacesContext facesContext) {
logger.fine("Save State");
Object values[] = new Object[5];
values[0] = super.saveState(facesContext);
values[1] = renderer;
values[2] = supportBean;
values[3] = renderFacetState;
values[4] = this.getAttributes().get(INJECT_TABLE_OPTIONS_ON_CHANGE);
return values;
@Override
public void restoreState(FacesContext facesContext, Object state) {
logger.fine("Resotre State");
Object values[] = (Object[])state;
super.restoreState(facesContext, values[0]);
renderer = (JSFVascFrontendRenderer) values[1];
supportBean = (JSFVascEntrySupportBean) values[2];
renderFacetState = (String) values[3];
injectTableOptionOnChange = (String) values[4];
}
@Override
public void restoreState(FacesContext facesContext, Object state) {
logger.fine("Resotre State");
Object values[] = (Object[])state;
super.restoreState(facesContext, values[0]);
renderer = (JSFVascFrontendRenderer) values[1];
supportBean = (JSFVascEntrySupportBean) values[2];
renderFacetState = (String) values[3];
injectTableOptionOnChange = (String) values[4];
// TODO: check if we can move this some day...
// TODO: check if we can move this some day...
String entrySupportVar = (String)getAttributes().get(JSFVascUIComponent.ENTRY_SUPPORT_VAR_KEY);
ValueExpression ve2 = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(), "#{"+entrySupportVar+"}", Object.class);
ve2.setValue(FacesContext.getCurrentInstance().getELContext(), getSupportBean());
}
}
static public JSFVascUIComponent findVascParent(UIComponent comp) {
if (comp==null) {
return null;
@ -146,7 +144,7 @@ public class JSFVascUIComponent extends UIComponentBase {
}
return null;
}
/**
* Finds component with the given id
*/
@ -229,7 +227,7 @@ public class JSFVascUIComponent extends UIComponentBase {
// edit action copyed
try {
VascEntry entry = supportBean.getVascEntry();
VascEntry entry = supportBean.getVascEntry();
entry.getVascFrontendController().getVascEntryState().setEditCreate(false);
entry.getVascFrontendController().fireVascFrontendEvent(entry, VascFrontendEventType.SELECT, rowObject);
entry.getVascFrontendController().getVascEntryState().setEntryDataObject(rowObject);
@ -263,46 +261,44 @@ public class JSFVascUIComponent extends UIComponentBase {
super.encodeBegin(context);
}
public UIComponent getCurrentView() {
UIComponent result = getFacet(renderFacetState);
if (result==null) {
throw new IllegalArgumentException("Could not get facet: "+renderFacetState);
}
return result;
}
public JSFVascEntrySupportBean getSupportBean() {
return supportBean;
}
public void setRenderFacetState(String renderFacetState) {
this.renderFacetState=renderFacetState;
}
public String getRenderFacetState() {
return renderFacetState;
}
public UIComponent getCurrentView() {
UIComponent result = getFacet(renderFacetState);
if (result==null) {
throw new IllegalArgumentException("Could not get facet: "+renderFacetState);
}
return result;
}
public JSFVascEntrySupportBean getSupportBean() {
return supportBean;
}
public void setRenderFacetState(String renderFacetState) {
this.renderFacetState=renderFacetState;
}
public String getRenderFacetState() {
return renderFacetState;
}
/**
* @return the injectTableOptionOnChange
*/
public String getInjectTableOptionOnChange() {
return injectTableOptionOnChange;
}
/**
* @param injectTableOptionOnChange the injectTableOptionOnChange to set
*/
public void setInjectTableOptionOnChange(String injectTableOptionOnChange) {
this.injectTableOptionOnChange = injectTableOptionOnChange;
}
public VascEntry createClonedVascEntry() {
VascController vascController = (VascController)FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get(VascRequestFacesFilter.REQ_VASC_CONTOLLER);
String entryId = (String)FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get(VascRequestFacesFilter.REQ_VASC_ENTRY_ID);
if (link!=null) {
entryId = link.getVascEntryId();
}
@ -314,8 +310,6 @@ public class JSFVascUIComponent extends UIComponentBase {
if (entry==null) {
throw new NullPointerException("Could not get '"+entryId+"' from : "+vascController);
}
try {
vascController.getVascEntryConfigController().configVascFrontendController(vascController, entry);
} catch (Exception e1) {
@ -410,4 +404,4 @@ public class JSFVascUIComponent extends UIComponentBase {
}
}
}
}
}

View file

@ -419,14 +419,14 @@ public class JSFVascUIComponentRenderer extends Renderer {
orderUp.setId(viewRoot.createUniqueId());
orderUp.setEscape(false);
orderUp.setValue("↑"); //
ValueExpression ren2 = application.getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(), "#{"+entrySupportVar+".sortOrder==true and "+entrySupportVar+".sortField=='"+c.getId()+"'}", Boolean.class);
ValueExpression ren2 = application.getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(), "#{"+entrySupportVar+".vascEntry.vascFrontendController.vascEntryState.vascBackendState.sortAscending==true and "+entrySupportVar+".vascEntry.vascFrontendController.vascEntryState.vascBackendState.sortField=='"+c.getId()+"'}", Boolean.class);
orderUp.setValueExpression("rendered", ren2);
HtmlOutputText orderDown = (HtmlOutputText)application.createComponent(HtmlOutputText.COMPONENT_TYPE);
orderDown.setId(viewRoot.createUniqueId());
orderDown.setEscape(false);
orderDown.setValue("↓"); //
ValueExpression ren3 = application.getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(), "#{"+entrySupportVar+".sortOrder==false and "+entrySupportVar+".sortField=='"+c.getId()+"'}", Boolean.class);
ValueExpression ren3 = application.getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(), "#{"+entrySupportVar+".vascEntry.vascFrontendController.vascEntryState.vascBackendState.sortAscending==false and "+entrySupportVar+".vascEntry.vascFrontendController.vascEntryState.vascBackendState.sortField=='"+c.getId()+"'}", Boolean.class);
orderDown.setValueExpression("rendered", ren3);
link.getChildren().add(out2);

View file

@ -29,6 +29,7 @@ import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.entry.VascEntryFieldValue;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.VascFrontendDataSelector.EntryFieldSelectType;
@ -63,7 +64,7 @@ public class VascDataBackendBean implements Serializable {
if (index>entry.getVascEntryFields().size()) {
throw new IllegalArgumentException("Index is bigger then total field size: "+index);
}
return entry.getVascFrontendController().getVascFrontendDataSelector().getFieldsList().get(index);
return entry.getVascFrontendController().getVascFrontendDataSelector().getFields(EntryFieldSelectType.ALL).get(index);
}
static public int getIndexId(VascEntryField field) {

View file

@ -94,20 +94,19 @@ public class VascRequestFacesFilter implements Filter {
className = className.substring(atIndex+1);
}
try {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
if (cl == null) {
cl = className.getClass().getClassLoader();
}
Class<?> clazz = cl.loadClass(className);
if (classArgument==null) {
vascControllerProvider = (VascControllerProvider)clazz.newInstance();
} else {
vascControllerProvider = (VascControllerProvider)clazz.getConstructor(String.class).newInstance(classArgument);
}
ClassLoader cl = Thread.currentThread().getContextClassLoader();
if (cl == null) {
cl = className.getClass().getClassLoader();
}
Class<?> clazz = cl.loadClass(className);
if (classArgument==null) {
vascControllerProvider = (VascControllerProvider)clazz.newInstance();
} else {
vascControllerProvider = (VascControllerProvider)clazz.getConstructor(String.class).newInstance(classArgument);
}
} catch (Exception e) {
throw new ServletException("Could not create VascControllerProvider: "+e.getMessage(),e);
}
}
/**