Skip to content

Commit 8996d3a

Browse files
committed
1、添加文件名过滤分组;2、优化正则表达式工具。
1 parent 99b3a0b commit 8996d3a

10 files changed

Lines changed: 121 additions & 56 deletions

File tree

src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/EscapeCharacterController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ public void changed(ObservableValue<? extends String> observable, String oldValu
8282
}
8383
}
8484
});
85+
// unescapeTextArea.textProperty().addListener((observable, oldValue, newValue) -> {
86+
// switchAction(null);
87+
// });
88+
// escapeTextArea.textProperty().addListener((observable, oldValue, newValue) -> {
89+
// restoreAction(null);
90+
// });
8591
}
8692

8793
@FXML // 转换字符

src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/RegexTesterController.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,12 @@ public void handle(MouseEvent event) {
104104
}
105105
}
106106
});
107+
regexTextField.textProperty().addListener((observable, oldValue, newValue) -> {
108+
regulatAction(null);
109+
});
110+
sourceTextArea.textProperty().addListener((observable, oldValue, newValue) -> {
111+
regulatAction(null);
112+
});
107113
}
108114

109115
@FXML
@@ -112,6 +118,7 @@ private void regulatAction(ActionEvent event) {
112118
String sourceText = sourceTextArea.getText().trim();
113119
String replaceText = replaceTextField.getText();
114120
matchTableView.getItems().clear();
121+
matchTextArea.setText(null);
115122
Pattern p = null;
116123
if (ignoreCaseCheckBox.isSelected()) {
117124
p = Pattern.compile(regexText, Pattern.CASE_INSENSITIVE); // 不区分大小写
@@ -153,7 +160,8 @@ private void regulatAction(ActionEvent event) {
153160
matchTableView.getItems().add(map);
154161
result = m.find();
155162
}
156-
sb.insert(0, "\t匹配总数: " + cnt);
163+
sb.insert(0, "\n匹配总数: " + cnt);
164+
sb.insert(0, "\t直接匹配判断: " + sourceText.matches(regexText));
157165
if (isReplaceCheckBox.isSelected()&&replaceText.length() != 0) {
158166
m.appendTail(rsb);
159167
sb.append("\n\n替换匹配: ").append(rsb);

src/main/java/com/xwintop/xJavaFxTool/controller/developTools/DirectoryTreeToolController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public void changed(ObservableValue<? extends String> arg0, String oldValue, Str
8888
}
8989

9090
private void initService() {
91-
reloadAction(null);
91+
// reloadAction(null);
9292
}
9393

9494
@FXML

src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,12 @@ private void initView() {
7575
}
7676

7777
private void initEvent() {
78+
// encrptyTextArea.textProperty().addListener((observable, oldValue, newValue) -> {
79+
// encrptyAction(null);
80+
// });
81+
// decrptyTextArea.textProperty().addListener((observable, oldValue, newValue) -> {
82+
// decrptyAction(null);
83+
// });
7884
}
7985

8086
@FXML

src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/TimeToolController.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,12 @@ private void initEvent() {
6767
}
6868

6969
private void initService() {
70-
70+
// textFileldTimeStr.textProperty().addListener((observable, oldValue, newValue) -> {
71+
// convert(null);
72+
// });
73+
// textFileldTimeStr2.textProperty().addListener((observable, oldValue, newValue) -> {
74+
// revert(null);
75+
// });
7176
}
7277

7378
@FXML
Lines changed: 55 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,67 @@
11
package com.xwintop.xJavaFxTool.controller.littleTools;
22

3-
import java.net.URL;
4-
import java.util.ResourceBundle;
5-
63
import com.xwintop.xJavaFxTool.services.littleTools.ZHConverterService;
74
import com.xwintop.xJavaFxTool.view.littleTools.ZHConverterView;
8-
95
import javafx.event.ActionEvent;
106
import javafx.fxml.FXML;
117

12-
/**
13-
* @ClassName: ZHConverterController
8+
import java.net.URL;
9+
import java.util.ResourceBundle;
10+
11+
/**
12+
* @ClassName: ZHConverterController
1413
* @Description: 字符串转换
1514
* @author: xufeng
16-
* @date: 2017年8月20日 下午1:13:45
15+
* @date: 2017年8月20日 下午1:13:45
1716
*/
1817
public class ZHConverterController extends ZHConverterView {
19-
private ZHConverterService zhConverterService = new ZHConverterService();
20-
private String[] codeTypes = new String[] { "拼音", "简-繁", "简体-臺灣正體", "简体-香港繁體", "繁體-臺灣正體", "繁體-香港繁體", "香港繁體-臺灣正體", "数字金额-大写金额"};
21-
private String[] pinyinTypes = new String[] { "无音调", "数字音调", "符号音调", "声调", "声母", "韵母", "输入法头"};
22-
23-
@Override
24-
public void initialize(URL location, ResourceBundle resources) {
25-
initView();
26-
initEvent();
27-
initService();
28-
}
29-
30-
private void initView() {
31-
codeTypesChoiceBox.getItems().addAll(codeTypes);
32-
codeTypesChoiceBox.setValue(codeTypes[0]);
33-
pinyinTypeChoiceBox.getItems().addAll(pinyinTypes);
34-
pinyinTypeChoiceBox.setValue(pinyinTypes[0]);
35-
}
36-
37-
private void initEvent() {
38-
}
39-
40-
private void initService() {
41-
zhConverterService.setCodeTypes(codeTypes);
42-
zhConverterService.setPinyinTypes(pinyinTypes);
43-
}
44-
45-
@FXML
46-
private void changeAction(ActionEvent event) {
47-
String codeTypeString = codeTypesChoiceBox.getValue();
48-
String simplifiedString = simplifiedTextArea.getText();
49-
String pinyinTypeString = pinyinTypeChoiceBox.getValue();
50-
String pinyinTypeSpaceString = pinyinTypeTextField.getText();
51-
String traditionalString = zhConverterService.changeAction(simplifiedString, codeTypeString, pinyinTypeString,pinyinTypeSpaceString);
52-
traditionalTextArea.setText(traditionalString);
53-
}
54-
55-
@FXML
56-
private void restoreAction(ActionEvent event) {
57-
String codeTypeString = codeTypesChoiceBox.getValue();
58-
String traditionalString = traditionalTextArea.getText();
59-
String simplifiedString = zhConverterService.restoreAction(traditionalString, codeTypeString);
60-
simplifiedTextArea.setText(simplifiedString);
61-
}
18+
private ZHConverterService zhConverterService = new ZHConverterService();
19+
private String[] codeTypes = new String[]{"拼音", "简-繁", "简体-臺灣正體", "简体-香港繁體", "繁體-臺灣正體", "繁體-香港繁體", "香港繁體-臺灣正體", "数字金额-大写金额"};
20+
private String[] pinyinTypes = new String[]{"无音调", "数字音调", "符号音调", "声调", "声母", "韵母", "输入法头"};
21+
22+
@Override
23+
public void initialize(URL location, ResourceBundle resources) {
24+
initView();
25+
initEvent();
26+
initService();
27+
}
28+
29+
private void initView() {
30+
codeTypesChoiceBox.getItems().addAll(codeTypes);
31+
codeTypesChoiceBox.setValue(codeTypes[0]);
32+
pinyinTypeChoiceBox.getItems().addAll(pinyinTypes);
33+
pinyinTypeChoiceBox.setValue(pinyinTypes[0]);
34+
}
35+
36+
private void initEvent() {
37+
// simplifiedTextArea.textProperty().addListener((observable, oldValue, newValue) -> {
38+
// changeAction(null);
39+
// });
40+
// traditionalTextArea.textProperty().addListener((observable, oldValue, newValue) -> {
41+
// restoreAction(null);
42+
// });
43+
}
44+
45+
private void initService() {
46+
zhConverterService.setCodeTypes(codeTypes);
47+
zhConverterService.setPinyinTypes(pinyinTypes);
48+
}
49+
50+
@FXML
51+
private void changeAction(ActionEvent event) {
52+
String codeTypeString = codeTypesChoiceBox.getValue();
53+
String simplifiedString = simplifiedTextArea.getText();
54+
String pinyinTypeString = pinyinTypeChoiceBox.getValue();
55+
String pinyinTypeSpaceString = pinyinTypeTextField.getText();
56+
String traditionalString = zhConverterService.changeAction(simplifiedString, codeTypeString, pinyinTypeString, pinyinTypeSpaceString);
57+
traditionalTextArea.setText(traditionalString);
58+
}
59+
60+
@FXML
61+
private void restoreAction(ActionEvent event) {
62+
String codeTypeString = codeTypesChoiceBox.getValue();
63+
String traditionalString = traditionalTextArea.getText();
64+
String simplifiedString = zhConverterService.restoreAction(traditionalString, codeTypeString);
65+
simplifiedTextArea.setText(simplifiedString);
66+
}
6267
}

src/main/java/com/xwintop/xTransfer/filter/bean/FilterConfigBackup.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class FilterConfigBackup implements FilterConfig {
1717
private boolean async = false;//是否异步执行
1818
private boolean exceptionExit = true;//是否发生异常时退出任务
1919
private String fileNameFilterRegex;//文件名过滤正则表达式
20+
private String fileNameFilterRegexGroup;//文件名过滤正则表达式分组
2021

2122
private String path;//备份目录
2223
private String tmpPath;//备份缓冲路径(留空为不使用缓冲目录)

src/main/java/com/xwintop/xTransfer/filter/service/impl/FilterBackupImpl.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,19 @@ public class FilterBackupImpl implements Filter {
4242
public void doFilter(IContext ctx, Map params) throws Exception {
4343
for (IMessage iMessage : ctx.getMessages()) {
4444
if (StringUtils.isNotBlank(filterConfigBackup.getFileNameFilterRegex())) {
45-
if (!iMessage.getFileName().matches(filterConfigBackup.getFileNameFilterRegex())) {
46-
log.info("Filter:" + filterConfigBackup.getId() + "跳过fileName:" + iMessage.getFileName());
47-
continue;
45+
if ("?!".equals(filterConfigBackup.getFileNameFilterRegex())) {
46+
if (iMessage.checkFileNameFilterRegexGroup(filterConfigBackup.getFileNameFilterRegexGroup())) {
47+
log.info("Filter:" + filterConfigBackup.getId() + "跳过fileName:" + iMessage.getFileName());
48+
continue;
49+
}
50+
} else {
51+
if (!iMessage.getFileName().matches(filterConfigBackup.getFileNameFilterRegex())) {
52+
log.info("Filter:" + filterConfigBackup.getId() + "跳过fileName:" + iMessage.getFileName());
53+
continue;
54+
}
55+
if (StringUtils.isNotBlank(filterConfigBackup.getFileNameFilterRegexGroup())) {
56+
iMessage.addFileNameFilterRegexGroup(filterConfigBackup.getFileNameFilterRegexGroup());
57+
}
4858
}
4959
}
5060
doFilter(iMessage, params);

src/main/java/com/xwintop/xTransfer/messaging/DefaultMessage.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55
import java.io.Serializable;
66
import java.io.UnsupportedEncodingException;
7+
import java.util.HashMap;
78
import java.util.Iterator;
9+
import java.util.Map;
810
import java.util.Properties;
911

1012
/**
@@ -27,6 +29,8 @@ public class DefaultMessage implements IMessage, Serializable {
2729
private Properties properties = null;
2830
private String version = null;
2931

32+
private Map<String, Object> fileNameFilterRegexGroupMap;
33+
3034
public DefaultMessage() {
3135
this.init();
3236
}
@@ -186,4 +190,20 @@ public byte[] getRawData(String encoding) throws UnsupportedEncodingException {
186190
return this.getRawData();
187191
}
188192
}
193+
194+
@Override
195+
public boolean checkFileNameFilterRegexGroup(String fileNameFilterRegexGroup) {
196+
if (this.fileNameFilterRegexGroupMap == null) {
197+
return false;
198+
}
199+
return this.fileNameFilterRegexGroupMap.get(fileNameFilterRegexGroup) != null;
200+
}
201+
202+
@Override
203+
public void addFileNameFilterRegexGroup(String fileNameFilterRegexGroup) {
204+
if (this.fileNameFilterRegexGroupMap == null) {
205+
this.fileNameFilterRegexGroupMap = new HashMap<>();
206+
}
207+
this.fileNameFilterRegexGroupMap.put(fileNameFilterRegexGroup, true);
208+
}
189209
}

src/main/java/com/xwintop/xTransfer/messaging/IMessage.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,8 @@ public interface IMessage extends Cloneable, Serializable {
5555
void setVersion(String var1);
5656

5757
Object clone() throws CloneNotSupportedException;
58+
59+
void addFileNameFilterRegexGroup(String fileNameFilterRegexGroup);
60+
61+
boolean checkFileNameFilterRegexGroup(String fileNameFilterRegexGroup);
5862
}

0 commit comments

Comments
 (0)