package gsingh.learnkirtan.ui; import static gsingh.learnkirtan.Main.BASETITLE; import gsingh.learnkirtan.listener.FileEventListener; import javax.swing.JFrame; /** * Responsible for managing the title of the window * * @author Gulshan * */ public class WindowTitleManager implements FileEventListener { private JFrame frame; public WindowTitleManager(JFrame frame) { this.frame = frame; } /** Sets the title for when an untitled document is open */ public void setDocumentCreatedTitle() { setBaseTitle("Untitled Shabad"); } /** Sets the title for when a file is saved */ public void setDocumentSavedTitle(String filename) { setOpenedTitle(filename); // removeAsterisk(); } /** Sets the title for when a file is opened */ public void setOpenedTitle(String filename) { setBaseTitle(filename); } /** Sets the title for when a file is unmodified */ public void setDocumentUnmodifiedTitle() { removeAsterisk(); } /** Sets the title for when a file is modified */ public void setDocumentModifiedTitle() { setAsterisk(); } private void setBaseTitle(String filename) { frame.setTitle(BASETITLE + filename); } private void removeAsterisk() { String title = frame.getTitle(); if (title.contains("*")) { frame.setTitle(title.substring(0, title.length() - 1)); } } private void setAsterisk() { String title = frame.getTitle(); if (!title.contains("*")) frame.setTitle(title + "*"); } @Override public void onFileEvent(FileEvent e) { if (e == FileEvent.SAVE) { setDocumentSavedTitle(e.getFileName()); } else if (e == FileEvent.CREATE) { setDocumentCreatedTitle(); } else { setOpenedTitle(e.getFileName()); } } }