You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
5.8 KiB
172 lines
5.8 KiB
package com.fr.design.javascript; |
|
|
|
import com.fr.design.beans.FurtherBasicBeanPane; |
|
import com.fr.design.gui.frpane.CommitTabbedPane; |
|
import com.fr.design.gui.ibutton.UIButton; |
|
import com.fr.design.layout.FRGUIPaneFactory; |
|
import com.fr.design.write.submit.DBManipulationPane; |
|
import com.fr.js.Commit2DBJavaScript; |
|
import com.fr.write.DBManipulation; |
|
|
|
import javax.swing.JPanel; |
|
import java.awt.BorderLayout; |
|
import java.awt.CardLayout; |
|
import java.awt.Dimension; |
|
import java.util.ArrayList; |
|
import java.util.List; |
|
|
|
public class Commit2DBJavaScriptPane extends FurtherBasicBeanPane<Commit2DBJavaScript> { |
|
private List dbmPaneList = new ArrayList(); |
|
private CommitTabbedPane commitTabbedPane; |
|
private JavaScriptActionPane javaScriptActionPane; |
|
private UIButton addCallbackButton; |
|
|
|
private JPanel cardPane; |
|
private String[] cardNames; |
|
|
|
/** |
|
* 构造函数,控件事件的提交入库面板 |
|
* |
|
* @param javaScriptActionPane JS提交面板对象 |
|
* @param dbManipulationPaneList 提交入库的提交面板列表 |
|
*/ |
|
public Commit2DBJavaScriptPane(final JavaScriptActionPane javaScriptActionPane, List dbManipulationPaneList) { |
|
this.dbmPaneList = dbManipulationPaneList; |
|
this.javaScriptActionPane = javaScriptActionPane; |
|
this.setLayout(FRGUIPaneFactory.createBorderLayout()); |
|
commitTabbedPane = new CommitTabbedPane(this, dbmPaneList); |
|
commitTabbedPane.setPreferredSize(new Dimension(commitTabbedPane.getWidth(), 20)); |
|
this.add(commitTabbedPane, BorderLayout.NORTH); |
|
|
|
cardPane = new JPanel(new CardLayout()); |
|
cardNames = new String[dbmPaneList.size()]; |
|
for (int i = 0; i < this.dbmPaneList.size(); i++) { |
|
if (((DBManipulationPane) this.dbmPaneList.get(i)).getSubMitName() == null) { |
|
cardNames[i] = ""; |
|
} else { |
|
cardNames[i] = ((DBManipulationPane) this.dbmPaneList.get(i)).getSubMitName(); |
|
} |
|
cardPane.add((DBManipulationPane) this.dbmPaneList.get(i), cardNames[i]); |
|
} |
|
this.add(cardPane, BorderLayout.CENTER); |
|
|
|
JPanel btPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); |
|
this.add(btPane, BorderLayout.SOUTH); |
|
|
|
addCallbackButton = javaScriptActionPane.createCallButton(); |
|
btPane.add(addCallbackButton); |
|
} |
|
|
|
/** |
|
* 更新DBManipulationPane |
|
*/ |
|
public void updateCardPane() { |
|
cardNames = new String[dbmPaneList.size()]; |
|
for (int i = 0; i < this.dbmPaneList.size(); i++) { |
|
if (((DBManipulationPane) this.dbmPaneList.get(i)).getSubMitName() == null) { |
|
cardNames[i] = ""; |
|
} else { |
|
cardNames[i] = ((DBManipulationPane) this.dbmPaneList.get(i)).getSubMitName(); |
|
} |
|
cardPane.add((DBManipulationPane) this.dbmPaneList.get(i), cardNames[i]); |
|
} |
|
CardLayout cardLayout = (CardLayout) cardPane.getLayout(); |
|
cardLayout.show(cardPane, cardNames[commitTabbedPane.getSelectedIndex()]); |
|
} |
|
|
|
public void setList(List list) { |
|
this.dbmPaneList = list; |
|
} |
|
|
|
/** |
|
* 新建DBManipulationPane |
|
* |
|
* @return 新建的DBManipulationPane |
|
*/ |
|
public DBManipulationPane createDBManipulationPane() { |
|
DBManipulationPane db = javaScriptActionPane.createDBManipulationPane(); |
|
db.populateBean(null); |
|
dbmPaneList.add(db); |
|
return db; |
|
|
|
} |
|
|
|
/** |
|
* 窗口名称 |
|
* |
|
* @return 返回窗口名称 |
|
*/ |
|
public String title4PopupWindow() { |
|
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_JavaScript_Commit_To_Database"); |
|
} |
|
|
|
/** |
|
* 界面重置 |
|
*/ |
|
public void reset() { |
|
this.javaScriptActionPane.setCall(null); |
|
//重置后只保留,只留第一个tab |
|
while (dbmPaneList.size() > 1) { |
|
dbmPaneList.remove(1); |
|
} |
|
((DBManipulationPane) dbmPaneList.get(0)).populateBean(null); |
|
} |
|
|
|
@Override |
|
/** |
|
* 将JavaBean内的数据输出至界面上 |
|
*/ |
|
public void populateBean(Commit2DBJavaScript commit2db) { |
|
if (commit2db == null) { |
|
reset(); |
|
return; |
|
} |
|
//先把原来的list清除,然后再根据传入参数重新add |
|
dbmPaneList.clear(); |
|
this.javaScriptActionPane.setCall(commit2db.getCallBack()); |
|
for(int i = 0;i < commit2db.getDBManipulation().size();i++){ |
|
DBManipulationPane dbmp = javaScriptActionPane.createDBManipulationPane(); |
|
dbmp.populateBean((DBManipulation)commit2db.getDBManipulation().get(i)); |
|
dbmPaneList.add(dbmp); |
|
} |
|
commitTabbedPane.refreshTab(); |
|
} |
|
|
|
/** |
|
* 更新数据层JavaBean |
|
* |
|
* @return 返回JavaBean |
|
*/ |
|
public Commit2DBJavaScript updateBean() { |
|
Commit2DBJavaScript commit2dbJavaScript = new Commit2DBJavaScript(); |
|
|
|
if (javaScriptActionPane.getResourceInfo() != null) { |
|
commit2dbJavaScript.setJsResourceInfo(javaScriptActionPane.getResourceInfo()); |
|
} |
|
List dbmaniList = new ArrayList(); |
|
for(int i = 0; i < this.dbmPaneList.size(); i++){ |
|
DBManipulationPane dbmpane =(DBManipulationPane)this.dbmPaneList.get(i); |
|
if(i > dbmPaneList.size()-1){ |
|
dbmPaneList.add(dbmpane); |
|
} |
|
DBManipulation dbManipulation = dbmpane.updateBean(); |
|
dbmaniList.add(dbManipulation); |
|
} |
|
commit2dbJavaScript.setDBManipulation(dbmaniList); |
|
|
|
commit2dbJavaScript.setCallBack(this.javaScriptActionPane.getCall()); |
|
|
|
return commit2dbJavaScript; |
|
} |
|
|
|
/** |
|
* 判断是否是能接受的数据类型 |
|
* |
|
* @param ob 对象 |
|
* @return 返回是否是能接受的数据类型 |
|
*/ |
|
public boolean accept(Object ob) { |
|
return ob instanceof Commit2DBJavaScript; |
|
} |
|
|
|
} |