View Javadoc

1   /**********************************************
2    * Copyright (C) 2009 Lukas Laag
3    * This file is part of Vectomatic.
4    * 
5    * Vectomatic is free software: you can redistribute it and/or modify
6    * it under the terms of the GNU General Public License as published by
7    * the Free Software Foundation, either version 3 of the License, or
8    * (at your option) any later version.
9    * 
10   * Vectomatic is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   * GNU General Public License for more details.
14   * 
15   * You should have received a copy of the GNU General Public License
16   * along with Vectomatic.  If not, see http://www.gnu.org/licenses/
17   **********************************************/
18  package org.vectomatic.client.rep.controller;
19  
20  import org.vectomatic.client.rep.RepApplication;
21  import org.vectomatic.client.rep.command.CommandHistory;
22  import org.vectomatic.client.rep.events.ICommandHistoryListener;
23  import org.vectomatic.client.rep.view.DrawingView;
24  
25  /**
26   * Controller to undo the latest command
27   */
28  public class UndoController extends ControllerBase implements ICommandHistoryListener {
29  	private ControllerPushButton _undoButton;
30  	private ControllerMenuItem _undoMenuItem;
31  	public UndoController(RepApplication app) {
32  		super(app);
33  		_app.getHistory().addCommandHistoryListener(this);
34  		_undoButton = new ControllerPushButton(_app.getView(), _app.getIcons().undoIcon().createImage(), _app.getIcons().undoDisabledIcon().createImage(), _app.getConstants().undoCommand(), this);
35  		_undoMenuItem = new ControllerMenuItem(_app.getView(), _app.getConstants().undoCommand(), this);
36  		commandHistoryChange(_app.getHistory());
37  	}
38  	@Override
39  	public void activate(DrawingView view) {
40  		_app.getHistory().undo();
41  	}
42  	
43  	public void commandHistoryChange(CommandHistory commandHistory) {
44  		boolean canUndo = _app.getHistory().canUndo();
45  		_undoButton.setEnabled(canUndo);
46  		_undoMenuItem.setEnabled(canUndo);
47  		String text = _app.getConstants().undoCommand();
48  		if (canUndo) {
49  			text += " " + _app.getHistory().getUndoCommand().getDescription();
50  			_undoMenuItem.setText(text);
51  		} else {
52  			_undoMenuItem.setText(text);
53  		}
54  	}
55  	public ControllerPushButton getUndoButton() {
56  		return _undoButton;
57  	}
58  	public ControllerMenuItem getUndoMenuItem() {
59  		return _undoMenuItem;
60  	}
61  }