|
24 | 24 | import java.util.ArrayList;
|
25 | 25 | import java.util.List;
|
26 | 26 |
|
| 27 | +import com.allen_sauer.gwt.log.client.Log; |
27 | 28 | import com.google.gwt.event.dom.client.ClickEvent;
|
28 | 29 | import com.google.gwt.event.dom.client.ClickHandler;
|
29 | 30 | import com.google.gwt.http.client.URL;
|
30 | 31 | import com.google.gwt.user.client.ui.*;
|
31 | 32 | import com.openkm.frontend.client.Main;
|
32 | 33 | import com.openkm.frontend.client.bean.GWTDocument;
|
| 34 | +import com.openkm.frontend.client.bean.GWTWorkspace; |
33 | 35 | import com.openkm.frontend.client.constants.service.RPCService;
|
34 | 36 | import com.openkm.frontend.client.extension.widget.preview.PreviewExtension;
|
35 | 37 | import com.openkm.frontend.client.util.Util;
|
@@ -100,56 +102,37 @@ public void showEmbedPDF(String uuid) {
|
100 | 102 | }
|
101 | 103 |
|
102 | 104 | /**
|
103 |
| - * cleanPreview |
104 |
| - */ |
105 |
| - public void cleanPreview() { |
106 |
| - swf.setHTML("<div id=\"pdfviewercontainer\" ></div>\n"); |
107 |
| - embeddedPreview.clear(); |
108 |
| - } |
109 |
| - |
110 |
| - /** |
111 |
| - * Set the media file to reproduce |
112 |
| - * |
113 |
| - * @param mediaUrl The media file url |
| 105 | + * showSystemEmbeddedPreview |
114 | 106 | */
|
115 |
| - public void showMediaFile(String mediaUrl, String mimeType) { |
| 107 | + public void showSystemEmbeddedPreview(String url) { |
116 | 108 | hideWidgetExtension();
|
117 | 109 | vPanel.clear();
|
118 | 110 |
|
119 |
| - if (previewEvent != null) { |
120 |
| - vPanel.add(hReturnPanel); |
121 |
| - vPanel.setCellHeight(hReturnPanel, String.valueOf(TURN_BACK_HEIGHT) + "px"); |
122 |
| - } |
123 |
| - |
124 |
| - vPanel.add(video); |
125 |
| - vPanel.setCellHorizontalAlignment(video, HasAlignment.ALIGN_CENTER); |
126 |
| - vPanel.setCellVerticalAlignment(video, HasAlignment.ALIGN_MIDDLE); |
127 |
| - |
128 |
| - this.mediaUrl = mediaUrl; |
129 |
| - Util.removeMediaPlayer(); |
130 |
| - video.setHTML("<div id=\"mediaplayercontainer\"></div>\n"); |
| 111 | + vPanel.add(embeddedPreview); |
| 112 | + vPanel.setCellHorizontalAlignment(embeddedPreview, HasAlignment.ALIGN_CENTER); |
| 113 | + vPanel.setCellVerticalAlignment(embeddedPreview, HasAlignment.ALIGN_MIDDLE); |
131 | 114 |
|
132 |
| - if (mimeType.equals("audio/mpeg")) { |
133 |
| - mediaProvider = "sound"; |
134 |
| - } else if (mimeType.equals("video/x-flv") || mimeType.equals("video/mp4")) { |
135 |
| - mediaProvider = "video"; |
136 |
| - } else if (mimeType.equals("application/x-shockwave-flash")) { |
137 |
| - mediaProvider = ""; |
138 |
| - } |
| 115 | + embeddedPreview.showEmbedded(url); |
| 116 | + } |
139 | 117 |
|
140 |
| - Util.createMediaPlayer(mediaUrl, mediaProvider, "" + width, "" + height); |
| 118 | + /** |
| 119 | + * cleanPreview |
| 120 | + */ |
| 121 | + public void cleanPreview() { |
| 122 | + swf.setHTML("<div id=\"pdfviewercontainer\" ></div>\n"); |
| 123 | + embeddedPreview.clear(); |
141 | 124 | }
|
142 | 125 |
|
143 | 126 | /**
|
144 | 127 | * setPreviewExtension
|
145 | 128 | */
|
146 |
| - public void showPreviewExtension(PreviewExtension preview, String url) { |
| 129 | + public void showPreviewExtension(PreviewExtension preview, String url, GWTDocument doc) { |
147 | 130 | hideWidgetExtension();
|
148 | 131 | vPanel.clear();
|
149 | 132 |
|
150 | 133 | if (previewAvailable) {
|
| 134 | + preview.createViewer(doc, url, width, height); |
151 | 135 | vPanel.add(preview.getWidget());
|
152 |
| - preview.createViewer(url, width, height); |
153 | 136 | }
|
154 | 137 | }
|
155 | 138 |
|
@@ -199,107 +182,77 @@ public void langRefresh() {
|
199 | 182 | }
|
200 | 183 | }
|
201 | 184 |
|
| 185 | + /** |
| 186 | + * addPreviewExtension |
| 187 | + */ |
| 188 | + public void addPreviewExtension(PreviewExtension extension) { |
| 189 | + widgetPreviewExtensionList.add(extension); |
| 190 | + } |
| 191 | + |
202 | 192 | /**
|
203 | 193 | * previewDocument
|
204 | 194 | */
|
205 | 195 | public void previewDocument(boolean refreshing, GWTDocument doc) {
|
206 |
| - if (doc.getMimeType().equals("video/x-flv") || doc.getMimeType().equals("video/mp4") || doc.getMimeType().equals("audio/mpeg")) { |
207 |
| - if (!refreshing) { |
208 |
| - showMediaFile(RPCService.DownloadServlet + "?uuid=" + URL.encodeQueryString(doc.getUuid()), doc.getMimeType()); |
209 |
| - } else { |
210 |
| - resizeMediaPlayer(width, height); |
211 |
| - } |
212 |
| - } else if (HTMLPreview.isPreviewAvailable(doc.getMimeType())) { |
213 |
| - if (!refreshing) { |
214 |
| - showHTML(doc); |
215 |
| - } |
216 |
| - } else if (SyntaxHighlighterPreview.isPreviewAvailable(doc.getMimeType())) { |
| 196 | + Log.debug("PreviewDocument: " + doc.getPath()); |
| 197 | + |
| 198 | + if (doc.getMimeType().equals("video/x-flv") || doc.getMimeType().equals("video/mp4") || doc.getMimeType().equals("audio/mpeg") |
| 199 | + || doc.getMimeType().equals("audio/x-wav")) { |
| 200 | + Log.debug("Preview: Media Player"); |
| 201 | + String url = RPCService.DownloadServlet + "?uuid=" + URL.encodeQueryString(doc.getUuid()) + "&downloadType=" |
| 202 | + + DOWNLOAD_TYPE_PREVIEW; |
| 203 | + showSystemEmbeddedPreview(EmbeddedPreview.MPG_URL + URL.encodeQueryString(url) + "&mimeType=" + doc.getMimeType() |
| 204 | + + "&width=" + width + "&height=" + height); |
| 205 | + } else if (isHTMLPreviewAvailable(doc.getMimeType())) { |
| 206 | + Log.debug("Preview: HTML"); |
217 | 207 | if (!refreshing) {
|
218 |
| - showSyntaxHighlighterHTML(doc); |
| 208 | + String url = "mimeType=" + doc.getMimeType() + "&uuid=" + doc.getUuid(); |
| 209 | + showSystemEmbeddedPreview(url); |
219 | 210 | }
|
220 |
| - } else if (doc.getMimeType().equals("application/pdf")) { |
221 |
| - setPreviewConversion(false); |
| 211 | + } else if (isSyntaxHighlighterPreviewAvailable(doc.getMimeType())) { |
| 212 | + Log.debug("Preview: Syntax Highlighter"); |
222 | 213 | if (!refreshing) {
|
223 |
| - showPDF(doc.getUuid()); |
| 214 | + String url = "mimeType=" + doc.getMimeType() + "&uuid=" + doc.getUuid(); |
| 215 | + showSystemEmbeddedPreview(url); |
224 | 216 | }
|
225 | 217 | } else if (doc.getMimeType().equals("application/x-shockwave-flash")) {
|
226 |
| - setPreviewConversion(false); |
| 218 | + String url = RPCService.ConverterServlet + "?inline=true&toSwf=true&uuid=" + URL.encodeQueryString(doc.getUuid()) + "&downloadType=" |
| 219 | + + DOWNLOAD_TYPE_PREVIEW; |
| 220 | + showSystemEmbeddedPreview(EmbeddedPreview.SWF_URL + URL.encodeQueryString(url) + "&uuid=" + URL.encodeQueryString(doc.getUuid())); |
| 221 | + } else { |
| 222 | + PreviewExtension previewExtension = null; |
227 | 223 |
|
228 |
| - if (!refreshing) { |
229 |
| - showEmbedSWF(doc.getUuid()); |
230 |
| - } else { |
231 |
| - resizeEmbedSWF(width, height); |
| 224 | + for (PreviewExtension preview : widgetPreviewExtensionList) { |
| 225 | + Log.debug("PreviewExtension: " + preview.getClass().getName()); |
| 226 | + |
| 227 | + if (preview.isPreviewAvailable(doc.getMimeType())) { |
| 228 | + Log.debug("Chosen preview extension: " + preview.getClass().getName()); |
| 229 | + previewExtension = preview; |
| 230 | + break; |
| 231 | + } |
232 | 232 | }
|
233 |
| - } else { |
234 |
| - if (Main.get().workspaceUserProperties.getWorkspace().isAcrobatPluginPreview() && doc.getMimeType().equals("application/pdf")) { |
| 233 | + |
| 234 | + // CADViewer preview comes here |
| 235 | + if (previewExtension != null) { |
235 | 236 | if (!refreshing) {
|
236 |
| - showEmbedPDF(doc.getUuid()); |
| 237 | + String url = RPCService.DownloadServlet; |
| 238 | + url += ";jsessionid=" + Main.get().workspaceUserProperties.getWorkspace().getSessionId(); |
| 239 | + url += "?uuid=" + URL.encodeQueryString(doc.getUuid()) + "&downloadType=" + DOWNLOAD_TYPE_PREVIEW; |
| 240 | + showPreviewExtension(previewExtension, url, doc); |
237 | 241 | } else {
|
238 |
| - Util.resizeEmbededPDF("" + width, "" + height, pdfID); |
| 242 | + previewExtension.resizeViewer(width, height); |
239 | 243 | }
|
240 | 244 | } else {
|
241 |
| - setPreviewConversion(true); |
242 |
| - |
243 |
| - if (!refreshing) { |
244 |
| - if (doc.isConvertibleToPdf()) { |
245 |
| - showPDF(doc.getUuid()); |
246 |
| - } else { |
247 |
| - showEmbedSWF(doc.getUuid()); |
| 245 | + if (refreshing) { |
| 246 | + if (Main.get().workspaceUserProperties.getWorkspace().isAcrobatPluginPreview()) { |
| 247 | + Util.resizeEmbededPDF("" + width, "" + height, pdfID); |
248 | 248 | }
|
249 | 249 | } else {
|
250 |
| - if (!doc.isConvertibleToPdf()) { |
251 |
| - resizeEmbedSWF(width, height); |
252 |
| - } |
| 250 | + showEmbedPDF(doc.getUuid()); |
253 | 251 | }
|
254 | 252 | }
|
255 | 253 | }
|
256 | 254 | }
|
257 | 255 |
|
258 |
| - /** |
259 |
| - * addPreviewExtension |
260 |
| - */ |
261 |
| - public void addPreviewExtension(PreviewExtension extension) { |
262 |
| - widgetPreviewExtensionList.add(extension); |
263 |
| - } |
264 |
| - |
265 |
| - /** |
266 |
| - * Preview PDF, take in consideration profile selection |
267 |
| - */ |
268 |
| - public void showPDF(String uuid) { |
269 |
| - hideWidgetExtension(); |
270 |
| - vPanel.clear(); |
271 |
| - |
272 |
| - vPanel.add(pdf); |
273 |
| - vPanel.setCellHorizontalAlignment(pdf, HasAlignment.ALIGN_CENTER); |
274 |
| - vPanel.setCellVerticalAlignment(pdf, HasAlignment.ALIGN_MIDDLE); |
275 |
| - |
276 |
| - if (previewAvailable) { |
277 |
| - pdf.setHTML("<div id=\"" + pdfContainer + "\"></div>\n"); // needed for rewriting purpose |
278 |
| - showSystemEmbeddedPreview(EmbeddedPreview.PDFJS_URL + URL.encodeQueryString(RPCService.ConverterServlet +"?toPdf=true&inline=true&uuid=" + uuid)); |
279 |
| - } else { |
280 |
| - pdf.setHTML("<div id=\"" + pdfContainer + "\" align=\"center\"><br><br>" + Main.i18n("preview.unavailable") + "</div>\n"); |
281 |
| - } |
282 |
| - } |
283 |
| - |
284 |
| - /** |
285 |
| - * showSystemEmbeddedPreview |
286 |
| - */ |
287 |
| - public void showSystemEmbeddedPreview(String url) { |
288 |
| - hideWidgetExtension(); |
289 |
| - vPanel.clear(); |
290 |
| - |
291 |
| - if (previewEvent != null) { |
292 |
| - vPanel.add(hReturnPanel); |
293 |
| - vPanel.setCellHeight(hReturnPanel, String.valueOf(TURN_BACK_HEIGHT) + "px"); |
294 |
| - } |
295 |
| - |
296 |
| - vPanel.add(embeddedPreview); |
297 |
| - vPanel.setCellHorizontalAlignment(embeddedPreview, HasAlignment.ALIGN_CENTER); |
298 |
| - vPanel.setCellVerticalAlignment(embeddedPreview, HasAlignment.ALIGN_MIDDLE); |
299 |
| - |
300 |
| - embeddedPreview.showEmbedded(url); |
301 |
| - } |
302 |
| - |
303 | 256 | /**
|
304 | 257 | * isHTMLPreviewAvailable
|
305 | 258 | */
|
|
0 commit comments