Coverage Report - de.glossmaker.gui.bibtex.bars.BibTexItemsToolBar
 
Classes in this File Line Coverage Branch Coverage Complexity
BibTexItemsToolBar
0%
0/127
0%
0/10
1,429
BibTexItemsToolBar$1
0%
0/3
N/A
1,429
BibTexItemsToolBar$2
0%
0/3
N/A
1,429
BibTexItemsToolBar$3
0%
0/3
N/A
1,429
 
 1  
 package de.glossmaker.gui.bibtex.bars;
 2  
 
 3  
 import java.awt.event.ActionListener;
 4  
 import java.awt.event.MouseAdapter;
 5  
 import java.awt.event.MouseEvent;
 6  
 
 7  
 import javax.swing.ImageIcon;
 8  
 import javax.swing.JButton;
 9  
 import javax.swing.JMenuItem;
 10  
 import javax.swing.JPopupMenu;
 11  
 import javax.swing.JToolBar;
 12  
 
 13  
 import org.bushe.swing.event.EventBus;
 14  
 import org.bushe.swing.event.EventTopicSubscriber;
 15  
 
 16  
 import de.glossmaker.bib.datastructure.EBibTeXReference;
 17  
 import de.glossmaker.bib.undo.UndoBibStack;
 18  
 import de.glossmaker.gloss.language.Translation;
 19  
 import de.glossmaker.gui.bibtex.BibItemEvents;
 20  
 import de.glossmaker.gui.bibtex.EEventCommands;
 21  
 import de.glossmaker.gui.bibtex.EFileOperations;
 22  
 import de.glossmaker.gui.bibtex.EUserInteration;
 23  
 import de.glossmaker.gui.gloss.bars.HelpItemChangeListener;
 24  
 import de.glossmaker.gui.gloss.help.HelpSystem;
 25  
 import de.glossmaker.undo.EUndoCommands;
 26  
 
 27  
 /**
 28  
  * 
 29  
  * @author Markus Flingelli
 30  
  *
 31  
  */
 32  0
 public class BibTexItemsToolBar extends JToolBar implements EventTopicSubscriber<BibItemEvents> {
 33  
         private static final long serialVersionUID = -6934078123670740933L;
 34  
         
 35  0
         private JButton mNew = null;
 36  0
         private JButton mOpen = null;
 37  0
         private JButton mSave = null;
 38  0
         private JPopupMenu mSavePopUp = null;
 39  0
         private JButton mAdd = null;
 40  0
         private JPopupMenu mAddPopUp =  null;
 41  0
         private JButton mRemove = null;
 42  0
         private JPopupMenu mRemovePopUp = null;
 43  0
         private JButton mUndo = null;
 44  0
         private JButton mRedo = null;
 45  0
         private JButton mHelp = null;
 46  0
         private JButton mClose = null;
 47  0
         private Translation mTranslation = null;
 48  0
         private ActionListener mActionListener = null;
 49  
         
 50  0
         private JMenuItem mSaveFile = null;
 51  0
         private JMenuItem mSaveAsFile = null;
 52  
         private JMenuItem mRemoveSelected;
 53  
         private JMenuItem mRemoveAll;
 54  
         
 55  0
         public BibTexItemsToolBar(ActionListener actionListener) {
 56  0
                 mActionListener = actionListener;
 57  0
                 for(EEventCommands event : EEventCommands.values()) {
 58  0
                         EventBus.subscribe(event.toString(), this);
 59  
                 }
 60  0
                 for (EUndoCommands event : EUndoCommands.values()) {
 61  0
                         EventBus.subscribe(event.toString(), this);
 62  
                 }
 63  0
                 mTranslation = Translation.getInstance();
 64  0
                 initialize();
 65  0
         }
 66  
         
 67  
         private void initialize() {
 68  0
                 mNew = new JButton(new ImageIcon(BibTexItemsToolBar.class.getResource("/icons/new.png")));
 69  0
                 mNew.setActionCommand(EFileOperations.FILE_NEW.toString());
 70  0
                 mNew.addActionListener(mActionListener);
 71  0
                 mNew.addChangeListener(new HelpItemChangeListener("section.bibeditor.new"));
 72  0
                 this.add(mNew);
 73  
                 
 74  0
                 mOpen = new JButton(new ImageIcon(BibTexItemsToolBar.class.getResource("/icons/open.png")));
 75  0
                 mOpen.setActionCommand(EFileOperations.FILE_OPEN.toString());
 76  0
                 mOpen.addActionListener(mActionListener);
 77  0
                 mOpen.addChangeListener(new HelpItemChangeListener("section.bibeditor.open"));
 78  0
                 this.add(mOpen);
 79  
                 
 80  0
                 mSavePopUp = new JPopupMenu();
 81  0
                 mSaveFile = new JMenuItem();
 82  0
                 mSaveFile.setActionCommand(EFileOperations.FILE_SAVE.toString());
 83  0
                 mSaveFile.addActionListener(mActionListener);
 84  0
                 mSaveFile.addChangeListener(new HelpItemChangeListener("section.bibeditor.save"));
 85  0
                 mSavePopUp.add(mSaveFile);
 86  0
                 mSaveAsFile = new JMenuItem();
 87  0
                 mSaveAsFile.setActionCommand(EFileOperations.FILE_SAVE_AS.toString());
 88  0
                 mSaveAsFile.addActionListener(mActionListener);
 89  0
                 mSaveAsFile.addChangeListener(new HelpItemChangeListener("section.bibeditor.save"));
 90  0
                 mSavePopUp.add(mSaveAsFile);
 91  
                 
 92  0
                 mSave = new JButton(new ImageIcon(BibTexItemsToolBar.class.getResource("/icons/save.png")));
 93  0
                 mSave.addMouseListener(new MouseAdapter() {
 94  
             public void mousePressed(MouseEvent e) {
 95  0
                     mSavePopUp.show(e.getComponent(), e.getX(), e.getY());
 96  0
             }
 97  
         });
 98  0
                 mSave.addChangeListener(new HelpItemChangeListener("section.bibeditor.save"));
 99  0
                 this.add(mSave);
 100  
                 
 101  0
                 this.add(new Separator());
 102  0
                 mAddPopUp = new JPopupMenu();
 103  0
                 for(EBibTeXReference reference : EBibTeXReference.values()) {
 104  0
                         JMenuItem menuItem = new JMenuItem(reference.toString().toLowerCase());
 105  0
                         menuItem.setActionCommand(reference.toString());
 106  0
                         menuItem.addActionListener(mActionListener);
 107  0
                         menuItem.addChangeListener(new HelpItemChangeListener("section.bibeditor.add."
 108  
                                         + reference.toString().toLowerCase()));
 109  0
                         mAddPopUp.add(menuItem);
 110  
                 }
 111  
                 
 112  0
                 mAdd = new JButton(new ImageIcon(BibTexItemsToolBar.class.getResource("/icons/add.png")));        
 113  0
                 mAdd.addMouseListener(new MouseAdapter() {
 114  
             public void mousePressed(MouseEvent e) {
 115  0
                 mAddPopUp.show(e.getComponent(), e.getX(), e.getY());
 116  0
             }
 117  
         });
 118  0
                 mAdd.setActionCommand(EEventCommands.ADD.toString());
 119  0
                 mAdd.addActionListener(mActionListener);
 120  0
                 mAdd.addChangeListener(new HelpItemChangeListener("section.bibeditor.add"));
 121  0
                 this.add(mAdd);
 122  
                 
 123  0
                 mRemovePopUp = new JPopupMenu();
 124  0
                 mRemoveSelected = new JMenuItem();        
 125  0
                 mRemoveSelected.setActionCommand(EEventCommands.REMOVE_SELECTED.toString());
 126  0
                 mRemoveSelected.addActionListener(mActionListener);
 127  0
                 mRemoveSelected.addChangeListener(new HelpItemChangeListener("section.bibeditor.remove"));
 128  0
                 mRemovePopUp.add(mRemoveSelected);
 129  
                 
 130  0
                 mRemoveAll = new JMenuItem();                
 131  0
                 mRemoveAll.setActionCommand(EEventCommands.REMOVE_ALL.toString());
 132  0
                 mRemoveAll.addActionListener(mActionListener);
 133  0
                 mRemoveAll.addChangeListener(new HelpItemChangeListener("section.bibeditor.remove"));
 134  0
                 mRemovePopUp.add(mRemoveAll);
 135  
                 
 136  0
                 mRemove  = new JButton(new ImageIcon(BibTexItemsToolBar.class.getResource("/icons/remove.png")));        
 137  0
                 mRemove.addMouseListener(new MouseAdapter() {
 138  
                         public void mousePressed(MouseEvent e) {
 139  0
                 mRemovePopUp.show(e.getComponent(), e.getX(), e.getY());
 140  0
             }
 141  
                 });
 142  0
                 mRemove.addChangeListener(new HelpItemChangeListener("section.bibeditor.remove"));
 143  0
                 this.add(mRemove);
 144  
                 
 145  0
                 this.add(new Separator());
 146  
                 
 147  0
                 mUndo = new JButton(new ImageIcon(BibTexItemsToolBar.class.getResource("/icons/undo.png")));        
 148  0
                 mUndo.setActionCommand(EUndoCommands.UNDO.toString());
 149  0
                 mUndo.addActionListener(mActionListener);
 150  0
                 mUndo.setEnabled(false);
 151  0
                 mUndo.addChangeListener(new HelpItemChangeListener("section.bibeditor.undo"));
 152  0
                 this.add(mUndo);
 153  
                 
 154  0
                 mRedo = new JButton(new ImageIcon(BibTexItemsToolBar.class.getResource("/icons/redo.png")));
 155  0
                 mRedo.setActionCommand(EUndoCommands.REDO.toString());
 156  0
                 mRedo.addActionListener(mActionListener);
 157  0
                 mRedo.setEnabled(false);
 158  0
                 mRedo.addChangeListener(new HelpItemChangeListener("section.bibeditor.redo"));
 159  0
                 this.add(mRedo);
 160  
                 
 161  0
                 this.add(new Separator());
 162  
                 
 163  0
                 mHelp  = new JButton(new ImageIcon(BibTexItemsToolBar.class.getResource("/icons/help.png")));                
 164  0
                 HelpSystem.getInstance().enableHelpOnButton(mHelp, "section.bibeditor", null);
 165  0
                 mHelp.addChangeListener(new HelpItemChangeListener("section.bibeditor"));
 166  0
                 this.add(mHelp);
 167  
                 
 168  0
                 this.add(new Separator());
 169  
                 
 170  0
                 mClose = new JButton(new ImageIcon(BibTexItemsToolBar.class.getResource("/icons/close.png")));
 171  0
                 mClose.setActionCommand(EUserInteration.CLOSE_WINDOW.toString());
 172  0
                 mClose.addActionListener(mActionListener);
 173  0
                 mClose.addChangeListener(new HelpItemChangeListener("section.bibeditor.close"));
 174  0
                 this.add(mClose);
 175  
                 
 176  0
                 changeLanguage();
 177  0
         }
 178  
         
 179  
         private void changeLanguage() {
 180  0
                 mNew.setToolTipText(mTranslation.getValue("bibtex.toolbar.new.tooltip"));        
 181  0
                 mOpen.setToolTipText(mTranslation.getValue("bibtex.toolbar.open.tooltip"));        
 182  0
                 mSave.setToolTipText(mTranslation.getValue("bibtex.toolbar.save.tooltip"));        
 183  0
                 mSaveFile.setText(mTranslation.getValue("bibtex.toolbar.save.popup.text"));
 184  0
                 mSaveFile.setToolTipText(mTranslation.getValue("bibtex.toolbar.save.popup.tooltip"));
 185  0
                 mSaveAsFile.setText(mTranslation.getValue("bibtex.toolbar.save_as.popup.text"));
 186  0
                 mSaveAsFile.setToolTipText(mTranslation.getValue("bibtex.toolbar.save_as.popup.tooltip"));
 187  0
                 mAdd.setToolTipText(mTranslation.getValue("bibtex.toolbar.add.tooltip"));                
 188  0
                 mRemove.setToolTipText(mTranslation.getValue("bibtex.toolbar.remove.tooltip"));
 189  0
                 mRemoveSelected.setText(mTranslation.getValue("bibtex.toolbar.remove.selected.text"));
 190  0
                 mRemoveSelected.setToolTipText(mTranslation.getValue("bibtex.toolbar.remove.selected.tooltip"));
 191  0
                 mRemoveAll.setText(mTranslation.getValue("bibtex.toolbar.remove.all.text"));
 192  0
                 mRemoveAll.setToolTipText(mTranslation.getValue("bibtex.toolbar.remove.all.tooltip"));
 193  0
                 mUndo.setToolTipText(mTranslation.getValue("bibtex.toolbar.undo.tooltip"));
 194  0
                 mRedo.setToolTipText(mTranslation.getValue("bibtex.toolbar.redo.tooltip"));
 195  0
                 mHelp.setToolTipText(mTranslation.getValue("bibtex.toolbar.help.tooltip"));
 196  0
                 mClose.setToolTipText(mTranslation.getValue("bibtex.toolbar.close.tooltip"));
 197  0
         }
 198  
 
 199  
         @Override
 200  
         public void onEvent(String command, BibItemEvents events) {
 201  0
                 mRedo.setEnabled(UndoBibStack.getInstance().redoSize() > 0);
 202  0
                 mUndo.setEnabled(UndoBibStack.getInstance().undoSize() > 0);
 203  0
         }
 204  
 }