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

📄 undomanagerimpl.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
/* * Created on 12.03.2005 */package net.sourceforge.ganttproject.undo;import java.io.IOException;import javax.swing.event.UndoableEditListener;import javax.swing.undo.CannotRedoException;import javax.swing.undo.CannotUndoException;import javax.swing.undo.UndoManager;import javax.swing.undo.UndoableEditSupport;import net.sourceforge.ganttproject.IGanttProject;import net.sourceforge.ganttproject.document.DocumentManager;import net.sourceforge.ganttproject.parser.ParserFactory;/** * @author bard */public class UndoManagerImpl implements GPUndoManager {    private UndoableEditSupport myUndoEventDispatcher;    private UndoManager mySwingUndoManager;    private DocumentManager myDocumentManager;    private ParserFactory myParserFactory;    private IGanttProject myProject;    private UndoableEditImpl swingEditImpl;    public UndoManagerImpl(IGanttProject project, ParserFactory parserFactory,            DocumentManager documentManager) {        myProject = project;        myParserFactory = parserFactory;        myDocumentManager = documentManager;        mySwingUndoManager = new UndoManager();        myUndoEventDispatcher = new UndoableEditSupport();    }    public void undoableEdit(String localizedName, Runnable editImpl) {        try {            swingEditImpl = new UndoableEditImpl(localizedName, editImpl, this);            mySwingUndoManager.addEdit(swingEditImpl);            fireUndoableEditHappened(swingEditImpl);        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    private void fireUndoableEditHappened(UndoableEditImpl swingEditImpl) {        myUndoEventDispatcher.postEdit(swingEditImpl);    }    private void fireUndoOrRedoHappened() {        UndoableEditListener[] listeners = myUndoEventDispatcher                .getUndoableEditListeners();        for (int i = 0; i < listeners.length; i++) {            ((GPUndoListener) listeners[i]).undoOrRedoHappened();        }    }    DocumentManager getDocumentManager() {        return myDocumentManager;    }    protected ParserFactory getParserFactory() {        return myParserFactory;    }    IGanttProject getProject() {        return myProject;    }    public boolean canUndo() {        return mySwingUndoManager.canUndo();    }    public boolean canRedo() {        return mySwingUndoManager.canRedo();    }    public void undo() throws CannotUndoException {        mySwingUndoManager.undo();        fireUndoOrRedoHappened();    }    public void redo() throws CannotRedoException {        mySwingUndoManager.redo();        fireUndoOrRedoHappened();    }    public String getUndoPresentationName() {        return mySwingUndoManager.getUndoPresentationName();    }    public String getRedoPresentationName() {        return mySwingUndoManager.getRedoPresentationName();    }    public void addUndoableEditListener(GPUndoListener listener) {        myUndoEventDispatcher.addUndoableEditListener(listener);    }    public void removeUndoableEditListener(GPUndoListener listener) {        myUndoEventDispatcher.removeUndoableEditListener(listener);    }    public void die() {        if (swingEditImpl != null)            swingEditImpl.die();        if (mySwingUndoManager != null)            mySwingUndoManager.discardAllEdits();    }}

⌨️ 快捷键说明

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