/*
* Copyright (c) 2008 Boulder Community Foundation - iVolunteer
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package admin;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import com.sun.webui.jsf.model.SingleSelectOptionsList;
import etl.geocodeSessionLocal;
import etl.locationencoderSessionLocal;
import etl.vomlSessionLocal;
import etl.autoImportLocal;
import javax.ejb.EJB;
import javax.faces.FacesException;
import javax.faces.event.ValueChangeEvent;
/**
* <p>
* Page bean that corresponds to a similarly named JSP page. This class contains
* component definitions (and initialization code) for all components that you
* have defined on this page, as well as lifecycle methods and event handlers
* where you may add behavior to respond to incoming events.
* </p>
*
* @version Admin.java
* @version Created on Oct 29, 2008, 12:02:09 PM
* @author Dave Angulo
*/
public class Admin extends AbstractPageBean {
@EJB
private vomlSessionLocal vomlSessionBean;
@EJB
private locationencoderSessionLocal locationencoderSessionBean;
@EJB
private geocodeSessionLocal geocoderSessionBean;
@EJB
private autoImportLocal importFiles;
// <editor-fold defaultstate="collapsed"
// desc="Managed Component Definition">
/**
* <p>
* Automatically managed component initialization. <strong>WARNING:</strong>
* This method is automatically generated, so any user-specified code
* inserted here is subject to being replaced.
* </p>
*/
private void _init() throws Exception {
radioButtonGroup1DefaultOptions.setOptions(new com.sun.webui.jsf.model.Option[] {
new com.sun.webui.jsf.model.Option("file", "Test File"),
new com.sun.webui.jsf.model.Option("server", "Server") });
radioButtonGroup1DefaultOptions.setSelectedValue("file");
radioButtonGroup2DefaultOptions.setOptions(new com.sun.webui.jsf.model.Option[] {
new com.sun.webui.jsf.model.Option("encode", "Encode Locations"),
new com.sun.webui.jsf.model.Option("dummy", "Nothing") });
radioButtonGroup2DefaultOptions.setSelectedValue("encode");
}
private String latitude = "";
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
private String longitude = "";
public String getLatitude() {
return latitude;
}
public String getLongitude() {
return longitude;
}
private SingleSelectOptionsList radioButtonGroup1DefaultOptions = new SingleSelectOptionsList();
private SingleSelectOptionsList radioButtonGroup2DefaultOptions = new SingleSelectOptionsList();
public SingleSelectOptionsList getRadioButtonGroup1DefaultOptions() {
return radioButtonGroup1DefaultOptions;
}
public void setRadioButtonGroup1DefaultOptions(SingleSelectOptionsList ssol) {
this.radioButtonGroup1DefaultOptions = ssol;
}
public SingleSelectOptionsList getRadioButtonGroup2DefaultOptions() {
return radioButtonGroup2DefaultOptions;
}
public void setRadioButtonGroup2DefaultOptions(SingleSelectOptionsList ssol) {
this.radioButtonGroup2DefaultOptions = ssol;
}
// </editor-fold>
/**
* <p>
* Construct a new Page bean instance.
* </p>
*/
public Admin() {
}
/**
* <p>
* Callback method that is called whenever a page is navigated to, either
* directly via a URL, or indirectly via page navigation. Customize this
* method to acquire resources that will be needed for event handlers and
* lifecycle methods, whether or not this page is performing post back
* processing.
* </p>
*
* <p>
* Note that, if the current request is a postback, the property values of
* the components do <strong>not</strong> represent any values submitted
* with this request. Instead, they represent the property values that were
* saved for this view when it was rendered.
* </p>
*/
@Override
public void init() {
// Perform initializations inherited from our superclass
super.init();
// Perform application initialization that must complete
// *before* managed components are initialized
// TODO - add your own initialiation code here
// <editor-fold defaultstate="collapsed"
// desc="Managed Component Initialization">
// Initialize automatically managed components
// *Note* - this logic should NOT be modified
try
{
_init();
importFiles.runMe();
}
catch (Exception e)
{
log("Admin Initialization Failure", e);
throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
}
// </editor-fold>
// Perform application initialization that must complete
// *after* managed components are initialized
// TODO - add your own initialization code here
}
/**
* <p>
* Callback method that is called after the component tree has been
* restored, but before any event processing takes place. This method will
* <strong>only</strong> be called on a postback request that is processing
* a form submit. Customize this method to allocate resources that will be
* required in your event handlers.
* </p>
*/
@Override
public void preprocess() {
}
/**
* <p>
* Callback method that is called just before rendering takes place. This
* method will <strong>only</strong> be called for the page that will
* actually be rendered (and not, for example, on a page that handled a
* postback and then navigated to a different page). Customize this method
* to allocate resources that will be required for rendering this page.
* </p>
*/
@Override
public void prerender() {
}
/**
* <p>
* Callback method that is called after rendering is completed for this
* request, if <code>init()</code> was called (regardless of whether or not
* this was the page that was actually rendered). Customize this method to
* release resources acquired in the <code>init()</code>,
* <code>preprocess()</code>, or <code>prerender()</code> methods (or
* acquired during execution of an event handler).
* </p>
*/
@Override
public void destroy() {
}
/**
* <p>
* Return a reference to the scoped data bean.
* </p>
*
* @return reference to the scoped data bean
*/
protected SessionBean1 getSessionBean1() {
return (SessionBean1) getBean("SessionBean1");
}
/**
* <p>
* Return a reference to the scoped data bean.
* </p>
*
* @return reference to the scoped data bean
*/
protected RequestBean1 getRequestBean1() {
return (RequestBean1) getBean("RequestBean1");
}
/**
* <p>
* Return a reference to the scoped data bean.
* </p>
*
* @return reference to the scoped data bean
*/
protected ApplicationBean1 getApplicationBean1() {
return (ApplicationBean1) getBean("ApplicationBean1");
}
public void radioButtonGroup1_processValueChange(ValueChangeEvent vce)
{
// Test data ( works on Daves computer ? )
vomlSessionBean.loadVoml( "3A97A707-6D7B-4E50-BBF4-74B8D468E31E","/Users/dave/Documents/iVolunteer/code/ivolunteer/test_data/voml_test.xml" );
}
public void radioButtonGroup2_processValueChange(ValueChangeEvent vce) {
locationencoderSessionBean.updateLocationTableLatLon();
}
public void encodeAddress_processValueChange(ValueChangeEvent vce) {
persistence.Location loc = new persistence.Location();
loc.setStreet(vce.getNewValue().toString());
geocoderSessionBean.encodeAddress(loc);
latitude = loc.getLatitude();
if (latitude == null) latitude = "";
longitude = loc.getLongitude();
if (longitude == null) longitude = "";
}
}