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