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

📄 deleteundoableedit.java

📁 这个是一个java绘图方面的源码
💻 JAVA
字号:
package com.sunking.tp.undoredo;

import javax.swing.undo.AbstractUndoableEdit;
import com.sunking.tp.framework.*;
import com.sunking.tp.util.*;
import javax.swing.undo.*;
import java.awt.*;
import java.util.*;

/**
 * <p>Title: DeleteUndoableEdit</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author <a href="mailto:sunkingxie@hotmail.com">SunKing</a>
 * @version 1.0
 */
public class DeleteUndoableEdit extends AbstractUndoableEdit {
    JTPComponent com[];
    Desktop desk;
    AssoicatorLine assoicatorLines[];
    boolean isDeleteAssoicatorLine = false;
    public DeleteUndoableEdit(Desktop desk, JTPComponent com[]) {
        this.com = com;
        this.desk = desk;
        if (com.length != 0) {
            isDeleteAssoicatorLine = false;
            Vector vecAssociate = new Vector();
            AssoicatorLine lines[] = desk.getAssoicatorLines();
            if(lines==null){
                assoicatorLines = new AssoicatorLine[0];
            }else{
                for (int i = 0; i < lines.length; i++) {
                    JTPComponent source = lines[i].getSource();
                    JTPComponent dest = lines[i].getDest();
                    for (int j = 0; j < com.length; j++) {
                        if (com[j] == source || com[j] == dest) {
                            vecAssociate.add(lines[i]);
                        }
                    }
                }
                assoicatorLines = new AssoicatorLine[vecAssociate.size()];
                vecAssociate.copyInto(assoicatorLines);
            }
        } else {
            isDeleteAssoicatorLine = true;
            assoicatorLines = new AssoicatorLine[1];
            assoicatorLines[0] = desk.getSelectionLine();
        }
    }

    public String getUndoPresentationName() {
        return JTPUtil.getString("Undo_Delete");
    }

    public String getRedoPresentationName() {
        return JTPUtil.getString("Redo_Delete");
    }

    public void undo() throws CannotUndoException {
        super.undo();
        if (isDeleteAssoicatorLine) {
            AssoicatorLine line = assoicatorLines[0];
            line.getSource().addAssociator(line.getDest(), line.getAssociateType());
        } else {
            for (int i = 0; i < com.length; i++) {
                ( (Container) desk).add( (Component) com[i]);
            }
            for (int i = 0; i < assoicatorLines.length; i++) {
                AssoicatorLine line = assoicatorLines[i];
                line.getSource().addAssociator(line.getDest(), line.getAssociateType());
            }
        }
        desk.fireAssoicatorChanged();
    }

    public void redo() throws CannotRedoException {
        super.redo();
        if (isDeleteAssoicatorLine) {
            AssoicatorLine line = assoicatorLines[0];
            line.getSource().removeAssociator(line.getDest());
            desk.fireAssoicatorChanged();
        } else {
            desk.clearSelection();
            for (int i = 0; i < com.length; i++) {
                desk.addSelection(com[i]);
            }
            desk.deleteSelection();
        }
    }
}

⌨️ 快捷键说明

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