package com.star.easydoc.view.settings;
import java.awt.*;
import java.io.File;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.Map;
import java.util.Map.Entry;
import javax.swing.*;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONWriter.Feature;
import com.google.common.collect.Lists;
import com.intellij.json.JsonFileType;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooser;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.ui.CollectionListModel;
import com.intellij.ui.ListCellRendererWrapper;
import com.intellij.ui.ToolbarDecorator;
import com.intellij.ui.components.JBList;
import com.star.easydoc.common.Consts;
import com.star.easydoc.config.EasyDocConfig;
import com.star.easydoc.config.EasyDocConfigComponent;
import com.star.easydoc.service.translator.TranslatorService;
import com.star.easydoc.view.inner.SupportView;
import com.star.easydoc.view.inner.WordMapAddView;
import org.apache.commons.io.FileUtils;
/**
* @author wangchao
* @date 2019/08/25
*/
public class CommonSettingsView {
private static final Logger LOGGER = Logger.getInstance(CommonSettingsView.class);
private TranslatorService translatorService = ServiceManager.getService(TranslatorService.class);
private EasyDocConfig config = ServiceManager.getService(EasyDocConfigComponent.class).getState();
private JPanel panel;
private JPanel wordMapPanel;
private JPanel commonPanel;
private JComboBox<?> translatorBox;
private JLabel translatorLabel;
private JButton importButton;
private JButton exportButton;
private JTextField appIdTextField;
private JTextField tokenTextField;
private JButton resetButton;
private JButton clearButton;
private JLabel appIdLabel;
private JLabel tokenLabel;
private JTextField secretIdTextField;
private JTextField secretKeyTextField;
private JLabel secretIdLabel;
private JLabel secretKeyLabel;
private JButton starButton;
private JButton payButton;
private JTextField accessKeyIdTextField;
private JTextField accessKeySecretTextField;
private JLabel accessKeyIdLabel;
private JLabel accessKeySecretLabel;
private JBList<Entry<String, String>> typeMapList;
public CommonSettingsView() {
refreshWordMap();
setVisible(translatorBox.getSelectedItem());
importButton.addActionListener(event -> {
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileDescriptor(JsonFileType.INSTANCE);
descriptor.setForcedToUseIdeaFileChooser(true);
VirtualFile file = FileChooser.chooseFile(descriptor, null, null);
if (file == null) {
return;
}
if (!file.exists()) {
LOGGER.error("文件不存在:{}", file.getPath());
return;
}
try {
String json = FileUtils.readFileToString(new File(file.getPath()), StandardCharsets.UTF_8.name());
EasyDocConfig configuration = JSON.parseObject(json, EasyDocConfig.class);
if (configuration == null) {
throw new IllegalArgumentException("文件中内容格式不正确,请确认是否是json格式");
}
ServiceManager.getService(EasyDocConfigComponent.class).loadState(configuration);
refresh();
} catch (Exception e) {
LOGGER.error("读取文件异常", e);
}
});
exportButton.addActionListener(event -> {
FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
descriptor.setForcedToUseIdeaFileChooser(true);
VirtualFile file = FileChooser.chooseFile(descriptor, null, null);
if (file == null) {
return;
}
if (!file.exists()) {
LOGGER.error("文件夹不存在:{}", file.getPath());
return;
}
try {
File targetFile = new File(file.getPath() + "/easy_javadoc.json");
FileUtils.write(targetFile, JSON.toJSONString(this.config, Feature.PrettyFormat), StandardCharsets.UTF_8.name());
} catch (Exception e) {
LOGGER.error("写入文件异常", e);
}
});
resetButton.addActionListener(event -> {
int result = JOptionPane.showConfirmDialog(null, "重置将删除所有配置,确认重置?", "确认", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
config.reset();
refresh();
}
});
clearButton.addActionListener(event -> {
int result = JOptionPane.showConfirmDialog(null, "确认清空缓存?", "确认", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
translatorService.clearCache();
}
});
starButton.addActionListener(event -> {
try {
Desktop dp = Desktop.getDesktop();
if (dp.isSupported(Desktop.Action.BROWSE)) {
dp.browse(URI.create("https://github.com/starcwang/easy_javadoc"));
}
} catch (Exception e) {
LOGGER.error("打开链接失败:https://github.com/starcwang/easy_javadoc", e);
}
});
payButton.addActionListener(event -> {
SupportView supportView = new SupportView();
supportView.show();
});
translatorBox.addItemListener(e -> {
JComboBox<?> jComboBox = (JComboBox<?>)e.getSource();
setVisible(jComboBox.getSelectedItem());
});
}
private void setVisible(Object selectedItem) {
if (Consts.BAIDU_TRANSLATOR.equals(selectedItem)) {
appIdLabel.setVisible(true);
tokenLabel.setVisible(true);
secretIdLabel.setVisible(false);
secretKeyLabel.setVisible(false);
accessKeyIdLabel.setVisible(false);
accessKeySecretLabel.setVisible(false);
appIdTextField.setVisible(true);
tokenTextField.setVisible(true);
secretIdTextField.setVisible(false);
secretKeyTextField.setVisible(false);
accessKeyIdTextField.setVisible(false);
accessKeySecretTextField.setVisible(false);
} else if (Consts.TENCENT_TRANSLATOR.equals(selectedItem)) {
appIdLabel.setVisible(false);
tokenLabel.setVisible(false);
secretIdLabel.setVisible(true);
secretKeyLabel.setVisible(true);
accessKeyIdLabel.setVisible(false);
accessKeySecretLabel.setVisible(false);
appIdTextField.setVisible(false);
tokenTextField.setVisible(false);
secretIdTextField.setVisible(true);
secretKeyTextField.setVisible(true);
accessKeyIdTextField.setVisible(false);
accessKeySecretTextField.setVisible(false);
} else if (Consts.ALIYUN_TRANSLATOR.equals(selectedItem)) {
appIdLabel.setVisible(false);
tokenLabel.setVisible(false);
secretIdLabel.setVisible(false);
secretKeyLabel.setVisible(false);
accessKeyIdLabel.setVisible(true);
accessKeySecretLabel.setVisible(true);
appIdTextField.setVisible(false);
tokenTextField.setVisible(false);
secretIdTextField.setVisible(false);
secretKeyTextField.setVisible(fa
没有合适的资源?快使用搜索试试~ 我知道了~
easy-javadoc-master.zip
共122个文件
java:62个
kt:24个
form:15个
0 下载量 27 浏览量
2023-01-03
17:00:06
上传
评论
收藏 3.25MB ZIP 举报
温馨提示
本项目是IntelliJ IDEA的插件,能帮助java开发者自动生成javadoc文档注释。接入有道、百度、腾讯、阿里云等翻译,只要你方法名起的好,翻译就越准确。可自定义映射,弥补自动翻译的不足。支持文档翻译,选中需要翻译的文档,使用快捷键翻译注释,再也不用在词典和IDEA之间来回切换了
资源推荐
资源详情
资源评论
收起资源包目录
easy-javadoc-master.zip (122个子文件)
CommonSettingsView.form 12KB
JavadocSettingsView.form 8KB
KdocSettingsView.form 8KB
MethodSettingsView.form 6KB
FieldSettingsView.form 6KB
KtMethodConfigView.form 6KB
KtFieldConfigView.form 6KB
ClassSettingsView.form 6KB
KtClassConfigView.form 6KB
CustomTemplateAddView.form 4KB
GenerateAllView.form 2KB
WordMapAddView.form 2KB
SupportView.form 1KB
TranslateResultView.form 1KB
PackageDescribeView.form 1KB
k03vffH6Hg.gif 342KB
birqX3c23s.gif 58KB
8FZojT74Xo.gif 48KB
zqT2bjDzc0.gif 34KB
.gitignore 308B
build.gradle 1KB
settings.gradle 31B
CommonSettingsView.java 12KB
MethodDocGenerator.java 12KB
EasyDocConfig.java 12KB
AliyunTranslator.java 8KB
GenerateAllJavadocAction.java 8KB
ClassDocGenerator.java 7KB
ClassSettingsView.java 7KB
MethodSettingsView.java 7KB
YoudaoTranslator.java 6KB
FieldSettingsView.java 6KB
GenerateJavadocAction.java 6KB
TranslatorService.java 6KB
JinshanTranslator.java 6KB
TencentTranslator.java 6KB
JavadocVariableGeneratorService.java 5KB
FieldDocGenerator.java 5KB
WriterService.java 4KB
JavadocSettingsView.java 4KB
HttpUtil.java 4KB
CommonSettingsConfigurable.java 4KB
BaiduTranslator.java 4KB
PackageInfoService.java 4KB
ParamsVariableGenerator.java 4KB
AppActivationListener.java 3KB
GoogleTranslator.java 3KB
MethodSettingsConfigurable.java 3KB
ClassSettingsConfigurable.java 3KB
FieldSettingsConfigurable.java 3KB
JavadocSettingsConfigurable.java 3KB
SeeVariableGenerator.java 3KB
PackageDescribeView.java 2KB
EasyDocConfigComponent.java 2KB
AbstractTranslator.java 2KB
CustomTemplateAddView.java 2KB
JavaDocGeneratorServiceImpl.java 2KB
DocVariableGenerator.java 2KB
LanguageUtil.java 2KB
Consts.java 2KB
WordMapAddView.java 1KB
SupportView.java 1KB
NotificationUtil.java 1KB
CollectionUtil.java 1KB
BeanUtil.java 1KB
ThrowsVariableGenerator.java 1KB
ReturnVariableGenerator.java 1KB
GenerateAllView.java 1KB
DateVariableGenerator.java 989B
PackageInfoDocGenerator.java 934B
AbstractTemplateSettingsView.java 890B
TranslateResultView.java 854B
Translator.java 781B
DateUtil.java 771B
StringUtil.java 587B
AbstractVariableGenerator.java 576B
AbstractTemplateConfigurable.java 567B
RandomUtil.java 558B
VariableGenerator.java 493B
AuthorVariableGenerator.java 400B
VersionVariableGenerator.java 386B
SinceVariableGenerator.java 383B
DocGenerator.java 343B
DocGeneratorService.java 331B
alipay.jpg 116KB
alipay.jpg 116KB
KtClassSettingsView.kt 6KB
KtMethodSettingsView.kt 6KB
KtFieldSettingsView.kt 6KB
KdocVariableGeneratorService.kt 4KB
KdocSettingsView.kt 3KB
KtNamedFunctionDocGenerator.kt 3KB
KtPropertyDocGenerator.kt 3KB
ParamsKdocVariableGenerator.kt 3KB
KtClassDocGenerator.kt 2KB
KtMethodSettingsConfigurable.kt 2KB
KtClassSettingsConfigurable.kt 2KB
KtFieldSettingsConfigurable.kt 2KB
KdocSettingsConfigurable.kt 2KB
DocKdocVariableGenerator.kt 2KB
共 122 条
- 1
- 2
资源评论
m0_72731342
- 粉丝: 2
- 资源: 1832
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功