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 columns=table.getTable().getTableHeader().getColumnModel().getColumns(); ArrayList newOrder=new ArrayList(); 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 } }