|
|
@ -10,6 +10,7 @@ import com.fr.design.data.datapane.preview.desensitization.view.rule.Desensitiza |
|
|
|
import com.fr.design.dialog.BasicDialog; |
|
|
|
import com.fr.design.dialog.BasicDialog; |
|
|
|
import com.fr.design.dialog.DialogActionAdapter; |
|
|
|
import com.fr.design.dialog.DialogActionAdapter; |
|
|
|
import com.fr.design.event.UIObserverListener; |
|
|
|
import com.fr.design.event.UIObserverListener; |
|
|
|
|
|
|
|
import com.fr.design.file.HistoryTemplateListCache; |
|
|
|
import com.fr.design.gui.ibutton.UIButton; |
|
|
|
import com.fr.design.gui.ibutton.UIButton; |
|
|
|
import com.fr.design.gui.icombocheckbox.UIComboCheckBox; |
|
|
|
import com.fr.design.gui.icombocheckbox.UIComboCheckBox; |
|
|
|
import com.fr.design.gui.ilable.UILabel; |
|
|
|
import com.fr.design.gui.ilable.UILabel; |
|
|
@ -19,6 +20,8 @@ import com.fr.design.layout.FRGUIPaneFactory; |
|
|
|
import com.fr.design.layout.TableLayout; |
|
|
|
import com.fr.design.layout.TableLayout; |
|
|
|
import com.fr.design.layout.TableLayoutHelper; |
|
|
|
import com.fr.design.layout.TableLayoutHelper; |
|
|
|
import com.fr.design.layout.VerticalFlowLayout; |
|
|
|
import com.fr.design.layout.VerticalFlowLayout; |
|
|
|
|
|
|
|
import com.fr.design.mainframe.JTemplate; |
|
|
|
|
|
|
|
import com.fr.design.mainframe.JTemplateActionListener; |
|
|
|
import com.fr.report.cell.desensitization.CellDesensitizationBean; |
|
|
|
import com.fr.report.cell.desensitization.CellDesensitizationBean; |
|
|
|
import com.fr.stable.StringUtils; |
|
|
|
import com.fr.stable.StringUtils; |
|
|
|
import com.fr.third.org.apache.commons.collections4.map.HashedMap; |
|
|
|
import com.fr.third.org.apache.commons.collections4.map.HashedMap; |
|
|
@ -27,6 +30,7 @@ import com.fr.workspace.WorkContext; |
|
|
|
import javax.swing.JComponent; |
|
|
|
import javax.swing.JComponent; |
|
|
|
import javax.swing.JPanel; |
|
|
|
import javax.swing.JPanel; |
|
|
|
import javax.swing.SwingUtilities; |
|
|
|
import javax.swing.SwingUtilities; |
|
|
|
|
|
|
|
import javax.swing.SwingWorker; |
|
|
|
import java.awt.BorderLayout; |
|
|
|
import java.awt.BorderLayout; |
|
|
|
import java.awt.Color; |
|
|
|
import java.awt.Color; |
|
|
|
import java.awt.Component; |
|
|
|
import java.awt.Component; |
|
|
@ -39,6 +43,7 @@ import java.util.Map; |
|
|
|
import java.util.Objects; |
|
|
|
import java.util.Objects; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.Set; |
|
|
|
import java.util.Set; |
|
|
|
|
|
|
|
import java.util.concurrent.ExecutionException; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 单元格脱敏规则设置面板 |
|
|
|
* 单元格脱敏规则设置面板 |
|
|
@ -60,6 +65,7 @@ public class DesensitizationCellPane extends BasicBeanPane { |
|
|
|
private static Map<String, String> roleMap; |
|
|
|
private static Map<String, String> roleMap; |
|
|
|
private static Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> latestRules; |
|
|
|
private static Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> latestRules; |
|
|
|
private CellDesensitizationTableModel model; |
|
|
|
private CellDesensitizationTableModel model; |
|
|
|
|
|
|
|
private static final CellDesensitizationBean EMPTY_BEAN = CellDesensitizationBean.createEmptyBean(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DesensitizationCellPane(Component parent, CellDesensitizationTableModel model) { |
|
|
|
DesensitizationCellPane(Component parent, CellDesensitizationTableModel model) { |
|
|
@ -149,10 +155,6 @@ public class DesensitizationCellPane extends BasicBeanPane { |
|
|
|
rule = rulePane.updateBean(); |
|
|
|
rule = rulePane.updateBean(); |
|
|
|
if (Objects.nonNull(selectBean) && Objects.nonNull(rule) && !selectBean.getDesensitizationRule().equals(rule)) { |
|
|
|
if (Objects.nonNull(selectBean) && Objects.nonNull(rule) && !selectBean.getDesensitizationRule().equals(rule)) { |
|
|
|
selectBean.setDesensitizationRule(rule); |
|
|
|
selectBean.setDesensitizationRule(rule); |
|
|
|
ruleTextField.setText(rule.getRuleName()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 非正常状态需要颜色修改为红色
|
|
|
|
|
|
|
|
refreshRuleState(selectBean); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
model.fireTableDataChanged(); |
|
|
|
model.fireTableDataChanged(); |
|
|
|
} |
|
|
|
} |
|
|
@ -203,28 +205,42 @@ public class DesensitizationCellPane extends BasicBeanPane { |
|
|
|
public void populate(CellDesensitizationBean value, int row) { |
|
|
|
public void populate(CellDesensitizationBean value, int row) { |
|
|
|
|
|
|
|
|
|
|
|
refreshRoles(); |
|
|
|
refreshRoles(); |
|
|
|
String ruleName = value.getDesensitizationRule().getRuleName(); |
|
|
|
|
|
|
|
ruleTextField.setText(ruleName); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
refreshRuleText(value); |
|
|
|
// 非正常状态需要颜色修改为红色
|
|
|
|
// 非正常状态需要颜色修改为红色
|
|
|
|
refreshRuleState(value); |
|
|
|
refreshRuleState(value); |
|
|
|
|
|
|
|
|
|
|
|
Map<Object, Boolean> map = generateRolesCheckBoxSelectedValues(value); |
|
|
|
Map<Object, Boolean> map = generateRolesCheckBoxSelectedValues(value); |
|
|
|
rolesComboBox.setSelectedValues(map); |
|
|
|
rolesComboBox.setSelectedValues(map); |
|
|
|
|
|
|
|
|
|
|
|
label.setText(Toolkit.i18nText("Fine-Design_Report_Desensitization_Setting") + row); |
|
|
|
label.setText(Toolkit.i18nText("Fine-Design_Report_Desensitization_Setting") + (row + 1)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 刷新规则文本 |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @param value |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
private void refreshRuleText(CellDesensitizationBean value) { |
|
|
|
|
|
|
|
ruleTextField.setText(StringUtils.EMPTY); |
|
|
|
|
|
|
|
DesensitizationRule desensitizationRule = value.getDesensitizationRule(); |
|
|
|
|
|
|
|
if (desensitizationRule != null) { |
|
|
|
|
|
|
|
String ruleName = desensitizationRule.getRuleName(); |
|
|
|
|
|
|
|
ruleTextField.setText(ruleName); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* combobox组件刷新用户组信息 |
|
|
|
* combobox组件刷新用户组信息 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
private void refreshRoles() { |
|
|
|
private void refreshRoles() { |
|
|
|
|
|
|
|
rolesComboBox.clearText(); |
|
|
|
rolesComboBox.refreshCombo(roleMap.values().toArray()); |
|
|
|
rolesComboBox.refreshCombo(roleMap.values().toArray()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void refreshRuleState(CellDesensitizationBean value) { |
|
|
|
private void refreshRuleState(CellDesensitizationBean value) { |
|
|
|
DesensitizationRuleStatus ruleStatus = DesensitizationRuleManager.getInstance().getRuleStatus(value.getDesensitizationRule(), latestRules); |
|
|
|
DesensitizationRuleStatus ruleStatus = DesensitizationRuleManager.getInstance().getRuleStatus(value.getDesensitizationRule(), latestRules); |
|
|
|
if (value.equals(CellDesensitizationBean.createEmptyBean())) { |
|
|
|
if (EMPTY_BEAN.equals(value)) { |
|
|
|
ruleTextField.setForeground(Color.GRAY); |
|
|
|
ruleTextField.setForeground(Color.GRAY); |
|
|
|
} else if (ruleStatus != DesensitizationRuleStatus.NORMAL) { |
|
|
|
} else if (ruleStatus != DesensitizationRuleStatus.NORMAL) { |
|
|
|
ruleTextField.setForeground(Color.RED); |
|
|
|
ruleTextField.setForeground(Color.RED); |
|
|
@ -306,13 +322,11 @@ public class DesensitizationCellPane extends BasicBeanPane { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 刷新用户组和平台规则 |
|
|
|
* 更新用户组和平台规则 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public void refresh() { |
|
|
|
public static void updateData(Map<String, String> roleMap, Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> latestRules) { |
|
|
|
|
|
|
|
DesensitizationCellPane.roleMap = roleMap; |
|
|
|
roleMap = WorkContext.getCurrent().get(OrganizationOperator.class).getAllRoles(); |
|
|
|
DesensitizationCellPane.latestRules = latestRules; |
|
|
|
|
|
|
|
|
|
|
|
latestRules = DesensitizationRuleManager.getInstance().getAllRules(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|