package bibliothek.notes.view.actions; import bibliothek.extension.gui.dock.theme.eclipse.EclipseTabDockAction; import bibliothek.gui.Dockable; import bibliothek.gui.dock.action.ActionGuard; import bibliothek.gui.dock.action.DefaultDockActionSource; import bibliothek.gui.dock.action.DockActionSource; import bibliothek.gui.dock.action.LocationHint; import bibliothek.notes.model.Note; import bibliothek.notes.model.NoteModel; import bibliothek.notes.util.ResourceSet; import bibliothek.notes.view.panels.NoteView; /** * An action used to delete {@link Note}s. This action is shown above * a {@link NoteView}. * @author Benjamin Sigg */ @EclipseTabDockAction public class NoteDeleteAction extends Delete implements ActionGuard{ /** the result of {@link #getSource(Dockable)} */ private DockActionSource source; /** * Creates an new action * @param model the model from which a {@link Note} will be removed */ public NoteDeleteAction( NoteModel model ){ super( model ); source = new DefaultDockActionSource( new LocationHint( LocationHint.ACTION_GUARD, LocationHint.RIGHT ), this ); setIcon( ResourceSet.APPLICATION_ICONS.get( "delete" ) ); } @Override public void action( Dockable dockable ){ super.action( dockable ); Note note = ((NoteView)dockable).getNote(); delete( note, dockable ); } public DockActionSource getSource( Dockable dockable ){ return source; } public boolean react( Dockable dockable ){ return dockable instanceof NoteView; } }