eclipse中状态保存以及首选项的变化监听

1.首选项的变化监听

  在要监听的类中间分别写入下列代码

a.一般写在构造函数中:

ClassFTPPlugin.getDefault().getPluginPreferences().
  addPropertyChangeListener(propertyChangeListener);
 

b.然后在该类中写入field 监听类

 private final IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener() {
     public void propertyChange(PropertyChangeEvent event) {
     System.out.println("event.getProperty():"+event.getProperty());}

2.状态保存

在view和edit中一般有public void saveState(IMemento memento)方法public void init(IViewSite site, IMemento memento)方法,如果想在其它非API的地方写保存信息,可如下,以下分别为读、写

读(恢复)

reader = new FileReader(getAddressesFile());
			loadAddresses(XMLMemento.createReadRoot(reader));

 

private void loadAddresses(XMLMemento memento) 
{ 
IMemento[] children = memento.getChildren(TAG_ADDRESS); 
for(int i = 0; i < children.length; i++) 
{ 
AddressItem item = createNewAddressItem(children[i].getString(TAG_NAME), 
children[i].getString(TAG_CATEGORY)); 
if(item != null) 
addresses.add(item); 
} 
}
 

 写(保存)

	public void saveAddresses(){
		if(addresses == null)
			return;
		XMLMemento memento = XMLMemento.createWriteRoot(TAG_ADDRESSES);
		saveAddresses(memento);
		FileWriter writer = null;
		try{
			writer = new FileWriter(getAddressesFile());
			memento.save(writer);
		}catch(IOException e){
			//to be added
		}finally{
			try{
				if(writer != null)
					writer.close();
			}catch(IOException e){
				//to be added
			}
		}
	}

 

public void saveAddresses(IMemento memento){
		Iterator iter = addresses.iterator();
		while(iter.hasNext()){
			AddressItem item = (AddressItem)iter.next();
			IMemento child = memento.createChild(TAG_ADDRESS);
			child.putString(TAG_NAME, item.getName());
			child.putString(TAG_CATEGORY, item.getCategory().getCategoryName());
		}
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值