Code Search for Developers
 
 
  

MagellanUndoManager.java from Magellan-Client at Krugle


Show MagellanUndoManager.java syntax highlighted

/*
 *  Copyright (C) 2000-2004 Roger Butenuth, Andreas Gampe,
 *                          Stefan Goetz, Sebastian Pappert,
 *                          Klaas Prause, Enno Rehling,
 *                          Sebastian Tusk, Ulrich Kuester,
 *                          Ilja Pavkovic
 *
 * This file is part of the Eressea Java Code Base, see the
 * file LICENSING for the licensing information applying to
 * this file.
 *
 */

package com.eressea.demo;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;

import javax.swing.undo.CannotRedoException;
import javax.swing.undo.CannotUndoException;
import javax.swing.undo.UndoManager;
import javax.swing.undo.UndoableEdit;

import com.eressea.util.logging.Logger;

/**
 * TODO: undo/redo seems broken
 *
 * @author Andreas
 */
public class MagellanUndoManager extends UndoManager {
	private static final Logger log = Logger.getInstance(MagellanUndoManager.class);

	/** TODO: DOCUMENT ME! */
	public static final String UNDO = "Undo_Changed";

	/** TODO: DOCUMENT ME! */
	public static final String REDO = "Redo_Changed";

	// this is basicall needed to attach RedoAction and UndoAction to this UndoManager
	private PropertyChangeSupport list;

	/**
	 * Creates new MagellanUndoManager
	 */
	public MagellanUndoManager() {
		list = new PropertyChangeSupport(this);
	}

	/**
	 * TODO: DOCUMENT ME!
	 *
	 * @param l TODO: DOCUMENT ME!
	 */
	public void addPropertyChangeListener(PropertyChangeListener l) {
		list.addPropertyChangeListener(l);
	}

	/**
	 * TODO: DOCUMENT ME!
	 *
	 * @param property TODO: DOCUMENT ME!
	 * @param l TODO: DOCUMENT ME!
	 */
	public void addPropertyChangeListener(String property, PropertyChangeListener l) {
		list.addPropertyChangeListener(property, l);
	}

	/**
	 * TODO: DOCUMENT ME!
	 *
	 * @param l TODO: DOCUMENT ME!
	 */
	public void removePropertyChangeListener(PropertyChangeListener l) {
		list.removePropertyChangeListener(l);
	}

	/**
	 * TODO: DOCUMENT ME!
	 *
	 * @param property TODO: DOCUMENT ME!
	 * @param l TODO: DOCUMENT ME!
	 */
	public void removePropertyChangeListener(String property, PropertyChangeListener l) {
		list.removePropertyChangeListener(property, l);
	}

	/*
	 This methods must be changed to throw the events.
	 */
	public synchronized void undo() {
		// TODO: implement undo history?
		// String oldUndo=getUndoPresentationName(),oldRedo=getRedoPresentationName();
		try {
			super.undo();
			list.firePropertyChange(REDO, false, canRedo());
			list.firePropertyChange(UNDO, false, canUndo());
		} catch(CannotUndoException e) {
			log.info("MagellanUndoManager.undo: cannot undo");
			log.debug("", e);
		}
	}

	/**
	 * TODO: DOCUMENT ME!
	 */
	public synchronized void redo() {
		try {
			// TODO: implement redo history?
			// String oldUndo=getUndoPresentationName(),oldRedo=getRedoPresentationName();
			super.redo();
			list.firePropertyChange(REDO, false, canRedo());
			list.firePropertyChange(UNDO, false, canUndo());
		} catch(CannotRedoException e) {
			log.info("MagellanUndoManager.redo: cannot redo");
			log.debug("", e);
		}
	}

	/**
	 * TODO: DOCUMENT ME!
	 *
	 * @param e TODO: DOCUMENT ME!
	 *
	 * @return TODO: DOCUMENT ME!
	 */
	public synchronized boolean addEdit(UndoableEdit e) {
	    // FIXME stm 10.08.07 This class is broken, so we deactivate it for the time being
	    if (true) return false;

	    // TODO: implement undo/redo history?
		// String oldUndo=getUndoPresentationName(),oldRedo=getRedoPresentationName();
		boolean b = super.addEdit(e);

		if(b) {
			list.firePropertyChange(UNDO, false, canUndo());
			list.firePropertyChange(REDO, false, canRedo());
		}

		return b;
	}
}




See more files for this project here

Magellan-Client

The Magellan Client is basicly a GUI for the pbem game eressea but can be used for other pbems based on \"atlantis\" too.

Project homepage: http://sourceforge.net/projects/magellan-client
Programming language(s): Java
License: other

  actions/
    AbortAction.java
    AddCRAction.java
    AddSelectionAction.java
    ArmyStatsAction.java
    ChangeFactionConfirmationAction.java
    ConfirmAction.java
    ECheckAction.java
    EresseaOptionsAction.java
    ExpandSelectionAction.java
    ExportCRAction.java
    ExternalModuleAction.java
    FactionStatsAction.java
    FileHistoryAction.java
    FileSaveAction.java
    FileSaveAsAction.java
    FillSelectionAction.java
    FindAction.java
    FindPreviousUnconfirmedAction.java
    HelpAction.java
    InfoAction.java
    InvertSelectionAction.java
    IslandAction.java
    MapSaveAction.java
    MenuAction.java
    OpenCRAction.java
    OpenOrdersAction.java
    OpenSelectionAction.java
    OptionAction.java
    QuitAction.java
    RedoAction.java
    RepaintAction.java
    SaveOrdersAction.java
    SaveSelectionAction.java
    SelectAllAction.java
    SelectIslandsAction.java
    SelectNothingAction.java
    SetOriginAction.java
    TaskTableAction.java
    TileSetAction.java
    TipOfTheDayAction.java
    TradeOrganizerAction.java
    UnconfirmAction.java
    UndoAction.java
    VorlageAction.java
  desktop/
    DesktopEnvironment.java
    ExtendedShortcutListener.java
    FrameRectangle.java
    FrameTreeBuilder.java
    FrameTreeNode.java
    Initializable.java
    MagellanDesktop.java
    ShortcutListener.java
    SplitBuilder.java
  Client.java
  ClientPreferences.java
  EMapDetailsPanel.java
  EMapOverviewPanel.java
  FindDialog.java
  MagellanUndoManager.java
  SetOriginDialog.java