All Downloads are FREE. Search and download functionalities are using the official Maven repository.

bibliothek.notes.view.actions.CopyAction Maven / Gradle / Ivy

package bibliothek.notes.view.actions;

import bibliothek.gui.Dockable;
import bibliothek.gui.dock.action.actions.SimpleButtonAction;
import bibliothek.notes.model.Note;
import bibliothek.notes.model.NoteModel;
import bibliothek.notes.util.ResourceSet;
import bibliothek.notes.view.NoteViewManager;

/**
 * An action that is owned by a {@link Note}. The owner will be copied
 * when this action is triggered. The copy will then be shown at the same
 * location where the owner is or was.
 * @author Benjamin Sigg
 *
 */
public class CopyAction extends SimpleButtonAction {
    /** a manager for the graphical representation of Notes */
	private NoteViewManager manager;
	/** a model needed to create new instances of {@link Note} */
	private NoteModel model;
	/** the Note which will be copied by this action */
	private Note note;
	
	/**
	 * Creates a new action.
	 * @param manager the manager of the graphical representation of all Notes
	 * @param model the set of known Notes
	 * @param note the owner of this action. This Note will be copied when
	 * the action is triggered.
	 */
	public CopyAction( NoteViewManager manager, NoteModel model, Note note ){
		this.manager = manager;
		this.model = model;
		this.note = note;
		
		setText( "Copy" );
		setIcon( ResourceSet.APPLICATION_ICONS.get( "copy" ) );
	}

	@Override
	public void action( Dockable dockable ){
		super.action( dockable );
		
		Note copy = model.addNote();
		
		copy.setColor( note.getColor() );
		copy.setIcon( note.getIcon() );
		copy.setText( note.getText() );
		copy.setTitle( note.getTitle() );
		
		manager.show( copy, dockable );
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy