📄 transfer.java
字号:
f.show(); String sFileName = f.getFile(); String Path = f.getDirectory(); if ((sFileName == null) || (sFileName.equals(""))) { Exit(); return; } else { sourceDb = new TransferSQLText(Path + sFileName, this); } } if ((iTransferMode == TRFM_RESTORE) || (iTransferMode == TRFM_TRANSFER)) { targetDb = new TransferDb( ConnectionDialog.createConnection( fMain, "Target Database"), this); if (!targetDb.isConnected()) { Exit(); return; } } else { FileDialog f = new FileDialog(fMain, "Dump FileName", FileDialog.SAVE); f.show(); String sFileName = f.getFile(); String Path = f.getDirectory(); if ((sFileName == null) || (sFileName.equals(""))) { Exit(); return; } else { targetDb = new TransferSQLText(Path + sFileName, this); } } } catch (Exception e) { Exit(); e.printStackTrace(); return; } if ((iTransferMode == TRFM_DUMP) || (iTransferMode == TRFM_TRANSFER)) { iSelectionStep = SELECT_SOURCE_CATALOG; sSourceCatalog = null; } else { iSelectionStep = SELECT_DEST_CATALOG; sDestCatalog = null; } ProcessNextStep(); fMain.show(); return; } private void RefreshMainDisplay() { lTable.removeAll(); lTable.repaint(); try { tTable = sourceDb.getTables(sSourceCatalog, sSourceSchemas); for (int i = 0; i < tTable.size(); i++) { TransferTable t = (TransferTable) tTable.elementAt(i); t.setDest(sDestSchema, targetDb); t.extractTableStructure(sourceDb, targetDb); lTable.add(t.Stmts.sSourceTable); lTable.select(i); displayTable(t); } bStart.setEnabled(true); if (iTransferMode == TRFM_TRANSFER) { trace("Edit definitions and press [Start Transfer]"); } else if (iTransferMode == TRFM_DUMP) { trace("Edit definitions and press [Start Dump]"); } } catch (Exception e) { trace("Exception reading source tables: " + e); e.printStackTrace(); } fMain.show(); } /** * Method declaration * * * @param f * @param m */ private void addMenuItems(Menu f, String[] m) { for (int i = 0; i < m.length; i++) { if (m[i].equals("-")) { f.addSeparator(); } else { MenuItem item = new MenuItem(m[i]); item.addActionListener(this); f.add(item); } } } /** * Method declaration * * * @param e */ public void itemStateChanged(ItemEvent e) { ItemSelectable item = e.getItemSelectable(); if (item == lTable) { if (iSelectionStep == SELECT_SOURCE_TABLES) { String table = lTable.getSelectedItem(); int selected = ((Integer) e.getItem()).intValue(); for (int i = 0; i < tTable.size(); i++) { TransferTable t = (TransferTable) tTable.elementAt(i); if (t == null) { continue; } if (i == selected) { saveTable(); displayTable(t); updateEnabled(true); } } } } else { // it must be a checkbox saveTable(); updateEnabled(true); } } /** * Method declaration * */ private void saveTable() { if (tCurrent == null) { return; } TransferTable t = tCurrent; t.Stmts.sSourceTable = tSourceTable.getText(); t.Stmts.sDestTable = tDestTable.getText(); t.Stmts.sDestDrop = tDestDrop.getText(); t.Stmts.sDestCreateIndex = tDestCreateIndex.getText(); t.Stmts.sDestDropIndex = tDestDropIndex.getText(); t.Stmts.sDestCreate = tDestCreate.getText(); t.Stmts.sDestDelete = tDestDelete.getText(); t.Stmts.sSourceSelect = tSourceSelect.getText(); t.Stmts.sDestInsert = tDestInsert.getText(); t.Stmts.sDestAlter = tDestAlter.getText(); // t.Stmts.bTransfer = cTransfer.getState(); t.Stmts.bDrop = cDrop.getState(); t.Stmts.bCreate = cCreate.getState(); t.Stmts.bDelete = cDelete.getState(); t.Stmts.bInsert = cInsert.getState(); t.Stmts.bAlter = cAlter.getState(); t.Stmts.bCreateIndex = cCreateIndex.getState(); t.Stmts.bDropIndex = cDropIndex.getState(); if (!t.Stmts.bTransfer) { t.Stmts.bInsert = false; cInsert.setState(false); } boolean reparsetable = ((t.Stmts.bFKForced != cFKForced.getState()) || (t.Stmts.bIdxForced != cIdxForced.getState())); t.Stmts.bFKForced = cFKForced.getState(); t.Stmts.bIdxForced = cIdxForced.getState(); if (reparsetable) { try { sourceDb.getTableStructure(t, targetDb); } catch (Exception e) { trace("Exception reading source tables: " + e); e.printStackTrace(); } } } /** * Method declaration * * * @param t */ private void displayTable(TransferTable t) { tCurrent = t; if (t == null) { return; } tSourceTable.setText(t.Stmts.sSourceTable); tDestTable.setText(t.Stmts.sDestTable); tDestDrop.setText(t.Stmts.sDestDrop); tDestCreateIndex.setText(t.Stmts.sDestCreateIndex); tDestDropIndex.setText(t.Stmts.sDestDropIndex); tDestCreate.setText(t.Stmts.sDestCreate); tDestDelete.setText(t.Stmts.sDestDelete); tSourceSelect.setText(t.Stmts.sSourceSelect); tDestInsert.setText(t.Stmts.sDestInsert); tDestAlter.setText(t.Stmts.sDestAlter); cTransfer.setState(t.Stmts.bTransfer); cDrop.setState(t.Stmts.bDrop); cCreate.setState(t.Stmts.bCreate); cDropIndex.setState(t.Stmts.bDropIndex); cCreateIndex.setState(t.Stmts.bCreateIndex); cDelete.setState(t.Stmts.bDelete); cInsert.setState(t.Stmts.bInsert); cAlter.setState(t.Stmts.bAlter); cFKForced.setState(t.Stmts.bFKForced); cIdxForced.setState(t.Stmts.bIdxForced); } /** * Method declaration * * * @param and */ private void updateEnabled(boolean and) { boolean b = cTransfer.getState(); tDestTable.setEnabled(and && b); tDestDrop.setEnabled(and && b && cDrop.getState()); tDestCreate.setEnabled(and && b && cCreate.getState()); tDestDelete.setEnabled(and && b && cDelete.getState()); tDestCreateIndex.setEnabled(and && b && cCreateIndex.getState()); tDestDropIndex.setEnabled(and && b && cDropIndex.getState()); tSourceSelect.setEnabled(and && b); tDestInsert.setEnabled(and && b && cInsert.getState()); tDestAlter.setEnabled(and && b && cAlter.getState()); cDrop.setEnabled(and && b); cCreate.setEnabled(and && b); cDelete.setEnabled(and && b); cCreateIndex.setEnabled(and && b); cDropIndex.setEnabled(and && b); cInsert.setEnabled(and && b); cAlter.setEnabled(and && b); cFKForced.setEnabled(cAlter.getState()); cIdxForced.setEnabled(cCreateIndex.getState()); bStart.setEnabled(and); if (iTransferMode == TRFM_TRANSFER) { bContinue.setEnabled(and); } } /** * Method ProcessNextStep */ private void ProcessNextStep() { switch (iSelectionStep) { case SELECT_SOURCE_CATALOG : case SELECT_DEST_CATALOG : if (CatalogToSelect()) { fMain.show(); return; } break; case SELECT_DEST_SCHEMA : case SELECT_SOURCE_SCHEMA : if (SchemaToSelect()) { fMain.show(); return; } break; case SELECT_SOURCE_TABLES : if (iTransferMode == TRFM_TRANSFER) { bStart.setLabel("Start Transfer"); } else if (iTransferMode == TRFM_DUMP) { bStart.setLabel("Start Dump"); } else if (iTransferMode == TRFM_RESTORE) { bStart.setLabel("Start Restore"); } bStart.invalidate(); bStart.setEnabled(false); lTable.setMultipleMode(false); RefreshMainDisplay(); break; default : break; } } /** * Method declaration * * * @param ev */ public void actionPerformed(ActionEvent ev) { if (ev.getSource() instanceof TextField) { saveTable(); return; } String s = ev.getActionCommand(); MenuItem i = new MenuItem(); if (s == null) { if (ev.getSource() instanceof MenuItem) { i = (MenuItem) ev.getSource(); s = i.getLabel(); } } if (s == null) {} if (s.equals("Start Transfer") || s.equals("ReStart Transfer")) { bStart.setLabel("ReStart Transfer"); bStart.invalidate(); CurrentTransfer = 0; CurrentAlter = 0; transfer(); } else if (s.equals("Continue Transfer")) { transfer(); } else if (s.equals("Start Dump") || s.equals("Start Restore")) { CurrentTransfer = 0; CurrentAlter = 0; transfer(); } else if (s.equals("Quit")) { Exit(); } else if (s.indexOf("Select Schema") >= 0) { String[] selection = lTable.getSelectedItems(); if ((selection == null) || (selection.length == 0)) { return; } if (iSelectionStep == Transfer.SELECT_SOURCE_SCHEMA) { sSourceSchemas = selection; } else { sDestSchema = selection[0]; } if (iTransferMode == TRFM_DUMP) { iSelectionStep = Transfer.SELECT_SOURCE_TABLES; } else { iSelectionStep++; } ProcessNextStep(); } else if (s.indexOf("Select Catalog") >= 0) { String selection = lTable.getSelectedItem(); if ((selection == null) || (selection.equals(""))) { return; } if (iSelectionStep == Transfer.SELECT_SOURCE_CATALOG) { sSourceCatalog = selection; sSourceSchemas = null; } else { sDestCatalog = selection; sDestSchema = null; try { targetDb.setCatalog(sDestCatalog); } catch (Exception ex) { trace("Catalog " + sDestCatalog + " could not be selected in the target database"); sDestCatalog = null; } } iSelectionStep++; ProcessNextStep(); } else if (s.equals("Insert 10 rows only")) { iMaxRows = 10; } else if (s.equals("Insert 1000 rows only")) { iMaxRows = 1000; } else if (s.equals("Insert all rows")) { iMaxRows = 0; } else if (s.equals("Load Settings...")) { FileDialog f = new FileDialog(fMain, "Load Settings", FileDialog.LOAD);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -