Coverage Report - de.glossmaker.gui.gloss.main.tableview.GlossItemTableModel
 
Classes in this File Line Coverage Branch Coverage Complexity
GlossItemTableModel
58%
30/51
42%
6/14
2,429
 
 1  
 package de.glossmaker.gui.gloss.main.tableview;
 2  
 
 3  
 import javax.swing.table.AbstractTableModel;
 4  
 
 5  
 import de.glossmaker.gloss.datastructure.GlossItem;
 6  
 import de.glossmaker.gloss.datastructure.GlossItems;
 7  
 import de.glossmaker.gloss.language.Translation;
 8  
 import de.glossmaker.gloss.observer.GlossItemsChangePublisher;
 9  
 
 10  
 /**
 11  
  * 
 12  
  * @author Markus Flingelli
 13  
  *
 14  
  */
 15  
 public class GlossItemTableModel extends AbstractTableModel {
 16  
         private static final long serialVersionUID = 1756406755349815283L;
 17  5
         private Translation mTranslation = null;
 18  5
         private String[] mColumnNames = null; 
 19  5
         private GlossItems mGlossItems = null;
 20  5
         private GlossItemsChangePublisher mGlossItemsChangePublisher = null;
 21  
         
 22  5
         public GlossItemTableModel(GlossItems items) {
 23  5
                 mGlossItems = items;
 24  5
                 mGlossItemsChangePublisher = GlossItemsChangePublisher.getInstance(items);
 25  5
                 mTranslation = Translation.getInstance();
 26  5
                 mColumnNames = new String[4];
 27  5
                 mColumnNames[0] = mTranslation.getValue("gloss.table.header.key.text");
 28  5
                 mColumnNames[1] = mTranslation.getValue("gloss.table.header.heading.text");
 29  5
                 mColumnNames[2] = mTranslation.getValue("gloss.table.header.word.text");
 30  5
                 mColumnNames[3] = mTranslation.getValue("gloss.table.header.definition.text");
 31  5
         }
 32  
 
 33  
         public String getColumnName(int col) {
 34  4
         return mColumnNames[col];
 35  
     }
 36  
         
 37  
         @Override
 38  
         public int getColumnCount() {
 39  6
                 return mColumnNames.length;
 40  
         }
 41  
 
 42  
         @Override
 43  
         public int getRowCount() {
 44  1
                 return mGlossItems.size();
 45  
         }
 46  
 
 47  
         @Override
 48  
         public Object getValueAt(int row, int col) {
 49  4
                 Object result = null;
 50  4
                 GlossItem item = mGlossItems.get(row);
 51  4
                 if (item != null) {
 52  4
                         switch(col) {
 53  
                         case 0:
 54  1
                                 result = item.getKey();
 55  1
                                 break;
 56  
                         case 1:
 57  1
                                 result = item.getHeading();
 58  1
                                 break;
 59  
                         case 2:
 60  1
                                 result = item.getWord();
 61  1
                                 break;
 62  
                         case 3:
 63  1
                                 result = item.getDefinition();
 64  
                         }
 65  
                 }
 66  4
                 return result;
 67  
         }
 68  
 
 69  
         @Override
 70  
         public void setValueAt(Object obj, int row, int col) {
 71  0
                 GlossItem item = mGlossItems.get(row);
 72  0
                 GlossItem newItem = (GlossItem) item.cloneItem();
 73  0
                 if (obj instanceof String) {
 74  0
                         String value = (String)obj;
 75  0
                         switch(col) {
 76  
                         case 0:
 77  0
                                 mGlossItemsChangePublisher.setKey(item, value);
 78  0
                                 newItem.setKey(value);
 79  0
                                 mGlossItemsChangePublisher.updateTopPanel(newItem);
 80  0
                                 break;
 81  
                         case 1:
 82  0
                                 mGlossItemsChangePublisher.setHeading(item, value);
 83  0
                                 newItem.setHeading(value);
 84  0
                                 mGlossItemsChangePublisher.updateTopPanel(newItem);
 85  0
                                 break;
 86  
                         case 2:
 87  0
                                 mGlossItemsChangePublisher.setWord(item, value, true);
 88  0
                                 newItem.setWord(value);
 89  0
                                 mGlossItemsChangePublisher.updateTopPanel(newItem);
 90  0
                                 break;
 91  
                         case 3:
 92  0
                                 mGlossItemsChangePublisher.setDefinition(item, value);
 93  0
                                 newItem.setDefinition(value);
 94  0
                                 mGlossItemsChangePublisher.updateTopPanel(newItem);
 95  
                         }
 96  
                 }
 97  0
         }
 98  
 
 99  
         @Override
 100  
         public boolean isCellEditable(int rowIndex, int columnIndex) {
 101  4
                 return true;
 102  
         }
 103  
 
 104  
         
 105  
 }