Coverage Report - de.glossmaker.gui.gloss.main.tableview.GlossItemTablePanel
 
Classes in this File Line Coverage Branch Coverage Complexity
GlossItemTablePanel
0%
0/34
0%
0/12
2,2
GlossItemTablePanel$1
0%
0/3
N/A
2,2
 
 1  
 package de.glossmaker.gui.gloss.main.tableview;
 2  
 
 3  
 import java.awt.BorderLayout;
 4  
 import java.awt.EventQueue;
 5  
 import java.beans.PropertyChangeEvent;
 6  
 import java.beans.PropertyChangeListener;
 7  
 import java.util.HashMap;
 8  
 
 9  
 import javax.swing.JPanel;
 10  
 import javax.swing.JScrollPane;
 11  
 import javax.swing.JTable;
 12  
 
 13  
 import de.glossmaker.gloss.datastructure.GlossItems;
 14  
 import de.glossmaker.gloss.datastructure.gui.Config;
 15  
 import de.glossmaker.gloss.listener.EActionCommands;
 16  
 import de.glossmaker.gloss.observer.GlossItemsChangePublisher;
 17  
 import de.glossmaker.gui.ColumnModelListener;
 18  
 
 19  
 /**
 20  
  * 
 21  
  * @author Markus Flingelli
 22  
  *
 23  
  */
 24  0
 public class GlossItemTablePanel extends JPanel implements PropertyChangeListener{
 25  
         private static final long serialVersionUID = -3939424158016601670L;
 26  
 
 27  0
         private JScrollPane mScrollPane = null;
 28  0
         private JTable mTable = null;
 29  0
         private HashMap<Integer, Integer> mPosition = null;
 30  
         
 31  0
         public GlossItemTablePanel(GlossItems items) {
 32  0
                 mPosition = new HashMap<Integer, Integer>();
 33  0
                 GlossItemsChangePublisher.getInstance(items).addPropertyChangeListener(this);
 34  0
                 initialize(items);
 35  0
         }
 36  
         
 37  
         private void initialize(GlossItems items) {
 38  0
                 setLayout(new BorderLayout());
 39  0
                 mScrollPane = new JScrollPane();
 40  0
                 mTable = new JTable(new GlossItemTableModel(items));
 41  0
                 mTable.setRowHeight(80);
 42  0
                 for (int i=0; i < mTable.getColumnCount(); i++) {
 43  0
                     mPosition.put(Config.getInstance().getColumnPosition("TABLE_VIEW", i), i);
 44  
             }
 45  
                 
 46  0
                 mTable.setName("gloss_items_table");
 47  0
                 mTable.setAutoCreateRowSorter(true);
 48  
 
 49  0
                 mTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
 50  0
                 mTable.getColumnModel().getColumn(0).setPreferredWidth(
 51  
                                 Config.getInstance().getColumnWidth("TABLE_VIEW", 0, 150));
 52  0
                 mTable.getColumnModel().getColumn(1).setPreferredWidth(
 53  
                                 Config.getInstance().getColumnWidth("TABLE_VIEW", 1, 100));
 54  0
                 mTable.getColumnModel().getColumn(2).setPreferredWidth(
 55  
                                 Config.getInstance().getColumnWidth("TABLE_VIEW", 2, 150));
 56  0
                 mTable.getColumnModel().getColumn(3).setPreferredWidth(
 57  
                                 Config.getInstance().getColumnWidth("TABLE_VIEW", 3, 600));
 58  
                 
 59  
                 
 60  0
                 MultiLineCellRenderer multiLineCR = new MultiLineCellRenderer();
 61  0
                 mTable.getColumnModel().getColumn(mPosition.get(3)).setCellRenderer(multiLineCR);
 62  0
                 mTable.getColumnModel().getColumn(mPosition.get(3)).setCellEditor(new MultiLineCellEditor());
 63  0
                 mTable.getColumnModel().addColumnModelListener(new ColumnModelListener("TABLE_VIEW", 4));
 64  0
                 mScrollPane.setViewportView(mTable);
 65  
                 
 66  0
                 add(mScrollPane, BorderLayout.CENTER);
 67  0
         }
 68  
 
 69  
         private void updateTable() {
 70  0
                 EventQueue.invokeLater(new Runnable() {
 71  
                         
 72  
                         @Override
 73  
                         public void run() {
 74  0
                                 mTable.updateUI();
 75  0
                         }
 76  
                 });
 77  0
         }
 78  
         
 79  
         @Override
 80  
         public void propertyChange(PropertyChangeEvent event) {
 81  0
                 if (event.getPropertyName().equals(EActionCommands.CREATE_NEW_FILE.toString()) ||
 82  
                         event.getPropertyName().equals(EActionCommands.OPEN_FILE.toString()) ||
 83  
                         event.getPropertyName().equals(EActionCommands.FILE_IMPORTED.toString()) ||
 84  
                         event.getPropertyName().equals(EActionCommands.FIRE_UNDO.toString()) ||
 85  
                         event.getPropertyName().equals(EActionCommands.SPECIAL_CHARS.toString())) {
 86  0
                         updateTable();
 87  
                 }
 88  0
         }
 89  
 
 90  
 }