2
0
Fork 0

wip made remote ejb working over http

This commit is contained in:
Willem Cazander 2012-11-21 20:45:08 +01:00
parent d4e537a2bf
commit 2a0d992642
393 changed files with 8916 additions and 3872 deletions

View file

@ -3,7 +3,7 @@
<parent>
<artifactId>vasc</artifactId>
<groupId>net.forwardfire.vasc</groupId>
<version>0.3.5-SNAPSHOT</version>
<version>0.4.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>vasc-frontend</artifactId>

View file

@ -3,7 +3,7 @@
<parent>
<artifactId>vasc-frontend</artifactId>
<groupId>net.forwardfire.vasc</groupId>
<version>0.3.5-SNAPSHOT</version>
<version>0.4.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>vasc-frontend-cxf</artifactId>

View file

@ -3,7 +3,7 @@
<parent>
<artifactId>vasc-frontend-cxf</artifactId>
<groupId>net.forwardfire.vasc</groupId>
<version>0.3.5-SNAPSHOT</version>
<version>0.4.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>vasc-frontend-cxf-client</artifactId>
@ -15,5 +15,10 @@
<artifactId>jsr181-api</artifactId>
<version>${jsr181-api.version}</version>
</dependency>
<dependency>
<groupId>net.forwardfire.vasc</groupId>
<artifactId>vasc-core</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

View file

@ -0,0 +1,11 @@
package net.forwardfire.vasc.frontend.cxf.client;
import java.util.List;
import javax.jws.WebService;
@WebService
public interface VascControllerService {
List<String> getVascEntryIds();
}

View file

@ -2,9 +2,21 @@ package net.forwardfire.vasc.frontend.cxf.client;
import javax.jws.WebService;
import net.forwardfire.vasc.frontend.cxf.data.VascEntryExecuteRequest;
import net.forwardfire.vasc.frontend.cxf.data.VascEntryExecuteResponse;
@WebService
/*
@WSDLDocumentationCollection(
{
@WSDLDocumentation("My portType documentation")
}
)
*/
public interface VascEntryService {
public String testHi(String response);
VascEntryExecuteResponse execute(VascEntryExecuteRequest request);
String testHi(String response);
}

View file

@ -0,0 +1,43 @@
package net.forwardfire.vasc.frontend.cxf.data;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "VascEntryExecuteRequest")
@XmlAccessorType(XmlAccessType.FIELD)
public class VascEntryExecuteRequest {
private String sortField = null;
private String page = null;
/**
* @return the sortField
*/
public String getSortField() {
return sortField;
}
/**
* @param sortField the sortField to set
*/
public void setSortField(String sortField) {
this.sortField = sortField;
}
/**
* @return the page
*/
public String getPage() {
return page;
}
/**
* @param page the page to set
*/
public void setPage(String page) {
this.page = page;
}
}

View file

@ -0,0 +1,74 @@
package net.forwardfire.vasc.frontend.cxf.data;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "VascEntryExecuteResponse")
@XmlAccessorType(XmlAccessType.FIELD)
public class VascEntryExecuteResponse {
private Integer page = null;
private Integer pageSize = null;
private Integer pageSizeTotal = null;
private List<VascEntryExecuteResponseData> data = null;
/**
* @return the page
*/
public Integer getPage() {
return page;
}
/**
* @param page the page to set
*/
public void setPage(Integer page) {
this.page = page;
}
/**
* @return the pageSize
*/
public Integer getPageSize() {
return pageSize;
}
/**
* @param pageSize the pageSize to set
*/
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
/**
* @return the pageSizeTotal
*/
public Integer getPageSizeTotal() {
return pageSizeTotal;
}
/**
* @param pageSizeTotal the pageSizeTotal to set
*/
public void setPageSizeTotal(Integer pageSizeTotal) {
this.pageSizeTotal = pageSizeTotal;
}
/**
* @return the data
*/
public List<VascEntryExecuteResponseData> getData() {
return data;
}
/**
* @param data the data to set
*/
public void setData(List<VascEntryExecuteResponseData> data) {
this.data = data;
}
}

View file

@ -0,0 +1,83 @@
package net.forwardfire.vasc.frontend.cxf.data;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "VascEntryExecuteResponseData")
@XmlAccessorType(XmlAccessType.FIELD)
public class VascEntryExecuteResponseData {
private Integer rowSize = null;
@XmlElement(nillable = false, name = "rowData")
private List<VascEntryExecuteResponseDataRow> rowData = null;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "VascEntryExecuteResponseDataRow")
static class VascEntryExecuteResponseDataRow {
@XmlElement(required = true, nillable = false)
String key;
String value;
/**
* @return the key
*/
public String getKey() {
return key;
}
/**
* @param key the key to set
*/
public void setKey(String key) {
this.key = key;
}
/**
* @return the value
*/
public String getValue() {
return value;
}
/**
* @param value the value to set
*/
public void setValue(String value) {
this.value = value;
}
}
/**
* @return the rowSize
*/
public Integer getRowSize() {
return rowSize;
}
/**
* @param rowSize the rowSize to set
*/
public void setRowSize(Integer rowSize) {
this.rowSize = rowSize;
}
/**
* @return the rowData
*/
public List<VascEntryExecuteResponseDataRow> getRowData() {
return rowData;
}
/**
* @param rowData the rowData to set
*/
public void setRowData(List<VascEntryExecuteResponseDataRow> rowData) {
this.rowData = rowData;
}
}

View file

@ -0,0 +1,5 @@
package net.forwardfire.vasc.frontend.cxf.data.jaxb;
public class ResponseDataMapAdapter {
}

View file

@ -3,7 +3,7 @@
<parent>
<artifactId>vasc-frontend-cxf</artifactId>
<groupId>net.forwardfire.vasc</groupId>
<version>0.3.5-SNAPSHOT</version>
<version>0.4.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>vasc-frontend-cxf-server</artifactId>

View file

@ -0,0 +1,19 @@
package net.forwardfire.vasc.frontend.cxf.server;
import java.util.List;
import net.forwardfire.vasc.core.VascController;
import net.forwardfire.vasc.frontend.cxf.client.VascControllerService;
public class VascControllerServiceImpl implements VascControllerService {
private VascController vascController = null;
public VascControllerServiceImpl(VascController vascController) {
this.vascController=vascController;
}
public List<String> getVascEntryIds() {
return vascController.getVascEntryController().getVascEntryIds();
}
}

View file

@ -1,9 +1,28 @@
package net.forwardfire.vasc.frontend.cxf.server;
import net.forwardfire.vasc.core.VascController;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.frontend.cxf.client.VascEntryService;
import net.forwardfire.vasc.frontend.cxf.data.VascEntryExecuteRequest;
import net.forwardfire.vasc.frontend.cxf.data.VascEntryExecuteResponse;
public class VascEntryServiceImpl implements VascEntryService {
private VascController vascController = null;
private VascEntry vascEntry = null;
public VascEntryServiceImpl(VascController vascController,VascEntry vascEntry) {
this.vascController=vascController;
this.vascEntry=vascEntry;
}
public VascEntryExecuteResponse execute(VascEntryExecuteRequest request) {
VascEntryExecuteResponse response = new VascEntryExecuteResponse();
return response;
}
public String testHi(String response) {
return "HOHO: "+response+" HAAHA..";
}

View file

@ -27,7 +27,10 @@ import java.util.logging.Logger;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import net.forwardfire.vasc.core.VascController;
import net.forwardfire.vasc.core.VascControllerProvider;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.frontend.cxf.server.VascControllerServiceImpl;
import net.forwardfire.vasc.frontend.cxf.server.VascEntryServiceImpl;
import javax.xml.ws.Endpoint;
@ -46,7 +49,7 @@ public class VascCXFServlet extends CXFNonSpringServlet {
private Logger logger = Logger.getLogger(VascCXFServlet.class.getName());
private static final long serialVersionUID = 8125039180724973858L;
private VascControllerProvider vascControllerProvider = null;
private VascController vascController = null;
private boolean exportTree = false;
/**
@ -70,16 +73,18 @@ public class VascCXFServlet extends CXFNonSpringServlet {
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);
VascControllerProvider vascControllerProvider = null;
if (classArgument==null) {
vascControllerProvider = (VascControllerProvider)clazz.newInstance();
} else {
vascControllerProvider = (VascControllerProvider)clazz.getConstructor(String.class).newInstance(classArgument);
}
vascController = vascControllerProvider.getVascController();
} catch (Exception e) {
throw new ServletException("Could not create VascControllerProvider: "+e.getMessage(),e);
}
@ -88,12 +93,18 @@ public class VascCXFServlet extends CXFNonSpringServlet {
}
@Override
public void loadBus(ServletConfig servletConfig) {
super.loadBus(servletConfig);
Bus bus = getBus();
BusFactory.setDefaultBus(bus);
Endpoint.publish("/foobar", new VascEntryServiceImpl());
}
public void loadBus(ServletConfig servletConfig) {
super.loadBus(servletConfig);
Bus bus = getBus();
BusFactory.setDefaultBus(bus);
Endpoint.publish("/vascControllerService", new VascControllerServiceImpl(vascController));
for (String id:vascController.getVascEntryController().getVascEntryIds()) {
VascEntry ve = vascController.getVascEntryController().getVascEntryById(id);
try {
Endpoint.publish("/"+id, new VascEntryServiceImpl(vascController,ve));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

View file

@ -3,7 +3,7 @@
<parent>
<artifactId>vasc-frontend</artifactId>
<groupId>net.forwardfire.vasc</groupId>
<version>0.3.5-SNAPSHOT</version>
<version>0.4.1-SNAPSHOT</version>
</parent>
<artifactId>vasc-frontend-swing</artifactId>
<name>vasc-frontend-swing</name>

View file

@ -36,8 +36,10 @@ import javax.swing.ListCellRenderer;
import net.forwardfire.vasc.backend.VascBackendPageNumber;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.actions.GlobalVascAction;
import net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener;
import net.forwardfire.vasc.frontend.VascFrontendException;
/**
* SwingActionPanel renders some page and download actions.
@ -129,8 +131,8 @@ public class SwingActionPanel extends JPanel implements VascEntryFrontendEventLi
}
try {
action.doGlobalAction(vascEntry);
} catch (Exception e) {
vascEntry.getVascFrontendController().getVascFrontendHelper().handleException(vascEntry, e);
} catch (VascException e) {
throw new VascFrontendException(e);
}
// restore normal view for next request.
@ -252,7 +254,7 @@ public class SwingActionPanel extends JPanel implements VascEntryFrontendEventLi
return null;
}
public void doGlobalAction(VascEntry vascEntry) throws Exception {
public void doGlobalAction(VascEntry vascEntry) throws VascException {
// TODO Auto-generated method stub
}

View file

@ -34,8 +34,8 @@ import javax.swing.JMenuItem;
import javax.swing.JPanel;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener;
import net.forwardfire.vasc.impl.DefaultVascFactory;
/**
* SwingPanelFrame to render into frames.
@ -57,7 +57,7 @@ public class SwingPanelFrame implements SwingPanelIntegration {
this.addVascMenu=addVascMenu;
}
public void createNewVascView(VascEntry entry) throws Exception {
public void createNewVascView(VascEntry entry) throws VascException {
// define redering
JPanel panel = initVascView();

View file

@ -3,6 +3,7 @@ package net.forwardfire.vasc.frontend.swing;
import javax.swing.JPanel;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascException;
/**
* SwingPanelIntegration provides the JPanels to vasc to integrate into application panel handing.
@ -12,7 +13,7 @@ import net.forwardfire.vasc.core.VascEntry;
*/
public interface SwingPanelIntegration {
public void createNewVascView(VascEntry entry) throws Exception;
public void createNewVascView(VascEntry entry) throws VascException;
public JPanel initVascView();
public void openVascView(JPanel pane,VascEntry entry);
public void closeVascView(JPanel pane,VascEntry entry);

View file

@ -26,6 +26,7 @@ import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener;
/**
@ -44,7 +45,7 @@ public class SwingPanelTabbed implements SwingPanelIntegration {
this.tabbedPane=tabbedPane;
}
public void createNewVascView(VascEntry entry) throws Exception {
public void createNewVascView(VascEntry entry) throws VascException {
// define redering
JPanel panel = initVascView();
SwingVascFrontend render = new SwingVascFrontend(panel,this);

View file

@ -39,6 +39,7 @@ import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascEntryLink;
import net.forwardfire.vasc.core.VascEntryLocal;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascColumnValueModelListener;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
@ -61,7 +62,7 @@ public class SwingVascEditDialog extends JPanel {
private SwingPanelIntegration panels = null;
private JPanel editView = null;
public SwingVascEditDialog(SwingVascFrontend swingFrontend,JPanel editView,VascEntry entry,Object bean,String beanValue,SwingPanelIntegration panels) throws Exception {
public SwingVascEditDialog(SwingVascFrontend swingFrontend,JPanel editView,VascEntry entry,Object bean,String beanValue,SwingPanelIntegration panels) throws VascException {
super();
this.headerText = "vasc.dialog.edit.message";
this.headerTextValue = beanValue;
@ -152,7 +153,7 @@ public class SwingVascEditDialog extends JPanel {
return header;
}
protected JPanel createBody() throws Exception {
protected JPanel createBody() throws VascException {
JPanel body = new JPanel();
body.setLayout(new SpringLayout());
int column = 0;

View file

@ -30,7 +30,9 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
@ -62,16 +64,17 @@ import javax.swing.table.TableColumnModel;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascEntryListOption;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.actions.GlobalVascAction;
import net.forwardfire.vasc.core.actions.RowVascAction;
import net.forwardfire.vasc.core.entry.VascEntryExporter;
import net.forwardfire.vasc.core.ui.VascOptionValueModelListener;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.AbstractVascFrontend;
import net.forwardfire.vasc.frontend.VascFrontendController;
import net.forwardfire.vasc.frontend.VascFrontendException;
import net.forwardfire.vasc.frontend.swing.ui.SwingBoolean;
import net.forwardfire.vasc.frontend.swing.ui.SwingButton;
import net.forwardfire.vasc.frontend.swing.ui.SwingColorChooser;
@ -150,52 +153,60 @@ public class SwingVascFrontend extends AbstractVascFrontend {
/**
* @see net.forwardfire.vasc.core.VascViewRenderer#renderEdit(net.forwardfire.vasc.core.VascEntry, java.lang.Object)
*/
public void renderEdit() throws Exception {
public void renderEdit() throws VascFrontendException {
logger.fine("Rending Edit View");
try {
Object rowBean = entry.getVascFrontendController().getVascEntryState().getEntryDataObject();
String beanValue = rowBean.toString();
if (entry.getDisplayNameFieldId()!=null) {
VascEntryField v = entry.getVascEntryFieldById(entry.getDisplayNameFieldId());
Object vv = v.getVascEntryFieldValue().getValue(v, rowBean);
if (vv==null) {
beanValue="";
} else {
beanValue=""+vv;
}
if (beanValue.length()>30) {
beanValue=beanValue.substring(0, 30);
}
}
JPanel editPanel = panels.initVascView();
SwingVascEditDialog dialog = new SwingVascEditDialog(this,editPanel,entry,rowBean,beanValue,panels);
entry.getVascFrontendController().getVascFrontendHelper().editReadOnlyUIComponents(entry);
panels.openVascView(editPanel,entry);
} catch (VascException ve) {
throw new VascFrontendException(ve);
}
}
public void renderDelete() throws VascFrontendException {
Object rowBean = entry.getVascFrontendController().getVascEntryState().getEntryDataObject();
String beanValue = rowBean.toString();
if (entry.getDisplayNameFieldId()!=null) {
try {
VascEntryField v = entry.getVascEntryFieldById(entry.getDisplayNameFieldId());
Object vv = v.getVascEntryFieldValue().getValue(v, rowBean);
if (vv==null) {
beanValue="";
} else {
beanValue=""+vv;
}
beanValue = ""+v.getVascEntryFieldValue().getValue(v, rowBean);
if (beanValue.length()>30) {
beanValue=beanValue.substring(0, 30);
}
}
JPanel editPanel = panels.initVascView();
SwingVascEditDialog dialog = new SwingVascEditDialog(this,editPanel,entry,rowBean,beanValue,panels);
entry.getVascFrontendController().getVascFrontendHelper().editReadOnlyUIComponents(entry);
panels.openVascView(editPanel,entry);
}
public void renderDelete() throws Exception {
Object rowBean = entry.getVascFrontendController().getVascEntryState().getEntryDataObject();
String beanValue = rowBean.toString();
VascEntryField v = entry.getVascEntryFieldById(entry.getDisplayNameFieldId());
beanValue = ""+v.getVascEntryFieldValue().getValue(v, rowBean);
if (beanValue.length()>30) {
beanValue=beanValue.substring(0, 30);
} catch (VascException ve) {
throw new VascFrontendException(ve);
}
int response = JOptionPane.showOptionDialog(
parent // Center in window.
, i18n("vasc.dialog.delete.message",beanValue) // Message
, i18n("vasc.dialog.delete.title") // Title in titlebar
, JOptionPane.YES_NO_OPTION // Option type
, JOptionPane.PLAIN_MESSAGE // messageType
, null // Icon (none)
, null // Button text as above.
, null // Default button's label
);
parent // Center in window.
, i18n("vasc.dialog.delete.message",beanValue) // Message
, i18n("vasc.dialog.delete.title") // Title in titlebar
, JOptionPane.YES_NO_OPTION // Option type
, JOptionPane.PLAIN_MESSAGE // messageType
, null // Icon (none)
, null // Button text as above.
, null // Default button's label
);
if (response==JOptionPane.YES_OPTION) {
entry.getVascFrontendController().getVascFrontendActions().deleteObject();
}
@ -204,7 +215,7 @@ public class SwingVascFrontend extends AbstractVascFrontend {
/**
* @see net.forwardfire.vasc.core.VascViewRenderer#renderExport(net.forwardfire.vasc.core.VascEntry, net.forwardfire.vasc.core.VascDataExporter)
*/
public void renderExport(VascEntryExporter exporter) throws Exception {
public void renderExport(VascEntryExporter exporter) throws VascFrontendException {
String fileName = null;
JFileChooser c = new JFileChooser();
@ -222,14 +233,20 @@ public class SwingVascFrontend extends AbstractVascFrontend {
if (fileName == null) {
return;
}
OutputStream out = new FileOutputStream(fileName);
OutputStream out = null;
try {
out = new FileOutputStream(fileName);
exporter.doExport(out, entry);
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
} finally {
} catch (VascException e) {
throw new VascFrontendException(e);
} catch (FileNotFoundException e) {
throw new VascFrontendException(e);
} finally {
if (out!=null) {
out.close();
try {
out.close();
} catch (IOException e) {
}
}
}
}
@ -238,7 +255,7 @@ public class SwingVascFrontend extends AbstractVascFrontend {
/**
* @see net.forwardfire.vasc.core.VascViewRenderer#renderView(net.forwardfire.vasc.core.VascEntry)
*/
public void renderView() throws Exception {
public void renderView() throws VascFrontendException {
if (initOnce==false) {
return;
@ -306,68 +323,66 @@ public class SwingVascFrontend extends AbstractVascFrontend {
body.setLayout(new SpringLayout());
int column = 0;
try {
for(VascEntryListOption c:entry.getVascEntryListOptions()) {
for (int i=0;i<c.getVascEntryFieldType().getUIComponentCount(c);i++) {
VascUIComponent label = c.getVascEntryFieldType().provideLabelUIComponent(i,c);
VascValueModel model = new VascValueModel();
model.setValue(i18n(c.getName()));
label.createComponent(entry,c,model,body);
VascUIComponent editor = c.getVascEntryFieldType().provideEditorUIComponent(i,c);
model = new VascValueModel(c.getVascEntryFieldType().provideEditorVascValueModel(i,c));
model.addListener(new VascOptionValueModelListener(c));
model.setValue(c.getDefaultValue());
Object g = editor.createComponent(entry,c,model,body);
column++;
if (i==0) {
entry.getVascFrontendController().addFieldVascUIComponents(c, editor,g);
}
body.add(new JLabel()); // fill :(
}
}
entry.getVascFrontendController().getVascFrontendHelper().headerOptionsCreatedFillData(entry);
// add search
column++;
JLabel searchLabel = new JLabel("Search: ");
body.add(searchLabel);
final JTextField searchField = new JTextField();
body.add(searchField);
searchField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String searchText = searchField.getText();
entry.getVascFrontendController().getVascFrontendActions().searchAction(searchText);
for(VascEntryListOption c:entry.getVascEntryListOptions()) {
for (int i=0;i<c.getVascEntryFieldType().getUIComponentCount(c);i++) {
VascUIComponent label = c.getVascEntryFieldType().provideLabelUIComponent(i,c);
VascValueModel model = new VascValueModel();
model.setValue(i18n(c.getName()));
label.createComponent(entry,c,model,body);
VascUIComponent editor = c.getVascEntryFieldType().provideEditorUIComponent(i,c);
model = new VascValueModel(c.getVascEntryFieldType().provideEditorVascValueModel(i,c));
model.addListener(new VascOptionValueModelListener(c));
model.setValue(c.getDefaultValue());
Object g = editor.createComponent(entry,c,model,body);
column++;
if (i==0) {
entry.getVascFrontendController().addFieldVascUIComponents(c, editor,g);
}
body.add(new JLabel()); // fill :(
}
}
});
JButton searchButton = new JButton("Search");
searchButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String searchText = searchField.getText();
entry.getVascFrontendController().getVascFrontendActions().searchAction(searchText);
}
});
body.add(searchButton);
entry.getVascFrontendController().getVascFrontendHelper().headerOptionsCreatedFillData(entry);
// add search
column++;
JLabel searchLabel = new JLabel("Search: ");
body.add(searchLabel);
final JTextField searchField = new JTextField();
body.add(searchField);
searchField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String searchText = searchField.getText();
entry.getVascFrontendController().getVascFrontendActions().searchAction(searchText);
}
});
JButton searchButton = new JButton("Search");
searchButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String searchText = searchField.getText();
entry.getVascFrontendController().getVascFrontendActions().searchAction(searchText);
}
});
body.add(searchButton);
} catch (VascException ve) {
throw new RuntimeException(ve);
throw new VascFrontendException(ve);
}
SpringUtilities.makeCompactGrid(body, column,3, 6,6, 6,6);
//optionPanel.add(body);
SpringUtilities.makeCompactGrid(body, column,3, 6,6, 6,6);
// create pager bar
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.PAGE_AXIS));
bottomPanel.add(new SwingPagerPanel(entry));
bottomPanel.add(new SwingActionPanel(entry));
//top.add(header,BorderLayout.NORTH);
parent2.setLayout(new BorderLayout());
parent2.add(header,BorderLayout.NORTH);
parent2.add(optionPanel,BorderLayout.CENTER);
parent2.add(bottomPanel,BorderLayout.SOUTH);
//top.add(header,BorderLayout.NORTH);
parent2.setLayout(new BorderLayout());
parent2.add(header,BorderLayout.NORTH);
parent2.add(optionPanel,BorderLayout.CENTER);
parent2.add(bottomPanel,BorderLayout.SOUTH);
}
private void renderBody(JComponent parent2) {
@ -419,12 +434,7 @@ public class SwingVascFrontend extends AbstractVascFrontend {
if (o==null) {
return;
}
try {
// todo: fix
entry.getVascFrontendController().getVascFrontend().renderEdit();
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, ee);
}
entry.getVascFrontendController().getVascFrontend().renderEdit();
}
}
});
@ -432,76 +442,72 @@ public class SwingVascFrontend extends AbstractVascFrontend {
parent2.add(scrollPane);
}
class ColumnListener extends MouseAdapter {
protected JTable table;
private String sortField = null;
private boolean sortOrder = true;
public ColumnListener(JTable t) {
table = t;
}
public void mouseClicked(MouseEvent e) {
TableColumnModel colModel = table.getColumnModel();
int columnModelIndex = colModel.getColumnIndexAtX(e.getX());
TableColumn tc = colModel.getColumn(columnModelIndex);
VascEntryField field = (VascEntryField)tc.getHeaderValue();
entry.getVascFrontendController().getVascFrontendActions().sortAction(field);
sortOrder = entry.getVascFrontendController().getVascEntryState().getVascBackendState().isSortAscending();
sortField = field.getId();
try {
entry.getVascFrontendController().getVascFrontend().renderView();
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, ee);
}
table.repaint();
}
}
protected JTable table;
private String sortField = null;
private boolean sortOrder = true;
public ColumnListener(JTable t) {
table = t;
}
public void mouseClicked(MouseEvent e) {
TableColumnModel colModel = table.getColumnModel();
int columnModelIndex = colModel.getColumnIndexAtX(e.getX());
TableColumn tc = colModel.getColumn(columnModelIndex);
VascEntryField field = (VascEntryField)tc.getHeaderValue();
entry.getVascFrontendController().getVascFrontendActions().sortAction(field);
sortOrder = entry.getVascFrontendController().getVascEntryState().getVascBackendState().isSortAscending();
sortField = field.getId();
entry.getVascFrontendController().getVascFrontend().renderView();
table.repaint();
}
}
class EntrySectionListener implements ListSelectionListener {
JTable table;
EntrySectionListener(JTable table) {
this.table = table;
}
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
return;
}
if (table.getSelectedRowCount()==0) {
for (RowVascAction action:rowActions.keySet()) {
JButton but = rowActions.get(action);
if (action.getId().contains("add")==false) {
but.setEnabled(false);
}
}
} else if (table.getSelectedRowCount()==1) {
for (JButton but:rowActions.values()) {
but.setEnabled(true);
}
} else {
for (RowVascAction action:rowActions.keySet()) {
JButton but = rowActions.get(action);
if (action.isMultiRowAction()) {
but.setEnabled(true);
} else {
if (action.getId().contains("add")==false) {
but.setEnabled(false);
}
}
}
}
int rowIndex = table.getSelectedRow();
if (rowIndex!=-1) {
// temp; gets index by sorter
//rowIndex = tableSorter.modelIndex(rowIndex);
Object data = entry.getVascFrontendController().getVascEntryState().getEntryDataList().get(rowIndex);
entry.getVascFrontendController().getVascEntryState().setEntryDataObject(data);
} else {
entry.getVascFrontendController().getVascEntryState().setEntryDataObject(null);
}
}
}
JTable table;
EntrySectionListener(JTable table) {
this.table = table;
}
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
return;
}
if (table.getSelectedRowCount()==0) {
for (RowVascAction action:rowActions.keySet()) {
JButton but = rowActions.get(action);
if (action.getId().contains("add")==false) {
but.setEnabled(false);
}
}
} else if (table.getSelectedRowCount()==1) {
for (JButton but:rowActions.values()) {
but.setEnabled(true);
}
} else {
for (RowVascAction action:rowActions.keySet()) {
JButton but = rowActions.get(action);
if (action.isMultiRowAction()) {
but.setEnabled(true);
} else {
if (action.getId().contains("add")==false) {
but.setEnabled(false);
}
}
}
}
int rowIndex = table.getSelectedRow();
if (rowIndex!=-1) {
// temp; gets index by sorter
//rowIndex = tableSorter.modelIndex(rowIndex);
Object data = entry.getVascFrontendController().getVascEntryState().getEntryDataList().get(rowIndex);
entry.getVascFrontendController().getVascEntryState().setEntryDataObject(data);
} else {
entry.getVascFrontendController().getVascEntryState().setEntryDataObject(null);
}
}
}
class JComponentTableHeaderCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 10L;
@Override
@ -517,12 +523,12 @@ public class SwingVascFrontend extends AbstractVascFrontend {
}
if (entry != null) {
JTableHeader header = table.getTableHeader();
if (header != null) {
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
}
JTableHeader header = table.getTableHeader();
if (header != null) {
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
}
}
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
return this;
@ -570,11 +576,11 @@ public class SwingVascFrontend extends AbstractVascFrontend {
public void actionPerformed(ActionEvent event) {
logger.fine("Row Action");
try {
action.doRowAction(entry, entry.getVascFrontendController().getVascEntryState().getEntryDataObject());
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,e);
}
try {
action.doRowAction(entry, entry.getVascFrontendController().getVascEntryState().getEntryDataObject());
} catch (VascException e) {
throw new VascFrontendException(e);
}
}
}
@ -588,11 +594,11 @@ public class SwingVascFrontend extends AbstractVascFrontend {
public void actionPerformed(ActionEvent event) {
logger.fine("Global Action");
try {
action.doGlobalAction(entry);
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,e);
}
try {
action.doGlobalAction(entry);
} catch (VascException e) {
throw new VascFrontendException(e);
}
}
}

View file

@ -31,9 +31,10 @@ import javax.swing.JComponent;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.VascFrontendException;
@ -129,8 +130,8 @@ class SelectActionListener implements ActionListener {
boolean value = ((JCheckBox)e.getSource()).isSelected();
try {
model.setValue(value);
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,ee);
} catch (VascException ve) {
throw new VascFrontendException(ve);
}
}
}

View file

@ -29,9 +29,9 @@ import javax.swing.JComponent;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;

View file

@ -32,9 +32,10 @@ import javax.swing.JComponent;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.VascFrontendException;
@ -139,8 +140,8 @@ class SelectActionListener3 implements ActionListener {
Color newColor = JColorChooser.showDialog(null,"Choose a color...",cur);
try {
model.setValue(newColor);
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,ee);
} catch (VascException ve) {
throw new VascFrontendException(ve);
}
} else {
String cur=null;
@ -158,8 +159,8 @@ class SelectActionListener3 implements ActionListener {
Color newColor = JColorChooser.showDialog(null,"Choose a color...",c);
String newColorString = "#"+Integer.toHexString( newColor.getRGB() & 0x00ffffff );
model.setValue(newColorString);
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,ee);
} catch (VascException ve) {
throw new VascFrontendException(ve);
}
}
}

View file

@ -32,9 +32,10 @@ import javax.swing.JComponent;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.VascFrontendException;
import com.michaelbaranov.microba.calendar.DatePicker;
@ -132,8 +133,8 @@ class SelectActionListener2 implements ActionListener {
Date value = ((DatePicker)e.getSource()).getDate();
try {
model.setValue(value);
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,ee);
} catch (VascException ve) {
throw new VascFrontendException(ve);
}
}
}

View file

@ -29,9 +29,9 @@ import javax.swing.JLabel;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;

View file

@ -35,11 +35,12 @@ import javax.swing.ListCellRenderer;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascSelectItem;
import net.forwardfire.vasc.core.ui.VascSelectItemModel;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.VascFrontendException;
@ -69,8 +70,8 @@ public class SwingList implements VascUIComponent {
VascSelectItem i = (VascSelectItem)((JComboBox)e.getSource()).getSelectedItem();
try {
model.setValue(i.getValue());
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,ee);
} catch (VascException ee) {
throw new VascFrontendException(ee);
}
}
});

View file

@ -31,9 +31,9 @@ import javax.swing.event.DocumentListener;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;

View file

@ -34,9 +34,9 @@ import javax.swing.event.DocumentListener;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
/**
*

View file

@ -3,11 +3,11 @@
<parent>
<artifactId>vasc-frontend</artifactId>
<groupId>net.forwardfire.vasc</groupId>
<version>0.3.5-SNAPSHOT</version>
<version>0.4.1-SNAPSHOT</version>
</parent>
<groupId>net.forwardfire.vasc</groupId>
<artifactId>vasc-frontend-swt</artifactId>
<version>0.3.5-SNAPSHOT</version>
<version>0.4.1-SNAPSHOT</version>
<name>vasc-frontend-swt</name>
<description>vasc-frontend-swt</description>
<dependencies>

View file

@ -24,10 +24,10 @@ package net.forwardfire.vasc.frontend.swt;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascColumnValueModelListener;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;

View file

@ -22,7 +22,9 @@
package net.forwardfire.vasc.frontend.swt;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -41,6 +43,7 @@ import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.ui.VascValueModelListener;
import net.forwardfire.vasc.frontend.AbstractVascFrontend;
import net.forwardfire.vasc.frontend.VascFrontendController;
import net.forwardfire.vasc.frontend.VascFrontendException;
import net.forwardfire.vasc.frontend.swt.ui.SwtBoolean;
import net.forwardfire.vasc.frontend.swt.ui.SwtButton;
import net.forwardfire.vasc.frontend.swt.ui.SwtLabel;
@ -160,7 +163,7 @@ public class SwtVascFrontend extends AbstractVascFrontend {
/** These filter extensions are used to filter which files are displayed. */
private static final String[] FILTER_EXTS = { "*.*","*.csv","*.xls" };
public void renderExport(VascEntryExporter exporter) throws Exception {
public void renderExport(VascEntryExporter exporter) throws VascFrontendException {
FileDialog dlg = new FileDialog(Display.getCurrent().getActiveShell(), SWT.SAVE);
dlg.setFilterNames(FILTER_NAMES);
dlg.setFilterExtensions(FILTER_EXTS);
@ -170,26 +173,37 @@ public class SwtVascFrontend extends AbstractVascFrontend {
if (fileName == null) {
return;
}
OutputStream out = new FileOutputStream(fileName);
OutputStream out = null;
try {
out = new FileOutputStream(fileName);
exporter.doExport(out, entry);
} catch (Exception e) {
} catch (VascException e) {
//MessageDialog.openError(Display.getCurrent().getActiveShell(),crudTable.i18n("crud.event.export.error.title"),crudTable.i18n("crud.event.export.error.message"));
logger.log(Level.WARNING,"Error: "+e.getMessage(),e);
} finally {
throw new VascFrontendException(e);
} catch (FileNotFoundException e) {
throw new VascFrontendException(e);
} finally {
if (out!=null) {
out.close();
try {
out.close();
} catch (IOException e) {
}
}
}
}
public void renderEdit() throws Exception {
public void renderEdit() throws VascFrontendException {
logger.fine("Rending Edit View");
SwtVascEditDialog dialog = new SwtVascEditDialog(entry);
dialog.open();
try {
dialog.open();
} catch (VascException e) {
throw new VascFrontendException(e);
}
}
public void renderDelete() throws Exception {
public void renderDelete() throws VascFrontendException {
boolean del = askDelete( Display.getCurrent().getActiveShell() );
if (del==false) {
return;
@ -210,7 +224,7 @@ public class SwtVascFrontend extends AbstractVascFrontend {
return false;
}
public void renderView() throws Exception {
public void renderView() throws VascFrontendException {
if (initOnce) {
return;
}
@ -358,11 +372,7 @@ public class SwtVascFrontend extends AbstractVascFrontend {
text.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
String value = text.getText();
try {
entry.getVascFrontendController().getVascFrontendActions().searchAction(value);
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,ee);
}
entry.getVascFrontendController().getVascFrontendActions().searchAction(value);
}
});
@ -395,7 +405,7 @@ public class SwtVascFrontend extends AbstractVascFrontend {
try {
action.doGlobalAction(entry);
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,e);
throw new VascFrontendException(e);
}
}
}
@ -577,8 +587,8 @@ public class SwtVascFrontend extends AbstractVascFrontend {
logger.fine("Row Action");
try {
action.doRowAction(entry, entry.getVascFrontendController().getVascEntryState().getEntryDataObject());
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,e);
} catch (VascException e) {
throw new VascFrontendException(e);
}
}
}

View file

@ -24,9 +24,10 @@ package net.forwardfire.vasc.frontend.swt.ui;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.VascFrontendException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
@ -64,10 +65,10 @@ public class SwtBoolean implements VascUIComponent {
public void widgetSelected(SelectionEvent e) {
Boolean value = button.getSelection();
try {
System.out.println("setting value: "+value);
//System.out.println("setting value: "+value);
model.setValue(value);
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,ee);
} catch (VascException ve) {
throw new VascFrontendException(ve);
}
}
});

View file

@ -24,9 +24,9 @@ package net.forwardfire.vasc.frontend.swt.ui;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;

View file

@ -24,9 +24,9 @@ package net.forwardfire.vasc.frontend.swt.ui;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;

View file

@ -27,11 +27,12 @@ import java.util.List;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascSelectItem;
import net.forwardfire.vasc.core.ui.VascSelectItemModel;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.VascFrontendException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
@ -71,8 +72,8 @@ public class SwtList implements VascUIComponent {
if (item!=null) {
try {
model.setValue(item.getValue());
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,ee);
} catch (VascException ve) {
throw new VascFrontendException(ve);
}
}
}

View file

@ -24,9 +24,10 @@ package net.forwardfire.vasc.frontend.swt.ui;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.VascFrontendException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
@ -74,8 +75,8 @@ public class SwtText implements VascUIComponent {
Object value = text.getText();
try {
model.setValue(value);
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,ee);
} catch (VascException ve) {
throw new VascFrontendException(ve);
}
}
}

View file

@ -24,9 +24,10 @@ package net.forwardfire.vasc.frontend.swt.ui;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.VascFrontendException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
@ -98,8 +99,8 @@ public class SwtTextArea implements VascUIComponent {
Object value = text.getText();
try {
model.setValue(value);
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry,ee);
} catch (VascException ve) {
throw new VascFrontendException(ve);
}
}
}

View file

@ -3,7 +3,7 @@
<parent>
<artifactId>vasc-frontend</artifactId>
<groupId>net.forwardfire.vasc</groupId>
<version>0.3.5-SNAPSHOT</version>
<version>0.4.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>vasc-frontend-web-export</artifactId>
@ -17,7 +17,7 @@
</dependency>
<dependency>
<groupId>net.forwardfire.vasc</groupId>
<artifactId>vasc-ejb3</artifactId>
<artifactId>vasc-core-ejb3-client</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>

View file

@ -24,7 +24,6 @@ package net.forwardfire.vasc.frontend.web.export;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Locale;
import java.util.logging.Logger;
import javax.servlet.ServletException;
@ -34,10 +33,9 @@ import javax.servlet.http.HttpServletResponse;
import net.forwardfire.vasc.core.VascController;
import net.forwardfire.vasc.core.VascControllerProvider;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryLocal;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.entry.VascEntryExporter;
import net.forwardfire.vasc.core.VascException;
/**
* VascExportServlet exports the data from the vasc exporters on fixed url.
@ -73,16 +71,16 @@ public class VascExportServlet extends HttpServlet {
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);
}
@ -191,6 +189,6 @@ public class VascExportServlet extends HttpServlet {
response.setContentType("text/html");
}
out.flush();
out.close();
out.close();
}
}

View file

@ -3,7 +3,7 @@
<parent>
<artifactId>vasc-frontend</artifactId>
<groupId>net.forwardfire.vasc</groupId>
<version>0.3.5-SNAPSHOT</version>
<version>0.4.1-SNAPSHOT</version>
</parent>
<artifactId>vasc-frontend-web-jsf</artifactId>
<name>vasc-frontend-web-jsf</name>
@ -16,7 +16,7 @@
</dependency>
<dependency>
<groupId>net.forwardfire.vasc</groupId>
<artifactId>vasc-ejb3</artifactId>
<artifactId>vasc-core-ejb3-client</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>

View file

@ -23,22 +23,23 @@
package net.forwardfire.vasc.frontend.web.jsf;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;
import javax.faces.context.FacesContext;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
import net.forwardfire.vasc.core.VascController;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryControllerLocal;
import net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener;
import net.forwardfire.vasc.frontend.VascFrontendController;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.VascFrontendException;
import net.forwardfire.vasc.impl.DefaultVascFactory;
import net.forwardfire.vasc.impl.entry.DefaultVascEntryResourceResolver;
import net.forwardfire.vasc.impl.x4o.VascParser;
@ -142,7 +143,7 @@ abstract public class AbstractJSFVascFacesControllerLocal extends AbstractJSFVas
VascParser vp = new VascParser(c);
for (String name:vascGlobalELBeans.keySet()) {
Object value = vascGlobalELBeans.get(name);
vp.addGlobalELBean(name, value);
vp.addELBean(name, value);
}
vp.parseResource(res);
}
@ -150,8 +151,20 @@ abstract public class AbstractJSFVascFacesControllerLocal extends AbstractJSFVas
vascController = c;
return vascController;
} catch (Exception e) {
throw new RuntimeException("Could not create remote based vasc controller; "+e.getMessage(),e);
} catch (VascException e) {
throw new VascFrontendException(e);
} catch (FileNotFoundException e) {
throw new VascFrontendException(e);
} catch (SecurityException e) {
throw new VascFrontendException(e);
} catch (NullPointerException e) {
throw new VascFrontendException(e);
} catch (ParserConfigurationException e) {
throw new VascFrontendException(e);
} catch (SAXException e) {
throw new VascFrontendException(e);
} catch (IOException e) {
throw new VascFrontendException(e);
}
}

View file

@ -23,6 +23,7 @@
package net.forwardfire.vasc.frontend.web.jsf;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
@ -54,9 +55,11 @@ import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascEntryState;
import net.forwardfire.vasc.core.VascEntryLink;
import net.forwardfire.vasc.core.VascEntryLinkType;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.actions.GlobalVascAction;
import net.forwardfire.vasc.core.actions.RowVascAction;
import net.forwardfire.vasc.core.entry.VascEntryExporter;
import net.forwardfire.vasc.frontend.VascFrontendException;
import net.forwardfire.vasc.impl.actions.AddRowAction;
import net.forwardfire.vasc.impl.actions.DeleteRowAction;
import net.forwardfire.vasc.impl.actions.EditRowAction;
@ -319,9 +322,9 @@ public class JSFVascEntrySupportBean implements Serializable {
Object parentSelected = entry.getVascFrontendController().getVascEntryState().getParent().getEntryDataObject();
logger.fine("parentCustomRowaction do on: "+action+" parentSelection: "+parentSelected);
try {
action.doRowAction(parent,parentSelected);
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
action.doRowAction(parent,parentSelected);
} catch (VascException e) {
throw new VascFrontendException(e);
}
logger.fine("parentCustomRowaction DONE");
}
@ -383,12 +386,12 @@ public class JSFVascEntrySupportBean implements Serializable {
this.actionId=actionId;
}
public void beforePhase(PhaseEvent PhaseEvent) {
}
}
public void afterPhase(PhaseEvent PhaseEvent) {
if (vascEntry==null) {
return;
}
public void afterPhase(PhaseEvent PhaseEvent) {
if (vascEntry==null) {
return;
}
RowVascAction action = vascEntry.getRowActionById(actionId);
VascEntryState state = vascEntry.getVascFrontendController().getVascEntryState();
@ -413,11 +416,11 @@ public class JSFVascEntrySupportBean implements Serializable {
} finally {
vascEntry=null;
}
}
}
public PhaseId getPhaseId(){
return PhaseId.UPDATE_MODEL_VALUES;
}
public PhaseId getPhaseId(){
return PhaseId.UPDATE_MODEL_VALUES;
}
}
@ -459,11 +462,7 @@ public class JSFVascEntrySupportBean implements Serializable {
logger.fine("backAction");
JSFVascUIComponent comp = JSFVascUIComponent.findVascParent(event.getComponent());
comp.initGoto(entry.getVascFrontendController().getVascEntryState().getParent());
try {
entry.getVascFrontendController().getVascFrontend().renderView();
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
}
entry.getVascFrontendController().getVascFrontend().renderView();
}
public void backEditAction(ActionEvent event) {
@ -495,11 +494,7 @@ public class JSFVascEntrySupportBean implements Serializable {
pageIndex++;
selectedDirectPage=pageIndex+"";
entry.getVascFrontendController().getVascFrontendActions().pageAction(pageIndex);
try {
entry.getVascFrontendController().getVascFrontend().renderView();
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
}
entry.getVascFrontendController().getVascFrontend().renderView();
}
public void pagePreviousAction(ActionEvent event) {
@ -511,11 +506,7 @@ public class JSFVascEntrySupportBean implements Serializable {
pageIndex--;
selectedDirectPage=pageIndex+"";
entry.getVascFrontendController().getVascFrontendActions().pageAction(pageIndex);
try {
entry.getVascFrontendController().getVascFrontend().renderView();
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
}
entry.getVascFrontendController().getVascFrontend().renderView();
}
public boolean getHasPageNextAction() {
@ -546,8 +537,8 @@ public class JSFVascEntrySupportBean implements Serializable {
} else {
action.doRowAction(entry, selected.getRecord());
}
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
} catch (VascException e) {
throw new VascFrontendException(e);
}
logger.fine("RowAction DONE");
}
@ -560,8 +551,8 @@ public class JSFVascEntrySupportBean implements Serializable {
GlobalVascAction action = entry.getGlobalActionById(id);
try {
action.doGlobalAction(entry);
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
} catch (VascException e) {
throw new VascFrontendException(e);
}
}
@ -573,8 +564,8 @@ public class JSFVascEntrySupportBean implements Serializable {
RowVascAction action = entry.getRowActionById("addRowAction");
try {
action.doRowAction(entry, null);
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
} catch (VascException e) {
throw new VascFrontendException(e);
}
}
@ -588,11 +579,7 @@ public class JSFVascEntrySupportBean implements Serializable {
entry.getVascFrontendController().getVascEntryState().setEntryDataObject(selected.getRecord());
VascEntryLink l = entry.getVascEntryLinkById(linkId);
comp.initGoto(l);
try {
entry.getVascFrontendController().getVascFrontend().renderView();
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
}
entry.getVascFrontendController().getVascFrontend().renderView();
this.selected=selected; // renderView clears selected !
}
@ -618,11 +605,7 @@ public class JSFVascEntrySupportBean implements Serializable {
VascEntry entry = comp.getVascEntry();
VascEntryLink l = entry.getVascEntryLinkById(linkId);
comp.initGoto(l);
try {
entry.getVascFrontendController().getVascFrontend().renderView();
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
}
entry.getVascFrontendController().getVascFrontend().renderView();
this.selected=selected; // renderView clears selected !
}
@ -637,11 +620,7 @@ public class JSFVascEntrySupportBean implements Serializable {
int index = comp.getVascEntry().getVascFrontendController().getVascEntryState().getParent().getEntryDataList().indexOf(o);
VascDataBackendBean selected = new VascDataBackendBean(entry,o,index);
this.selected=selected;
try {
entry.getVascFrontendController().getVascFrontend().renderView();
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
}
entry.getVascFrontendController().getVascFrontend().renderView();
this.selected=selected;
}
@ -653,11 +632,7 @@ public class JSFVascEntrySupportBean implements Serializable {
getSelected().setRealValue(false);
}
entry.getVascFrontendController().getVascEntryState().setEntryDataObject(null);
try {
entry.getVascFrontendController().getVascFrontend().renderView();
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
}
entry.getVascFrontendController().getVascFrontend().renderView();
}
public void saveAction(ActionEvent event) {
@ -681,17 +656,13 @@ public class JSFVascEntrySupportBean implements Serializable {
entry.getVascFrontendController().getVascEntryState().setEntryDataObject(selected.getRecord());
if (entry.getVascFrontendController().getVascEntryState().isEditCreate()) {
entry.getVascFrontendController().getVascFrontendActions().persistObject();
} else {
entry.getVascFrontendController().getVascFrontendActions().mergeObject();
}
try {
entry.getVascFrontendController().getVascFrontend().renderView();
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
if (entry.getVascFrontendController().getVascEntryState().isEditCreate()) {
entry.getVascFrontendController().getVascFrontendActions().persistObject();
} else {
entry.getVascFrontendController().getVascFrontendActions().mergeObject();
}
entry.getVascFrontendController().getVascFrontend().renderView();
}
public void deleteAction(ActionEvent event) {
@ -719,11 +690,7 @@ public class JSFVascEntrySupportBean implements Serializable {
entry.getVascFrontendController().getVascFrontendActions().deleteObject();
}
try {
entry.getVascFrontendController().getVascFrontend().renderView();
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
}
entry.getVascFrontendController().getVascFrontend().renderView();
}
public void processDirectDownloadChange(ValueChangeEvent event){
@ -750,8 +717,8 @@ public class JSFVascEntrySupportBean implements Serializable {
GlobalVascAction action = entry.getExportActionById(id);
try {
action.doGlobalAction(entry);
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
} catch (VascException e1) {
throw new VascFrontendException(e1);
}
// restore normal view for next request.
@ -775,9 +742,11 @@ public class JSFVascEntrySupportBean implements Serializable {
ServletOutputStream out = response.getOutputStream();
ex.doExport(out, entry);
out.close();
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
out.close();
} catch (VascException e) {
throw new VascFrontendException(e);
} catch (IOException e) {
throw new VascFrontendException(e);
} finally {
fc.responseComplete();
}
@ -806,12 +775,8 @@ public class JSFVascEntrySupportBean implements Serializable {
logger.fine("directPageChangeAction id: "+id);
//selectedDirectPage = "null";
try {
entry.getVascFrontendController().getVascFrontendActions().pageAction(new Integer(id));
entry.getVascFrontendController().getVascFrontend().renderView();
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
}
entry.getVascFrontendController().getVascFrontendActions().pageAction(new Integer(id));
entry.getVascFrontendController().getVascFrontend().renderView();
}
// Pure get/setters

View file

@ -30,6 +30,7 @@ import javax.faces.context.FacesContext;
import net.forwardfire.vasc.core.entry.VascEntryExporter;
import net.forwardfire.vasc.frontend.AbstractVascFrontend;
import net.forwardfire.vasc.frontend.VascFrontendException;
import net.forwardfire.vasc.frontend.VascFrontendController;
import net.forwardfire.vasc.frontend.web.jsf.ui.JSFBoolean;
import net.forwardfire.vasc.frontend.web.jsf.ui.JSFLabel;
@ -85,7 +86,7 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
/**
* @see net.forwardfire.vasc.frontend.VascFrontend#renderDelete(java.lang.Object)
*/
public void renderDelete() throws Exception {
public void renderDelete() throws VascFrontendException {
logger.finer("renderDelete");
UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
JSFVascUIComponent comp = JSFVascUIComponent.findVascChild(viewRoot,getVascEntry().getId());
@ -95,7 +96,7 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
/**
* @see net.forwardfire.vasc.frontend.VascFrontend#renderEdit(java.lang.Object)
*/
public void renderEdit() throws Exception {
public void renderEdit() throws VascFrontendException {
logger.finer("renderEdit");
UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
JSFVascUIComponent comp = JSFVascUIComponent.findVascChild(viewRoot,getVascEntry().getId());
@ -117,7 +118,7 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
/**
* @see net.forwardfire.vasc.frontend.VascFrontend#renderExport(net.forwardfire.vasc.core.entry.VascEntryExporter)
*/
public void renderExport(VascEntryExporter exporter) throws Exception {
public void renderExport(VascEntryExporter exporter) throws VascFrontendException {
logger.finer("renderExport");
UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
JSFVascUIComponent comp = JSFVascUIComponent.findVascChild(viewRoot,getVascEntry().getId());
@ -128,7 +129,7 @@ public class JSFVascFrontendRenderer extends AbstractVascFrontend implements Ser
/**
* @see net.forwardfire.vasc.frontend.VascFrontend#renderView()
*/
public void renderView() throws Exception {
public void renderView() throws VascFrontendException {
logger.finer("renderView");
UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
JSFVascUIComponent comp = JSFVascUIComponent.findVascChild(viewRoot,getVascEntry().getId());

View file

@ -39,11 +39,12 @@ import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascEntryLocal;
import net.forwardfire.vasc.core.VascEntryState;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.VascEntryLink;
import net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener;
import net.forwardfire.vasc.core.entry.VascEntryFrontendEventListener.VascFrontendEventType;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.VascFrontendController;
import net.forwardfire.vasc.frontend.VascFrontendException;
import net.forwardfire.vasc.frontend.web.jsf.ui.JSFListModel;
/**
@ -357,7 +358,8 @@ public class JSFVascUIComponent extends UIComponentBase {
Object selectedValue = v.getVascEntryFieldValue().getValue(v, selected);
// set data parameter on new vasc entry
entry.getVascFrontendController().getVascEntryState().getVascBackendState().setDataParameter(parameterName, selectedValue);
//was; entry.getVascFrontendController().getVascEntryState().getVascBackendState().setDataParameter(parameterName, selectedValue);
entry.setEntryParameter(parameterName, selectedValue);
logger.fine("Setting link parameter: "+parameterName+" with: "+selectedValue);
}
@ -404,7 +406,7 @@ public class JSFVascUIComponent extends UIComponentBase {
try {
field.getVascEntryFieldValue().setValue(field, data, value);
} catch (VascException e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(entry, e);
throw new VascFrontendException(e);
}
}
}

View file

@ -64,13 +64,13 @@ import javax.faces.validator.ValidatorException;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascEntryListOption;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.VascEntryLink;
import net.forwardfire.vasc.core.VascEntryLinkType;
import net.forwardfire.vasc.core.actions.RowVascAction;
import net.forwardfire.vasc.core.ui.VascOptionValueModelListener;
import net.forwardfire.vasc.core.ui.VascUIComponent;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.impl.actions.AddRowAction;
@ -115,35 +115,33 @@ public class JSFVascUIComponentRenderer extends Renderer {
view.encodeAll(facesContext);
}
@Override
public void encodeEnd(FacesContext facesContext,UIComponent component) throws IOException {
ResponseWriter writer = facesContext.getResponseWriter();
writer.endElement("div");
}
// ========== All private
private void injectAll(FacesContext context,JSFVascUIComponent comp,boolean clean) {
String injectEditFieldsId = (String)comp.getAttributes().get(JSFVascUIComponent.INJECT_EDIT_FIELDS_ID);
String injectTableOptionsId = (String)comp.getAttributes().get(JSFVascUIComponent.INJECT_TABLE_OPTIONS_ID);
String injectTableColumnsId = (String)comp.getAttributes().get(JSFVascUIComponent.INJECT_TABLE_COLUMNS_ID);
UIComponent injectEditFieldsComponent = JSFVascUIComponent.findComponentById(comp.getFacet("editView"),injectEditFieldsId);
UIComponent injectTableOptionsComponent = JSFVascUIComponent.findComponentById(comp.getFacet("listView"),injectTableOptionsId);
UIComponent injectTableColumnsComponent = JSFVascUIComponent.findComponentById(comp.getFacet("listView"),injectTableColumnsId);
if (injectEditFieldsComponent==null) {
throw new NullPointerException("Could not find injectEditFieldsId: "+injectEditFieldsId);
}
if (injectTableOptionsComponent==null) {
throw new NullPointerException("Could not find injectTableOptionsId: "+injectTableOptionsId);
}
if (injectTableColumnsComponent==null) {
throw new NullPointerException("Could not find injectTableColumnsId: "+injectTableColumnsId);
}
@Override
public void encodeEnd(FacesContext facesContext,UIComponent component) throws IOException {
ResponseWriter writer = facesContext.getResponseWriter();
writer.endElement("div");
}
// ========== All private
private void injectAll(FacesContext context,JSFVascUIComponent comp,boolean clean) {
String injectEditFieldsId = (String)comp.getAttributes().get(JSFVascUIComponent.INJECT_EDIT_FIELDS_ID);
String injectTableOptionsId = (String)comp.getAttributes().get(JSFVascUIComponent.INJECT_TABLE_OPTIONS_ID);
String injectTableColumnsId = (String)comp.getAttributes().get(JSFVascUIComponent.INJECT_TABLE_COLUMNS_ID);
UIComponent injectEditFieldsComponent = JSFVascUIComponent.findComponentById(comp.getFacet("editView"),injectEditFieldsId);
UIComponent injectTableOptionsComponent = JSFVascUIComponent.findComponentById(comp.getFacet("listView"),injectTableOptionsId);
UIComponent injectTableColumnsComponent = JSFVascUIComponent.findComponentById(comp.getFacet("listView"),injectTableColumnsId);
if (injectEditFieldsComponent==null) {
throw new NullPointerException("Could not find injectEditFieldsId: "+injectEditFieldsId);
}
if (injectTableOptionsComponent==null) {
throw new NullPointerException("Could not find injectTableOptionsId: "+injectTableOptionsId);
}
if (injectTableColumnsComponent==null) {
throw new NullPointerException("Could not find injectTableColumnsId: "+injectTableColumnsId);
}
if (clean) {
logger.finer("Cleaning of all dynamic JSF components.");
injectEditFieldsComponent.getChildren().clear();
@ -158,8 +156,8 @@ public class JSFVascUIComponentRenderer extends Renderer {
} catch (Exception e) {
throw new RuntimeException("Error while injecting; "+e.getMessage(),e);
}
}
}
private String i18n(VascEntry entry,String key,Object...params) {
return entry.getVascFrontendController().getVascEntryResourceResolver().getTextValue(key,params);
}
@ -175,55 +173,52 @@ public class JSFVascUIComponentRenderer extends Renderer {
if (entry==null) {
throw new NullPointerException("No parent vasc component found.");
}
String entrySupportVar = (String)comp.getAttributes().get(JSFVascUIComponent.ENTRY_SUPPORT_VAR_KEY);
for (VascEntryField c:entry.getVascEntryFields()) {
for (VascEntryField c:entry.getVascEntryFields()) {
if (entry.getVascFrontendController().getVascFrontendDataSelector().isFieldEdit(c)==false) {
continue;
}
for (int i=0;i<c.getVascEntryFieldType().getUIComponentCount(c);i++) {
VascUIComponent label = c.getVascEntryFieldType().provideLabelUIComponent(i,c);
VascValueModel model = new VascValueModel();
model.setValue(i18n(entry,c.getName()));
label.createComponent(entry,c,model,grid);
VascUIComponent editor = c.getVascEntryFieldType().provideEditorUIComponent(i,c);
model = new VascValueModel(c.getVascEntryFieldType().provideEditorVascValueModel(i,c));
//model.setValue(c.getVascEntryFieldValue().getValue(c, bean));
//model.addListener(new VascColumnValueModelListener(c,bean));
UIInput jsfEdit = (UIInput)editor.createComponent(entry,c,model,grid);
jsfEdit.addValidator(new VascJSFInputValidator2(c.getId()));
int index = VascDataBackendBean.getIndexId(c);
ValueExpression ve7 = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(), "#{"+entrySupportVar+".selected.field"+index+"}", Object.class);
jsfEdit.setValueExpression("value", ve7);
ValueExpression ve8 = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(), "#{"+entrySupportVar+".selected != null}", Boolean.class);
jsfEdit.setValueExpression("rendered", ve8);
HtmlMessage message = (HtmlMessage)application.createComponent(HtmlMessage.COMPONENT_TYPE);
message.setId(viewRoot.createUniqueId());
message.setFor(jsfEdit.getId());
message.setErrorClass("style_textBlue");
message.setFatalClass("style_textRed");
message.setInfoClass("style_textBlack");
message.setWarnClass("style_textGreen");
grid.getChildren().add(message);
//column++;
// i==0 is for multi field editor support... which is still very in progress
if (i==0) {
entry.getVascFrontendController().addFieldVascUIComponents(c, editor,jsfEdit);
}
}
}
for (int i=0;i<c.getVascEntryFieldType().getUIComponentCount(c);i++) {
VascUIComponent label = c.getVascEntryFieldType().provideLabelUIComponent(i,c);
VascValueModel model = new VascValueModel();
model.setValue(i18n(entry,c.getName()));
label.createComponent(entry,c,model,grid);
VascUIComponent editor = c.getVascEntryFieldType().provideEditorUIComponent(i,c);
model = new VascValueModel(c.getVascEntryFieldType().provideEditorVascValueModel(i,c));
//model.setValue(c.getVascEntryFieldValue().getValue(c, bean));
//model.addListener(new VascColumnValueModelListener(c,bean));
UIInput jsfEdit = (UIInput)editor.createComponent(entry,c,model,grid);
jsfEdit.addValidator(new VascJSFInputValidator2(c.getId()));
int index = VascDataBackendBean.getIndexId(c);
ValueExpression ve7 = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(), "#{"+entrySupportVar+".selected.field"+index+"}", Object.class);
jsfEdit.setValueExpression("value", ve7);
ValueExpression ve8 = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(), "#{"+entrySupportVar+".selected != null}", Boolean.class);
jsfEdit.setValueExpression("rendered", ve8);
HtmlMessage message = (HtmlMessage)application.createComponent(HtmlMessage.COMPONENT_TYPE);
message.setId(viewRoot.createUniqueId());
message.setFor(jsfEdit.getId());
message.setErrorClass("style_textBlue");
message.setFatalClass("style_textRed");
message.setInfoClass("style_textBlack");
message.setWarnClass("style_textGreen");
grid.getChildren().add(message);
//column++;
// i==0 is for multi field editor support... which is still very in progress
if (i==0) {
entry.getVascFrontendController().addFieldVascUIComponents(c, editor,jsfEdit);
}
}
}
}
class VascJSFInputValidator2 implements Validator,Serializable {
@ -275,80 +270,74 @@ public class JSFVascUIComponentRenderer extends Renderer {
}
}
private void addTableOptions(FacesContext fc,UIComponent grid,JSFVascUIComponent comp) throws FacesException, VascException {
//Application application = fc.getApplication();
//UIViewRoot viewRoot = fc.getViewRoot();
//JSFVascUIComponent comp = JSFVascUIComponent.findVascParent(grid);
VascEntry entry = comp.getVascEntry();
for (VascEntryListOption option:entry.getVascEntryListOptions()) {
for (int i=0;i<option.getVascEntryFieldType().getUIComponentCount(option);i++) {
VascUIComponent label = option.getVascEntryFieldType().provideLabelUIComponent(i,option);
VascValueModel model = new VascValueModel();
model.setValue(i18n(entry,option.getName()));
label.createComponent(entry,option,model,grid);
VascUIComponent editor = option.getVascEntryFieldType().provideEditorUIComponent(i,option);
for (VascEntryListOption option:entry.getVascEntryListOptions()) {
for (int i=0;i<option.getVascEntryFieldType().getUIComponentCount(option);i++) {
VascUIComponent label = option.getVascEntryFieldType().provideLabelUIComponent(i,option);
VascValueModel model = new VascValueModel();
model.setValue(i18n(entry,option.getName()));
label.createComponent(entry,option,model,grid);
VascUIComponent editor = option.getVascEntryFieldType().provideEditorUIComponent(i,option);
model = new VascValueModel(option.getVascEntryFieldType().provideEditorVascValueModel(i,option));
model.addListener(new VascOptionValueModelListener(option));
model.setValue(option.getDefaultValue());
UIInput jsfEdit = (UIInput)editor.createComponent(entry,option,model,grid);
jsfEdit.addValueChangeListener(new ModelChangeListener(model));
if (comp.getInjectTableOptionOnChange()!=null && comp.getInjectTableOptionOnChange().isEmpty()==false) {
if (jsfEdit instanceof HtmlSelectBooleanCheckbox) {
((HtmlSelectBooleanCheckbox)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlSelectManyMenu) {
((HtmlSelectManyMenu)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlInputText) {
((HtmlInputText)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlInputTextarea) {
((HtmlInputTextarea)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlSelectManyListbox) {
((HtmlSelectManyListbox)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlSelectOneMenu) {
((HtmlSelectOneMenu)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlSelectOneRadio) {
((HtmlSelectOneRadio)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlSelectOneListbox) {
((HtmlSelectOneListbox)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
}
Class<?> clazz = option.getVascEntryFieldType().getAutoDetectClass();
if (clazz!=null && model.getValue()!=null) {
if (clazz.equals(model.getValue().getClass())==false) {
// lets try setting correct default.
try {
Constructor<?> c = clazz.getConstructor(String.class);
Object value = c.newInstance(model.getValue());
jsfEdit.setValue(value);
} catch (Exception e) {
throw new VascException(e);
}
} else {
jsfEdit.setValue(model.getValue()); // set default value
}
}
// i==0 is for multi field editor support... which is stell very in progress aka not working
if (i==0) {
entry.getVascFrontendController().addFieldVascUIComponents(option, editor,jsfEdit);
}
}
}
entry.getVascFrontendController().getVascFrontendHelper().headerOptionsCreatedFillData(entry);
model.addListener(new VascOptionValueModelListener(option));
model.setValue(option.getDefaultValue());
UIInput jsfEdit = (UIInput)editor.createComponent(entry,option,model,grid);
jsfEdit.addValueChangeListener(new ModelChangeListener(model));
if (comp.getInjectTableOptionOnChange()!=null && comp.getInjectTableOptionOnChange().isEmpty()==false) {
if (jsfEdit instanceof HtmlSelectBooleanCheckbox) {
((HtmlSelectBooleanCheckbox)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlSelectManyMenu) {
((HtmlSelectManyMenu)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlInputText) {
((HtmlInputText)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlInputTextarea) {
((HtmlInputTextarea)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlSelectManyListbox) {
((HtmlSelectManyListbox)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlSelectOneMenu) {
((HtmlSelectOneMenu)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlSelectOneRadio) {
((HtmlSelectOneRadio)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
if (jsfEdit instanceof HtmlSelectOneListbox) {
((HtmlSelectOneListbox)jsfEdit).setOnchange(comp.getInjectTableOptionOnChange());
}
}
Class<?> clazz = option.getVascEntryFieldType().getAutoDetectClass();
if (clazz!=null && model.getValue()!=null) {
if (clazz.equals(model.getValue().getClass())==false) {
// lets try setting correct default.
try {
Constructor<?> c = clazz.getConstructor(String.class);
Object value = c.newInstance(model.getValue());
jsfEdit.setValue(value);
} catch (Exception e) {
throw new VascException(e);
}
} else {
jsfEdit.setValue(model.getValue()); // set default value
}
}
// i==0 is for multi field editor support... which is stell very in progress aka not working
if (i==0) {
entry.getVascFrontendController().addFieldVascUIComponents(option, editor,jsfEdit);
}
}
}
entry.getVascFrontendController().getVascFrontendHelper().headerOptionsCreatedFillData(entry);
}
public class ModelChangeListener implements ValueChangeListener,Serializable {
private static final long serialVersionUID = 1L;
VascValueModel model;
@ -555,11 +544,11 @@ public class JSFVascUIComponentRenderer extends Renderer {
}
private MethodExpression getMethodExpression(String name) {
Class<?>[] argtypes = new Class[1];
argtypes[0] = ActionEvent.class;
FacesContext facesCtx = FacesContext.getCurrentInstance();
ELContext elContext = facesCtx.getELContext();
return facesCtx.getApplication().getExpressionFactory().createMethodExpression(elContext, name, null, argtypes);
}
Class<?>[] argtypes = new Class[1];
argtypes[0] = ActionEvent.class;
FacesContext facesCtx = FacesContext.getCurrentInstance();
ELContext elContext = facesCtx.getELContext();
return facesCtx.getApplication().getExpressionFactory().createMethodExpression(elContext, name, null, argtypes);
}
};

View file

@ -27,8 +27,8 @@ import java.io.Serializable;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.entry.VascEntryFieldValue;
import net.forwardfire.vasc.core.VascException;

View file

@ -30,8 +30,8 @@ import javax.faces.context.FacesContext;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.web.jsf.JSFVascUIComponent;

View file

@ -30,14 +30,11 @@ import javax.faces.context.FacesContext;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
/**
*
* JSFLabel
*
* @author Willem Cazander
* @version 1.0 Mar 25, 2009

View file

@ -37,9 +37,9 @@ import javax.faces.convert.ConverterException;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascSelectItem;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.web.jsf.JSFVascUIComponent;

View file

@ -32,9 +32,9 @@ import java.util.ListIterator;
import javax.faces.model.SelectItem;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascSelectItem;
import net.forwardfire.vasc.core.ui.VascSelectItemModel;
import net.forwardfire.vasc.core.VascException;

View file

@ -34,8 +34,8 @@ import javax.faces.convert.ConverterException;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.web.jsf.JSFVascUIComponent;

View file

@ -30,8 +30,8 @@ import javax.faces.context.FacesContext;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryField;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.ui.VascValueModel;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.frontend.web.jsf.JSFVascUIComponent;