package plm.grandright.client.utils;
|
|
import java.awt.GridBagConstraints;
|
import java.awt.GridBagLayout;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.awt.event.ItemEvent;
|
import java.awt.event.ItemListener;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Map.Entry;
|
|
import javax.swing.DefaultListModel;
|
import javax.swing.JButton;
|
import javax.swing.JCheckBox;
|
import javax.swing.JComboBox;
|
import javax.swing.JDialog;
|
import javax.swing.JLabel;
|
import javax.swing.JList;
|
import javax.swing.JOptionPane;
|
import javax.swing.JPanel;
|
import javax.swing.JRadioButton;
|
import javax.swing.JTable;
|
import javax.swing.JTextField;
|
import javax.swing.ListModel;
|
import javax.swing.table.JTableHeader;
|
import javax.swing.table.TableColumn;
|
import javax.swing.table.TableColumnModel;
|
import javax.swing.tree.DefaultMutableTreeNode;
|
import javax.swing.tree.TreePath;
|
import javax.swing.tree.TreeSelectionModel;
|
|
import org.dom4j.Document;
|
|
import plm.corba.btm.BtmItem;
|
import plm.corba.checkRight.CheckRightService;
|
import plm.corba.checkRight.CheckRightServiceHelper;
|
import plm.corba.grandRight.GrandRightService;
|
import plm.corba.grandRight.GrandRightServiceHelper;
|
import plm.corba.grandRight.GrandValue;
|
import com.vci.corba.common.VCIError;
|
import plm.corba.qt.QTD;
|
import plm.corba.qt.QTWrapper;
|
import plm.grandright.client.model.BooleanTableModel;
|
import plm.grandright.client.view.AbstractUIFunclet;
|
import plm.grandright.client.view.OrdinaryOpPanel;
|
import plm.grandright.client.view.RelationAndLifeCycleOpPanel;
|
import plm.grandright.client.vo.OpItem;
|
import plm.grandright.client.vo.SelectedSubjectItem;
|
import plm.oq.objectQuery.client.ui.ConditionPanel;
|
import plm.oq.objectQuery.common.Parser;
|
import plm.oq.objectQuery.common.QueryTemplate;
|
import plm.oq.objectQuery.common.Tool;
|
import plm.vo.omd.btm.wrapper.BtmItemWrapper;
|
|
import com.vci.base.common.corbautil.NameServiceUtility;
|
import com.vci.util.Log;
|
|
public class RightManagerHelper {
|
private static GrandRightService grandRightService = null;
|
private static CheckRightService checkRightService = null;
|
|
public static CheckRightService getCheckRightService() throws VCIError {
|
if (checkRightService != null) {
|
return checkRightService;
|
}
|
try {
|
|
NameServiceUtility nsu = new NameServiceUtility(false);
|
nsu.InitORBEnv();
|
nsu.InitORB();
|
nsu.InitNameContext();
|
System.setProperty("user.timezone", "GMT+8");
|
return checkRightService = CheckRightServiceHelper.narrow(nsu
|
.getObjectByName("checkRightService"));
|
} catch (Exception e) {
|
Log.error(e.getMessage(), e);
|
throw new VCIError("1", new String[] { e.getMessage() });
|
}
|
}
|
|
public static GrandRightService getGrandRightServicer() throws VCIError {
|
if (grandRightService != null) {
|
return grandRightService;
|
}
|
try {
|
|
NameServiceUtility nsu = new NameServiceUtility(false);
|
nsu.InitORBEnv();
|
nsu.InitORB();
|
nsu.InitNameContext();
|
System.setProperty("user.timezone", "GMT+8");
|
return grandRightService = GrandRightServiceHelper.narrow(nsu
|
.getObjectByName("grandRightService"));
|
} catch (Exception e) {
|
Log.error(e.getMessage(), e);
|
throw new VCIError("1", new String[] { e.getMessage() });
|
}
|
}
|
|
public static BtmItem getResourceType(AbstractUIFunclet funclet) {
|
TreeSelectionModel model = (TreeSelectionModel) funclet
|
.getResourceTree().getSelectionModel();
|
TreePath path = model.getSelectionPath();
|
if (null == path) {
|
return null;
|
}
|
DefaultMutableTreeNode node = (DefaultMutableTreeNode) path
|
.getLastPathComponent();
|
if (!(node.getUserObject() instanceof BtmItemWrapper)) {
|
return null;
|
}
|
// ÀàÐÍÐÅÏ¢
|
BtmItemWrapper btmWrap = (BtmItemWrapper) node.getUserObject();
|
if (null == btmWrap || btmWrap.btmItem == null) {
|
return null;
|
}
|
return btmWrap.btmItem;
|
}
|
|
public static GrandValue[] getRightDatas(String typeName) {
|
GrandValue[] dataSets = null;
|
try {
|
dataSets = getGrandRightServicer().query(typeName);
|
} catch (Throwable e) {
|
JOptionPane.showMessageDialog(
|
com.vci.rmip.logon.client.LogonApplication.frame,
|
((VCIError) e).error_message[0], "´íÎóÌáʾ",
|
JOptionPane.ERROR_MESSAGE);
|
return dataSets;
|
}
|
return dataSets;
|
}
|
|
public static void setRuleListDatas(AbstractUIFunclet funclet,
|
GrandValue[] values) {
|
BooleanTableModel ruleModel = (BooleanTableModel) funclet
|
.getRightMainPanel().getRuleTable().getModel();
|
// Ë¢ÐÂÒ³Ãæ»º´æ
|
funclet.getRightMainPanel().getRuleTable().removeAll();
|
// ruleModel.RemoveAllConditionValue();
|
setRuleTableHeader(funclet, values);
|
setColunmData(funclet, values);
|
funclet.getRightMainPanel().getRuleTable().setModel(ruleModel);
|
}
|
|
private static void setColunmData(AbstractUIFunclet funclet,
|
GrandValue[] values) {
|
BooleanTableModel ruleModel = (BooleanTableModel) funclet
|
.getRightMainPanel().getRuleTable().getModel();
|
// ÒÀ¾Ý¹æÔòÃû³Æ£¬¹æÔò·ÖÀà
|
Map<String, List<GrandValue>> splitRuleMap = splitRuleByName(values);
|
// ÒÀ¾Ý¹æÔòÃû³Æ
|
int row = 0;
|
// ÉèÖùæÔò¼Ç¼ÐÐÊý
|
ruleModel.setRowCount(splitRuleMap.size());
|
for (Iterator<Map.Entry<String, List<GrandValue>>> iter = splitRuleMap
|
.entrySet().iterator(); iter.hasNext();) {
|
Entry<String, List<GrandValue>> entry = iter.next();
|
List<GrandValue> rules = entry.getValue();
|
|
// Ôö¼ÓÒ³Ãæ»º´æ
|
ruleModel.setConditionValue(row, rules);
|
|
for (int j = 0; j < rules.size(); j++) {
|
// ¹æÔòÃûºÍÀàÐÍ
|
ruleModel.setValueAt(rules.get(j).ruleName, row, 0);
|
if (rules.get(j).ruleType.equals(IRightConstant.RULETYPE__HAS)) {
|
ruleModel.setValueAt("ÔÊÐí¹æÔò", row, 1);
|
} else if (rules.get(j).ruleType
|
.equals(IRightConstant.RULETYPE__NOTHAS)) {
|
ruleModel.setValueAt("¾Ü¾ø¹æÔò", row, 1);
|
} else if (rules.get(j).ruleType
|
.equals(IRightConstant.RULETYPE_ALL_HAS)) {
|
ruleModel.setValueAt("È«²¿ÓÐȨ", row, 1);
|
} else {
|
ruleModel.setValueAt("È«²¿ÎÞȨ", row, 1);
|
}
|
// Ö¸¶¨µÄ²Ù×÷¸³Öµ
|
TableColumnModel columnModel = funclet.getRightMainPanel()
|
.getRuleTable().getColumnModel();
|
int start = rules.get(j).identifier.lastIndexOf("_") + 1;
|
String op = rules.get(j).identifier.substring(start,
|
rules.get(j).identifier.length());
|
int columnIndex = columnModel.getColumnIndex(op);
|
|
ruleModel.setValueAt(
|
rules.get(j).isGrand == '1' ? true : false, row,
|
columnIndex);
|
}
|
++row;
|
}
|
}
|
|
private static Map<String, List<GrandValue>> splitRuleByName(
|
GrandValue[] values) {
|
Map<String, List<GrandValue>> splitRuleMap = new HashMap<String, List<GrandValue>>();
|
for (int i = 0; i < values.length; i++) {
|
if (splitRuleMap.get(values[i].ruleName) == null) {
|
List<GrandValue> ruleOfOneName = new ArrayList<GrandValue>();
|
ruleOfOneName.add(values[i]);
|
splitRuleMap.put(values[i].ruleName, ruleOfOneName);
|
} else {
|
splitRuleMap.get(values[i].ruleName).add(values[i]);
|
}
|
|
}
|
return splitRuleMap;
|
|
}
|
|
private static void setRuleTableHeader(AbstractUIFunclet funclet,
|
GrandValue[] values) {
|
BooleanTableModel ruleModel = (BooleanTableModel) funclet
|
.getRightMainPanel().getRuleTable().getModel();
|
// ²Ù×÷ÐÅÏ¢
|
List<String> ops = new ArrayList<String>();
|
for (int i = 0; i < values.length; i++) {
|
int start = values[i].identifier.lastIndexOf("_") + 1;
|
String op = values[i].identifier.substring(start,
|
values[i].identifier.length());
|
if (!ops.contains(op)) {
|
ops.add(op);
|
}
|
}
|
// ²Ù×÷ÐÅÏ¢
|
String[] operations = ops.toArray(new String[ops.size()]);
|
// ÉèÖÃTableÁÐÍ·ÐÅÏ¢
|
List<String> tableHeader = new ArrayList<String>();
|
tableHeader.add("¹æÔòÃû³Æ");
|
tableHeader.add("¹æÔòÀàÐÍ");
|
for (int m = 0; m < operations.length; m++) {
|
tableHeader.add(operations[m]);
|
|
}
|
// ruleModel.setColumnCount(tableHeader.size());
|
ruleModel.setColumnIdentifiers(tableHeader
|
.toArray(new String[tableHeader.size()]));
|
// ÉèÖÃÁпí
|
// JTable table = funclet.getRightMainPanel().getRuleTable();
|
// TableColumnModel columnModel = table.getColumnModel();
|
// double maxWidth = 0;
|
// for (int i = 0; i < columnModel.getColumnCount(); i++) {
|
// TableColumn column = columnModel.getColumn(i);
|
// TableCellRenderer cellRenderer = column.getHeaderRenderer();
|
// if (cellRenderer == null)
|
// cellRenderer = table.getDefaultRenderer(columnModel
|
// .getColumn(i).getClass());
|
// Object headerValue = column.getHeaderValue();
|
// Component columnComp = cellRenderer.getTableCellRendererComponent(
|
// (JTable) table, headerValue, false, false, 0, i);
|
//
|
// maxWidth = Math.max(maxWidth, columnComp.getPreferredSize()
|
// .getWidth());
|
// }
|
// JTableHeader jtableHeader = table.getTableHeader();
|
//
|
// Dimension size = jtableHeader.getPreferredSize();
|
// size.width = (int) maxWidth;
|
// jtableHeader.setPreferredSize(size);
|
// int i =columnModel.getTotalColumnWidth();
|
setPreferSizeColumnWidth(funclet);
|
|
}
|
|
public static void setPreferSizeColumnWidth(AbstractUIFunclet funclet) {
|
JTable table = funclet.getRightMainPanel().getRuleTable();
|
JTableHeader jtableHeader = table.getTableHeader();
|
TableColumnModel columnModel = table.getColumnModel();
|
// double maxWidth = 0;
|
for (int i = 0; i < columnModel.getColumnCount(); i++) {
|
TableColumn column = columnModel.getColumn(i);
|
int col = jtableHeader.getColumnModel().getColumnIndex(
|
column.getIdentifier());
|
int width = (int) jtableHeader
|
.getDefaultRenderer()
|
.getTableCellRendererComponent(table,
|
column.getIdentifier(), false, false, -1, col)
|
.getPreferredSize().getWidth();
|
for (int row = 0; row < table.getRowCount(); row++) {
|
int preferSize = (int) table
|
.getCellRenderer(row, col)
|
.getTableCellRendererComponent(table,
|
table.getValueAt(row, col), false, false, row,
|
col).getPreferredSize().getWidth();
|
width = Math.max(width, preferSize);
|
}
|
jtableHeader.setResizingColumn(column);
|
column.setWidth(width + table.getIntercellSpacing().width);
|
}
|
}
|
|
public static void setRuleConditionDatas(AbstractUIFunclet funclet,
|
int selectedRow, GrandValue value, String typeName) {
|
if (value == null) {
|
return;
|
}
|
// ÉèÖùæÔòµÄÀàÐÍ(»á´¥·¢Ê¼þ)
|
funclet.getRightMainPanel().setRuleType(value.ruleType);
|
if (value.ruleType.equals(IRightConstant.RULETYPE__NOTHAS)
|
|| value.ruleType.equals(IRightConstant.RULETYPE__HAS)) {
|
ConditionPanel conditonPanel = (ConditionPanel) funclet
|
.getRightMainPanel().getRightRulePanel();
|
if ((conditonPanel instanceof ConditionPanel)) {
|
if ((conditonPanel.getRadioBtm().isSelected() && isBtm(funclet,
|
value))
|
|| conditonPanel.getRadioLinkType().isSelected()
|
&& !isBtm(funclet, value)) {
|
// ÖØÐ»æÖƱí´ïÊ½Ãæ°å
|
((ConditionPanel) conditonPanel).setQTUI(getQtWraper(value,
|
typeName, conditonPanel));
|
// ˢнçÃæ
|
((ConditionPanel) conditonPanel).updateUI();
|
}
|
addRadioListener(funclet, selectedRow, typeName,
|
conditonPanel.getRadioBtm());
|
addRadioListener(funclet, selectedRow, typeName,
|
conditonPanel.getRadioLinkType());
|
}
|
}
|
// ÉèÖùæÔòµÄÃû³Æ
|
funclet.getRightMainPanel().getRuleNameTextField()
|
.setText(value.ruleName);
|
}
|
|
private static boolean isBtm(AbstractUIFunclet funclet, GrandValue value) {
|
ConditionPanel conditonPanel = (ConditionPanel) funclet
|
.getRightMainPanel().getRightRulePanel();
|
int flag = conditonPanel.getRadioFlag();
|
if ((flag == 0 && value != null && value.ruleText != null && !value.ruleText
|
.equals(""))
|
|| (flag == 1 && value != null && value.seniorRuleText != null && !value.seniorRuleText
|
.equals(""))) {
|
return true;
|
}
|
return false;
|
}
|
|
private static void addRadioListener(final AbstractUIFunclet funclet,
|
final int selectedRow, final String typeName, JRadioButton radioBtn) {
|
// ÉèÖÃradioµÄ¼àÌýʼþ(±£Áô×î³õµÄ¼àÌý)
|
ItemListener[] ls = radioBtn.getItemListeners();
|
List<ItemListener> oldLs = new ArrayList<ItemListener>();
|
ItemListener old = ls[0];
|
for (int i = 0; i < ls.length; i++) {
|
oldLs.add(ls[i]);
|
}
|
|
for (int j = 0; j < oldLs.size(); j++) {
|
radioBtn.removeItemListener(oldLs.get(j));
|
}
|
|
radioBtn.addItemListener(new ItemListener() {
|
@Override
|
public void itemStateChanged(ItemEvent e) {
|
try {
|
BooleanTableModel ruleModel = (BooleanTableModel) funclet
|
.getRightMainPanel().getRuleTable().getModel();
|
GrandValue value = ((List<GrandValue>) ruleModel
|
.getConditionValueAt(selectedRow)).get(0);
|
BtmItem btm = RightManagerHelper.getResourceType(funclet);
|
if (btm == null || value == null) {
|
return;
|
}
|
// ÖØÐ»æÖƱí´ïÊ½Ãæ°å
|
ConditionPanel conditonPanel = (ConditionPanel) funclet
|
.getRightMainPanel().getRightRulePanel();
|
if ((conditonPanel.getRadioBtm().isSelected() && isBtm(
|
funclet, value))
|
|| conditonPanel.getRadioLinkType().isSelected()
|
&& !isBtm(funclet, value)) {
|
// ˢйæÔòÃæ°åÊý¾Ý
|
conditonPanel.setQTUI(getQtWraper(value, typeName,
|
conditonPanel));
|
// ˢнçÃæ
|
conditonPanel.updateUI();
|
}
|
} catch (Exception ex) {
|
ex.printStackTrace();
|
}
|
}
|
});
|
radioBtn.addItemListener(old);
|
}
|
|
private static QTWrapper getQtWraper(GrandValue value, String typeName,
|
ConditionPanel conditonPanel) {
|
QTWrapper qtWrapper = new QTWrapper();
|
qtWrapper.btmName = typeName;
|
qtWrapper.qtName = value.ruleName;
|
// ÒµÎñÀàÐÍ
|
if (!conditonPanel.isLinkTypeSelected()) {
|
qtWrapper.qtText = value.ruleText;
|
qtWrapper.qtUIText = value.seniorRuleText;
|
if (value.seniorRuleText == null || value.seniorRuleText.equals(""))
|
qtWrapper.levelFlag = 0;
|
else
|
qtWrapper.levelFlag = 1;
|
} else {
|
// Á´½ÓÀàÐÍ
|
qtWrapper.qtText = value.lruleText;
|
qtWrapper.qtUIText = value.lseniorRuleText;
|
if (value.lseniorRuleText == null
|
|| value.lseniorRuleText.equals(""))
|
qtWrapper.levelFlag = 0;
|
else
|
qtWrapper.levelFlag = 1;
|
}
|
return qtWrapper;
|
}
|
|
public static void setSubjectDatas(AbstractUIFunclet funclet,
|
GrandValue value) {
|
JList selectedSubjects = funclet.getRightMainPanel()
|
.getSelectedSubjectComponent();
|
Object[] users = value.users.split(",");
|
Object[] roles = value.roles.split(",");
|
Object[] userGroups = value.userGroups.split(",");
|
ListModel selectListModel = (ListModel) selectedSubjects.getModel();
|
// ³õʼ»¯Êý¾ÝÄ£ÐÍ£¬Çå¿ÕÊý¾Ý
|
selectListModel = new DefaultListModel();
|
((DefaultListModel) selectListModel).setSize(users.length
|
+ roles.length + userGroups.length);
|
for (int i = 0; i < users.length; i++) {
|
if (users[i] != null && !users[i].equals("")) {
|
SelectedSubjectItem item = new SelectedSubjectItem();
|
item.setCode((String) (users[i]));
|
item.setName((String) (users[i]));
|
item.setType(IRightConstant.User);
|
((DefaultListModel) selectListModel).setElementAt(item, i);
|
}
|
|
}
|
for (int i = users.length; i < users.length + roles.length; i++) {
|
if (roles[i - users.length] != null
|
&& !roles[i - users.length].equals("")) {
|
SelectedSubjectItem item = new SelectedSubjectItem();
|
item.setCode((String) roles[i - users.length]);
|
item.setName((String) roles[i - users.length]);
|
item.setType(IRightConstant.Role);
|
|
((DefaultListModel) selectListModel).setElementAt(item, i);
|
}
|
}
|
|
for (int i = users.length + roles.length; i < users.length
|
+ roles.length + userGroups.length; i++) {
|
if (userGroups[i - users.length - roles.length] != null
|
&& !userGroups[i - users.length - roles.length].equals("")) {
|
SelectedSubjectItem item = new SelectedSubjectItem();
|
item.setCode((String) userGroups[i - users.length
|
- roles.length]);
|
item.setName((String) userGroups[i - users.length
|
- roles.length]);
|
item.setType(IRightConstant.UserGroup);
|
|
((DefaultListModel) selectListModel).setElementAt(item, i);
|
}
|
}
|
selectedSubjects.setModel(selectListModel);
|
int selected[] = new int[users.length + roles.length
|
+ userGroups.length];
|
for (int i = 0; i < users.length; i++) {
|
selected[i] = i;
|
}
|
for (int i = users.length; i < users.length + roles.length; i++) {
|
selected[i] = i;
|
|
}
|
for (int i = users.length + roles.length; i < users.length
|
+ roles.length + userGroups.length; i++) {
|
selected[i] = i;
|
|
}
|
selectedSubjects.setSelectedIndices(selected);
|
selectedSubjects.updateUI();
|
}
|
|
public static List<GrandValue> fillOperationsInfo(
|
AbstractUIFunclet funclet, String typeName) {
|
List<GrandValue> values = new ArrayList<GrandValue>();
|
// Ò»°ã²Ù×÷ÐÅÏ¢
|
OpItem[] ops = ((OrdinaryOpPanel) funclet.getRightMainPanel()
|
.getOrdinaryOpPanel()).getOpObject();
|
// ¹ØÏµºÍԾǨ
|
OpItem[] rlops = ((RelationAndLifeCycleOpPanel) funclet
|
.getRightMainPanel().getRelationAndLifeCycleOpPanel())
|
.getOpObject();
|
for (OpItem op : ops) {
|
GrandValue value = new GrandValue();
|
value.identifier = typeName + "_" + op.getName();
|
value.ID = "";
|
value.isGrand = (((Boolean) op.getValue()) == false ? '0' : '1');
|
values.add(value);
|
}
|
// ¹ØÏµºÍԾǨ
|
for (OpItem op : rlops) {
|
GrandValue value = new GrandValue();
|
value.identifier = typeName + "_" + op.getName();
|
value.ID = "";
|
value.isGrand = (((Boolean) op.getValue()) == false ? '0' : '1');
|
values.add(value);
|
}
|
return values;
|
|
}
|
|
public static boolean fillSubjectInfo(AbstractUIFunclet funclet,
|
List<GrandValue> values) {
|
|
JList selectedSubjects = funclet.getRightMainPanel()
|
.getSelectedSubjectComponent();
|
Object[] subjects = selectedSubjects.getSelectedValues();
|
|
if (subjects == null || subjects.length == 0) {
|
JOptionPane.showMessageDialog(
|
com.vci.rmip.logon.client.LogonApplication.frame,
|
"ÇëÑ¡ÔñÊÚȨÖ÷ÌåÐÅÏ¢", "Ìáʾ", JOptionPane.INFORMATION_MESSAGE);
|
return false;
|
}
|
|
// user
|
StringBuffer user = new StringBuffer("");
|
// role
|
StringBuffer role = new StringBuffer("");
|
// roleGroup
|
StringBuffer userGroup = new StringBuffer("");
|
for (int i = 0; i < subjects.length; i++) {
|
SelectedSubjectItem vec = (SelectedSubjectItem) subjects[i];
|
if (vec == null) {
|
continue;
|
}
|
if (vec.getType().equals(IRightConstant.User)) {
|
user.append(vec.getCode()).append(",");
|
} else if (vec.getType().equals(IRightConstant.Role)) {
|
role.append(vec.getCode()).append(",");
|
} else {
|
userGroup.append(vec.getCode()).append(",");
|
}
|
}
|
|
for (int i = 0; i < values.size(); i++) {
|
values.get(i).roles = role.length() == 0 ? "" : role.toString();
|
values.get(i).users = user.length() == 0 ? "" : user.toString();
|
values.get(i).userGroups = userGroup.length() == 0 ? "" : userGroup.toString();
|
}
|
return true;
|
}
|
|
public static boolean fillObjectInfo(AbstractUIFunclet funclet,
|
List<GrandValue> values) {
|
JPanel conditionPanel = funclet.getRightMainPanel().getRightRulePanel();
|
QueryTemplate qt = null;
|
if ((conditionPanel instanceof ConditionPanel)) {
|
ConditionPanel conditionPane = ((ConditionPanel) conditionPanel);
|
qt = ((ConditionPanel) conditionPanel).getQT();
|
String checkInfo = Tool.checkQT(qt);
|
if (!checkInfo.equals("OK")) {
|
return false;
|
}
|
// »ñÈ¡¹æÔòÃû³Æ
|
if (funclet.getRightMainPanel().getRuleName() == null
|
|| funclet.getRightMainPanel().getRuleName().equals("")) {
|
JOptionPane.showMessageDialog(
|
com.vci.rmip.logon.client.LogonApplication.frame,
|
"ÇëÉèÖùæÔòÃû³Æ", "Ìáʾ", JOptionPane.INFORMATION_MESSAGE);
|
return false;
|
}
|
|
qt = conditionPane.getQT();
|
qt.setId(funclet.getRightMainPanel().getRuleName());
|
qt.setLinkType("");
|
for (int i = 0; i < values.size(); i++) {
|
values.get(i).ruleName = funclet.getRightMainPanel()
|
.getRuleName();
|
values.get(i).ruleType = funclet.getRightMainPanel()
|
.getRuleType();
|
// ÒµÎñÀàÐÍ
|
if (!((ConditionPanel) conditionPanel).isLinkTypeSelected()) {
|
Document doc = conditionPane.getSeniorTreeDoc();
|
if (doc == null) {
|
values.get(i).seniorRuleText = "";
|
} else {
|
values.get(i).seniorRuleText = doc.asXML();
|
}
|
values.get(i).ruleText = Tool.qtTOXMl(qt).asXML();
|
Parser parser = new Parser(qt);
|
parser.setAddGrandRightFlag(false);
|
String sql = parser.parseToSql();
|
values.get(i).expToSQL = sql.substring(
|
sql.indexOf("where") + 6, sql.length());
|
// Á´½ÓÀàÐÍÊôÐÔ
|
values.get(i).lruleText = "";
|
values.get(i).lseniorRuleText = "";
|
values.get(i).lexpToSQL = "";
|
} else {
|
// Á´½ÓÀàÐÍ
|
Document doc = conditionPane.getSeniorTreeDoc();
|
if (doc == null) {
|
values.get(i).lseniorRuleText = "";
|
} else {
|
values.get(i).lseniorRuleText = doc.asXML();
|
}
|
values.get(i).lruleText = Tool.qtTOXMl(qt).asXML();
|
Parser parser = new Parser(qt);
|
parser.setAddGrandRightFlag(false);
|
String sql = parser.parseToSql();
|
values.get(i).lexpToSQL = sql.substring(
|
sql.indexOf("where") + 6, sql.length());
|
// ÒµÎñÀàÐÍÊôÐÔ
|
values.get(i).ruleText = "";
|
values.get(i).seniorRuleText = "";
|
values.get(i).expToSQL = "";
|
}
|
}
|
} else {
|
// »ñÈ¡¹æÔòÃû³Æ
|
if (funclet.getRightMainPanel().getRuleName() == null
|
|| funclet.getRightMainPanel().getRuleName().equals("")) {
|
JOptionPane.showMessageDialog(
|
com.vci.rmip.logon.client.LogonApplication.frame,
|
"ÇëÉèÖùæÔòÃû³Æ", "Ìáʾ", JOptionPane.INFORMATION_MESSAGE);
|
return false;
|
}
|
for (int i = 0; i < values.size(); i++) {
|
values.get(i).ruleText = "";
|
values.get(i).seniorRuleText = "";
|
values.get(i).expToSQL = "";
|
values.get(i).lruleText = "";
|
values.get(i).lseniorRuleText = "";
|
values.get(i).lexpToSQL = "";
|
values.get(i).ruleName = funclet.getRightMainPanel()
|
.getRuleName();
|
values.get(i).ruleType = funclet.getRightMainPanel()
|
.getRuleType();
|
}
|
|
}
|
return true;
|
}
|
|
public static void setOpDatas(final AbstractUIFunclet funclet,
|
List<OpItem> ops) {
|
// ¹æÔòtable
|
JCheckBox[] checkBoxs = ((OrdinaryOpPanel) funclet.getRightMainPanel()
|
.getOrdinaryOpPanel()).getOpCheckBoxs();
|
for (JCheckBox cb : checkBoxs) {
|
for (OpItem op : ops) {
|
if (cb.getText().equals(op.getName())) {
|
cb.setSelected((Boolean) op.getValue() == null ? false
|
: (Boolean) op.getValue());
|
}
|
}
|
}
|
// ¹ØÏµºÍԾǨ
|
JCheckBox[] rlcheckBoxs = ((RelationAndLifeCycleOpPanel) funclet
|
.getRightMainPanel().getRelationAndLifeCycleOpPanel())
|
.getOpCheckBoxs();
|
for (JCheckBox cb : rlcheckBoxs) {
|
for (OpItem op : ops) {
|
if (cb.getText().equals(op.getName())) {
|
cb.setSelected((Boolean) op.getValue() == null ? false
|
: (Boolean) op.getValue());
|
}
|
}
|
}
|
}
|
|
public static void initTipPanel(QTD qtd, final AbstractUIFunclet funclet) {
|
JDialog dialog = new JDialog();
|
|
dialog.add(funclet.getTipPanel());
|
// JRadioButton rdGeneral = new JRadioButton();
|
// JRadioButton rdSenior = new JRadioButton();
|
funclet.getTipPanel().removeAll();
|
funclet.getTipPanel().updateUI();
|
funclet.getTipPanel().setAutoscrolls(true);
|
funclet.getTipPanel().setLayout(new GridBagLayout());
|
String[] abNames = "a,s,d,d".split(",");// qtd.abNames;
|
if (true) {
|
for (int i = 0; i < abNames.length; i++) {
|
GridBagConstraints g = new GridBagConstraints();
|
g.anchor = GridBagConstraints.WEST;
|
g.gridx = 0;
|
g.gridy = i;
|
final JButton btnRemove = new JButton("x");
|
funclet.getTipPanel().add(btnRemove, g);
|
final JLabel labName = new JLabel(abNames[i]);
|
g.gridx = 1;
|
funclet.getTipPanel().add(labName, g);
|
g.gridx = 2;
|
final JComboBox combCons = new JComboBox();
|
combCons.addItem("=");
|
combCons.addItem("!=");
|
combCons.addItem("å
å«");
|
funclet.getTipPanel().add(combCons, g);
|
g.gridx = 3;
|
g.gridwidth = GridBagConstraints.REMAINDER;
|
final JTextField tfValue = new JTextField(10);
|
funclet.getTipPanel().add(tfValue, g);
|
|
btnRemove.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
funclet.getTipPanel().remove(btnRemove);
|
funclet.getTipPanel().remove(labName);
|
funclet.getTipPanel().remove(combCons);
|
funclet.getTipPanel().remove(tfValue);
|
funclet.getTipPanel().updateUI();
|
}
|
});
|
}
|
dialog.setVisible(true);
|
}
|
}
|
|
public static void clear(AbstractUIFunclet funclet) {
|
BooleanTableModel ruleModel = (BooleanTableModel) funclet
|
.getRightMainPanel().getRuleTable().getModel();
|
// Ë¢ÐÂÒ³Ãæ»º´æ
|
ruleModel.RemoveAllConditionValue();
|
ruleModel.setRowCount(0);
|
}
|
|
}
|