2
0
Fork 0

split event listeners and made xml elements for event en actions on back/frontend

This commit is contained in:
willem.cazander 2010-10-19 15:44:57 +02:00
parent 3d0d609462
commit a51eeeb254
26 changed files with 559 additions and 123 deletions

View file

@ -51,13 +51,17 @@ import com.idcanet.vasc.core.VascEntryControllerLocal;
import com.idcanet.vasc.core.VascEntryField;
import com.idcanet.vasc.core.VascException;
import com.idcanet.vasc.core.VascFrontendData;
import com.idcanet.vasc.core.entry.VascEntryBackendEventListener;
import com.idcanet.vasc.core.entry.VascEntryFieldValue;
import com.idcanet.vasc.core.entry.VascEntryFrontendEventListener;
import com.idcanet.vasc.core.entry.VascEntryRecordCreator;
import com.idcanet.vasc.ejb3.VascServiceManager;
import com.idcanet.vasc.impl.DefaultVascBackedEntryFinalizer;
import com.idcanet.vasc.impl.DefaultVascEntryState;
import com.idcanet.vasc.impl.DefaultVascFactory;
import com.idcanet.vasc.impl.VascBackendProxyEventExecutor;
import com.idcanet.vasc.impl.entry.DefaultVascEntryResourceResolver;
import com.idcanet.vasc.impl.entry.SetParameterBackendListener;
/**
* Base faces session object for managing vasc entries.
@ -175,6 +179,9 @@ abstract public class AbstractJSFVascFacesController {
VascEntry entry = getVascController().getVascEntryController().getVascEntryById(entryId);
entry.setVascFrontendData(getNewVascFrontendData());
entry.getVascFrontendData().setVascController(getVascController());
VascBackend backend = DefaultVascFactory.getProxyVascBackend(entry);
entry.getVascFrontendData().getVascEntryState().setVascBackend(backend);
entry.getVascFrontendData().getVascEntryState().setVascEntry(entry);
// copy para
if (para!=null) {
@ -187,8 +194,7 @@ abstract public class AbstractJSFVascFacesController {
entry.getVascFrontendData().getVascFrontendHelper().refreshData(entry);
return entry.getVascFrontendData().getVascEntryState().getEntryDataList();
} catch (Exception e) {
e.printStackTrace();
return new ArrayList<Object>(0);
throw new RuntimeException("Could not execute list: "+e.getMessage(),e);
}
}
@ -386,6 +392,31 @@ abstract public class AbstractJSFVascFacesController {
VascEntry ve = vascManager.getVascEntry(id);
String backendId = ve.getBackendId();
VascBackend vb = new RemoteVascBackend(backendId,vascManager);
for (String key:ve.getEntryParameterKeys()) {
Object value = ve.getEntryParameter(key);
if (value instanceof String==false) {
continue;
}
String paraValue = (String)value;
if (paraValue.startsWith("userPara")==false) {
continue;
}
String[] ps = paraValue.split(":");
String type = ps[1];
String paraTypeValue = ps[2];
SetParameterBackendListener listener = new SetParameterBackendListener(vui.userId,vui.username);
listener.setName(key);
listener.setType(type);
// listener.setValue(paraTypeValue);
List<VascEntryBackendEventListener> listeners=new ArrayList<VascEntryBackendEventListener>(10);
listeners.add(listener);
vb = new VascBackendProxyEventExecutor(vb,ve,listeners);
}
localBackendController.addVascBackend(vb);
DefaultVascBackedEntryFinalizer f = new DefaultVascBackedEntryFinalizer();

View file

@ -153,7 +153,7 @@ public class JSFVascEntrySupportBean implements Serializable {
try {
result = ve.getDisplayValue(v, row);
} catch (VascException e) {
e.printStackTrace();
throw new RuntimeException("Could not get parent name DisplayValue: "+e.getMessage(),e);
}
return result;
}
@ -169,7 +169,7 @@ public class JSFVascEntrySupportBean implements Serializable {
try {
result = ve.getDisplayValue(v, row);
} catch (VascException e) {
e.printStackTrace();
throw new RuntimeException("Could not get selected name DisplayValue: "+e.getMessage(),e);
}
return result;
}
@ -528,8 +528,7 @@ public class JSFVascEntrySupportBean implements Serializable {
}
state.getMultiActionSelection().clear(); // after down deselect all options
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException("Could not do multirowaction",e);
} finally {
vascEntry=null;
}
@ -606,15 +605,7 @@ public class JSFVascEntrySupportBean implements Serializable {
// select record to edit
Object rowObject = entry.getVascFrontendData().getVascEntryState().getParent().getEntryDataObject();
//String idField = entry.getVascFrontendData().getVascEntryState().getParent().getVascEntry().getPrimaryKeyFieldId();
// VascEntryField field = entry.getVascFrontendData().getVascEntryState().getParent().getVascEntry().getVascEntryFieldById(idField);
// try {
// Object id = field.getVascEntryFieldValue().getValue(field, rowObject);
comp.initGoto(entry.getVascFrontendData().getVascEntryState().getParent(),rowObject);
// } catch (VascException e1) {
// TODO Auto-generated catch block
// e1.printStackTrace();
//}
comp.initGoto(entry.getVascFrontendData().getVascEntryState().getParent(),rowObject);
}

View file

@ -57,7 +57,15 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
logger = Logger.getLogger(JSFVascFrontendRenderer.class.getName());
}
// Frontend Stuff
// Frontend Stuff
/**
* @see com.idcanet.vasc.core.VascFrontend#getFrontendType()
*/
public String getFrontendType() {
return "jsf";
}
protected void addUiComponents() {
VascFrontendData vfd = getVascEntry().getVascFrontendData();

View file

@ -217,7 +217,7 @@ public class JSFVascUIComponent extends UIComponentBase {
try {
renderer.initEntry(entry);
} catch (Exception e) {
entry.getVascFrontendData().getVascFrontendHelper().handleException(entry, e);
throw new RuntimeException("Could not initEntry: "+e.getMessage(),e);
}
supportBean = new JSFVascEntrySupportBean(entry);
// copy search string for preadded search string from application layer
@ -243,7 +243,7 @@ public class JSFVascUIComponent extends UIComponentBase {
entry.getVascFrontendData().getVascEntryState().setEntryDataObject(rowObject);
entry.getVascFrontendData().getVascFrontend().renderEdit();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("Could not renderEdit: "+e.getMessage(),e);
}
}
@ -324,10 +324,11 @@ public class JSFVascUIComponent extends UIComponentBase {
throw new NullPointerException("Could not locate '"+entryName+"' from : "+vascController);
}
frontendData.setVascFrontend(null); // reset data obj. todo rm this.
frontendData.setVascController(vascController);
entry.setVascFrontendData(frontendData);
try {
frontendData.initFrontendListeners(entry);
frontendData.initFrontendListeners(entry,"jsf");
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
@ -385,7 +386,7 @@ public class JSFVascUIComponent extends UIComponentBase {
entry.getVascFrontendData().addVascEntryFrontendEventListener(new CreateEntryFieldValuesListener2(fieldId,selectedValue));
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("error: "+e.getMessage(),e);
}
}

View file

@ -166,8 +166,11 @@ public class JSFVascUIComponentRenderer extends Renderer {
JSFVascUIComponent comp = JSFVascUIComponent.findVascParent(grid);
VascEntry entry = comp.getVascEntry();
if (entry==null) {
throw new NullPointerException("No parent vasc component found.");
}
String entrySupportVar = (String)comp.getAttributes().get(JSFVascUIComponent.ENTRY_SUPPORT_VAR_KEY);
int column = 0;
for (VascEntryField c:entry.getVascEntryFields()) {
if (entry.getVascFrontendData().getVascFrontendHelper().renderEdit(c)==false) {

View file

@ -207,7 +207,7 @@ public class OldVascUIComponent extends UIComponentBase {
ValueExpression ve2 = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(), vascFrontendData.getExpressionString(), VascFrontendData.class);
VascFrontendData frontendData = (VascFrontendData)ve2.getValue(FacesContext.getCurrentInstance().getELContext());
try {
frontendData.initFrontendListeners(entry);
frontendData.initFrontendListeners(entry,"jsf");
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@ -1597,6 +1597,13 @@ class JSFFrontendRenderer extends AbstractVascFrontend implements Serializable {
private static final long serialVersionUID = 1L;
/**
* @see com.idcanet.vasc.core.VascFrontend#getFrontendType()
*/
public String getFrontendType() {
return "jsf";
}
// Frontend Stuff
protected void addUiComponents() {