Révision 2907

tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenLocalizedWebPage.java (revision 2907)
52 52
 * @author mdecorde.
53 53
 */
54 54
public class OpenLocalizedWebPage extends AbstractHandler {
55

  
55
	
56 56
	/** The Constant ID. */
57 57
	public final static String ID = "org.txm.rcp.commands.OpenLocalizedWebPage"; //$NON-NLS-1$
58

  
59
	public static final String GITPAGES = "https://pages.textometrie.org/";
60
	public static final String URL_TEXTOMETRIE = GITPAGES+"textometrie/";
61
	public static final String URL_TXMMANUAL = GITPAGES+"txm-manual/";
62
	public static final String URL_TXMDEPOT = GITPAGES+"txm-software/";
58
	
59
	public static final String GITPAGES = "https://txm.gitpages.huma-num.fr/";
60
	
61
	public static final String URL_TEXTOMETRIE = GITPAGES + "textometrie/";
62
	
63
	public static final String URL_TXMMANUAL = GITPAGES + "txm-manual/";
64
	
65
	public static final String URL_TXMDEPOT = GITPAGES + "txm-software/";
66
	
63 67
	public static final String HTMLPAGES = URL_TEXTOMETRIE + "html/";
68
	
64 69
	public static final String FILESPAGES = URL_TEXTOMETRIE + "files/";
65

  
70
	
66 71
	public static final String TEXTOMETRIE = "textometrie"; //$NON-NLS-1$
72
	
67 73
	public static final String TEXTOMETRIE_DOCS = "textometrie_docs"; //$NON-NLS-1$
74
	
68 75
	public static final String SF = "sf"; //$NON-NLS-1$
76
	
69 77
	public static final String SF_DOCS = "sf_docs"; //$NON-NLS-1$
78
	
70 79
	public static final String TREETAGGER = "treetagger"; //$NON-NLS-1$
80
	
71 81
	public static final String REFMAN = "refman"; //$NON-NLS-1$
82
	
72 83
	public static final String PDFREFMAN = "pdfrefman"; //$NON-NLS-1$
84
	
73 85
	public static final String BUG = "bug"; //$NON-NLS-1$
86
	
74 87
	public static final String FEATURE = "feature"; //$NON-NLS-1$
88
	
75 89
	public static final String MAILINGLIST = "mailinglist"; //$NON-NLS-1$
90
	
76 91
	public static final String FAQ = "faq"; //$NON-NLS-1$
92
	
77 93
	public static final String CONTRIB = "contrib"; //$NON-NLS-1$
94
	
78 95
	public static final String TXMUSERS = "txm-users wiki"; //$NON-NLS-1$
96
	
79 97
	public static final String MACROS = "macros"; //$NON-NLS-1$
98
	
80 99
	public static final String CORPORA = "corpora"; //$NON-NLS-1$
81

  
82
	/* (non-Javadoc)
100
	
101
	/*
102
	 * (non-Javadoc)
83 103
	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
84 104
	 */
85 105
	@Override
......
90 110
			openfile(key);
91 111
			return null;
92 112
		}
93

  
113
		
94 114
		return null;
95 115
	}
96

  
116
	
97 117
	/**
98 118
	 * try connecting to an URL if it fails, the alternative url is returned
99
	 *  
119
	 * 
100 120
	 * @param urltoTest
101 121
	 * @param alternativeUrl
102 122
	 * @return
......
105 125
		try {
106 126
			URL url = new URL(urltoTest);
107 127
			if (url.getProtocol().equals("https")) {
108

  
109
				//ts.setCertificateEntry(UUID.randomUUID(), cert);
128
				
129
				// ts.setCertificateEntry(UUID.randomUUID(), cert);
110 130
				HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
111 131
				if (SSLContext.getDefault() != null) {
112

  
132
					
113 133
					// Create a trust manager that does not validate certificate chains
114
					TrustManager[] trustAllCerts = new TrustManager[] { 
115
							new X509TrustManager() {     
116
								public java.security.cert.X509Certificate[] getAcceptedIssuers() { 
134
					TrustManager[] trustAllCerts = new TrustManager[] {
135
							new X509TrustManager() {
136
								
137
								@Override
138
								public java.security.cert.X509Certificate[] getAcceptedIssuers() {
117 139
									return new java.security.cert.X509Certificate[0];
118
								} 
119
								public void checkClientTrusted( 
120
										java.security.cert.X509Certificate[] certs, String authType) {
121
								} 
122
								public void checkServerTrusted( 
123
										java.security.cert.X509Certificate[] certs, String authType) {
124 140
								}
125
							} 
141
								
142
								@Override
143
								public void checkClientTrusted(
144
										java.security.cert.X509Certificate[] certs, String authType) {}
145
								
146
								@Override
147
								public void checkServerTrusted(
148
										java.security.cert.X509Certificate[] certs, String authType) {}
149
							}
126 150
					};
127

  
151
					
128 152
					// Install the all-trusting trust manager for this connection ONLY
129 153
					try {
130 154
						SSLContext sc = SSLContext.getInstance("SSL");
131
						sc.init(null, trustAllCerts, new java.security.SecureRandom()); 
155
						sc.init(null, trustAllCerts, new java.security.SecureRandom());
132 156
						connection.setSSLSocketFactory(sc.getSocketFactory());
133
					} catch (GeneralSecurityException e) {
157
					}
158
					catch (GeneralSecurityException e) {
134 159
						Log.printStackTrace(e);
135
					} 
160
					}
136 161
				}
137

  
162
				
138 163
				if (connection.getResponseCode() != HttpsURLConnection.HTTP_OK) {
139 164
					Log.fine(NLS.bind("HTTP Error while testing the \"{0}\" web page: {1}", urltoTest, connection.getResponseCode()));
140 165
					connection.disconnect();
141 166
					return alternativeUrl;
142 167
				}
143 168
				connection.disconnect();
144
			} else {
169
			}
170
			else {
145 171
				url.openStream().close();
146 172
			}
147

  
148
		} catch (Exception e) {
173
			
174
		}
175
		catch (Exception e) {
149 176
			Log.fine(NLS.bind("Error while testing the \"{0}\" web page: {1}", urltoTest, e.getMessage()));
150 177
			return alternativeUrl;
151 178
		}
152 179
		return urltoTest;
153 180
	}
154

  
181
	
155 182
	/**
156 183
	 * Openfile.
157 184
	 *
......
159 186
	 * @return the txm browser
160 187
	 */
161 188
	static public Object openfile(String key) {
162

  
189
		
163 190
		String version = Platform.getBundle(Activator.PLUGIN_ID).getVersion().toString();
164 191
		int idx = version.lastIndexOf("."); //$NON-NLS-1$
165 192
		if (idx > 0) version = version.substring(0, idx); // remove the "qualifier" part
166

  
193
		
167 194
		String locale = Locale.getDefault().getLanguage();
168

  
195
		
169 196
		if (TEXTOMETRIE.equals(key)) {
170 197
			if ("fr".equals(locale)) { //$NON-NLS-1$
171
				return OpenBrowser.openfile(URL_TEXTOMETRIE); 
172
			} else {
173
				return OpenBrowser.openfile(getValidURL(URL_TEXTOMETRIE+locale, URL_TEXTOMETRIE+"en")); //$NON-NLS-1$
198
				return OpenBrowser.openfile(URL_TEXTOMETRIE);
174 199
			}
175
		} else if (FAQ.equals(key)) {
200
			else {
201
				return OpenBrowser.openfile(getValidURL(URL_TEXTOMETRIE + locale, URL_TEXTOMETRIE + "en")); //$NON-NLS-1$
202
			}
203
		}
204
		else if (FAQ.equals(key)) {
176 205
			return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users/public/faq"); //$NON-NLS-1$
177
		} else if (CONTRIB.equals(key)) {
206
		}
207
		else if (CONTRIB.equals(key)) {
178 208
			return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users/public/contribuer"); //$NON-NLS-1$
179
		} else if (SF_DOCS.equals(key)) {
209
		}
210
		else if (SF_DOCS.equals(key)) {
180 211
			if ("fr".equals(locale)) { //$NON-NLS-1$
181
				return OpenBrowser.openfile(URL_TEXTOMETRIE+"/Documentation/#txm-manual"); 
182
			} else {
183
				return OpenBrowser.openfile(getValidURL(URL_TEXTOMETRIE+locale+"/Documentation/#txm-manual", URL_TEXTOMETRIE+"en/Documentation/#txm-manual")); //$NON-NLS-1$
212
				return OpenBrowser.openfile(URL_TEXTOMETRIE + "Documentation/#txm-manual");
184 213
			}
185
		} else if (SF.equals(key)) {
214
			else {
215
				return OpenBrowser.openfile(getValidURL(URL_TEXTOMETRIE + locale + "Documentation/#txm-manual", URL_TEXTOMETRIE + "en/Documentation/#txm-manual")); //$NON-NLS-1$
216
			}
217
		}
218
		else if (SF.equals(key)) {
186 219
			if ("fr".equals(locale)) { //$NON-NLS-1$
187
				return OpenBrowser.openfile(FILESPAGES); 
188
			} else {
189
				return OpenBrowser.openfile(getValidURL(FILESPAGES+locale, URL_TEXTOMETRIE+"en")); //$NON-NLS-1$
220
				return OpenBrowser.openfile(FILESPAGES);
190 221
			}
191
		} else if (TEXTOMETRIE_DOCS.equals(key)) {
222
			else {
223
				return OpenBrowser.openfile(getValidURL(FILESPAGES + locale, URL_TEXTOMETRIE + "en")); //$NON-NLS-1$
224
			}
225
		}
226
		else if (TEXTOMETRIE_DOCS.equals(key)) {
192 227
			if ("fr".equals(locale)) { //$NON-NLS-1$
193
				return OpenBrowser.openfile(URL_TEXTOMETRIE+"/Documentation"); 
194
			} else {
195
				return OpenBrowser.openfile(getValidURL(URL_TEXTOMETRIE+locale+"/Documentation", URL_TEXTOMETRIE+"en/Documentation")); //$NON-NLS-1$
228
				return OpenBrowser.openfile(URL_TEXTOMETRIE + "Documentation");
196 229
			}
197
		} else if (TREETAGGER.equals(key)) {
230
			else {
231
				return OpenBrowser.openfile(getValidURL(URL_TEXTOMETRIE + locale + "/Documentation", URL_TEXTOMETRIE + "en/Documentation")); //$NON-NLS-1$
232
			}
233
		}
234
		else if (TREETAGGER.equals(key)) {
198 235
			if ("fr".equals(locale)) { //$NON-NLS-1$
199
				return OpenBrowser.openfile(URL_TEXTOMETRIE+"InstallTreeTagger"); 
200
			} else {
201
				return OpenBrowser.openfile(getValidURL(URL_TEXTOMETRIE+locale+"/InstallTreeTagger/", URL_TEXTOMETRIE+"en/InstallTreeTagger")); //$NON-NLS-1$ //$NON-NLS-2$
236
				return OpenBrowser.openfile(URL_TEXTOMETRIE + "InstallTreeTagger");
202 237
			}
203
		} else if (REFMAN.equals(key)) {
238
			else {
239
				return OpenBrowser.openfile(getValidURL(URL_TEXTOMETRIE + locale + "/InstallTreeTagger/", URL_TEXTOMETRIE + "en/InstallTreeTagger")); //$NON-NLS-1$ //$NON-NLS-2$
240
			}
241
		}
242
		else if (REFMAN.equals(key)) {
204 243
			if ("fr".equals(locale)) { //$NON-NLS-1$
205
				return OpenBrowser.openfile(URL_TXMMANUAL); 
206
			} else {
207
				return OpenBrowser.openfile(getValidURL(URL_TXMMANUAL+locale, URL_TXMMANUAL)); //$NON-NLS-1$
244
				return OpenBrowser.openfile(URL_TXMMANUAL);
208 245
			}
209
		}  else if (CORPORA.equals(key)) {
246
			else {
247
				return OpenBrowser.openfile(getValidURL(URL_TXMMANUAL + locale, URL_TXMMANUAL));
248
			}
249
		}
250
		else if (CORPORA.equals(key)) {
210 251
			if ("fr".equals(locale)) { //$NON-NLS-1$
211
				return OpenBrowser.openfile(FILESPAGES+"corpora"); 
212
			} else {
213
				return OpenBrowser.openfile(getValidURL(FILESPAGES+"corpora/"+locale, URL_TXMMANUAL+"corpora/en")); //$NON-NLS-1$
252
				return OpenBrowser.openfile(FILESPAGES + "corpora");
214 253
			}
215
		}else if (PDFREFMAN.equals(key)) {
216
			return OpenBrowser.openfile(FILESPAGES+"documentation/Manuel%20de%20TXM%200.8%20FR.pdf"); //$NON-NLS-1$ 
217
		} else if (BUG.equals(key)) {
254
			else {
255
				return OpenBrowser.openfile(getValidURL(FILESPAGES + "corpora/" + locale, URL_TXMMANUAL + "corpora/en")); //$NON-NLS-1$
256
			}
257
		}
258
		else if (PDFREFMAN.equals(key)) {
259
			return OpenBrowser.openfile(FILESPAGES + "documentation/Manuel%20de%20TXM%200.8%20FR.pdf"); //$NON-NLS-1$
260
		}
261
		else if (BUG.equals(key)) {
218 262
			if ("fr".equals(locale)) { //$NON-NLS-1$
219 263
				return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users/public/retours_de_bugs_logiciel"); //$NON-NLS-1$
220
			} else {
264
			}
265
			else {
221 266
				return OpenBrowser.openfile("https://sourceforge.net/p/txm/feature-requests/?source=navbar"); //$NON-NLS-1$
222 267
			}
223
		} else if (FEATURE.equals(key)) {
268
		}
269
		else if (FEATURE.equals(key)) {
224 270
			if ("fr".equals(locale)) { //$NON-NLS-1$
225 271
				return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users/public/demande_de_fonctionnalites"); //$NON-NLS-1$
226
			} else {
272
			}
273
			else {
227 274
				return OpenBrowser.openfile("http://sourceforge.net/tracker/?group_id=247041&atid=1190851"); //$NON-NLS-1$
228 275
			}
229
		} else if (MAILINGLIST.equals(key)) {
276
		}
277
		else if (MAILINGLIST.equals(key)) {
230 278
			return OpenBrowser.openfile("https://groupes.renater.fr/sympa/subscribe/txm-users"); //$NON-NLS-1$
231
		} else if (MACROS.equals(key)) {
279
		}
280
		else if (MACROS.equals(key)) {
232 281
			return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users/public/macros"); //$NON-NLS-1$
233
		} else if (TXMUSERS.equals(key)) {
282
		}
283
		else if (TXMUSERS.equals(key)) {
234 284
			return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users"); //$NON-NLS-1$
235
		} else { // no key associated, key is an URL
236
			return OpenBrowser.openfile(key); //$NON-NLS-1$
237 285
		}
286
		else { // no key associated, key is an URL
287
			return OpenBrowser.openfile(key);
288
		}
238 289
	}
239

  
290
	
240 291
	public static void main(String args[]) {
241 292
		String s = getValidURL("https://txm.gitpages.huma-num.fr/textometrie/files/software/TXM/0.8.1beta/", "https://txm.gitpages.huma-num.fr/textometrie/files/software/TXM/0.8.1beta");
242 293
		System.out.println(s);

Formats disponibles : Unified diff