⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deleteaction.java

📁 mywork是rcp开发的很好的例子
💻 JAVA
字号:
/*
 * Created on 2003-4-10
 *
 */
package net.sf.pim.action;

import net.sf.component.table.BindedTableViewer;
import net.sf.pim.UiUtil;
import net.sf.pim.model.psp.Work;

import org.eclipse.jface.dialogs.MessageDialog;

/**
 * @author lzhang
  */
public class DeleteAction extends UiAction {
    public DeleteAction() {
        super();
        name = "删除";
        gif = "delete.gif";
    }

    public void run() {
    	super.run();
    	if(UiUtil.getActiveTableEditor().getName().equals("日志")){
	        if (parent.isMulti())
	            return;
	
	        //修正了没有选择记录时也弹出对话框的问题
	        int index = parent.getTv().getTable().getSelectionIndex();
	        if (index == -1)
	        	return;
	        
	        if (!MessageDialog.openConfirm(parent.getTv().getControl().getShell(), "确认", "是否要确认删除此项工作记录?")) 
	            return ;
	
            Work[] list = parent.getData().getWorks();
            Work[] nList = new Work[list.length - 1];
            for (int i = 0; i < list.length; i++) {
                if (i > index) {
                    nList[i - 1] = list[i];
                    nList[i - 1].setWid(String.valueOf(i));
                }
                else if (i < index)
                    nList[i] = list[i];
            }
            parent.getTv().setInput(nList);
            parent.setDirty(true);
            if (index > 0){
                parent.getTv().getTable().setSelection(index - 1);
                parent.getTableCursor().setSelection(index-1, parent.getTableCursor().getColumn());
            }
            
            //可以将记录全部删除,系统会自动保留一条记录,用于保存日志使用。
            if (list.length == 1){
            	nList = new Work[1];
            	Work work = new Work();
    			work.setRq(parent.getWorkDay());
    			work.setWid(String.valueOf(1));
    			nList[0] = work;
    			parent.getTv().setInput(nList);
    			parent.getTv().getTable().setSelection(0);
    			parent.getTableCursor().setSelection(0, parent.getTableCursor().getColumn());
            }
    	}else{
    		BindedTableViewer btv=UiUtil.getActiveTableEditor().getViewer();
    		if(!btv.getModel().isEditable())
    			return ;
    		int index = btv.getTable().getSelectionIndex();
    		if ( index < 0 || index>btv.getTable().getItemCount() -1) return;
	        if (!MessageDialog.openConfirm(btv.getShell(), "确认", "是否要确认删除此项记录?")) 
	            return ;
	        btv.getModel().removeRow( index);
	        btv.getModel().setDirty(true);
	        btv.refresh(false);
	        if(index > 0){
	        	btv.getTable().setSelection(index -1);
	        	btv.getTableCursor().setSelection(index-1, btv.getTableCursor().getColumn());
	        }
    	}
    	
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -