From feb0c1aadb17a5aa8ece3476992c9412c283e925 Mon Sep 17 00:00:00 2001 From: hua <2838666797@qq.com> Date: Mon, 18 Jan 2021 11:58:43 +0800 Subject: [PATCH] =?UTF-8?q?v1.7.1=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +- build.gradle | 3 +- gradle/wrapper/gradle-wrapper.properties | 2 +- leeks-1.6.3.zip => leeks-1.7.1.zip | Bin 148071 -> 153761 bytes src/main/java/SettingsWindow.form | 57 +++++++++++++------ src/main/java/SettingsWindow.java | 6 ++ src/main/java/StockWindow.java | 38 +++++++++++-- src/main/java/utils/LogUtil.java | 6 +- src/main/java/utils/SinaStockHandler.java | 26 +++------ src/main/java/utils/StockRefreshHandler.java | 13 +++++ src/main/java/utils/TencentStockHandler.java | 11 +--- 11 files changed, 115 insertions(+), 52 deletions(-) rename leeks-1.6.3.zip => leeks-1.7.1.zip (73%) diff --git a/README.md b/README.md index c3dd97a..2c1042f 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,9 @@ double shift,连按两下shift,输入leeks,找到toolWindow,打开以后 - v1.6.2 适配IDEA 2020.3 - v1.6.3 -修复颜色错乱问题 +修复颜色错乱问题 , 日志调整 merge from [qwn3213](https://github.com/qwn3213) +- v1.7.1 +增加日志开关 ,设置界面样式调整 merge from [dengerYang](https://github.com/dengerYang) ,增加新浪股票接口备选 merge from [JulianXG](https://github.com/JulianXG) + diff --git a/build.gradle b/build.gradle index a34f94a..d24c217 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'com.huage2580' -version '1.6.4' +version '1.7.1' sourceCompatibility = 1.8 @@ -32,6 +32,7 @@ patchPluginXml { v1.4 增加了隐蔽模式(全拼音和无色涨跌幅 v1.5 增加了股票界面的排序~,可按净值和涨跌幅等列排序 v1.6 样式修改,增加精确净值(当日,上一交易日 + v1.7 设置界面样式调整,增加新浪股票接口备选 """ sinceBuild '173.*' untilBuild '203.*' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 731c706..3d11bb9 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ #Wed Jul 15 10:09:28 CST 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStorePath=wrapper/dists diff --git a/leeks-1.6.3.zip b/leeks-1.7.1.zip similarity index 73% rename from leeks-1.6.3.zip rename to leeks-1.7.1.zip index 58eb05f274d818d28a805fe43656c923fb4b97de..b5a30ea8e1d79610f175eec2ace1ca0193e59f3b 100644 GIT binary patch delta 41597 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 H@Akg{WP2b% delta 35828 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 MCyrBp8E~Tg2gm{l{{R30 diff --git a/src/main/java/SettingsWindow.form b/src/main/java/SettingsWindow.form index 61aa9f2..741d016 100644 --- a/src/main/java/SettingsWindow.form +++ b/src/main/java/SettingsWindow.form @@ -6,9 +6,11 @@ - + + + @@ -27,20 +29,9 @@ - - - - - - - - - - - - + @@ -88,7 +79,7 @@ - + @@ -156,7 +147,7 @@ - + @@ -192,9 +183,43 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/SettingsWindow.java b/src/main/java/SettingsWindow.java index ce22947..7ff413e 100644 --- a/src/main/java/SettingsWindow.java +++ b/src/main/java/SettingsWindow.java @@ -18,6 +18,8 @@ public class SettingsWindow implements Configurable { private JCheckBox checkBoxTableStriped; private JSpinner spinnerFund; private JSpinner spinnerStock; + private JCheckBox checkboxSina; + private JCheckBox checkboxLog; @Override public @Nls(capitalization = Nls.Capitalization.Title) String getDisplayName() { @@ -34,6 +36,8 @@ public class SettingsWindow implements Configurable { textAreaStock.setText(value_stock); checkbox.setSelected(!value_color); checkBoxTableStriped.setSelected(instance.getBoolean("key_table_striped")); + checkboxSina.setSelected(instance.getBoolean("key_stocks_sina")); + checkboxLog.setSelected(instance.getBoolean("key_close_log")); spinnerFund.setModel(new SpinnerNumberModel(instance.getInt("key_funds_thread_time", 60), 1, Integer.MAX_VALUE, 1)); spinnerStock.setModel(new SpinnerNumberModel(instance.getInt("key_stocks_thread_time", 10), 1, Integer.MAX_VALUE, 1)); return panel1; @@ -53,6 +57,8 @@ public void apply() throws ConfigurationException { instance.setValue("key_funds_thread_time", spinnerFund.getValue().toString()); instance.setValue("key_stocks_thread_time", spinnerStock.getValue().toString()); instance.setValue("key_table_striped", checkBoxTableStriped.isSelected()); + instance.setValue("key_stocks_sina",checkboxSina.isSelected()); + instance.setValue("key_close_log",checkboxLog.isSelected()); StockWindow.apply(); FundWindow.apply(); } diff --git a/src/main/java/StockWindow.java b/src/main/java/StockWindow.java index 6ad0a67..7c4da9b 100644 --- a/src/main/java/StockWindow.java +++ b/src/main/java/StockWindow.java @@ -18,19 +18,26 @@ public class StockWindow { private JPanel mPanel; - static TencentStockHandler handler; + static StockRefreshHandler handler; + + static JBTable table; + static JLabel refreshTimeLabel; public JPanel getmPanel() { return mPanel; } - public StockWindow() { - JLabel refreshTimeLabel = new JLabel(); + static { + refreshTimeLabel = new JLabel(); refreshTimeLabel.setToolTipText("最后刷新时间"); refreshTimeLabel.setBorder(new EmptyBorder(0, 0, 0, 5)); + table = new JBTable(); + } - JBTable table = new JBTable(); - handler = new TencentStockHandler(table, refreshTimeLabel); + public StockWindow() { + + //切换接口 + handler = factoryHandler(); AnActionButton refreshAction = new AnActionButton("停止刷新当前表格数据", AllIcons.Actions.StopRefresh) { @Override @@ -57,8 +64,29 @@ public void actionPerformed(@NotNull AnActionEvent e) { apply(); } + private static StockRefreshHandler factoryHandler(){ + boolean useSinaApi = PropertiesComponent.getInstance().getBoolean("key_stocks_sina"); + if (useSinaApi){ + if (handler instanceof SinaStockHandler){ + return handler; + } + if (handler!=null){ + handler.stopHandle(); + } + return new SinaStockHandler(table, refreshTimeLabel); + } + if (handler instanceof TencentStockHandler){ + return handler; + } + if (handler!=null){ + handler.stopHandle(); + } + return new TencentStockHandler(table, refreshTimeLabel); + } + public static void apply() { if (handler != null) { + handler = factoryHandler(); PropertiesComponent instance = PropertiesComponent.getInstance(); handler.setStriped(instance.getBoolean("key_table_striped")); handler.setThreadSleepTime(instance.getInt("key_stocks_thread_time", handler.getThreadSleepTime())); diff --git a/src/main/java/utils/LogUtil.java b/src/main/java/utils/LogUtil.java index 26f7301..6ae42b2 100644 --- a/src/main/java/utils/LogUtil.java +++ b/src/main/java/utils/LogUtil.java @@ -1,5 +1,6 @@ package utils; +import com.intellij.ide.util.PropertiesComponent; import com.intellij.notification.NotificationDisplayType; import com.intellij.notification.NotificationGroup; import com.intellij.openapi.project.Project; @@ -13,6 +14,9 @@ public static void setProject(Project project) { } public static void info(String text){ - new NotificationGroup("Gradle sync", NotificationDisplayType.NONE, true).createNotification(text, MessageType.INFO).notify(project); + boolean closeLog = PropertiesComponent.getInstance().getBoolean("key_close_log"); + if (!closeLog){ + new NotificationGroup("Gradle sync", NotificationDisplayType.NONE, true).createNotification(text, MessageType.INFO).notify(project); + } } } diff --git a/src/main/java/utils/SinaStockHandler.java b/src/main/java/utils/SinaStockHandler.java index a197e9f..0879b27 100644 --- a/src/main/java/utils/SinaStockHandler.java +++ b/src/main/java/utils/SinaStockHandler.java @@ -22,9 +22,7 @@ public class SinaStockHandler extends StockRefreshHandler { private static final Pattern DEFAULT_STOCK_PATTERN = Pattern.compile("var hq_str_(\\w+?)=\"(.*?)\";"); private final JLabel refreshTimeLabel; - private static final ScheduledExecutorService mSchedulerExecutor = Executors.newSingleThreadScheduledExecutor(); - private volatile boolean working = true; - private volatile boolean started = false; + private static ScheduledExecutorService mSchedulerExecutor = Executors.newSingleThreadScheduledExecutor(); public SinaStockHandler(JTable table, JLabel label) { super(table); @@ -41,21 +39,15 @@ public void handle(List code) { } public void useScheduleThreadExecutor(List code) { - if (!started) { - mSchedulerExecutor.scheduleAtFixedRate(getWork(code), 0, 1, TimeUnit.SECONDS); - started = true; - LogUtil.info("stock 定时线程池 init success"); + if (mSchedulerExecutor.isShutdown()){ + mSchedulerExecutor = Executors.newSingleThreadScheduledExecutor(); } - working = true; - System.out.println("working = " + working); - LogUtil.info("stock 定时线程池 start success"); + mSchedulerExecutor.scheduleAtFixedRate(getWork(code), 0, threadSleepTime, TimeUnit.SECONDS); } private Runnable getWork(List code) { return () -> { - if (working) { - pollStock(code); - } + pollStock(code); }; } @@ -63,8 +55,8 @@ private void pollStock(List code) { String params = Joiner.on(",").join(code); try { String res = HttpClientPool.getHttpClient().get(URL + params); - String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss,SSS")); - System.out.printf("%s,%s%n", time, res); +// String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss,SSS")); +// System.out.printf("%s,%s%n", time, res); handleResponse(res); } catch (Exception e) { LogUtil.info(e.getMessage()); @@ -80,7 +72,7 @@ public void handleResponse(String response) { } String code = matcher.group(1); String[] split = matcher.group(2).split(","); - if (split == null || split.length < 32) { + if (split.length < 32) { continue; } StockBean bean = new StockBean(code); @@ -109,7 +101,7 @@ public void handleResponse(String response) { @Override public void stopHandle() { - working = false; + mSchedulerExecutor.shutdown(); LogUtil.info("leeks stock 自动刷新关闭!"); } } diff --git a/src/main/java/utils/StockRefreshHandler.java b/src/main/java/utils/StockRefreshHandler.java index b6254d9..f3ae1df 100644 --- a/src/main/java/utils/StockRefreshHandler.java +++ b/src/main/java/utils/StockRefreshHandler.java @@ -19,6 +19,11 @@ public abstract class StockRefreshHandler extends DefaultTableModel { private JTable table; private boolean colorful = true; + /** + * 更新数据的间隔时间(秒) + */ + protected volatile int threadSleepTime = 10; + public StockRefreshHandler(JTable table) { this.table = table; table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); @@ -213,4 +218,12 @@ private Vector convertData(StockBean fundBean) { public boolean isCellEditable(int row, int column) { return false; } + + public int getThreadSleepTime() { + return threadSleepTime; + } + + public void setThreadSleepTime(int threadSleepTime) { + this.threadSleepTime = threadSleepTime; + } } diff --git a/src/main/java/utils/TencentStockHandler.java b/src/main/java/utils/TencentStockHandler.java index fd4fe82..624c921 100644 --- a/src/main/java/utils/TencentStockHandler.java +++ b/src/main/java/utils/TencentStockHandler.java @@ -12,10 +12,7 @@ public class TencentStockHandler extends StockRefreshHandler { private Thread worker; private JLabel refreshTimeLabel; - /** - * 更新数据的间隔时间(秒) - */ - private volatile int threadSleepTime = 10; + public TencentStockHandler(JTable table1, JLabel refreshTimeLabel) { super(table1); @@ -111,11 +108,5 @@ public void run() { }); } - public int getThreadSleepTime() { - return threadSleepTime; - } - public void setThreadSleepTime(int threadSleepTime) { - this.threadSleepTime = threadSleepTime; - } }