Coverage Report - de.glossmaker.gui.bibtex.model.BookTableModel
 
Classes in this File Line Coverage Branch Coverage Complexity
BookTableModel
30%
35/114
21%
16/76
10,333
 
 1  
 package de.glossmaker.gui.bibtex.model;
 2  
 
 3  
 import org.bushe.swing.event.EventBus;
 4  
 
 5  
 import de.glossmaker.bib.datastructure.BibItems;
 6  
 import de.glossmaker.bib.datastructure.Book;
 7  
 import de.glossmaker.bib.datastructure.EBookType;
 8  
 import de.glossmaker.gui.bibtex.BibItemEvent;
 9  
 import de.glossmaker.gui.bibtex.BibItemEvents;
 10  
 import de.glossmaker.gui.bibtex.EEventCommands;
 11  
 
 12  
 /**
 13  
  * 
 14  
  * @author Markus Flingelli
 15  
  *
 16  
  */
 17  
 public class BookTableModel extends AItemTableModel {
 18  
         private static final long serialVersionUID = -1238840571061618387L;
 19  
 
 20  
         public BookTableModel(BibItems items, Book book) {
 21  5
                 super(items, book);
 22  5
         }
 23  
         
 24  
         @Override
 25  
         public int getOptionalRow() {
 26  1
                 return 8;
 27  
         }
 28  
         
 29  
         @Override
 30  
         public int getRowCount() {
 31  1
                 return 17;
 32  
         }
 33  
         
 34  
         @Override
 35  
         public Object getValueAt(int row, int col) {
 36  14
                 Object result = null;
 37  14
                 if (col == 0) {
 38  0
                         switch(row) {
 39  
                         case 0:
 40  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.required_items.text");
 41  0
                                 break;
 42  
                         case 1:
 43  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.key.text");
 44  0
                                 break;
 45  
                         case 2:
 46  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.author.text");
 47  0
                                 break;
 48  
                         case 3:
 49  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.editor.text");
 50  0
                                 break;
 51  
                         case 4:
 52  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.title.text");
 53  0
                                 break;
 54  
                         case 5:
 55  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.publisher.text");
 56  0
                                 break;
 57  
                         case 6:
 58  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.year.text");
 59  0
                                 break;
 60  
                         case 8:
 61  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.optional_items.text");
 62  0
                                 break;
 63  
                         case 9:
 64  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.volume.text");
 65  0
                                 break;
 66  
                         case 10:
 67  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.number.text");
 68  0
                                 break;
 69  
                         case 11:
 70  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.series.text");
 71  0
                                 break;
 72  
                         case 12:
 73  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.address.text");
 74  0
                                 break;
 75  
                         case 13:
 76  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.edition.text");
 77  0
                                 break;
 78  
                         case 14:
 79  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.month.text");
 80  0
                                 break;
 81  
                         case 15:
 82  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.isbn.text");
 83  0
                                 break;
 84  
                         case 16:
 85  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.note.text");
 86  0
                                 break;
 87  
                         }
 88  
                 } else {
 89  14
                         switch(row) {
 90  
                         case 1:
 91  1
                                 result = getItem().getKey();
 92  1
                                 break;
 93  
                         case 2:
 94  1
                                 result = getItem().getAuthor();
 95  1
                                 break;
 96  
                         case 3:
 97  1
                                 result = getItem().getEditor();
 98  1
                                 break;
 99  
                         case 4:
 100  1
                                 result = getItem().getTitle();
 101  1
                                 break;
 102  
                         case 5:
 103  1
                                 result = getItem().getPublisher();
 104  1
                                 break;
 105  
                         case 6:
 106  1
                                 result = getItem().getYear();
 107  1
                                 break;
 108  
                         case 9:
 109  1
                                 result = getItem().getVolume();
 110  1
                                 break;
 111  
                         case 10:
 112  1
                                 result = getItem().getNumber();
 113  1
                                 break;
 114  
                         case 11:
 115  1
                                 result = getItem().getSeries();
 116  1
                                 break;
 117  
                         case 12:
 118  1
                                 result = getItem().getAddress();
 119  1
                                 break;
 120  
                         case 13:
 121  1
                                 result = getItem().getEdition();
 122  1
                                 break;
 123  
                         case 14:
 124  1
                                 result = getItem().getMonth();
 125  1
                                 break;
 126  
                         case 15:
 127  1
                                 result = getItem().getISBN();
 128  1
                                 break;
 129  
                         case 16:
 130  1
                                 result = getItem().getNote();
 131  
                         }
 132  
                         
 133  
                 }
 134  
                 
 135  14
                 return result;
 136  
         }
 137  
         
 138  
         @Override
 139  
         public boolean isCellEditable(int row, int col) {
 140  0
                 boolean result = false;
 141  0
                 if (col == 1 && ((row > 0 && row < 7) || (row > 8))) {
 142  0
                         result = true;
 143  
                 }
 144  0
                 return result;
 145  
         }
 146  
 
 147  
         @Override
 148  
         public void setValueAt(Object obj, int row, int col) {
 149  0
                 boolean fireUpdate = false;
 150  0
                 Book oldBook = new Book(getItem().getKey(), EBookType.AUTHOR, getItem().getAuthor(), 
 151  
                                 getItem().getTitle(), getItem().getPublisher(), getItem().getYear());
 152  0
                 oldBook.setItemValues(getItem());
 153  0
                 switch(row) {
 154  
                 case 1:
 155  0
                         super.setValueAt(obj, row, col);
 156  0
                         break;
 157  
                 case 2:
 158  0
                         String newAuthor = (String)obj;
 159  0
                         if (newAuthor.length() > 0 ||
 160  
                                         (getItem().getEditor() != null && getItem().getEditor().length() > 0)) {
 161  0
                                 getItem().setAuthor(newAuthor);
 162  0
                                 fireUpdate = true;
 163  
                         } else {
 164  0
                                 getItem().setAuthor(oldBook.getAuthor());
 165  
                         }
 166  0
                         break;
 167  
                 case 3:
 168  0
                         String newEditor = (String)obj;
 169  0
                         if (newEditor.length() > 0 || 
 170  
                                         (getItem().getAuthor() != null && getItem().getAuthor().length() > 0)) {
 171  0
                                 getItem().setEditor(newEditor);
 172  0
                                 fireUpdate = true;
 173  
                         } else {
 174  0
                                 getItem().setEditor(oldBook.getEditor());
 175  
                         }
 176  0
                         break;
 177  
                 case 4:
 178  0
                         fireUpdate = getItem().setTitle((String) obj, true);
 179  0
                         break;
 180  
                 case 5:
 181  0
                         fireUpdate = getItem().setPublisher((String) obj, true);
 182  0
                         break;
 183  
                 case 6:
 184  0
                         fireUpdate = getItem().setYear((String) obj, true);
 185  0
                         break;
 186  
                 case 9:
 187  0
                         fireUpdate = getItem().setVolume((String) obj);
 188  0
                         break;
 189  
                 case 10:
 190  0
                         fireUpdate = getItem().setNumber((String)obj);
 191  0
                         break;
 192  
                 case 11:
 193  0
                         fireUpdate = getItem().setSeries((String)obj);
 194  0
                         break;
 195  
                 case 12:
 196  0
                         fireUpdate = getItem().setAddress((String)obj);
 197  0
                         break;
 198  
                 case 13:
 199  0
                         fireUpdate = getItem().setEdition((String)obj);
 200  0
                         break;
 201  
                 case 14:
 202  0
                         fireUpdate = getItem().setMonth((String)obj);
 203  0
                         break;
 204  
                 case 15:
 205  0
                         fireUpdate = getItem().setISBN((String)obj);
 206  0
                         break;
 207  
                 case 16:
 208  0
                         fireUpdate = getItem().setNote((String) obj, false);                        
 209  
                 }
 210  
                 
 211  0
                 if (fireUpdate == true) {
 212  0
                         EventBus.publish(EEventCommands.CHANGE.toString(), 
 213  
                                         new BibItemEvents(EEventCommands.CHANGE.toString(),
 214  
                                                         new BibItemEvent(
 215  
                                                         EEventCommands.CHANGE.toString(),
 216  
                                                         oldBook, getItem())));
 217  
                 }
 218  0
         }        
 219  
 }