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

📄 undoableeditimpl.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
/* * Created on 14.03.2005 */package net.sourceforge.ganttproject.undo;import java.io.File;import java.io.IOException;import javax.swing.undo.AbstractUndoableEdit;import javax.swing.undo.CannotRedoException;import javax.swing.undo.CannotUndoException;import net.sourceforge.ganttproject.document.Document;import net.sourceforge.ganttproject.io.GPSaver;/** * @author bard */class UndoableEditImpl extends AbstractUndoableEdit {    private String myPresentationName;    private Runnable myEditImpl;    private Document myDocumentBefore;    private Document myDocumentAfter;    private UndoManagerImpl myManager;    UndoableEditImpl(String localizedName, Runnable editImpl,            UndoManagerImpl manager) throws IOException {        // System.out.println ("UndoableEditImpl : " + localizedName);        myManager = manager;        myPresentationName = localizedName;        myEditImpl = editImpl;        myDocumentBefore = saveFile();        editImpl.run();        myDocumentAfter = saveFile();    }    private Document saveFile() throws IOException {        File tempFile = createTemporaryFile();        tempFile.deleteOnExit();        Document doc = myManager.getDocumentManager().getDocument(                tempFile.getAbsolutePath());        doc.write();        //GPSaver saver = myManager.getParserFactory().newSaver();        //saver.save(doc.getOutputStream());        return doc;    }    public boolean canUndo() {        return myDocumentBefore.canRead();    }    public boolean canRedo() {        return myDocumentAfter.canRead();    }    public void redo() throws CannotRedoException {        try {            restoreDocument(myDocumentAfter);        } catch (IOException e) {            e.printStackTrace();            throw new CannotRedoException();        }    }    public void undo() throws CannotUndoException {        try {            restoreDocument(myDocumentBefore);        } catch (IOException e) {            e.printStackTrace();            throw new CannotRedoException();        }    }    private void restoreDocument(Document document) throws IOException {        Document projectDocument = myManager.getProject().getDocument(); 		myManager.getProject().close();        document.read();        myManager.getProject().setDocument(projectDocument);            }    public String getPresentationName() {        return myPresentationName;    }    File createTemporaryFile() throws IOException {        return File.createTempFile("_GanttProject_qSave", ".gan");    }}

⌨️ 快捷键说明

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