Coverage Report - de.glossmaker.gui.bibtex.model.ArticleTableModel
 
Classes in this File Line Coverage Branch Coverage Complexity
ArticleTableModel
38%
32/83
32%
17/52
6,429
 
 1  
 package de.glossmaker.gui.bibtex.model;
 2  
 
 3  
 
 4  
 import org.bushe.swing.event.EventBus;
 5  
 
 6  
 import de.glossmaker.bib.datastructure.Article;
 7  
 import de.glossmaker.bib.datastructure.BibItems;
 8  
 import de.glossmaker.gloss.language.Translation;
 9  
 import de.glossmaker.gui.bibtex.BibItemEvent;
 10  
 import de.glossmaker.gui.bibtex.BibItemEvents;
 11  
 import de.glossmaker.gui.bibtex.EEventCommands;
 12  
 import de.glossmaker.gui.bibtex.EUserInteration;
 13  
 
 14  
 /**
 15  
  * 
 16  
  * @author Markus Flingelli
 17  
  *
 18  
  */
 19  
 public class ArticleTableModel extends AItemTableModel {
 20  
         private static final long serialVersionUID = -141610853914171049L;
 21  
         
 22  
         public ArticleTableModel(BibItems items, Article article) {
 23  6
                 super(items, article);
 24  6
         }
 25  
         
 26  
         public int getRequiredRow() {
 27  6
                 return getRowCount() - getOptionalRow() - 1;
 28  
         }
 29  
         
 30  
         @Override
 31  
         public int getOptionalRow() {
 32  7
                 return 7;
 33  
         }
 34  
         
 35  
         @Override
 36  
         public int getRowCount() {
 37  13
                 return 13;
 38  
         }
 39  
 
 40  
         @Override
 41  
         public Object getValueAt(int row, int col) {
 42  10
                 Object result = null;
 43  10
                 if (col == 0) {
 44  0
                         switch(row) {
 45  
                         case 0:
 46  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.required_items.text");
 47  0
                                 break;
 48  
                         case 1:
 49  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.key.text");
 50  0
                                 break;
 51  
                         case 2:
 52  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.author.text");
 53  0
                                 break;
 54  
                         case 3:
 55  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.title.text");
 56  0
                                 break;
 57  
                         case 4:
 58  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.journal.text");
 59  0
                                 break;
 60  
                         case 5:
 61  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.year.text");
 62  0
                                 break;
 63  
                         case 7:
 64  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.optional_items.text");
 65  0
                                 break;
 66  
                         case 8:
 67  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.volume.text");
 68  0
                                 break;
 69  
                         case 9:
 70  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.number.text");
 71  0
                                 break;
 72  
                         case 10:
 73  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.pages.text");
 74  0
                                 break;
 75  
                         case 11:
 76  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.month.text");
 77  0
                                 break;
 78  
                         case 12:
 79  0
                                 result = getTranslation().getValue("bibtex.table.bibitem.note.text");
 80  
                         }
 81  
                 } else {
 82  10
                         switch(row) {
 83  
                         case 1:
 84  1
                                 result = getItem().getKey();
 85  1
                                 break;
 86  
                         case 2:
 87  1
                                 result = getItem().getAuthor();
 88  1
                                 break;
 89  
                         case 3:
 90  1
                                 result = getItem().getTitle();
 91  1
                                 break;
 92  
                         case 4:
 93  1
                                 result = getItem().getJournal();
 94  1
                                 break;
 95  
                         case 5:
 96  1
                                 result = getItem().getYear();
 97  1
                                 break;
 98  
                         case 8:
 99  1
                                 result = getItem().getVolume();
 100  1
                                 break;
 101  
                         case 9:
 102  1
                                 result = getItem().getNumber();
 103  1
                                 break;
 104  
                         case 10:
 105  1
                                 result = getItem().getPages();
 106  1
                                 break;
 107  
                         case 11:
 108  1
                                 result = getItem().getMonth();
 109  1
                                 break;
 110  
                         case 12:
 111  1
                                 result = getItem().getNote();
 112  
                         }
 113  
                 }
 114  10
                 return result;
 115  
         }
 116  
 
 117  
         @Override
 118  
         public boolean isCellEditable(int row, int col) {
 119  9
                 boolean result = false;
 120  9
                 if (col == 1 && ((row > 0 && row < 6) || (row > 7))) {
 121  9
                         result = true;
 122  
                 }
 123  9
                 return result;
 124  
         }
 125  
 
 126  
         @Override
 127  
         public void setValueAt(Object obj, int row, int col) {
 128  0
                 boolean fireUpdate = false;
 129  0
                 Article oldArticle = new Article(getItem().getKey(), getItem().getTitle(), 
 130  
                                 getItem().getAuthor(), getItem().getJournal(), getItem().getYear());
 131  0
                 oldArticle.setItemValues(getItem());
 132  0
                 switch(row) {
 133  
                 case 1:
 134  0
                         super.setValueAt(obj, row, col);
 135  0
                         break;
 136  
                 case 2:
 137  0
                         fireUpdate = getItem().setAuthor((String) obj, true);
 138  0
                         break;
 139  
                 case 3:
 140  0
                         fireUpdate = getItem().setTitle((String) obj, true);
 141  0
                         break;
 142  
                 case 4:
 143  0
                         fireUpdate = getItem().setJournal((String) obj, true);
 144  0
                         break;
 145  
                 case 5:
 146  0
                         fireUpdate = getItem().setYear((String) obj, true);
 147  0
                         break;
 148  
                 case 8:
 149  0
                         fireUpdate = getItem().setVolume((String) obj);
 150  0
                         break;
 151  
                 case 9:
 152  0
                         fireUpdate = getItem().setNumber((String)obj);
 153  0
                         break;
 154  
                 case 10:
 155  0
                         fireUpdate = getItem().setPages((String) obj, false);
 156  0
                         break;
 157  
                 case 11:
 158  0
                         fireUpdate = getItem().setMonth((String)obj);
 159  0
                         break;
 160  
                 case 12:
 161  0
                         fireUpdate = getItem().setNote((String) obj, false);                        
 162  
                 }
 163  
                 
 164  0
                 if (fireUpdate == true) {
 165  0
                         EventBus.publish(EEventCommands.CHANGE.toString(), 
 166  
                                         new BibItemEvents(EEventCommands.CHANGE.toString(),
 167  
                                                         new BibItemEvent(
 168  
                                                         EEventCommands.CHANGE.toString(),
 169  
                                                         oldArticle, getItem())));
 170  0
                         EventBus.publish(EUserInteration.VALID_INPUT.toString(), 
 171  
                                         Translation.getInstance().getValue("bibtex.user_interaction.valid_input.text"));
 172  
                 }
 173  0
         }        
 174  
 }