Panel p = new Panel();
        p.setBackground(SystemColor.control);
        p.setLayout(new GridLayout(16, 1));
        tSourceTable = new TextField();
        tSourceTable.setEnabled(false);
        tDestTable = new TextField();
        tDestTable.addActionListener(this);
        tDestDrop = new TextField();
        tDestDrop.addActionListener(this);
        tDestCreate = new TextField();
        tDestCreate.addActionListener(this);
        tDestDelete = new TextField();
        tDestDelete.addActionListener(this);
        tDestCreateIndex = new TextField();
        tDestCreateIndex.addActionListener(this);
        tDestDropIndex = new TextField();
        tDestDropIndex.addActionListener(this);
        tSourceSelect = new TextField();
        tSourceSelect.addActionListener(this);
        tDestInsert = new TextField();
        tDestInsert.addActionListener(this);
        tDestAlter = new TextField();
        tDestAlter.addActionListener(this);
        cTransfer = new Checkbox("Transfer to destination table", true);
        cTransfer.addItemListener(this);
        cDrop = new Checkbox("Drop destination table (ignore error)", true);
        cDrop.addItemListener(this);
        cCreate = new Checkbox("Create destination table", true);
        cCreate.addItemListener(this);
        cDropIndex = new Checkbox("Drop destination index (ignore error)",
                                  true);
        cDropIndex.addItemListener(this);
        cIdxForced = new Checkbox("force Idx_ prefix for indexes names",
                                  false);
        cIdxForced.addItemListener(this);
        cCreateIndex = new Checkbox("Create destination index", true);
        cCreateIndex.addItemListener(this);
        cDelete = new Checkbox("Delete rows in destination table", true);
        cDelete.addItemListener(this);
        cInsert = new Checkbox("Insert into destination", true);
        cInsert.addItemListener(this);
        cFKForced = new Checkbox("force FK_ prefix for foreign key names",
                                 false);
        cFKForced.addItemListener(this);
        cAlter = new Checkbox("Alter destination table", true);
        cAlter.addItemListener(this);
        p.add(createLabel("Source table"));
        p.add(tSourceTable);
        p.add(cTransfer);
        p.add(tDestTable);
        p.add(cDrop);
        p.add(tDestDrop);
        p.add(cCreate);
        p.add(tDestCreate);
        p.add(cDropIndex);
        p.add(tDestDropIndex);
        p.add(cCreateIndex);
        p.add(tDestCreateIndex);
        p.add(cDelete);
        p.add(tDestDelete);
        p.add(cAlter);
        p.add(tDestAlter);
        p.add(createLabel("Select source records"));
        p.add(tSourceSelect);
        p.add(cInsert);
        p.add(tDestInsert);
        p.add(createLabel(""));
        p.add(createLabel(""));
        p.add(cIdxForced);
        p.add(cFKForced);
        p.add(createLabel(""));
        p.add(createLabel(""));
        if (iTransferMode == TRFM_TRANSFER) {
            bStart    = new Button("Start Transfer");
            bContinue = new Button("Continue Transfer");
            bContinue.setEnabled(false);
        } else if (iTransferMode == Transfer.TRFM_DUMP) {
            bStart = new Button("Start Dump");
        } else if (iTransferMode == Transfer.TRFM_RESTORE) {
            bStart = new Button("Start Restore");
        }
        bStart.addActionListener(this);
        p.add(bStart);
        if (iTransferMode == TRFM_TRANSFER) {
            bContinue.addActionListener(this);
            p.add(bContinue);
        }
        bStart.setEnabled(false);
        fMain.add("Center", createBorderPanel(p));
        lTable = new java.awt.List(10);
        lTable.addItemListener(this);
        fMain.add("West", createBorderPanel(lTable));
        tMessage = new TextField();
        Panel pMessage = createBorderPanel(tMessage);
        fMain.add("South", pMessage);
    }