Normand Briere
2018-07-07 09ddd38fd4a8a7100c834a5e976f4796fae53541
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package timeflow.app.ui;
 
import timeflow.data.db.*;
import timeflow.model.*;
import timeflow.views.*;
 
import javax.swing.*;
import javax.swing.table.*;
 
import java.awt.*;
import java.util.*;
 
public class ReorderFieldsPanel extends ModelPanel
{
   TableView table;
   
   public ReorderFieldsPanel(TFModel model)
   {
       super(model);
       setLayout(new BorderLayout());
       
       JPanel top=new JPanel();
       top.setLayout(new GridLayout(3,1));
       top.add(new JPanel());
       JLabel instructions=new JLabel("Drag and drop the column headers to reorder fields.");
       top.add(instructions);
       top.add(new JPanel());
       add(top, BorderLayout.NORTH);
       
       table=new TableView(model);
       add(table, BorderLayout.CENTER);
       table.setEditable(false);
       table.setReorderable(true);
       table.onscreen(true);
   }
   
   public void applyReordering()
   {
       Enumeration<TableColumn> columns=table.getTable().getTableHeader().getColumnModel().getColumns();
       ArrayList<Field> newOrder=new ArrayList<Field>();
       while (columns.hasMoreElements())
       {
           TableColumn col=columns.nextElement();
           String name=col.getHeaderValue().toString();
           newOrder.add(getModel().getDB().getField(name));
       }
       getModel().getDB().setNewFieldOrder(newOrder);
   }
   
   public void detachFromModel()
   {
       TFModel model=getModel();
       model.removeListener(table);
       model.removeListener(this);
   }
   
   public Dimension getPreferredSize()
   {
       Dimension d=super.getPreferredSize();
       return new Dimension(Math.max(700, d.width), 250);
   }
 
   @Override
   public void note(TFEvent e) {
       // TODO Auto-generated method stub
       
   }
}