Skip to content

Commit

Permalink
Merge branch 'master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Olyutorskii committed Oct 10, 2022
2 parents cde3211 + a7ab8f9 commit a2d9f41
Show file tree
Hide file tree
Showing 34 changed files with 2,480 additions and 2,347 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
Jindolf 変更履歴


4.101.4 (2020-10-11)
・G国URL変更に伴い JinParser 2.102.4 に対応。
・ログ出力ウィンドウをQuetexJに変更。

4.101.2 (2020-04-20)
・G国亡国に伴い JinParser 2.102.2 に対応。
・ログイン管理画面の廃止。
Expand Down
9 changes: 8 additions & 1 deletion config/checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<!--
Checkstyle modules
for Checkstyle 8.31 or later
for Checkstyle 8.36 or later
[ https://checkstyle.org/ ]
Expand Down Expand Up @@ -197,6 +197,7 @@
<module name="ParameterAssignment" />
<module name="RequireThis">
<property name="checkMethods" value="false" />
<property name="validateOnlyOverlapping" value="false" />
</module>
<module name="ReturnCount">
<property name="max" value="5" />
Expand Down Expand Up @@ -234,6 +235,7 @@
<module name="JavadocBlockTagLocation" />
<module name="JavadocContentLocationCheck" />
<module name="JavadocMethod" />
<module name="JavadocMissingWhitespaceAfterAsterisk" />
<module name="JavadocParagraph" />
<module name="JavadocStyle">
<property
Expand Down Expand Up @@ -281,6 +283,7 @@
<module name="Indentation">
<property name="caseIndent" value="0" />
</module>
<module name="NoCodeInFile" />
<module name="OuterTypeFilename" />
<module name="TodoComment">
<property name="format" value="TODO" />
Expand All @@ -305,6 +308,7 @@
<module name="CatchParameterName" />
<module name="ClassTypeParameterName" />
<module name="ConstantName" />
<module name="IllegalIdentifierName" />
<module name="InterfaceTypeParameterName" />
<module name="LambdaParameterName" />
<module name="LocalFinalVariableName" />
Expand All @@ -314,6 +318,8 @@
<module name="MethodTypeParameterName" />
<module name="PackageName" />
<module name="ParameterName" />
<module name="PatternVariableName" />
<module name="RecordTypeParameterName" />
<module name="StaticVariableName" />
<module name="TypeName" />

Expand Down Expand Up @@ -344,6 +350,7 @@
<module name="MethodLength" />
<module name="OuterTypeNumber" />
<module name="ParameterNumber" />
<module name="RecordComponentNumber" />


<!-- Whitespace -->
Expand Down
34 changes: 21 additions & 13 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<groupId>jp.sourceforge.jindolf</groupId>
<artifactId>jindolf</artifactId>

<version>4.101.2</version>
<version>4.101.4</version>

<packaging>jar</packaging>
<name>Jindolf</name>
Expand Down Expand Up @@ -121,7 +121,7 @@
<dependency>
<groupId>jp.osdn.jindolf</groupId>
<artifactId>jinparser</artifactId>
<version>2.102.2</version>
<version>2.102.4</version>
<scope>compile</scope>
</dependency>

Expand All @@ -132,6 +132,13 @@
<scope>compile</scope>
</dependency>

<dependency>
<groupId>io.github.olyutorskii</groupId>
<artifactId>quetexj</artifactId>
<version>1.0.4</version>
<scope>compile</scope>
</dependency>

</dependencies>

<repositories/>
Expand All @@ -158,7 +165,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<version>3.2.0</version>
</plugin>

<plugin>
Expand All @@ -170,19 +177,19 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<version>3.0.0-M5</version>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>3.0.0-M4</version>
<version>3.0.0-M5</version>
</plugin>

<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<version>0.8.6</version>
</plugin>

<plugin>
Expand All @@ -194,7 +201,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<version>3.2.4</version>
</plugin>

<plugin>
Expand All @@ -218,19 +225,19 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.9.0</version>
<version>3.9.1</version>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.2.0</version>
<version>3.3.0</version>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
<version>3.1.1</version>
</plugin>

<plugin>
Expand All @@ -253,7 +260,7 @@
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.31</version>
<version>8.36.2</version>
</dependency>
</dependencies>
</plugin>
Expand All @@ -267,12 +274,12 @@
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.0.0</version>
<version>4.1.3</version>
<dependencies>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs</artifactId>
<version>4.0.2</version>
<version>4.1.3</version>
</dependency>
</dependencies>
</plugin>
Expand Down Expand Up @@ -440,6 +447,7 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<tarLongFileMode>posix</tarLongFileMode>
<descriptors>
<descriptor>src/assembly/src.xml</descriptor>
</descriptors>
Expand Down
177 changes: 177 additions & 0 deletions src/main/java/jp/sfjp/jindolf/BusyStatus.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
/*
* busy status manager
*
* License : The MIT License
* Copyright(c) 2020 olyutorskii
*/

package jp.sfjp.jindolf;

import java.awt.EventQueue;
import java.lang.reflect.InvocationTargetException;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.logging.Level;
import java.util.logging.Logger;
import jp.sfjp.jindolf.view.TopFrame;
import jp.sfjp.jindolf.view.TopView;

/**
* ビジー状態の見た目を管理する。
*
* <p>ビジー状態を伴うタスクの管理も行う。
*
* <p>EDTで処理しきれない長時間タスクを実行している状況、
* およびその間のGUI操作が抑止される期間をビジーと呼ぶ。
*/
public class BusyStatus {

private static final Logger LOGGER = Logger.getAnonymousLogger();


private final TopFrame topFrame;
private final Executor executor = Executors.newCachedThreadPool();

private boolean isBusy = false;


/**
* コンストラクタ。
*
* @param topFrame TopFrameインスタンス
*/
public BusyStatus(TopFrame topFrame){
super();
this.topFrame = topFrame;
return;
}


/**
* ビジー状態か否か返す。
*
* @return ビジーならtrue
*/
public boolean isBusy(){
return this.isBusy;
}

/**
* ビジー状態を設定する。
*
* <p>ヘビーなタスク実行をアピールするために、
* プログレスバーとカーソルの設定を行う。
*
* <p>ビジー中のトップフレームのマウス操作、キーボード入力は
* 全てグラブされるため無視される。
*
* @param flag trueならプログレスバーのアニメ開始&amp;WAITカーソル。
* falseなら停止&amp;通常カーソル。
* @param msg フッタメッセージ。nullなら変更なし。
*/
public void setBusy(boolean flag, String msg){
if(EventQueue.isDispatchThread()){
setBusyEdt(flag, msg);
return;
}

try{
EventQueue.invokeAndWait(() -> {
setBusyEdt(flag, msg);
});
}catch(InterruptedException | InvocationTargetException e){
LOGGER.log(Level.SEVERE, "ビジー処理で失敗", e);
}

return;
}

/**
* ビジー状態を設定する。
*
* <p>原則EDTから呼ばねばならない。
*
* @param flag trueならビジー
* @param msg メッセージ。nullなら変更なし。
*/
public void setBusyEdt(boolean flag, String msg){
assert EventQueue.isDispatchThread();

this.isBusy = flag;

this.topFrame.setBusy(this.isBusy);

if(msg != null){
TopView topView = this.topFrame.getTopView();
topView.updateSysMessage(msg);
}

return;
}

/**
* 軽量タスクをEDTで実行する。
*
* <p>タスク実行中はビジー状態となる。
*
* <p>軽量タスク実行中はイベントループが停止するので、
* 入出力待ちを伴わなずに早急に終わるタスクでなければならない。
*
* @param task 軽量タスク
* @param beforeMsg ビジー中ステータス文字列
* @param afterMsg ビジー復帰時のステータス文字列
*/
public void submitLightBusyTask(Runnable task,
String beforeMsg,
String afterMsg ){
EventQueue.invokeLater(() -> {
setBusy(true, beforeMsg);
});

EventQueue.invokeLater(task);

EventQueue.invokeLater(() -> {
setBusy(false, afterMsg);
});

return;
}

/**
* 重量級タスクをEDTとは別のスレッドで実行する。
*
* <p>タスク実行中はビジー状態となる。
*
* @param heavyTask 重量級タスク
* @param beforeMsg ビジー中ステータス文字列
* @param afterMsg ビジー復帰時のステータス文字列
*/
public void submitHeavyBusyTask(final Runnable heavyTask,
final String beforeMsg,
final String afterMsg ){
setBusy(true, beforeMsg);

EventQueue.invokeLater(() -> {
fork(() -> {
try{
heavyTask.run();
}finally{
setBusy(false, afterMsg);
}
});
});

return;
}

/**
* スレッドプールを用いて非EDTなタスクを投入する。
*
* @param task タスク
*/
private void fork(Runnable task){
this.executor.execute(task);
return;
}

}
Loading

0 comments on commit a2d9f41

Please sign in to comment.