forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
475 lines
15 KiB
475 lines
15 KiB
/*
|
|
* 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;
|
|
|
|
/**
|
|
* <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>
|
|
*/
|
|
public class LoadImage extends AbstractPageBean {
|
|
// <editor-fold defaultstate="collapsed" desc="Managed Component Definition">
|
|
private int __placeholder;
|
|
|
|
/**
|
|
* <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 {
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
// </editor-fold>
|
|
/**
|
|
* <p>Construct a new Page bean instance.</p>
|
|
*/
|
|
|
|
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() {
|
|
}
|
|
|
|
/**
|
|
* <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>
|
|
*/
|
|
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();
|
|
} catch (Exception e) {
|
|
log("LoadImage 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
|
|
|
|
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 );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
* <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>
|
|
*/
|
|
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>
|
|
*/
|
|
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("");
|
|
|
|
}
|
|
|
|
/**
|
|
* <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>
|
|
*/
|
|
public void destroy() {
|
|
}
|
|
|
|
/**
|
|
* <p>Return a reference to the scoped data bean.</p>
|
|
*/
|
|
protected RequestBean1 getRequestBean1() {
|
|
return (RequestBean1)getBean("RequestBean1");
|
|
}
|
|
|
|
/**
|
|
* <p>Return a reference to the scoped data bean.</p>
|
|
*/
|
|
protected ApplicationBean1 getApplicationBean1() {
|
|
return (ApplicationBean1)getBean("ApplicationBean1");
|
|
}
|
|
|
|
/**
|
|
* <p>Return a reference to the scoped data bean.</p>
|
|
*/
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
|