/* * LoadImage.java * * Created on September 26, 2007, 5:36 PM * Copyright lluis */ package analiseacidentestrabalho; import com.evolute.utils.error.ErrorLogger; import com.sun.rave.web.ui.appbase.AbstractPageBean; import com.sun.rave.web.ui.component.Body; import com.sun.rave.web.ui.component.Button; import com.sun.rave.web.ui.component.Form; import com.sun.rave.web.ui.component.Head; import com.sun.rave.web.ui.component.Html; import com.sun.rave.web.ui.component.Link; import com.sun.rave.web.ui.component.Page; import com.sun.rave.web.ui.component.PanelGroup; import com.sun.rave.web.ui.component.StaticText; import com.sun.rave.web.ui.component.Upload; import com.sun.rave.web.ui.model.UploadedFile; import global.Global; import java.io.File; import javax.faces.FacesException; import javax.faces.component.html.HtmlPanelGrid; import javax.servlet.ServletContext; /** *

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.

*/ public class LoadImage extends AbstractPageBean { // private int __placeholder; /** *

Automatically managed component initialization. WARNING: * This method is automatically generated, so any user-specified code inserted * here is subject to being replaced.

*/ private void _init() throws Exception { } private Page page1 = new Page(); public Page getPage1() { return page1; } public void setPage1(Page p) { this.page1 = p; } private Html html1 = new Html(); public Html getHtml1() { return html1; } public void setHtml1(Html h) { this.html1 = h; } private Head head1 = new Head(); public Head getHead1() { return head1; } public void setHead1(Head h) { this.head1 = h; } private Link link1 = new Link(); public Link getLink1() { return link1; } public void setLink1(Link l) { this.link1 = l; } private Body body1 = new Body(); public Body getBody1() { return body1; } public void setBody1(Body b) { this.body1 = b; } private Form form1 = new Form(); public Form getForm1() { return form1; } public void setForm1(Form f) { this.form1 = f; } private HtmlPanelGrid gridBase1 = new HtmlPanelGrid(); public HtmlPanelGrid getGridBase1() { return gridBase1; } public void setGridBase1(HtmlPanelGrid hpg) { this.gridBase1 = hpg; } private HtmlPanelGrid gridLayout = new HtmlPanelGrid(); public HtmlPanelGrid getGridLayout() { return gridLayout; } public void setGridLayout(HtmlPanelGrid hpg) { this.gridLayout = hpg; } private StaticText staticText1 = new StaticText(); public StaticText getStaticText1() { return staticText1; } public void setStaticText1(StaticText st) { this.staticText1 = st; } private Upload fileUpload1 = new Upload(); public Upload getFileUpload1() { return fileUpload1; } public void setFileUpload1(Upload u) { this.fileUpload1 = u; } //
/** *

Construct a new Page bean instance.

*/ private String realImageFilePath; //private static final String IMAGE_URL = "/resources/image-file"; //private String IMAGE_URL = "/resources/images"; private StaticText staticText2 = new StaticText(); public StaticText getStaticText2() { return staticText2; } public void setStaticText2(StaticText st) { this.staticText2 = st; } private StaticText txtMsg = new StaticText(); public StaticText getTxtMsg() { return txtMsg; } public void setTxtMsg(StaticText st) { this.txtMsg = st; } private PanelGroup groupPanel4 = new PanelGroup(); public PanelGroup getGroupPanel4() { return groupPanel4; } public void setGroupPanel4(PanelGroup pg) { this.groupPanel4 = pg; } private Button butUpload = new Button(); public Button getButUpload() { return butUpload; } public void setButUpload(Button b) { this.butUpload = b; } private Button butCancelar = new Button(); public Button getButCancelar() { return butCancelar; } public void setButCancelar(Button b) { this.butCancelar = b; } public LoadImage() { } /** *

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.

* *

Note that, if the current request is a postback, the property * values of the components do not represent any * values submitted with this request. Instead, they represent the * property values that were saved for this view when it was rendered.

*/ 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 // // Initialize automatically managed components // *Note* - this logic should NOT be modified try { _init(); } catch (Exception e) { log("LoadImage Initialization Failure", e); throw e instanceof FacesException ? (FacesException) e: new FacesException(e); } // // Perform application initialization that must complete // *after* managed components are initialized // TODO - add your own initialization code here if (!getSessionBean1().isLoggedIn()) { try { getExternalContext().redirect("Login.jsp"); } catch(Exception e) { // . . . handle exception . . . } } else { getSessionBean1().setImageName(null); ServletContext theApplicationsServletContext = (ServletContext) this.getExternalContext().getContext(); //this.realImageFilePath = theApplicationsServletContext.getRealPath(IMAGE_URL); //this.realImageFilePath = theApplicationsServletContext.getRealPath(Global.IMAGE_FOLDER); try { realImageFilePath = Global.IMAGE_FOLDER + "/tmp" + getSessionBean1().getCurrentUser().getLogin(); File f = new File(realImageFilePath); f.mkdir(); } catch(Exception ex) { ErrorLogger.logException( ex ); } } } /** *

Callback method that is called after the component tree has been * restored, but before any event processing takes place. This method * will only 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.

*/ public void preprocess() { } /** *

Callback method that is called just before rendering takes place. * This method will only 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.

*/ public void prerender() { //String uploadedFileName = (String) this.txtFileName.getValue(); //if ( uploadedFileName != null ) { // IMAGE_URL += getSessionBean1().getImageName(); // System.out.println("IMAGE URL : " + IMAGE_URL); //image1.setUrl(IMAGE_URL); // } txtMsg.setText(getSessionBean1().getMsg()); getSessionBean1().setMsg(""); } /** *

Callback method that is called after rendering is completed for * this request, if init() was called (regardless of whether * or not this was the page that was actually rendered). Customize this * method to release resources acquired in the init(), * preprocess(), or prerender() methods (or * acquired during execution of an event handler).

*/ public void destroy() { } /** *

Return a reference to the scoped data bean.

*/ protected RequestBean1 getRequestBean1() { return (RequestBean1)getBean("RequestBean1"); } /** *

Return a reference to the scoped data bean.

*/ protected ApplicationBean1 getApplicationBean1() { return (ApplicationBean1)getBean("ApplicationBean1"); } /** *

Return a reference to the scoped data bean.

*/ protected SessionBean1 getSessionBean1() { return (SessionBean1)getBean("SessionBean1"); } public String lnkLogout_action() { // TODO: Replace with your code return null; } public String lnkNome_action() { // TODO: Replace with your code return null; } public String lnkDataNascimento_action() { // TODO: Replace with your code return null; } public String butCancelar_action() { getSessionBean1().setImageName(null); return "analise_acidente"; } public String butUpload_action() { // TODO: Process the button click action. Return value is a navigation // case name where null will return to the same page. //realImageFilePath += "/tmp" + getSessionBean1().getCurrentUser().getLogin(); System.out.println("REAL IMAGE FILE PATH : " + realImageFilePath); File fdir = new File(realImageFilePath); System.out.println("FDIR : " + fdir); UploadedFile uploadedFile = fileUpload1.getUploadedFile(); if(uploadedFile != null) { String uploadedFileName = uploadedFile.getOriginalName(); // Some browsers return complete path name, some don't // Make sure we only have the file name // First, try forward slash int index = uploadedFileName.lastIndexOf('/'); String justFileName; if ( index >= 0) { justFileName = uploadedFileName.substring( index + 1 ); } else { // Try backslash index = uploadedFileName.lastIndexOf('\\'); if (index >= 0) { justFileName = uploadedFileName.substring( index + 1 ); } else { // No forward or back slashes justFileName = uploadedFileName; } } //justFileName = justFileName.substring(0, justFileName.lastIndexOf('.')); int firstImageNr = getFirstImageNr().intValue(); File files[] = fdir.listFiles(); // realImageFilePath += "/" + justFileName; System.out.println("FILES : " + files); int imageName = firstImageNr + files.length + 1; justFileName = new Integer(imageName).toString(); if(imageName < 10) { justFileName = "0" + justFileName; } //this.txtFileName.setValue(justFileName); Long uploadedFileSize = new Long(uploadedFile.getSize()); //this.txtFileSize.setValue(uploadedFileSize); String uploadedFileType = uploadedFile.getContentType(); //this.txtFileType.setValue(uploadedFileType); if ( uploadedFileType.equals("image/jpeg") || uploadedFileType.equals("image/pjpeg") || uploadedFileType.equals("image/gif") || uploadedFileType.equals("image/png") || uploadedFileType.equals("image/x-png")) { try { realImageFilePath += "/" + justFileName; File file = new File(this.realImageFilePath); uploadedFile.write(file); getSessionBean1().setImageName(justFileName); //getSessionBean1().setMsg("Ficheiro carregado !"); } catch (Exception ex) { ErrorLogger.logException( ex ); getSessionBean1().setMsg("Não foi possivel carregar o ficheiro !"); return null; } } else { getSessionBean1().setMsg("Tem de seleccionar um ficheiro do tipo JPEG, PJPEG, GIF, PNG, ou X-PNG !"); new File(this.realImageFilePath).delete(); return null; } } else { getSessionBean1().setImageName(null); } return "analise_acidente"; } private Integer getFirstImageNr() { if(getSessionBean1().getCurrentAnalise() == null) { return new Integer(0); } else { String folderName = getSessionBean1().getCurrentAnalise().getAnalise_nr().substring(0,2) + getSessionBean1().getCurrentAnalise().getAnalise_nr().substring(3); ServletContext theApplicationsServletContext = (ServletContext) this.getExternalContext().getContext(); // String imageFileFolder = theApplicationsServletContext.getRealPath(Global.IMAGE_FOLDER + "/" + folderName); String imageFileFolder = Global.IMAGE_FOLDER + "/" + folderName; File fdir = new File(imageFileFolder); int nr = 0; if(fdir.exists()) { File files[] = fdir.listFiles(); for(int i=0; i < files.length; i++) { String nr_str = files[i].getName(); int i_nr = Integer.parseInt(nr_str); if(i_nr > nr) { nr = i_nr; } } return new Integer(nr); } return new Integer(0); } } }