split event listeners and made xml elements for event en actions on back/frontend
This commit is contained in:
parent
3d0d609462
commit
a51eeeb254
26 changed files with 559 additions and 123 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue