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
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue