?? auto.java
字號:
jbDel.setBorder(unSelected);
jbAdd.setBorder(unSelected);
jbExit.setBorder(unSelected);
jbRun.setBorder(unSelected);
jbEdit.setBorder(unSelected);
}
/**
* 按鈕被選擇之后的事件
*/
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
// 點擊屬性設置的時候
if (obj == setupButton || obj == jbAdd) {
setButton(jbAdd);
reloadTime(this);
actionPanel.setText("設置屬性的名稱,長度,外鍵,類型等");
// 初始化外鍵列表
SetupDialog.forList.removeAll();
SetupDialog.forList.add("沒有外鍵");
SetupDialog.forList.select(0);
SetupDialog.editFlag = 0;
File modelDir = new File(Constants.modelDir);
if (modelDir.exists() == true
|| path.equals(Constants.modelDir) == false) {
// 將model下所有符合條件的model名加入外鍵列表
setList(SetupDialog.forList);
}
SetupDialog.setup();
setupDialog.setVisible(true);
}
// 關于對話框
else if (obj == aboutButton) {
setButton();
reloadTime(this);
actionPanel.setText("關于本軟件");
aboutDialog.setVisible(true);
}
// tomcat設置
else if (obj == tomcatButton) {
setButton();
reloadTime(this);
actionPanel.setText("需要先設置好tomact的系統變量");
String tomcat = "startup.bat";
Runtime rt = Runtime.getRuntime();
try {
rt.exec(new String[] { "cmd.exe", "/c", tomcat });
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
// 路徑設置
else if (obj == pathButton) {
setButton();
reloadTime(this);
actionPanel.setText("選擇生成文件的輸出工程");
int returnVal = jfchooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {// 當選擇確定的時候
if (jfchooser.getSelectedFile() != null) {// 當選擇的目錄不為空
path = jfchooser.getSelectedFile().toString();// 轉換path為當前選擇目錄
pathProject = jfchooser.getSelectedFile().toString();// 轉換pathProject為當前選擇目錄
modelFlag = 0;// 清modelFlag以便計算當前文件夾下是否含有model目錄
modelDireList.clear();
if (path.substring(1, path.length()).equals(":\\") == true)// 判斷不讓選擇的路徑為磁盤分區
actionPanel.setText("選擇路徑不能為磁盤分區,請選擇具體文件夾!");
else {
if (path.equals(Constants.modelDir) == false) {// 如果選擇的目錄為C:\\Model,不計算是否含有model
ArrayList model = new ArrayList(modelFind(path));// 使用modelFind方法將可用文件夾列表傳遞給modellist
if (model.size() == 0) {// 如果選擇的目錄下沒有符合條件的model目錄,提示系統默認目錄為"C:\\Model"
path = Constants.modelDir;
actionPanel
.setText("路徑選擇錯誤!該路徑下不存在符合條件的Model目錄!"
+ nl + "如果輸出將使用軟件默認目錄:" + nl
+ path);
} else if (model.size() > 1) {// 如果選擇的目錄下存在多個符合條件的model目錄
String text = "存在多個符合條件的model目錄,請重新具體選擇!" + nl
+ "目錄分別為:" + nl;
for (int i = 0; i < model.size(); i++) {
if (model.get(i).toString().length() > 35)// 如果路徑太長,分行顯示
text = text
+ model.get(i).toString()
.substring(0, 35)
+ nl
+ model
.get(i)
.toString()
.substring(
35,
model
.get(i)
.toString()
.length())
+ nl;
else
text = text + model.get(i) + nl;
}
path = Constants.modelDir;
text += "如果輸出將使用軟件默認目錄:" + nl + path;
actionPanel.setText(text);
} else {// 選擇的目錄下存在一個符合條件的model目錄
path = model.get(0).toString();
if (path.length() > 35)// 如果路徑太長,狀態欄分行顯示
actionPanel
.setText("文件輸出目錄為:"
+ nl
+ path.substring(0, 35)
+ nl
+ path.substring(35, path
.length()));
else
actionPanel.setText("文件輸出目錄為:" + nl + path);
listParent.removeAll();// 清空listParent
// 將model所有符合條件的model名加入listParent
setList(listParent);
}
} else
// 選定的輸出目錄為"C:\\Model"的時候
actionPanel.setText("文件輸出目錄為:" + nl + path);
}
}
}
}
// 確定按鈕
else if (obj == jbSure) {
setButton(jbSure);
reloadTime(this);
int flagCode = 0;
// 驗證code是否為英文字母和數字,如果不是,將flagCode設為1
for (int i = 0; i < jtCode.getText().length(); i++) {
if ((65 <= jtCode.getText().charAt(i) && jtCode.getText()
.charAt(i) <= 90)
|| (97 <= jtCode.getText().charAt(i) && jtCode
.getText().charAt(i) <= 122)
|| (48 <= jtCode.getText().charAt(i) && jtCode
.getText().charAt(i) <= 57))
continue;
else
flagCode = 1;
}
// 代碼輸入框不為空
if (jtCode.getText().equals("") == false) {
if (flagCode == 1)
actionPanel.setText("代碼名字必須為數字和字母!");
else {
// 保證文件名首字母大寫
Writer wr = new Writer();
String upperName = wr.getFileName(jtCode.getText());
fileName = upperName + ".java";// 得到文件名
// 如果parent可用,設置傳遞給writer的參數
if (listParent.getSelectedIndex() >= 0
&& checkParent.getState() == true) {
flagForeignKey = 1;
parentModel = listParent.getSelectedItem();
}
// 如果沒有設置合法路徑就生成文件,創建"C:\\Model"文件夾
if (path.equals(Constants.modelDir) == true) {
File f = new File(path);
f.mkdir();
}
// 判斷文件是否存在
File model = new File(path, fileName);
if (model.exists() == false) {
wr.fileCreate(jtCode.getText(), proList);// 調用fileCreate函數生成文件
modelList.add(jtCode.getText());
// 所有參數回復初始狀態
proList.clear();
listProperty.removeAll();
flagForeignKey = 0;
jtCode.setText("");
// 如果路徑太長,狀態欄分行顯示
if (path.length() > 35)
actionPanel.setText("Model已經生成,請繼續設置其他Model" + nl
+ "生成文件為:" + nl + path.substring(0, 35)
+ nl + path.substring(35, path.length())
+ "\\" + fileName);
else
actionPanel.setText("生成文件為:" + nl + path + "\\"
+ fileName);
} else {
// 如果文件存在,顯示警告提示框
warnDialog.setVisible(true);
}
}
} else {
actionPanel.setText("您還沒有輸入Model的名字,請在代碼對話框輸入");// 如果沒有設置代碼名
}
}
// 退出
else if (obj == jbExit) {
this.dispose();
}
// 刪除屬性
else if (obj == jbDel) {
setButton(jbDel);
reloadTime(this);
int index = 1;
// 當前列表里面有值才能刪除
if (listProperty.getItemCount() >= 1) {
if (listProperty.getSelectedIndex() >= 0) {
index = listProperty.getSelectedIndex();
proList.remove(index);// 在參數數組里面刪除
listProperty.remove(index);// 在顯示列表里面刪除
actionPanel.setText("屬性已刪除");
jbDel.setBorder(unSelected);
} else
actionPanel.setText("請先選定屬性");
} else
actionPanel.setText("沒有可刪除的選項");
if (listProperty.getItemCount() >= 1)
listProperty.select(index - 1);
}
// 修改屬性
else if (obj == jbEdit) {
setButton(jbEdit);
reloadTime(this);
if (listProperty.getItemCount() > 0) {
if (listProperty.getSelectedIndex() >= 0) {
actionPanel.setText("修改已設置的屬性");
// 初始化外鍵列表
SetupDialog.forList.removeAll();
SetupDialog.forList.add("沒有外鍵");
SetupDialog.forList.select(0);
File modelDir = new File(Constants.modelDir);
if (modelDir.exists() == true
|| path.equals(Constants.modelDir) == false) {
// 將model下所有符合條件的model名加入外鍵列表
setList(SetupDialog.forList);
}
setupDialog.edit();
SetupDialog.editFlag = 1;
setupDialog.setVisible(true);
} else
actionPanel.setText("請先選定屬性");
} else
actionPanel.setText("還沒有設置屬性,請先設置屬性。");
}
// 運行ant
else if (obj == jbRun) {
setButton(jbRun);
reloadTime(this);
this.setVisible(false);
run(modelList);
this.setVisible(true);
}
}
// 主方法
public static void main(String args[]) {
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
Auto auto = new Auto();
auto.setVisible(true);
}
/**
* 通過給定的文件名獲得圖像
*
* @param filename
* 給定圖像的文件名
* @return 圖像
*/
Image getImage(String filename) {
URLClassLoader urlLoader = (URLClassLoader) this.getClass()
.getClassLoader();
URL url = null;
Image image = null;
url = urlLoader.findResource(filename);
image = Toolkit.getDefaultToolkit().getImage(url);
MediaTracker mediatracker = new MediaTracker(this);
try {
mediatracker.addImage(image, 0);
mediatracker.waitForID(0);
} catch (InterruptedException _ex) {
image = null;
}
if (mediatracker.isErrorID(0)) {
image = null;
}
return image;
}
/**
* 勾選選擇框時
*/
public void itemStateChanged(ItemEvent e) {
Object obj = e.getSource();
if (obj == checkParent) {
setButton();
if (checkParent.getState() == true) {
// 顯示parent可用的外鍵列表
listParent.setVisible(true);
listParent.removeAll();
File modelDir = new File(Constants.modelDir);
if (modelDir.exists() == true
|| path.equals(Constants.modelDir) == false) {
// 將路徑下所有符合條件的model名加入listParent
setList(listParent);
}
} else
listParent.setVisible(false);
}
}
/**
* 運行ant
*/
void run(ArrayList model) {
int buildFlagg = 0;
int appgenBuildValue = 1;
int dbPrepareValue = 1;
int dbLoadValue = 1;
int deployValue = 1;
String appgenBuild;
String dbPrepare = "ant -buildfile " + ch + Auto.pathProject
+ "\\build.xml" + ch + " db-prepare";
String dbLoad = "ant -buildfile " + ch + Auto.pathProject
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -