2012-04-13 39 views
1

這裏是什麼,我需要做的一個小片段:GWT的類與AWT Desktop類似嗎?

if (Desktop.isDesktopSupported()) 
{ 
    final Desktop desktop = Desktop.getDesktop(); 
    try{ 
    desktop.open(new File(path)); 
    } 
    catch (final IOException e) 
    { 
    MessageBox.alert("Log View", "Error finding file", null); 
    } 
} 

我需要打開一個文件記錄在該文件類型用戶的默認桌面應用程序。 Maven在編譯時給我提出了一些問題,說它找不到java.io.File和java.awt.Desktop。

2部分的問題的

類,第一,確實GWT有某種類似功能的java.awt.Desktop以及如何解決的項目,所以行家發現IO和AWT文件?

回答

4

爲了獲得與在HTML中調用DesktopJButton相同的效果,您應該提供一個HTML按鈕,該按鈕鏈接到該文件的下載並確保它具有服務器提供的正確內容類型。

0

不,你不能用GWT做到這一點。

瀏覽器通常無法訪問文件系統。你可以做的最好的事情是讓用戶安裝一些可以讓你訪問文件的插件(需要進行權限檢查)或者讓他們上傳文件到你的服務器(你的網絡應用程序可以從那裏下載文件來檢查它)。

+0

我已經擁有了服務器上的所有文件內容,它只是將所有內部日誌寫入單個文本文件。但他們希望它加載到他們的環境默認程序中,所以一旦文件被創建並且我知道它是一個文本文件,我該如何打開它的默認文本編輯器? – nmb1106 2012-04-13 14:38:00

2

具體到問題的GWT部分。

是的,你可以做到這一點。您可能會使用Grid,FlexTable,HTMLTable或僅使用HTML的事件來顯示。您將該小部件嵌入到面板中,並在根面板上顯示該面板。

訣竅是將文件數據從服務器獲取到客戶端。您可以使用GWT RPC或某種REST服務器來執行此操作。如果您查看啓動GWT應用程序時生成的默認應用程序,它將根據字符串發送字符串數據。你可以使用它作爲模式來減少你的模型對象。默認的應用程序使用GWT-RPC,並且很容易遵循。

我之所以對模型類型模糊不清,是因爲它取決於您想如何將這些數據呈現給用戶。您可以使用HTML來呈現HTML,但我認爲您會希望使用更好的小部件來真正呈現此數據。