package com.star.easydoc.view;
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.google.common.collect.Lists;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.diagnostic.Logger;
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.config.Consts;
import com.star.easydoc.config.EasyJavadocConfigComponent;
import com.star.easydoc.model.EasyJavadocConfiguration;
import com.star.easydoc.service.TranslatorService;
import com.star.easydoc.util.BeanUtil;
import com.star.easydoc.util.JsonUtil;
import com.star.easydoc.view.inner.SupportView;
import com.star.easydoc.view.inner.WordMapAddView;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.BooleanUtils;
/**
* @author wangchao
* @date 2019/08/25
*/
public class CommonConfigView {
private static final Logger LOGGER = Logger.getInstance(CommonConfigView.class);
private TranslatorService translatorService = ServiceManager.getService(TranslatorService.class);
private EasyJavadocConfiguration config = ServiceManager.getService(EasyJavadocConfigComponent.class).getState();
private JPanel panel;
private JPanel wordMapPanel;
private JTextField authorTextField;
private JTextField dateFormatTextField;
private JPanel classPanel;
private JPanel fieldPanel;
private JLabel authorLabel;
private JLabel dataFormatLabel;
private JRadioButton simpleDocButton;
private JRadioButton normalDocButton;
private JLabel fieldDocLabel;
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 JPanel methodPanel;
private JLabel methodReturnTypeLabel;
private JRadioButton methodReturnCodeTypeButton;
private JRadioButton methodReturnLinkTypeButton;
private JTextField accessKeyIdTextField;
private JTextField accessKeySecretTextField;
private JLabel accessKeyIdLabel;
private JLabel accessKeySecretLabel;
private JBList<Entry<String, String>> typeMapList;
public CommonConfigView() {
refreshWordMap();
setVisible(translatorBox.getSelectedItem());
simpleDocButton.addChangeListener(e -> {
JRadioButton button = (JRadioButton)e.getSource();
if (button.isSelected()) {
normalDocButton.setSelected(false);
} else {
normalDocButton.setSelected(true);
}
});
normalDocButton.addChangeListener(e -> {
JRadioButton button = (JRadioButton)e.getSource();
if (button.isSelected()) {
simpleDocButton.setSelected(false);
} else {
simpleDocButton.setSelected(true);
}
});
methodReturnCodeTypeButton.addChangeListener(e -> {
JRadioButton button = (JRadioButton)e.getSource();
if (button.isSelected()) {
methodReturnLinkTypeButton.setSelected(false);
} else {
methodReturnLinkTypeButton.setSelected(true);
}
});
methodReturnLinkTypeButton.addChangeListener(e -> {
JRadioButton button = (JRadioButton)e.getSource();
if (button.isSelected()) {
methodReturnCodeTypeButton.setSelected(false);
} else {
methodReturnCodeTypeButton.setSelected(true);
}
});
importButton.addActionListener(event -> {
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int res = chooser.showOpenDialog(new JLabel());
if (JFileChooser.APPROVE_OPTION != res) {
return;
}
File file = chooser.getSelectedFile();
if (file == null) {
return;
}
try {
String json = FileUtils.readFileToString(file, StandardCharsets.UTF_8.name());
EasyJavadocConfiguration configuration = JsonUtil.fromJson(json, EasyJavadocConfiguration.class);
if (configuration == null) {
throw new IllegalArgumentException("文件中内容格式不正确,请确认是否是json格式");
}
ServiceManager.getService(EasyJavadocConfigComponent.class).loadState(configuration);
refresh();
} catch (Exception e) {
LOGGER.error("读取文件异常", e);
}
});
exportButton.addActionListener(event -> {
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int res = chooser.showSaveDialog(new JLabel());
if (JFileChooser.APPROVE_OPTION != res) {
return;
}
File file = chooser.getSelectedFile();
if (file == null) {
return;
}
try {
File targetFile = new File(file.getAbsolutePath() + "/easy_javadoc.json");
FileUtils.write(targetFile, JsonUtil.toJson(this.config), 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);
没有合适的资源?快使用搜索试试~ 我知道了~
easy-javadoc本项目是IntelliJ IDEA的插件
共97个文件
java:64个
form:10个
png:4个
需积分: 10 2 下载量 128 浏览量
2022-11-10
10:25:33
上传
评论
收藏 3.2MB ZIP 举报
温馨提示
本项目是IntelliJ IDEA的插件,能帮助java开发者自动生成javadoc文档注释
资源推荐
资源详情
资源评论
收起资源包目录
easy_javadoc-master.zip (97个子文件)
easy_javadoc-master
gradlew.bat 2KB
gradlew 5KB
gradle.properties 0B
LICENSE 11KB
gradle
wrapper
gradle-wrapper.properties 232B
src
test
java
com
star
easydoc
TestClass.java 103B
view
inner
SupportViewTest.java 1KB
service
translator
impl
GoogleTranslatorTest.java 380B
BaiduTranslatorTest.java 377B
AliyunTranslatorTest.java 380B
TencentTranslatorTest.java 289B
main
resources
META-INF
pluginIcon.svg 9KB
pluginIcon_dark.svg 9KB
plugin.xml 7KB
alipay.jpg 116KB
wechat.png 55KB
java
com
star
easydoc
config
Consts.java 1KB
EasyJavadocConfigComponent.java 2KB
action
GenerateAllJavadocAction.java 7KB
PackageInfoHandle.java 4KB
GenerateJavadocAction.java 5KB
model
EasyJavadocConfiguration.java 9KB
view
CommonConfigurable.java 5KB
CommonConfigView.form 17KB
inner
TranslateResultView.form 1KB
SupportView.form 1KB
WordMapAddView.java 1KB
WordMapAddView.form 2KB
PackageDescribeView.form 1KB
CustomTemplateAddView.java 2KB
SupportView.java 1KB
CustomTemplateAddView.form 4KB
GenerateAllView.java 1KB
GenerateAllView.form 2KB
PackageDescribeView.java 2KB
TranslateResultView.java 854B
CommonConfigView.java 15KB
template
AbstractTemplateConfigView.java 901B
ClassConfigurable.java 3KB
FieldConfigurable.java 3KB
ClassConfigView.form 6KB
FieldConfigView.java 6KB
MethodConfigView.form 6KB
MethodConfigurable.java 3KB
ClassConfigView.java 7KB
FieldConfigView.form 6KB
AbstractTemplateConfigurable.java 826B
MethodConfigView.java 7KB
service
TranslatorService.java 6KB
WriterService.java 3KB
variable
VariableGenerator.java 327B
impl
DocVariableGenerator.java 2KB
VersionVariableGenerator.java 432B
ReturnVariableGenerator.java 2KB
SeeVariableGenerator.java 3KB
ParamsVariableGenerator.java 4KB
DateVariableGenerator.java 1KB
ThrowsVariableGenerator.java 1KB
SinceVariableGenerator.java 429B
AuthorVariableGenerator.java 729B
generator
DocGenerator.java 335B
impl
ClassDocGenerator.java 7KB
PackageInfoDocGenerator.java 1007B
FieldDocGenerator.java 4KB
MethodDocGenerator.java 11KB
VariableGeneratorService.java 8KB
translator
Translator.java 476B
impl
AliyunTranslator.java 9KB
JinshanTranslator.java 6KB
TencentTranslator.java 6KB
BaiduTranslator.java 4KB
AbstractTranslator.java 2KB
GoogleTranslator.java 3KB
YoudaoTranslator.java 3KB
DocGeneratorService.java 2KB
util
StringUtil.java 580B
LanguageUtil.java 2KB
RandomUtil.java 551B
HttpUtil.java 4KB
DateUtil.java 764B
JsonUtil.java 2KB
CollectionUtil.java 1KB
BeanUtil.java 1KB
listener
AppActivationListener.java 3KB
doc
oneLine.png 2.09MB
k03vffH6Hg.gif 342KB
birqX3c23s.gif 58KB
20190901155929.jpg 76KB
alipay.jpg 116KB
closeJavadocFormat.png 200KB
zqT2bjDzc0.gif 34KB
wechat.png 55KB
8FZojT74Xo.gif 48KB
easy-javadoc.psd 212KB
.gitignore 308B
settings.gradle 35B
build.gradle 4KB
共 97 条
- 1
资源评论
m0_72731342
- 粉丝: 2
- 资源: 1832
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于UC3842+LTS26Q1565A设计PC机充电器 硬件(原理图+PCB)工程文件.zip
- Hive SQL经典面试题,大数据SQL经典面试题
- Qt实现喷码器代码,实现二维码、条形码、图形的旋转、移动等
- 基于LM324芯片比较器传感器模块AD09设计硬件(原理图+PCB)工程文件.zip
- HTTP请求 - 记一笔-添加记账.jmx
- 2205040245凡永超硬间隔svm.ipynb
- Qt喷码器demo,演示软件,不是代码
- 目标跟踪-基于目标中心点同时进行目标检测+目标跟踪算法实现-项目源码-优质项目实战.zip
- Python《文本特征分析-全唐诗数据挖掘及分析 》+源代码
- Netron-Setup-4.5.0
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功