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

org.ferris.journal.gui.view.combobox.KJournalComboBoxModel Maven / Gradle / Ivy

package org.ferris.journal.gui.view.combobox;

import java.util.List;

import javax.swing.DefaultComboBoxModel;

import org.apache.log4j.Logger;
import org.ferris.journal.gui.model.JournalObserver;
import org.ferris.journal.gui.model.Model;
import org.ferris.journal.jws.journal.Journal;

public class KJournalComboBoxModel 
extends DefaultComboBoxModel 
implements JournalObserver 
{
	private List getJournals() {
		return this.model.getActiveJournals();
	}
	
	private void journalChanged(Journal journal) {
		if (!journal.getIsActive()) {
			log.info("Changed journal is NOT active");
		} else {
			log.info("Changed journal IS active");
			int newSelectedIndex =
				getJournals().indexOf(journal);
			
			fireContentsChanged(this, newSelectedIndex, newSelectedIndex);
		}
	}
	
	
	
	private static final long serialVersionUID = -5067783059004831441L;
	private Logger log = Logger.getLogger(getClass());	
	private Model model;
	
	
	
	public KJournalComboBoxModel(Model model) {
		this.model = model;
	}

	public Object getElementAt(int index) {
		return getJournalAt(index);
	}
	
	public Journal getJournalAt(int index) {
		return getJournals().get(index);
	}

	public int getSize() {
		return getJournals().size();
	}

	
	/////////////////////////////////////////////////////////////////
	//
	// JOURNAL OBSERVER
	//
	/////////////////////////////////////////////////////////////////
	public void deletedJournal(Journal deletedJournal) {
		log.info("ENTER: deletedJournal()");
		fireContentsChanged(this, 0, getJournals().size());
		log.info("EXIT: deletedJournal()");
	}

	public void editJournal(Journal editMe) {
		log.info("ENTER: editJournal()");
		log.info("EXIT: editJournal()");
	}

	public void insertedJournal(Journal newJournal)  {
		log.info("ENTER: insertedJournal()");
		journalChanged(newJournal); 
		log.info("EXIT: insertedJournal()");
	}

	public void newJournal() {
		log.info("ENTER: newJournal()");
		log.info("EXIT: newJournal()");
	}

	public void updatedJournal(Journal updatedJournal) {
		log.info("ENTER: updatedJournal()");
		journalChanged(updatedJournal);
		log.info("EXIT: updatedJournal()");
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy