2012-04-13 40 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,但我认为您会希望使用更好的小部件来真正呈现此数据。