version 1.31, 2004/03/15 12:31:30
|
version 1.35, 2004/05/26 11:37:32
|
Line 1
|
Line 1
|
|
/* |
|
* FM2SQL.java -- Main program Filemaker to SQL Converter |
|
* Copyright (C) 2003 Robert Gordesch (rogo@mpiwg-berlin.mpg.de) |
|
* This program is free software; you can redistribute it and/or modify it |
|
* under the terms of the GNU General Public License as published by the Free |
|
* Software Foundation; either version 2 of the License, or (at your option) |
|
* any later version. Please read license.txt for the full details. A copy of |
|
* the GPL may be found at http://www.gnu.org/copyleft/lgpl.html You should |
|
* have received a copy of the GNU General Public License along with this |
|
* program; if not, write to the Free Software Foundation, Inc., 59 Temple |
|
* Place, Suite 330, Boston, MA 02111-1307 USA Created on 15.09.2003 by |
|
* rogo |
|
*/ |
|
|
import java.awt.Cursor; |
import java.awt.Cursor; |
import java.awt.Dimension; |
import java.awt.Dimension; |
import java.awt.Font; |
import java.awt.Font; |
Line 74 public class FM2SQL extends JFrame imple
|
Line 88 public class FM2SQL extends JFrame imple
|
private JCheckBoxMenuItem deleteItem; |
private JCheckBoxMenuItem deleteItem; |
|
|
int mode = -1; |
int mode = -1; |
final static int ID_INDEX = 1; |
final static int STATUS_INDEX = 0; |
final static int SELECT_INDEX = 2; |
final static int NAME_INDEX = 1; |
final static int CREATE_INDEX = 3; |
final static int ID_INDEX = 2; |
final static int LAYOUT_INDEX = 4; |
final static int SELECT_INDEX = 3; |
|
final static int CREATE_INDEX = 4; |
|
final static int LAYOUT_INDEX = 5; |
|
|
|
|
|
|
Line 926 public class FM2SQL extends JFrame imple
|
Line 942 public class FM2SQL extends JFrame imple
|
if(appendItem.isSelected()) mode = Convert.DataBase.APPEND_MODE; |
if(appendItem.isSelected()) mode = Convert.DataBase.APPEND_MODE; |
else |
else |
if(updateItem.isSelected()) mode = Convert.DataBase.UPDATE_MODE; |
if(updateItem.isSelected()) mode = Convert.DataBase.UPDATE_MODE; |
|
else |
|
if(deleteItem.isSelected()) mode = Convert.DataBase.DELETE_MODE; |
|
|
// TODO add id vector in table and write it out |
// TODO add id vector in table and write it out |
Convert.DataBase source = new Convert.DataBase(bean,vectors[0],vectors[1],vectors[2],vectors[3],vectors[4],mode); |
Convert.DataBase source = new Convert.DataBase(bean,vectors[0],vectors[1],vectors[2],vectors[3],vectors[4],mode); |
Convert.DataBase destination = new Convert.DataBase(destBean,new Vector(),new Vector(),new Vector(),new Vector(),new Vector(),-1); |
Convert.DataBase destination = new Convert.DataBase(destBean,new Vector(),new Vector(),new Vector(),new Vector(),new Vector(),-1); |
Line 971 public class FM2SQL extends JFrame imple
|
Line 990 public class FM2SQL extends JFrame imple
|
|
|
if (database.mode == Convert.DataBase.CONVERT_MODE) |
if (database.mode == Convert.DataBase.CONVERT_MODE) |
{ |
{ |
convertItem.setSelected(true); |
convertItem.doClick(); |
convert.setText("Convert Tables"); |
|
convert.setActionCommand("Convert Tables"); |
|
mode = Convert.DataBase.CONVERT_MODE; |
|
} else if (database.mode == Convert.DataBase.APPEND_MODE) |
} else if (database.mode == Convert.DataBase.APPEND_MODE) |
{ |
{ |
appendItem.setSelected(true); |
appendItem.doClick(); |
convert.setText("Append Tables"); |
|
convert.setActionCommand("Append Tables"); |
|
mode = Convert.DataBase.APPEND_MODE; |
|
} else if (database.mode == Convert.DataBase.UPDATE_MODE) |
} else if (database.mode == Convert.DataBase.UPDATE_MODE) |
{ |
{ |
updateItem.setSelected(true); |
updateItem.doClick(); |
convert.setText("Update Tables"); |
} else if (database.mode == Convert.DataBase.DELETE_MODE) |
convert.setActionCommand("Update Tables"); |
|
mode = Convert.DataBase.UPDATE_MODE; |
|
} else if (database.mode == Convert.DataBase.UPDATE_MODE) |
|
{ |
{ |
deleteItem.setSelected(true); |
deleteItem.doClick(); |
convert.setText("Delete Tables"); |
|
convert.setActionCommand("Delete Tables"); |
|
mode = Convert.DataBase.DELETE_MODE; |
|
} |
} |
delimiter=database.delimiter; |
delimiter=database.delimiter; |
database.bean.getConnection(); |
database.bean.getConnection(); |
Line 1047 public class FM2SQL extends JFrame imple
|
Line 1054 public class FM2SQL extends JFrame imple
|
// add Selections |
// add Selections |
ListSelectionModel lm = tC.table.getSelectionModel(); |
ListSelectionModel lm = tC.table.getSelectionModel(); |
for(int i=0;i<indices.length;++i) |
for(int i=0;i<indices.length;++i) |
|
{ |
lm.addSelectionInterval(indices[i],indices[i]); |
lm.addSelectionInterval(indices[i],indices[i]); |
|
tC.tableModel.setValueAt(Boolean.TRUE,indices[i],STATUS_INDEX); |
|
} |
destBean.getConnection(); |
destBean.getConnection(); |
|
|
DefaultListModel model = new DefaultListModel(); |
DefaultListModel model = new DefaultListModel(); |
Line 1078 public class FM2SQL extends JFrame imple
|
Line 1087 public class FM2SQL extends JFrame imple
|
} |
} |
public boolean showTable(int list) |
public boolean showTable(int list) |
{ |
{ |
ProgressDialog dialog = new ProgressDialog(fm); |
ProgressDialog dialog = new ProgressDialog(fm,bean); |
dialog.setTitle("Preparing tables to be displayed"); |
dialog.setTitle("Preparing tables to be displayed"); |
dialog.thread = Thread.currentThread(); |
dialog.thread = Thread.currentThread(); |
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
Line 1270 public class FM2SQL extends JFrame imple
|
Line 1279 public class FM2SQL extends JFrame imple
|
{ |
{ |
if(columnName.equals("select")||columnName.equals("Layouts")) |
if(columnName.equals("select")||columnName.equals("Layouts")) |
{ |
{ |
String table = model.getValueAt(row,0).toString(); |
String table = model.getValueAt(row,NAME_INDEX).toString(); |
String layout = (model.getValueAt(row,LAYOUT_INDEX)!=null) ?((JComboBox)model.getValueAt(row,LAYOUT_INDEX)).getSelectedItem().toString():""; |
String layout = (model.getValueAt(row,LAYOUT_INDEX)!=null) ?((JComboBox)model.getValueAt(row,LAYOUT_INDEX)).getSelectedItem().toString():""; |
String query = model.getValueAt(row,SELECT_INDEX).toString(); |
String query = model.getValueAt(row,SELECT_INDEX).toString(); |
String create = model.getValueAt(row,CREATE_INDEX).toString(); |
String create = model.getValueAt(row,CREATE_INDEX).toString(); |
Line 1481 public class FM2SQL extends JFrame imple
|
Line 1490 public class FM2SQL extends JFrame imple
|
JProgressBar progress = new JProgressBar(); |
JProgressBar progress = new JProgressBar(); |
JButton cancel = new JButton("Cancel"); |
JButton cancel = new JButton("Cancel"); |
Thread thread; |
Thread thread; |
public ProgressDialog(JFrame frame) |
DBBean bean; |
|
public ProgressDialog(JFrame frame,DBBean bean) |
{ |
{ |
super(frame); |
super(frame); |
|
this.bean = bean; |
|
|
content = new JPanel(true); |
content = new JPanel(true); |
//content.setBorder(BorderFactory.createRaisedBevelBorder()); |
//content.setBorder(BorderFactory.createRaisedBevelBorder()); |
content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS)); |
content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS)); |
Line 1518 public class FM2SQL extends JFrame imple
|
Line 1530 public class FM2SQL extends JFrame imple
|
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
fmInstance.setEnabled(true); |
fmInstance.setEnabled(true); |
setVisible(false); |
setVisible(false); |
|
try |
|
{ |
|
ProgressDialog.this.bean.getConnection().close(); |
|
} catch (SQLException e1) |
|
{ |
|
// TODO Auto-generated catch block |
|
e1.printStackTrace(); |
|
} catch (Exception e1) |
|
{ |
|
// TODO Auto-generated catch block |
|
e1.printStackTrace(); |
|
} |
thread.stop(); |
thread.stop(); |
} |
} |
}); |
}); |
Line 1731 public class FM2SQL extends JFrame imple
|
Line 1755 public class FM2SQL extends JFrame imple
|
Vector tableNames = bean.getTableNames(); |
Vector tableNames = bean.getTableNames(); |
Collections.sort(tableNames, String.CASE_INSENSITIVE_ORDER); |
Collections.sort(tableNames, String.CASE_INSENSITIVE_ORDER); |
Vector[] data = new Vector[2]; |
Vector[] data = new Vector[2]; |
data[1] = new Vector(5); |
data[1] = new Vector(6); |
data[1].setSize(5); |
data[1].setSize(6); |
data[1].set(0," source Tablename "); |
data[1].set(STATUS_INDEX,""); |
|
data[1].set(NAME_INDEX," source Tablename "); |
data[1].set(LAYOUT_INDEX,"Layouts"); |
data[1].set(LAYOUT_INDEX,"Layouts"); |
data[1].set(SELECT_INDEX,"select"); |
data[1].set(SELECT_INDEX,"select"); |
data[1].set(CREATE_INDEX,"create"); |
data[1].set(CREATE_INDEX,"create"); |
Line 1757 public class FM2SQL extends JFrame imple
|
Line 1782 public class FM2SQL extends JFrame imple
|
idVec = bean.getColumnNames(); |
idVec = bean.getColumnNames(); |
if(idVec==null) idVec=new Vector(); |
if(idVec==null) idVec=new Vector(); |
idVec.add(0,""); |
idVec.add(0,""); |
Vector dataRow = new Vector(5); |
Vector dataRow = new Vector(6); |
|
|
dataRow.setSize(5); |
dataRow.setSize(6); |
dataRow.set(0,name); |
dataRow.set(STATUS_INDEX,Boolean.FALSE); |
|
dataRow.set(NAME_INDEX,name); |
|
|
dataRow.set(SELECT_INDEX,new TableComponent.SQLCommand("select * from " + bean.getQC() + name + bean.getQC())); |
dataRow.set(SELECT_INDEX,new TableComponent.SQLCommand("select * from " + bean.getQC() + name + bean.getQC())); |
if (!layouts.isEmpty()) |
if (!layouts.isEmpty()) |
Line 1779 public class FM2SQL extends JFrame imple
|
Line 1805 public class FM2SQL extends JFrame imple
|
//System.out.println(dataRow); |
//System.out.println(dataRow); |
} |
} |
|
|
|
tC.booleanRenderer.renderFalseEmpty=true; |
tC.tableModel.setDataVector(data[0], data[1]); |
tC.tableModel.setDataVector(data[0], data[1]); |
//@TODO new sizeToFit method needed |
//@TODO new sizeToFit method needed |
//tC.sizeToFit(450, 250); |
//tC.sizeToFit(450, 250); |
Line 1797 public class FM2SQL extends JFrame imple
|
Line 1824 public class FM2SQL extends JFrame imple
|
vec[2] = new Vector(); |
vec[2] = new Vector(); |
vec[3] = new Vector(); |
vec[3] = new Vector(); |
vec[4] = new Vector(); |
vec[4] = new Vector(); |
|
for(int i=0;i<tC.tableModel.getRowCount();++i) |
|
{ |
|
} |
int[] rows = tC.table.getSelectedRows(); |
int[] rows = tC.table.getSelectedRows(); |
for (int i = 0; i < rows.length; i++) |
for (int i = 0; i < tC.tableModel.getRowCount(); i++) |
|
{ |
|
if(((Boolean)tC.tableModel.getValueAt(i,STATUS_INDEX))==Boolean.FALSE) |
{ |
{ |
|
System.out.println("skipped row "+i); |
|
continue; |
|
} |
|
|
//System.out.println(tC.tableModel.getValueAt(rows[i],1)); |
//System.out.println(tC.tableModel.getValueAt(rows[i],1)); |
vec[0].add(tC.tableModel.getValueAt(rows[i], 0)); |
vec[0].add(tC.tableModel.getValueAt(i, NAME_INDEX)); |
JComboBox box = ((JComboBox) tC.tableModel.getValueAt(rows[i], LAYOUT_INDEX)); |
JComboBox box = ((JComboBox) tC.tableModel.getValueAt(i, LAYOUT_INDEX)); |
String layoutName = (box != null) ? box.getSelectedItem().toString() : ""; |
String layoutName = (box != null) ? box.getSelectedItem().toString() : ""; |
|
|
String idName = ((JComboBox)tC.tableModel.getValueAt(rows[i], ID_INDEX)).getSelectedItem().toString(); |
String idName = ((JComboBox)tC.tableModel.getValueAt(i, ID_INDEX)).getSelectedItem().toString(); |
vec[1].add(layoutName); |
vec[1].add(layoutName); |
vec[2].add(tC.tableModel.getValueAt(rows[i],SELECT_INDEX ).toString()); |
vec[2].add(tC.tableModel.getValueAt(i,SELECT_INDEX ).toString()); |
vec[3].add(tC.tableModel.getValueAt(rows[i], CREATE_INDEX).toString()); |
vec[3].add(tC.tableModel.getValueAt(i, CREATE_INDEX).toString()); |
vec[4].add(idName); |
vec[4].add(idName); |
|
|
} |
} |