25
25
import java .net .URL ;
26
26
import java .util .ArrayList ;
27
27
import java .util .List ;
28
+ import java .util .concurrent .atomic .AtomicReference ;
28
29
29
30
import static org .mcphackers .mcp .tools .Util .enqueueRunnable ;
30
31
@@ -135,6 +136,7 @@ public void reloadVersionList() {
135
136
topRightContainer .removeAll ();
136
137
topRightContainer .add (this .verLabel );
137
138
topRightContainer .add (this .verList );
139
+ AtomicReference <JButton > reloadVersionListButton = new AtomicReference <>();
138
140
enqueueRunnable (() -> {
139
141
loadingVersions = true ;
140
142
VersionParser versionParser = VersionParser .getInstance ();
@@ -144,6 +146,9 @@ public void reloadVersionList() {
144
146
verLabel .setBorder (new EmptyBorder (4 , 0 , 0 , 2 ));
145
147
verLabel .setForeground (Color .RED );
146
148
verList = null ;
149
+ JButton reloadButton = new JButton (MCP .TRANSLATOR .translateKey ("mcp.versionList.reload" ));
150
+ reloadButton .addActionListener (e -> this .reloadVersionList ());
151
+ reloadVersionListButton .set (reloadButton );
147
152
} else {
148
153
verList = new JComboBox <>(versionParser .getVersions ().toArray ());
149
154
verList .addPopupMenuListener (new PopupMenuListener () {
@@ -170,6 +175,9 @@ public void popupMenuCanceled(PopupMenuEvent e) {
170
175
topRightContainer .add (this .verLabel );
171
176
if (verList != null ) {
172
177
topRightContainer .add (this .verList );
178
+ } else if (reloadVersionListButton .get () != null ) {
179
+ JButton reloadButton = reloadVersionListButton .get ();
180
+ topRightContainer .add (reloadButton );
173
181
}
174
182
loadingVersions = false ;
175
183
synchronized (mcp ) {
0 commit comments