Subversion Repositories eFlore/Applications.cel

Rev

Rev 989 | Rev 1293 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 989 Rev 1284
1
package org.tela_botanica.client.modeles.dao;
1
package org.tela_botanica.client.modeles.dao;
2
 
2
 
3
import org.tela_botanica.client.image.ImageModele;
3
import org.tela_botanica.client.image.ImageModele;
4
import org.tela_botanica.client.modeles.objets.Configuration;
4
import org.tela_botanica.client.modeles.objets.Configuration;
5
import org.tela_botanica.client.modeles.objets.Utilisateur;
5
import org.tela_botanica.client.modeles.objets.Utilisateur;
6
 
6
 
7
import com.gwtext.client.core.UrlParam;
7
import com.gwtext.client.core.UrlParam;
8
import com.gwtext.client.widgets.Panel;
8
import com.gwtext.client.widgets.Panel;
9
import com.gwtext.client.widgets.Window;
9
import com.gwtext.client.widgets.Window;
10
import com.gwtext.client.widgets.event.WindowListenerAdapter;
10
import com.gwtext.client.widgets.event.WindowListenerAdapter;
11
import com.gwtextux.client.widgets.upload.UploadDialog;
11
import com.gwtextux.client.widgets.upload.UploadDialog;
12
import com.gwtextux.client.widgets.upload.UploadDialogListenerAdapter;
12
import com.gwtextux.client.widgets.upload.UploadDialogListenerAdapter;
13
 
13
 
14
/**
14
/**
15
 * DAO un peu particulier car il crée une fenetre d'upload différente suivant
15
 * DAO un peu particulier car il crée une fenetre d'upload différente suivant
16
 * que le plugin Java est détecté ou non
16
 * que le plugin Java est détecté ou non
17
 * 
17
 * 
18
 * 
18
 * 
19
 */
19
 */
20
public class ImageUploaderAsynchroneDAO {
20
public class ImageUploaderAsynchroneDAO {
21
 
21
 
22
	/**
22
	/**
23
	 * Modele associé au DAO
23
	 * Modele associé au DAO
24
	 */
24
	 */
25
	private static ImageModele iModele;
25
	private static ImageModele iModele;
26
 
26
 
27
	public ImageUploaderAsynchroneDAO(ImageModele im) {
27
	public ImageUploaderAsynchroneDAO(ImageModele im) {
28
		iModele = im;
28
		iModele = im;
29
	}
29
	}
30
 
30
 
31
	/**
31
	/**
32
	 * Setteur pour le modele
32
	 * Setteur pour le modele
33
	 * 
33
	 * 
34
	 * @param im
34
	 * @param im
35
	 *            le modèle à associer au DAO
35
	 *            le modèle à associer au DAO
36
	 */
36
	 */
37
	public void setIModele(ImageModele im) {
37
	public void setIModele(ImageModele im) {
38
		iModele = im;
38
		iModele = im;
39
	}
39
	}
40
 
40
 
41
	/**
41
	/**
42
	 * Crée un panel d'upload simple aux fonctions réduites mais utilisant
42
	 * Crée un panel d'upload simple aux fonctions réduites mais utilisant
43
	 * uniquement javascript (pour les utilisateurs qui n'ont pas java)
43
	 * uniquement javascript (pour les utilisateurs qui n'ont pas java)
44
	 */
44
	 */
45
	@SuppressWarnings("unused")
-
 
46
	public static void appelerUploadSimple() {
45
	public static void appelerUploadSimple() {
47
 
46
 
48
		UploadDialog up = new UploadDialog("Upload simple de fichiers");
47
		UploadDialog up = new UploadDialog("Upload simple de fichiers");
49
		up.setUrl(Configuration.getServiceBaseUrl() + "/InventoryImage");
48
		up.setUrl(Configuration.getServiceBaseUrl() + "/InventoryImage");
50
		UrlParam id = new UrlParam("ce_utilisateur",Utilisateur.getInstance().getIdentifiantUtilisateurConsulte());
49
		UrlParam id = new UrlParam("ce_utilisateur",Utilisateur.getInstance().getIdentifiantUtilisateurConsulte());
51
		UrlParam[] params = { id };
50
		UrlParam[] params = { id };
52
		up.setBaseParams(params);
51
		up.setBaseParams(params);
53
		up.setModal(true);
52
		up.setModal(true);
54
 
53
 
55
		up.addListener(new UploadDialogListenerAdapter() {
54
		up.addListener(new UploadDialogListenerAdapter() {
56
 
55
 
57
			public void onClose(Panel panel) {
56
			public void onClose(Panel panel) {
58
				iModele.setDernierePage();
57
				iModele.setDernierePage();
59
				iModele.requeteTerminee();
58
				iModele.requeteTerminee();
60
			}
59
			}
61
 
60
 
62
			public void onUploadComplete(UploadDialog source) {
61
			public void onUploadComplete(UploadDialog source) {
63
				iModele.setDernierePage();
62
				iModele.setDernierePage();
64
				iModele.requeteTerminee();
63
				iModele.requeteTerminee();
65
 
64
 
66
			}
65
			}
67
 
66
 
68
		});
67
		});
69
 
68
 
70
		up.show();
69
		up.show();
71
 
70
 
72
	}
71
	}
73
 
72
 
74
	/**
73
	/**
75
	 * Crée une fenêtre contenant une applet java pour uploader plusieurs
74
	 * Crée une fenêtre contenant une applet java pour uploader plusieurs
76
	 * fichiers à la fois avec quelques fonctions avancées (nécessite le plugin
75
	 * fichiers à la fois avec quelques fonctions avancées (nécessite le plugin
77
	 * java pour le navigateur)
76
	 * java pour le navigateur)
78
	 */
77
	 */
79
	@SuppressWarnings("unused")
-
 
80
	public static void appelerUploadMultiple() {
78
	public static void appelerUploadMultiple() {
81
 
79
 
82
		final Window nPan = new Window("Upload multiple");
80
		final Window nPan = new Window("Upload multiple");
83
		nPan.setWidth(640);
81
		nPan.setWidth(640);
84
 
82
 
85
		final String warning = "<p class=\"warning_upload\"> A la fin de l'envoi, veuillez fermer la fenêtre pour accéder aux images. </p>";
83
		final String warning = "<p class=\"warning_upload\"> A la fin de l'envoi, veuillez fermer la fenêtre pour accéder aux images. </p>";
86
 
84
 
87
		final String applet = "<applet code=\"wjhk.jupload2.JUploadApplet\" archive=\"wjhk.jupload.jar\" alt=\"\" mayscript=\"\" height=\"350\" width=\"625\">";
85
		final String applet = "<applet code=\"wjhk.jupload2.JUploadApplet\" name=\"JUpload\" archive=\"jupload.jar\" alt=\"\" mayscript=\"true\" height=\"350\" width=\"625\">";
88
		final String paramPostTarget = "<param name=\"postURL\" value=\""
86
		final String paramPostTarget = "<param name=\"postURL\" value=\""
89
				+ Configuration.getServiceBaseUrl()
87
				+ Configuration.getServiceBaseUrl()
90
				+ "/InventoryImage/\">";
88
				+ "/InventoryImage/\">";
91
		final String paramUploadPolicy = "<param name=\"uploadPolicy\" value=\"PictureUploadPolicy\">";
89
		final String paramUploadPolicy = "<param name=\"uploadPolicy\" value=\"PictureUploadPolicy\">";
92
		final String paramMaxChunkSize = "<param name=\"maxChunkSize\" value=\"0\">";
90
		final String paramMaxChunkSize = "<param name=\"maxChunkSize\" value=\"0\">";
93
		final String paramMaxFileSize = "<param name=\"maxFileSize\" value=\"10000000\">";
91
		final String paramMaxFileSize = "<param name=\"maxFileSize\" value=\""+Configuration.getTailleMaxUpload()+"\">";
94
		final String paramTransmitMetaData = "<param name=\"pictureTransmitMetadata\" value=\"true\">";
92
		final String paramTransmitMetaData = "<param name=\"pictureTransmitMetadata\" value=\"true\">";
95
		final String paramFilesPerRequest = "<param name=\"nbFilesPerRequest\" value=\"1\">";
93
		final String paramFilesPerRequest = "<param name=\"nbFilesPerRequest\" value=\"1\">";
96
		final String paramAllowedExtensions = "<param name=\"allowedFileExtensions\" value=\"jpg/jpeg/\">";
94
		final String paramAllowedExtensions = "<param name=\"allowedFileExtensions\" value=\"jpg/jpeg/\">";
97
		final String paramUploadSuccess = "<param name=\"stringUploadSuccess\" value=\"OK\">";
95
		final String paramUploadSuccess = "<param name=\"stringUploadSuccess\" value=\"OK\">";
98
		final String paramShowLogWindow = "<param name=\"showLogWindow\" value=\"false\">";
96
		final String paramShowLogWindow = "<param name=\"showLogWindow\" value=\"false\">";
99
		final String paramFormdata = "<param name=\"formData\" value=\"postid\">";
97
		final String paramFormdata = "<param name=\"formData\" value=\"postid\">";
100
		final String finApplet = "</applet>";
98
		final String finApplet = "</applet>";
101
 
99
 
102
		final String appelApplet = applet + paramPostTarget + paramUploadPolicy
100
		final String appelApplet = applet + paramPostTarget + paramUploadPolicy
103
				+ paramMaxChunkSize + paramMaxFileSize + paramTransmitMetaData
101
				+ paramMaxChunkSize + paramMaxFileSize + paramTransmitMetaData
104
				+ paramFilesPerRequest + paramAllowedExtensions
102
				+ paramFilesPerRequest + paramAllowedExtensions
105
				+ paramUploadSuccess + paramShowLogWindow + paramFormdata
103
				+ paramUploadSuccess + paramShowLogWindow + paramFormdata
106
				+ finApplet;
104
				+ finApplet;
107
 
105
 
108
		final String htmlForm = "<form method=\"post\" name=\"postid\">"
106
		final String htmlForm = "<form method=\"post\" name=\"postid\">"
109
				+ "<input type=\"hidden\" name=\"ce_utilisateur\" value=\""
107
				+ "<input type=\"hidden\" name=\"ce_utilisateur\" value=\""
110
				+ Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() + "\">" + "</form>";
108
				+ Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() + "\">" + "</form>";
111
 
109
 
112
		nPan.setHtml(warning + appelApplet + htmlForm);
110
		nPan.setHtml(warning + appelApplet + htmlForm);
113
 
111
 
114
		nPan.setModal(true);
112
		nPan.setModal(true);
115
 
113
 
116
		nPan.addListener(new WindowListenerAdapter() {
114
		nPan.addListener(new WindowListenerAdapter() {
117
 
115
 
118
			public void onClose(Panel panel) {
116
			public void onClose(Panel panel) {
119
				iModele.setDernierePage();
117
				iModele.setDernierePage();
120
				iModele.requeteTerminee();
118
				iModele.requeteTerminee();
121
			}
119
			}
122
 
120
 
123
		});
121
		});
124
 
122
 
125
		nPan.show();
123
		nPan.show();
126
	}
124
	}
127
 
125
 
128
	/**
126
	/**
129
	 * Fonction javascript native qui détecte la présence du plugin java pour le
127
	 * Fonction javascript native qui détecte la présence du plugin java pour le
130
	 * navigateur et appelle la méthode d'upload adaptée (appelerUploadSimple ou
128
	 * navigateur et appelle la méthode d'upload adaptée (appelerUploadSimple ou
131
	 * appelerUploadMultiple)
129
	 * appelerUploadMultiple)
132
	 */
130
	 */
133
	public static native void choisirMethodeUpload() /*-{
131
	public static native void choisirMethodeUpload() /*-{
134
	  
132
	  
135
	  	var agt=navigator.userAgent.toLowerCase();
133
	  	var agt=navigator.userAgent.toLowerCase();
136
		var ie  = (agt.indexOf("msie") != -1);
134
		var ie  = (agt.indexOf("msie") != -1);
137
		var ns  = (navigator.appName.indexOf("Netscape") != -1);
135
		var ns  = (navigator.appName.indexOf("Netscape") != -1);
138
		var win = ((agt.indexOf("win")!=-1) || (agt.indexOf("32bit")!=-1));
136
		var win = ((agt.indexOf("win")!=-1) || (agt.indexOf("32bit")!=-1));
139
		var mac = (agt.indexOf("mac")!=-1);
137
		var mac = (agt.indexOf("mac")!=-1);
140
		
138
		
141
		function detectIE(ClassID,name) { result = false; document.write('<SCRIPT LANGUAGE=VBScript>\n on error resume next \n result = IsObject(CreateObject("' + ClassID + '"))</SCRIPT>\n'); if (result) return name+','; else return ''; }
139
		function detectIE(ClassID,name) { result = false; document.write('<SCRIPT LANGUAGE=VBScript>\n on error resume next \n result = IsObject(CreateObject("' + ClassID + '"))</SCRIPT>\n'); if (result) return name+','; else return ''; }
142
		function detectNS(ClassID,name) { n = ""; if (nse.indexOf(ClassID) != -1) if (navigator.mimeTypes[ClassID].enabledPlugin != null) n = name+","; return n; }
140
		function detectNS(ClassID,name) { n = ""; if (nse.indexOf(ClassID) != -1) if (navigator.mimeTypes[ClassID].enabledPlugin != null) n = name+","; return n; }
143
		
141
		
144
		if (ie && win) {	pluginlist = detectIE("Adobe.SVGCtl","SVG Viewer") + detectIE("SWCtl.SWCtl.1","Shockwave Director") + detectIE("ShockwaveFlash.ShockwaveFlash.1","Shockwave Flash") + detectIE("rmocx.RealPlayer G2 Control.1","RealPlayer") + detectIE("QuickTimeCheckObject.QuickTimeCheck.1","QuickTime") + detectIE("MediaPlayer.MediaPlayer.1","Windows Media Player") + detectIE("PDF.PdfCtrl.5","Acrobat Reader"); }
142
		if (ie && win) {	pluginlist = detectIE("Adobe.SVGCtl","SVG Viewer") + detectIE("SWCtl.SWCtl.1","Shockwave Director") + detectIE("ShockwaveFlash.ShockwaveFlash.1","Shockwave Flash") + detectIE("rmocx.RealPlayer G2 Control.1","RealPlayer") + detectIE("QuickTimeCheckObject.QuickTimeCheck.1","QuickTime") + detectIE("MediaPlayer.MediaPlayer.1","Windows Media Player") + detectIE("PDF.PdfCtrl.5","Acrobat Reader"); }
145
		if (ns || !win) {
143
		if (ns || !win) {
146
				nse = ""; for (var i=0;i<navigator.mimeTypes.length;i++) nse += navigator.mimeTypes[i].type.toLowerCase();
144
				nse = ""; for (var i=0;i<navigator.mimeTypes.length;i++) nse += navigator.mimeTypes[i].type.toLowerCase();
147
				pluginlist = detectNS("image/svg-xml","SVG Viewer") + detectNS("application/x-director","Shockwave Director") + detectNS("application/x-shockwave-flash","Shockwave Flash") + detectNS("audio/x-pn-realaudio-plugin","RealPlayer") + detectNS("video/quicktime","QuickTime") + detectNS("application/x-mplayer2","Windows Media Player") + detectNS("application/pdf","Acrobat Reader");
145
				pluginlist = detectNS("image/svg-xml","SVG Viewer") + detectNS("application/x-director","Shockwave Director") + detectNS("application/x-shockwave-flash","Shockwave Flash") + detectNS("audio/x-pn-realaudio-plugin","RealPlayer") + detectNS("video/quicktime","QuickTime") + detectNS("application/x-mplayer2","Windows Media Player") + detectNS("application/pdf","Acrobat Reader");
148
		}
146
		}
149
		
147
		
150
		pluginlist += navigator.javaEnabled() ? "Java," : "";
148
		pluginlist += navigator.javaEnabled() ? "Java," : "";
151
		if (pluginlist.length > 0) pluginlist = pluginlist.substring(0,pluginlist.length-1);
149
		if (pluginlist.length > 0) pluginlist = pluginlist.substring(0,pluginlist.length-1);
152
	  
150
	  
153
	  if(pluginlist.indexOf("Java")!=-1)
151
	  if(pluginlist.indexOf("Java")!=-1)
154
	  {
152
	  {
155
	  	@org.tela_botanica.client.modeles.dao.ImageUploaderAsynchroneDAO::appelerUploadMultiple()() ;
153
	  	@org.tela_botanica.client.modeles.dao.ImageUploaderAsynchroneDAO::appelerUploadMultiple()() ;
156
	  }
154
	  }
157
	  else
155
	  else
158
	  {
156
	  {
159
	  	@org.tela_botanica.client.modeles.dao.ImageUploaderAsynchroneDAO::appelerUploadSimple()() ;
157
	  	@org.tela_botanica.client.modeles.dao.ImageUploaderAsynchroneDAO::appelerUploadSimple()() ;
160
	  }
158
	  }
161
	  
159
	  
162
	}-*/;
160
	}-*/;
163
 
161
 
164
}
162
}