[导入]GEF理解系列六(2)
网站: JavaEye 作者: liugang594 链接:http://liugang594.javaeye.com/blog/152094 发表时间: 2007年12月31日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
public class DeleteHelloWorldCommand extends Command {
private DiagramRootContent content;
private HelloWorldModel model;
private List<AbstractConnectionModel> inputs = new ArrayList<AbstractConnectionModel>();
private List<AbstractConnectionModel> outs = new ArrayList<AbstractConnectionModel>();
public DeleteHelloWorldCommand(DiagramRootContent content,
HelloWorldModel model) {
super();
this.content = content;
this.model = model;
inputs.addAll(model.getInputs());
outs.addAll(model.getOutputs());
}
@Override
public void execute() {
for (AbstractConnectionModel connection : inputs) {
connection.deattachSource();
connection.deattachTarget();
}
for (AbstractConnectionModel connection : outs) {
connection.deattachSource();
connection.deattachTarget();
}
content.removeChild(model);
}
@Override
public void undo() {
for (AbstractConnectionModel connection : inputs) {
connection.attachSource();
connection.attachTarget();
}
for (AbstractConnectionModel connection : outs) {
connection.attachSource();
connection.attachTarget();
}
content.addChild(model);
}
}
installEditPolicy(EditPolicy.CONNECTION_ROLE, new DeleteConnectionEditPolicy());
public class DeleteConnectionCommand extends Command {
private AbstractConnectionModel connection;
public DeleteConnectionCommand(AbstractConnectionModel connection) {
super();
this.connection = connection;
}
@Override
public void execute() {
connection.deattachSource();
connection.deattachTarget();
}
@Override
public void undo() {
connection.attachSource();
connection.attachTarget();
}
}
public class DeleteConnectionEditPolicy extends ConnectionEditPolicy {
@Override
protected Command getDeleteCommand(GroupRequest request) {
DeleteConnectionCommand command = new DeleteConnectionCommand((AbstractConnectionModel) getHost()
.getModel());
return command;
}
}
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
文章来源:http://liugang594.javaeye.com/blog/152094
浙公网安备 33010602011771号