package bibliothek.notes.view.menu; import java.awt.event.ActionEvent; import bibliothek.notes.model.Note; import bibliothek.notes.model.NoteListener; import bibliothek.notes.view.NoteViewManager; import bibliothek.notes.view.panels.NoteView; /** * A check-box-menu-item representing one {@link Note}. When the item is * selected, then the <code>Note</code> is shown, otherwise the <code>Note</code> * is hidden. NoteItems are managed by the {@link PanelList}. * @author Benjamin Sigg * */ public class NoteItem extends UpdateableCheckBoxMenuItem implements NoteListener{ /** a manager of the graphical representation of the {@link Note}s */ private NoteViewManager manager; /** the <code>Note</code> whose visibility-state is represented by this item */ private Note note; /** * Creates a new item. * @param manager the manager of the {@link NoteView}s * @param note the <code>Note</code> whose visibility-state is represented * by this item */ public NoteItem( NoteViewManager manager, Note note ){ this.manager = manager; this.note = note; note.addListener( this ); titleChanged( note ); iconChanged( note ); } public void actionPerformed( ActionEvent e ){ boolean state = getState(); if( state ) manager.show( note ); else manager.hide( note ); } public void titleChanged( Note note ){ String text = note.getTitle(); if( text == null || text.trim().length() == 0 ) text = " - "; setText( text ); } public void iconChanged( Note note ){ setIcon( note.getIcon() ); } public void colorChanged( Note note ){ // ignore } public void textChanged( Note note ){ // ignore } }