Skip to content

Commit 4016142

Browse files
refactor: move task image logic
Make the Task responsible for it's own image logic. This also makes it easier to reuse.
1 parent c90c84e commit 4016142

3 files changed

Lines changed: 24 additions & 18 deletions

File tree

src/main/java/com/westerhoud/osrs/taskman/domain/Task.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
package com.westerhoud.osrs.taskman.domain;
22

3+
import java.awt.image.BufferedImage;
4+
import java.io.IOException;
5+
import java.net.URL;
6+
import javax.imageio.ImageIO;
37
import lombok.Data;
48
import lombok.NoArgsConstructor;
59
import lombok.extern.slf4j.Slf4j;
10+
import net.runelite.client.util.ImageUtil;
611

712
@Data
813
@NoArgsConstructor
@@ -14,4 +19,21 @@ public class Task {
1419
public String getImageUrl() {
1520
return imageUrl.startsWith("http://") ? imageUrl.replace("http://", "https://") : imageUrl;
1621
}
22+
23+
public BufferedImage getImage() {
24+
BufferedImage image = null;
25+
try {
26+
final URL imageUrl = new URL(getImageUrl());
27+
image = ImageIO.read(imageUrl);
28+
} catch (final IOException e) {
29+
log.error(e.getMessage(), e);
30+
}
31+
32+
if (image == null) {
33+
log.info(getImageUrl());
34+
image = ImageUtil.loadImageResource(getClass(), "error.png");
35+
}
36+
37+
return image;
38+
}
1739
}

src/main/java/com/westerhoud/osrs/taskman/ui/TaskmanPluginPanel.java

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@
1010
import java.awt.GridLayout;
1111
import java.awt.Image;
1212
import java.awt.image.BufferedImage;
13-
import java.io.IOException;
14-
import java.net.URL;
1513
import java.util.Map;
16-
import javax.imageio.ImageIO;
1714
import javax.swing.Icon;
1815
import javax.swing.ImageIcon;
1916
import javax.swing.JButton;
@@ -119,7 +116,7 @@ public TaskmanPluginPanel(final TaskmanPlugin taskmanPlugin) {
119116
}
120117

121118
private void updateTaskPanelContent(final Task task) {
122-
imageLabel.setIcon(getTaskImage(task));
119+
imageLabel.setIcon(resizeImage(task.getImage()));
123120
nameLabel.setText(task.getName());
124121
taskPanel.setVisible(true);
125122
}
@@ -204,20 +201,7 @@ private void getProgressAndUpdateContent() {
204201
}
205202
}
206203

207-
private Icon getTaskImage(final Task currentTask) {
208-
BufferedImage image = null;
209-
try {
210-
final URL imageUrl = new URL(currentTask.getImageUrl());
211-
image = ImageIO.read(imageUrl);
212-
} catch (final IOException e) {
213-
log.error(e.getMessage(), e);
214-
}
215-
216-
if (image == null) {
217-
log.info(currentTask.getImageUrl());
218-
image = ImageUtil.loadImageResource(getClass(), "error.png");
219-
}
220-
204+
private Icon resizeImage(final BufferedImage image) {
221205
final Image resizedImage = image.getScaledInstance(25, 25, Image.SCALE_SMOOTH);
222206
return new ImageIcon(resizedImage);
223207
}

src/main/resources/com/westerhoud/osrs/taskman/ui/error.png renamed to src/main/resources/com/westerhoud/osrs/taskman/domain/error.png

File renamed without changes.

0 commit comments

Comments
 (0)