您的位置:首页 > 其它

Convert Document to ByteArrayInputStream

2015-04-25 10:39 525 查看
准备(使用Visual Editor开发)

1.下载eclipse-SDK-3.2-win32.zip,解压到C:\eclipse

2.下载emf-sdo-runtime-2.2.0.zip、GEF-runtime-3.2.zip、VE-runtime-1.2.1.zip、VE-SDK-1.2.1.zip,分别解压,将解压后的plugins和features文件夹下的文件分别复制到C:\eclipse\plugins和C:\eclipse\features文件夹中。

 

开始开发:

新建一个Java Project名字为myplugin,在myplugin.actions中新建一个WeatherAction 类,代码如下:

 

package myplugin.actions;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;

public class WeatherAction implements IWorkbenchWindowActionDelegate
{
public WeatherAction()
{

}

public void run(IAction action)
{
WeatherDialog wd = new WeatherDialog();
wd.setSize(800, 520);
wd.show();
}

public void selectionChanged(IAction action, ISelection selection)
{

}

public void dispose()
{

}

public void init(IWorkbenchWindow window)
{

}
}

 

其中WeatherDialog类的代码如下(新建一个Visual Editor类):

package myplugin.actions;

import java.awt.Frame;
import java.awt.Color;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import javax.swing.JDialog;
import javax.swing.JEditorPane;

public class WeatherDialog extends JDialog
{
private static final long serialVersionUID = 1L;
private JEditorPane jEditorPane = null;

public WeatherDialog()
{
super();
initialize();
}

public WeatherDialog(Frame owner)
{
super(owner);
initialize();
}

private void initialize()
{
this.setContentPane(getJEditorPane());

String line = "";

URL url = null;
URLConnection conn = null;

try
{
url = new URL("http://tq.8684.cn/beijing_beijing");

conn = url.openConnection();

HttpURLConnection httpconn =(HttpURLConnection)conn;

if(httpconn.getResponseCode() != HttpURLConnection.HTTP_OK)
return;

BufferedReader br = new BufferedReader(new InputStreamReader(httpconn.getInputStream()));

while(br.ready())
{
line = br.readLine();
if(line.indexOf("北京 北京天气") >= 0)
break;
}

br.readLine();
line = br.readLine();

line = line.replaceAll("bgcolor=\"#6699cc\"", "bgcolor=\"#FF0000\"");
line = "<html><body text=\"#0000FF\"><h2>天气预报:北京</h2>" + line + "</body></html>";

br.close();
httpconn.disconnect();

this.jEditorPane .setText(line);
}
catch (Exception e)
{
e.printStackTrace();
}

this.setTitle("天气预报");
this.setSize(400, 166);
}

private JEditorPane getJEditorPane()
{
if (jEditorPane == null)
{
jEditorPane = new JEditorPane();
jEditorPane.setBackground(Color.BLUE);
jEditorPane.setContentType( "text/html");
jEditorPane.setEnabled(false);
jEditorPane.setEditable(false);
}

return jEditorPane;
}

}

 

plugin.xml配置文件的内容为:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>

<extension
point="org.eclipse.ui.actionSets">
<actionSet
label="Sample Action Set"
visible="true"
id="myplugin.actionSet">
<menu
label="北京欢迎你"
id="sampleMenu">
<separator
name="sampleGroup">
</separator>
</menu>
<action
label="天气预报"
icon="icons/sample.gif"
class="myplugin.actions.WeatherAction"
tooltip="Hello, Eclipse world"
menubarPath="sampleMenu/sampleGroup"
toolbarPath="sampleGroup"
id="myplugin.actions.WeatherAction">
</action>
<action
label="北京时间"
icon="icons/sample.gif"
class="myplugin.actions.BJTimeAction"
tooltip="Hello, Eclipse world"
menubarPath="sampleMenu/sampleGroup"
toolbarPath="sampleGroup"
id="myplugin.actions.BJTimeAction">
</action>
<action
label="大中国"
icon="icons/sample.gif"
class="myplugin.actions.SampleAction"
tooltip="Hello, Eclipse world"
menubarPath="sampleMenu/sampleGroup"
toolbarPath="sampleGroup"
id="myplugin.actions.SampleAction">
</action>
</actionSet>
</extension>

</plugin>

 

如下面的图片所示:

 


 

 



 

从程序中可以看到,这个天气预报是从http://tq.8684.cn/beijing_beijing获取的,每天更新。

 

插件部署:

点击File,选择export,选择Plug-in Development下面的Deployable plug-ins and fragments,点击next,选择一个输出目录即可。将这个jar包复制到C:\eclipse\plugins,重启eclipse即可看到自己的eclipse插件。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: