📄 deleteundoableedit.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 + -