/* * Licensed Materials - Property of Perforce Software, Inc. * © Copyright Perforce Software, Inc. 2014, 2021 * © Copyright IBM Corp. 2009, 2014 * © Copyright ILOG 1996, 2009 * All Rights Reserved. * * Note to U.S. Government Users Restricted Rights: * The Software and Documentation were developed at private expense and * are "Commercial Items" as that term is defined at 48 CFR 2.101, * consisting of "Commercial Computer Software" and * "Commercial Computer Software Documentation", as such terms are * used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4, * as applicable. */ package jdbcdemo; import java.sql.SQLException; import java.text.MessageFormat; import javax.faces.application.FacesMessage; import javax.faces.component.UIPanel; import javax.faces.context.FacesContext; import javax.faces.event.ActionEvent; import javax.faces.event.ValueChangeEvent; import javax.servlet.ServletContext; import ilog.views.chart.data.IlvJDBCDataSource; import ilog.views.util.IlvResourceUtil; public class JDBCBean { private IlvJDBCDataSource JDBCDS; private String nameDS; private UIPanel panel = new UIPanel(); public JDBCBean() { panel.setRendered(false); // hides the chart panel } protected void initJDBCDataSource(String xlsDSName) throws Exception { ServletContext ctx = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext(); JDBCDS = new IlvJDBCDataSource("jdbc:relique:csv:" + ctx.getRealPath("data"), "", "", "org.relique.jdbc.csv.CsvDriver", "select * from " + xlsDSName, -1, 3); try { JDBCDS.executeQuery(); JDBCDS.endConnection(); panel.setRendered(true); } catch (IllegalArgumentException e) { panel.setRendered(false); Exception newExc = new Exception(e.getMessage()); newExc.initCause(e); throw newExc; } catch (SQLException e) { panel.setRendered(false); String msg = IlvResourceUtil.getCurrentLocaleString(JDBCBean.class, "wrongDataSourceName"); Exception newExc = new Exception(MessageFormat.format(msg, xlsDSName)); newExc.initCause(e); throw newExc; } } public void nameEntered(ValueChangeEvent evt) { try { if (evt.getNewValue() != null) { nameDS = evt.getNewValue().toString(); initJDBCDataSource(nameDS); } } catch (Exception e) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(e.getMessage())); } } /** * @return Returns the jDBCDS. */ public IlvJDBCDataSource getJDBCDS() { return JDBCDS; } /** * @param jdbcds * The jDBCDS to set. */ public void setJDBCDS(IlvJDBCDataSource jdbcds) { JDBCDS = jdbcds; } /** * JSF Action to query a refresh of the datas. */ public String refreshDataSource(ActionEvent evt) throws Exception { try { initJDBCDataSource(nameDS); } catch (Exception e) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(e.getMessage())); } return null; } /** * @return Returns the panel. */ public UIPanel getPanel() { return panel; } /** * @param panel * The panel to set. */ public void setPanel(UIPanel panel) { this.panel = panel; } }